ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCompanyController.java
@@ -334,6 +334,12 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(TCompany tCompany,@RequestParam String subArr,String account,String password) { String name = tCompany.getName(); name = name.replaceAll("& lt;", "<"); name = name.replaceAll("& gt;", ">"); name = name.replaceAll("& #40;", "("); name = name.replaceAll("& #41;", ")"); tCompany.setName(name); //判断账号是否已存在 int count = userService.selectCount(new EntityWrapper<User>().eq("account", account)); if (count > 0) { @@ -524,6 +530,12 @@ @RequestMapping(value = "/update") @ResponseBody public Object update(TCompany tCompany,@RequestParam String subArr,String account,String password,Integer userId) { String name = tCompany.getName(); name = name.replaceAll("& lt;", "<"); name = name.replaceAll("& gt;", ">"); name = name.replaceAll("& #40;", "("); name = name.replaceAll("& #41;", ")"); tCompany.setName(name); User user = userService.selectById(userId); if(null != user && ToolUtil.isNotEmpty(password)){ user.setPassword(ShiroKit.md5(password, user.getSalt())); @@ -557,6 +569,12 @@ @RequestMapping(value = "/updateFranchisee") @ResponseBody public Object updateFranchisee(TCompany tCompany,String account,String password,Integer userId) { String name = tCompany.getName(); name = name.replaceAll("& lt;", "<"); name = name.replaceAll("& gt;", ">"); name = name.replaceAll("& #40;", "("); name = name.replaceAll("& #41;", ")"); tCompany.setName(name); tCompany.setUpdateTime(new Date()); tCompany.setVersion(tCompany.getVersion() + 1); tCompanyService.updateById(tCompany); @@ -574,6 +592,12 @@ @RequestMapping(value = "/addFranchisee") @ResponseBody public Object addFranchisee(TCompany tCompany,String account,String password) { String name = tCompany.getName(); name = name.replaceAll("& lt;", "<"); name = name.replaceAll("& gt;", ">"); name = name.replaceAll("& #40;", "("); name = name.replaceAll("& #41;", ")"); tCompany.setName(name); //判断账号是否已存在 int count = userService.selectCount(new EntityWrapper<User>().eq("account", account)); if (count > 0) { ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TAbnormalOrderCarController.java
@@ -692,7 +692,7 @@ tOrderPrivateCar.setResponsibilityType(responsibilityTypeVal); tOrderPrivateCar.setAbnormalStatus(2); if(responsibilityTypeVal>3){ tOrderPrivateCar.setResponsibilityMoney(tOrderPrivateCar.getPayMoney()); tOrderPrivateCar.setResponsibilityMoney(tOrderPrivateCar.getOrderMoney()); tOrderPrivateCar.setOrderMoney(new BigDecimal(money)); } if(responsibilityTypeVal>2){ @@ -715,6 +715,7 @@ if(responsibilityTypeVal<3){ tOrderPrivateCar.setState(9); tOrderPrivateCar.setPayType(5); } tOrderPrivateCar.setAbnormalRemark(remark); tOrderPrivateCarService.updateById(tOrderPrivateCar); @@ -796,7 +797,7 @@ tOrderCrossCity.setResponsibilityType(responsibilityTypeVal); tOrderCrossCity.setAbnormalStatus(2); if(responsibilityTypeVal>3) { tOrderCrossCity.setResponsibilityMoney(tOrderCrossCity.getPayMoney()); tOrderCrossCity.setResponsibilityMoney(tOrderCrossCity.getOrderMoney()); tOrderCrossCity.setOrderMoney(new BigDecimal(money)); } if(responsibilityTypeVal>2){ @@ -830,7 +831,7 @@ tOrderTaxi.setResponsibilityType(responsibilityTypeVal); tOrderTaxi.setAbnormalStatus(2); if(responsibilityTypeVal>3) { tOrderTaxi.setResponsibilityMoney(tOrderTaxi.getPayMoney()); tOrderTaxi.setResponsibilityMoney(tOrderTaxi.getOrderMoney()); tOrderTaxi.setOrderMoney(new BigDecimal(money)); } if(responsibilityTypeVal>2){ ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSiteController.java
@@ -9,6 +9,7 @@ import com.stylefeng.guns.core.beetl.ShiroExtUtil; import com.stylefeng.guns.core.common.constant.factory.PageFactory; import com.stylefeng.guns.core.log.LogObjectHolder; import com.stylefeng.guns.core.util.IdGenerator; import com.stylefeng.guns.core.util.SinataUtil; import com.stylefeng.guns.modular.system.model.TLocation; import com.stylefeng.guns.modular.system.model.TRegion; @@ -18,7 +19,13 @@ import com.stylefeng.guns.modular.system.service.ITSiteService; import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.util.model.GeoFencingPolygon; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.geo.Point; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.geo.GeoJsonPolygon; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; @@ -57,6 +64,9 @@ private GDMapElectricFenceUtil gdMapElectricFenceUtil; @Autowired private ShiroExtUtil shiroExtUtil; @Autowired private MongoTemplate mongoTemplate; /** @@ -102,7 +112,7 @@ List<TRegion> areaList = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", city.getId())); model.addAttribute("areaList",areaList); }else{ model.addAttribute("areaList",null); model.addAttribute("areaList",new ArrayList<>()); } //查询所有的站点区域 @@ -175,37 +185,44 @@ location.setUpdateTime(new Date()); Integer type = jsonObject.getInteger("areaType"); location.setType(type); if (1 == type){ if (SinataUtil.isNotEmpty(jsonObject.getString("provinceCode"))){ if (1 == type) { if (SinataUtil.isNotEmpty(jsonObject.getString("provinceCode"))) { location.setProvince(jsonObject.getString("province")); location.setProvinceCode(jsonObject.getString("provinceCode")); } if (SinataUtil.isNotEmpty(jsonObject.getString("cityCode"))){ if (SinataUtil.isNotEmpty(jsonObject.getString("cityCode"))) { location.setCity(jsonObject.getString("city")); location.setCityCode(jsonObject.getString("cityCode")); } if (SinataUtil.isNotEmpty(jsonObject.getString("districtCode"))){ if (SinataUtil.isNotEmpty(jsonObject.getString("districtCode"))) { location.setDistrict(jsonObject.getString("district")); location.setDistrictCode(jsonObject.getString("districtCode")); } }else if (2 == type){ } else if (2 == type) { String coordinate = jsonObject.getString("coordinate"); coordinate = coordinate.substring(0, coordinate.length() - 1); location.setCoordinate(coordinate); //将电子围栏坐标信息存储到MongoDB String[] s1 = coordinate.split("_"); for (String s2 : s1) { GeoFencingPolygon gfp = new GeoFencingPolygon(); gfp.setId(IdGenerator.getId()); gfp.setSiteId(id); gfp.setName(jsonObject.getString("name")); String[] split = s2.split(";"); List<Point> points = new ArrayList<>(); for (String s : split) { String[] str = s.split(","); Point point = new Point(Double.parseDouble(str[0]), Double.parseDouble(str[1])); points.add(point); } //最后一个点要和第一个点相同 points.add(new Point(points.get(0).getX(), points.get(0).getY())); gfp.setGeoJsonPolygon(new GeoJsonPolygon(points)); mongoTemplate.save(gfp); } } itLocationService.insert(location); if(type == 2){ List<String> fence = gdMapElectricFenceUtil.createFence(location.getId().toString(), location.getCoordinate()); TLocation location1 = itLocationService.selectById(location.getId()); String s = ""; for(String gid : fence){ s += gid + "_"; } location1.setGid(s.substring(0, s.length() - 1)); location1.setUpdateTime(new Date()); itLocationService.updateById(location1); } } } @@ -219,6 +236,10 @@ TSite tSite = tSiteService.selectById(tSiteId); if (1 == optType){ tSite.setState(3); //删除mongoDB的区域信息 Criteria criteria =Criteria.where("siteId").is(tSite.getId()); Query query = new Query(criteria); mongoTemplate.remove(query,GeoFencingPolygon.class); }else if (2 == optType){ tSite.setState(2); }else if (3 == optType){ @@ -259,11 +280,11 @@ } } for(TLocation location : del){ if(location.getType() == 2){ String[] s = location.getGid().split("_"); for(String gid : s){ gdMapElectricFenceUtil.deleteElectricFenc(gid); } if (location.getType() == 2) { //删除mongoDB的区域信息 Criteria criteria =Criteria.where("siteId").is(tSite.getId()); Query query = new Query(criteria); mongoTemplate.remove(query,GeoFencingPolygon.class); } itLocationService.deleteById(location.getId()); } ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/DeptController.java
@@ -1,6 +1,7 @@ package com.stylefeng.guns.modular.system.controller.system; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.core.beetl.ShiroExtUtil; import com.stylefeng.guns.core.common.annotion.BussinessLog; import com.stylefeng.guns.core.common.constant.dictmap.DeptDict; import com.stylefeng.guns.core.common.constant.factory.ConstantFactory; @@ -8,6 +9,7 @@ import com.stylefeng.guns.core.exception.GunsException; import com.stylefeng.guns.core.log.LogObjectHolder; import com.stylefeng.guns.core.node.ZTreeNode; import com.stylefeng.guns.core.shiro.ShiroUser; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.model.Dept; import com.stylefeng.guns.modular.system.service.IDeptService; @@ -37,6 +39,8 @@ @Autowired private IDeptService deptService; @Autowired private ShiroExtUtil shiroExtUtil; /** @@ -73,7 +77,8 @@ @RequestMapping(value = "/tree") @ResponseBody public List<ZTreeNode> tree() { List<ZTreeNode> tree = this.deptService.tree(); ShiroUser user1 = shiroExtUtil.getUser(); List<ZTreeNode> tree = this.deptService.tree(user1.getObjectId()); tree.add(ZTreeNode.createParent()); return tree; } @@ -85,12 +90,13 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(Dept dept) { ShiroUser user1 = shiroExtUtil.getUser(); if (ToolUtil.isOneEmpty(dept, dept.getSimplename())) { throw new GunsException(BizExceptionEnum.REQUEST_NULL); } //完善pids,根据pid拿到pid的pids deptSetPids(dept); dept.setObjectId(user1.getObjectId()); return this.deptService.insert(dept); } @@ -101,7 +107,8 @@ @RequestMapping(value = "/list") @ResponseBody public Object list(String condition) { List<Map<String, Object>> list = this.deptService.list(condition); ShiroUser user1 = shiroExtUtil.getUser(); List<Map<String, Object>> list = this.deptService.list(condition, user1.getObjectId()); return super.warpObject(new DeptWarpper(list)); } ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DeptMapper.java
@@ -22,11 +22,11 @@ /** * 获取ztree的节点列表 */ List<ZTreeNode> tree(); List<ZTreeNode> tree(@Param("objectId") Integer objectId); /** * 获取所有部门列表 */ List<Map<String, Object>> list(@Param("condition") String condition); List<Map<String, Object>> list(@Param("condition") String condition, @Param("objectId") Integer objectId); } ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DeptMapper.xml
@@ -23,13 +23,13 @@ ELSE 'false' END ) as isOpen from sys_dept ) as isOpen from sys_dept where objectId = #{objectId} </select> <select id="list" resultType="map"> select * from sys_dept select * from sys_dept where objectId = #{objectId} <if test="condition != null and condition != ''"> where simplename like CONCAT('%',#{condition},'%') or fullname like CONCAT('%',#{condition},'%') and simplename like CONCAT('%',#{condition},'%') or fullname like CONCAT('%',#{condition},'%') </if> order by num ASC </select> ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TCarMapper.xml
@@ -68,7 +68,7 @@ when type = 5 then '小件物流-跨城' when type = 6 then '包车' else '' end ) as serverStr,carId from t_car_service GROUP BY carId) as ds on ds.carId = cc.id LEFT JOIN (select * from t_driver where flag != 3) AS dd on dd.id = cc.useDriverId) as o LEFT JOIN (select * from t_driver where flag != 3) AS dd on dd.carId = cc.id) as o <where> o.state = 1 <if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''"> ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderPrivateCarMapper.xml
@@ -225,11 +225,13 @@ when ot.orderSource = 4 then '司机下单' when ot.orderSource = 5 then '调度下单' else '' end orderSourceStr, ui.nickName as userName,ui.phone as userPhone, case when ot.payType = 1 then '微信' when ot.payType = 2 then '支付宝' when ot.payType = 3 then '余额' when ot.payType = 4 then '云闪付' else '预备金' end as payTypeStr, case when ot.state not in (8, 9) then '' else (case when ot.payType = 1 then '微信' when ot.payType = 2 then '支付宝' when ot.payType = 3 then '余额' when ot.payType = 4 then '云闪付' when ot.payType = 5 then '预备金' else '' end) end as payTypeStr, sc.`name` as serverCarModel, case when income1.type = 1 then income1.money else 0 end as platIncome, case when income1.type = 2 then income1.money else 0 end as companyIncome, ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Dept.java
@@ -53,6 +53,10 @@ * 版本(乐观锁保留字段) */ private Integer version; /** * 企业id */ private Integer objectId; public Integer getId() { @@ -119,6 +123,14 @@ this.version = version; } public Integer getObjectId() { return objectId; } public void setObjectId(Integer objectId) { this.objectId = objectId; } @Override protected Serializable pkVal() { return this.id; ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDeptService.java
@@ -24,10 +24,10 @@ /** * 获取ztree的节点列表 */ List<ZTreeNode> tree(); List<ZTreeNode> tree(Integer objectId); /** * 获取所有部门列表 */ List<Map<String, Object>> list(@Param("condition") String condition); List<Map<String, Object>> list(@Param("condition") String condition, Integer objectId); } ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DeptServiceImpl.java
@@ -38,12 +38,12 @@ } @Override public List<ZTreeNode> tree() { return this.baseMapper.tree(); public List<ZTreeNode> tree(Integer objectId) { return this.baseMapper.tree(objectId); } @Override public List<Map<String, Object>> list(String condition) { return this.baseMapper.list(condition); public List<Map<String, Object>> list(String condition, Integer objectId) { return this.baseMapper.list(condition, objectId); } } ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/model/GeoFencingPolygon.java
New file @@ -0,0 +1,36 @@ package com.stylefeng.guns.modular.system.util.model; import lombok.Data; import org.springframework.data.mongodb.core.geo.GeoJsonPolygon; import org.springframework.data.mongodb.core.index.GeoSpatialIndexType; import org.springframework.data.mongodb.core.index.GeoSpatialIndexed; import org.springframework.data.mongodb.core.mapping.Document; import java.io.Serializable; /** * 地理围栏-多边形 * @author zhibing.pu * @date 2023/4/29 23:53 */ @Data @Document(collection = "geo_fencing") public class GeoFencingPolygon implements Serializable { private static final long serialVersionUID = 4508868382007529971L; private String id; /** * 站点id */ private Integer siteId; /** * 站点名称 */ private String name; /** * 多边形经纬度 */ @GeoSpatialIndexed(type = GeoSpatialIndexType.GEO_2DSPHERE) private GeoJsonPolygon geoJsonPolygon; } ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_immediately.html
@@ -108,25 +108,6 @@ </div> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">网约车资格证:</label> <div class="col-sm-9"> <div class="form-group"> <div class="col-sm-6"> <div id="networkCarlssueImgPreId"> <div> @if(isEmpty(item.networkCarlssueImg)){ <img onclick="lookBigImg('${ctxPath}/static/img/NoPIC.png')" src="${ctxPath}/static/img/NoPIC.png" style="width:150px;"> @}else{ <img onclick="lookBigImg('${item.networkCarlssueImg}')" src="${item.networkCarlssueImg}" style="width:150px;"> @} </div> </div> </div> <input type="hidden" id="networkCarlssueImg" name="headImgUrl" value="${item.networkCarlssueImg}"/> </div> </div> </div> </div> </div>