From 8e9dd425a1c0d4f041cfc863f9f63e68c1b14a20 Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Mon, 20 Feb 2023 15:44:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E3=80=81=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E4=BC=81=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 20 + .../apis/action/ActionPointController.java | 42 ++ .../EnterpriseOfGridOperatorController.java | 37 +- .../apis/action/ActionPointAppController.java | 58 ++ .../dao/action/IActionPointDao.java | 22 + .../dao/gridpersonnel/IGridPersonnelDao.java | 10 + .../pojo/dtos/action/ActionPointDTO.java | 74 +++ .../inspection/pojo/dtos/check/Check2DTO.java | 2 + .../inspection/pojo/dtos/check/Check2PO.java | 2 +- .../EnterpriseOfGridOperatorDTO.java | 24 + .../pojo/vos/action/ActionPointVO.java | 36 ++ .../EnterpriseOfGridOperatorVO.java | 17 +- .../service/action/IActionPointService.java | 22 + .../action/impl/ActionPointServiceImpl.java | 61 ++ .../service/check/impl/Check2ServiceImpl.java | 80 ++- .../service/count/impl/CountServiceImpl.java | 329 ++++++++-- .../enterprise/IEnterpriseService.java | 4 + .../impl/EnterpriseServiceImpl.java | 37 +- .../IEnterpriseOfGridOperatorService.java | 7 + .../EnterpriseOfGridOperatorServiceImpl.java | 47 +- .../gridpersonnel/IGridPersonnelService.java | 9 + .../impl/GridPersonnelServiceImpl.java | 5 + src/main/resources/application-btyjtest.yml | 3 +- .../mapper/action/action-point-mapper.xml | 50 ++ .../mybatis/mapper/check/check2-mapper.xml | 142 ++++- .../mapper/enterprise/enterprise-mapper.xml | 6 +- .../enterpriseofgridoperator-mapper.xml | 18 +- .../gridpersonnel/gridpersonnel-mapper.xml | 90 +++ .../static/assets/images/run-point.png | Bin 0 -> 1516 bytes .../resources/static/assets/images/run.png | Bin 0 -> 2313 bytes .../static/assets/js/BaiduMapGeoUtils.js | 596 ++++++++++++++++++ .../static/assets/js/baidu-map.config.js | 13 + .../static/route/check2/get-map-check.html | 40 +- .../resources/static/route/check2/list.html | 6 +- .../list-enterpriseofgridoperator.html | 206 ++---- .../quick-relieve.html | 221 +++++++ .../route/gridpersonnel/get-actionpath.html | 350 ++++++++++ .../gridpersonnel/list-gridpersonnel.html | 16 +- 38 files changed, 2447 insertions(+), 255 deletions(-) create mode 100644 src/main/java/com/cm/inspection/controller/apis/action/ActionPointController.java create mode 100644 src/main/java/com/cm/inspection/controller/app/apis/action/ActionPointAppController.java create mode 100644 src/main/java/com/cm/inspection/dao/action/IActionPointDao.java create mode 100644 src/main/java/com/cm/inspection/pojo/dtos/action/ActionPointDTO.java create mode 100644 src/main/java/com/cm/inspection/pojo/vos/action/ActionPointVO.java create mode 100644 src/main/java/com/cm/inspection/service/action/IActionPointService.java create mode 100644 src/main/java/com/cm/inspection/service/action/impl/ActionPointServiceImpl.java create mode 100644 src/main/resources/mybatis/mapper/action/action-point-mapper.xml create mode 100644 src/main/resources/static/assets/images/run-point.png create mode 100644 src/main/resources/static/assets/images/run.png create mode 100644 src/main/resources/static/assets/js/BaiduMapGeoUtils.js create mode 100644 src/main/resources/static/assets/js/baidu-map.config.js create mode 100644 src/main/resources/static/route/enterpriseofgridoperator/quick-relieve.html create mode 100644 src/main/resources/static/route/gridpersonnel/get-actionpath.html diff --git a/readme.md b/readme.md index cf12847..f68510d 100644 --- a/readme.md +++ b/readme.md @@ -33,6 +33,26 @@ 1. taskCheck的v1版本 +### 增加用户轨迹 + +表名 + +```sql +CREATE TABLE `ac_action_point` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `action_point_id` char(36) NOT NULL, + `lng` varchar(255) DEFAULT NULL COMMENT '经度', + `lat` varchar(255) DEFAULT NULL COMMENT '维度', + `gmt_create` datetime DEFAULT NULL COMMENT '创建时间', + `creator` char(36) DEFAULT NULL COMMENT '创建人', + `creator_name` varchar(255) DEFAULT NULL COMMENT '创建人姓名', + PRIMARY KEY (`id`), + UNIQUE KEY `action_point_id` (`action_point_id`), + KEY `creator` (`creator`), + KEY `gmt_create` (`gmt_create`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +``` + ## 集宁环保厅 1. 案件上报与流转与包头v1一致 diff --git a/src/main/java/com/cm/inspection/controller/apis/action/ActionPointController.java b/src/main/java/com/cm/inspection/controller/apis/action/ActionPointController.java new file mode 100644 index 0000000..e3bddc7 --- /dev/null +++ b/src/main/java/com/cm/inspection/controller/apis/action/ActionPointController.java @@ -0,0 +1,42 @@ +package com.cm.inspection.controller.apis.action; + +import com.cm.common.constants.ISystemConstant; +import com.cm.common.result.ErrorResult; +import com.cm.inspection.pojo.dtos.action.ActionPointDTO; +import com.cm.inspection.service.action.IActionPointService; +import io.swagger.annotations.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @ClassName: ActionPointAppController + * @Description: 行动轨迹 + * @Author: wanggeng + * @Date: 2022/11/25 15:05 + * @Version: 1.0 + */ +@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "工作轨迹") +@RestController +@RequestMapping(ISystemConstant.API_PREFIX + "/action/point") +public class ActionPointController { + + @Autowired + private IActionPointService actionPointService; + + @ApiOperation(value = "轨迹列表", notes = "轨迹列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "token", paramType = "header"), + @ApiImplicitParam(name = "startDate", value = "开始时间", paramType = "query"), + @ApiImplicitParam(name = "endDate", value = "结束时间", paramType = "query"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list/user-id/{userId}") + public List list(@PathVariable("userId") String userId, + @RequestParam("startDate") String startDate, + @RequestParam("endDate") String endDate) { + return actionPointService.listByUserId(userId, startDate, endDate); + } + +} diff --git a/src/main/java/com/cm/inspection/controller/apis/enterpriseofgridoperator/EnterpriseOfGridOperatorController.java b/src/main/java/com/cm/inspection/controller/apis/enterpriseofgridoperator/EnterpriseOfGridOperatorController.java index 74aaefb..8031476 100644 --- a/src/main/java/com/cm/inspection/controller/apis/enterpriseofgridoperator/EnterpriseOfGridOperatorController.java +++ b/src/main/java/com/cm/inspection/controller/apis/enterpriseofgridoperator/EnterpriseOfGridOperatorController.java @@ -4,6 +4,7 @@ import com.cm.common.annotation.CheckRequestBodyAnnotation; import com.cm.common.base.AbstractController; import com.cm.common.component.SecurityComponent; import com.cm.common.constants.ISystemConstant; +import com.cm.common.exception.ParamsException; import com.cm.common.exception.RemoveException; import com.cm.common.exception.SearchException; import com.cm.common.pojo.ListPage; @@ -18,7 +19,6 @@ import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.Arrays; import java.util.List; import java.util.Map; @@ -47,6 +47,18 @@ public class EnterpriseOfGridOperatorController extends AbstractController { return enterpriseOfGridOperatorService.saveEnterpriseOfGridOperator(enterpriseOfGridOperatorVO); } + @ApiOperation(value = "新增网格员的企业", notes = "新增网格员的企业接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("saveenterprisesofgridoperator") + @CheckRequestBodyAnnotation + public SuccessResult saveEnterprisesOfGridOperator(@RequestBody EnterpriseOfGridOperatorVO enterpriseOfGridOperatorVO) throws Exception { + if (enterpriseOfGridOperatorVO.getEnterpriseIds().isEmpty()) { + throw new ParamsException("企业ID列表不能为空"); + } + enterpriseOfGridOperatorService.saveEnterprisesOfGridOperator(enterpriseOfGridOperatorVO.getUserId(), enterpriseOfGridOperatorVO.getEnterpriseIds()); + return new SuccessResult(); + } + @ApiOperation(value = "删除网格员的企业(id列表)", notes = "删除网格员的企业(id列表)接口") @ApiImplicitParams({ @ApiImplicitParam(name = "ids", value = "ID列表,用下划线分隔", paramType = "path", example = "1_2_3") @@ -57,6 +69,8 @@ public class EnterpriseOfGridOperatorController extends AbstractController { return enterpriseOfGridOperatorService.removeEnterpriseOfGridOperator(ids); } + + @ApiOperation(value = "删除网格员的企业(通过id,物理)", notes = "删除网格员的企业(通过id,物理)接口") @ApiImplicitParams({ @ApiImplicitParam(name = "ids", value = "ID列表,用下划线分隔", paramType = "path", example = "1_2_3") @@ -67,6 +81,17 @@ public class EnterpriseOfGridOperatorController extends AbstractController { return enterpriseOfGridOperatorService.deleteEnterpriseOfGridOperator(ids); } + @ApiOperation(value = "删除网格员的企业(id列表)", notes = "删除网格员的企业(id列表)接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("deleteenterprisesofgridoperator") + public SuccessResult deleteEnterprisesOfGridOperator(@RequestBody EnterpriseOfGridOperatorVO enterpriseOfGridOperatorVO) throws RemoveException { + if (enterpriseOfGridOperatorVO.getEnterpriseIds().isEmpty()) { + throw new ParamsException("企业ID列表不能为空"); + } + enterpriseOfGridOperatorService.deleteEnterprisesOfGridOperator(enterpriseOfGridOperatorVO.getUserId(), enterpriseOfGridOperatorVO.getEnterpriseIds()); + return new SuccessResult(); + } + @ApiOperation(value = "删除网格员的企业(通过企业ID,和用户ID,物理)", notes = "删除网格员的企业(通过企业ID,和用户ID,物理)接口") @ApiImplicitParams({ @ApiImplicitParam(name = "enterpriseId", value = "企业ID", paramType = "path"), @@ -156,6 +181,16 @@ public class EnterpriseOfGridOperatorController extends AbstractController { return enterpriseOfGridOperatorService.listPageEnterpriseOfGridOperatorByUserId(userId, page); } + @ApiOperation(value = "网格员的企业列表(通过用户ID)", notes = "网格员的企业列表(通过用户ID)接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "userId", value = "用户ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("listenterpriseofgridoperatorbyuserid/{userId}") + public List listEnterpriseOfGridOperatorByUserId(@PathVariable("userId") String userId) throws SearchException { + return enterpriseOfGridOperatorService.listEnterpriseOfGridOperatorByUserId(userId); + } + @ApiOperation(value = "当前用户id信息", notes = "当前用户id信息接口") @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @GetMapping("getcurrentuseridinfo") diff --git a/src/main/java/com/cm/inspection/controller/app/apis/action/ActionPointAppController.java b/src/main/java/com/cm/inspection/controller/app/apis/action/ActionPointAppController.java new file mode 100644 index 0000000..208741b --- /dev/null +++ b/src/main/java/com/cm/inspection/controller/app/apis/action/ActionPointAppController.java @@ -0,0 +1,58 @@ +package com.cm.inspection.controller.app.apis.action; + +import com.cm.common.annotation.CheckRequestBodyAnnotation; +import com.cm.common.constants.ISystemConstant; +import com.cm.common.result.ErrorResult; +import com.cm.common.result.SuccessResult; +import com.cm.inspection.pojo.dtos.action.ActionPointDTO; +import com.cm.inspection.pojo.vos.action.ActionPointVO; +import com.cm.inspection.service.action.IActionPointService; +import io.swagger.annotations.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + +/** + * @ClassName: ActionPointAppController + * @Description: 行动轨迹 + * @Author: wanggeng + * @Date: 2022/11/25 15:05 + * @Version: 1.0 + */ +@Api(tags = ISystemConstant.API_TAGS_APP_PREFIX + "工作轨迹") +@RestController +@RequestMapping(ISystemConstant.APP_PREFIX + "/action/point") +public class ActionPointAppController { + + @Autowired + private IActionPointService actionPointService; + + @ApiOperation(value = "上报", notes = "上报接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "token", paramType = "header") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("save") + @CheckRequestBodyAnnotation + public SuccessResult saveCheck(@RequestHeader("token") String token, @RequestBody ActionPointVO actionPointVO) throws Exception { + actionPointService.save(token, actionPointVO); + return new SuccessResult(); + } + + @ApiOperation(value = "轨迹列表", notes = "轨迹列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "token", paramType = "header"), + @ApiImplicitParam(name = "startDate", value = "开始时间", paramType = "query"), + @ApiImplicitParam(name = "endDate", value = "结束时间", paramType = "query"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list") + public List list(@RequestHeader("token") String token, + @RequestParam("startDate") String startDate, + @RequestParam("endDate") String endDate) { + return actionPointService.list(token, startDate, endDate); + } + +} diff --git a/src/main/java/com/cm/inspection/dao/action/IActionPointDao.java b/src/main/java/com/cm/inspection/dao/action/IActionPointDao.java new file mode 100644 index 0000000..547de1e --- /dev/null +++ b/src/main/java/com/cm/inspection/dao/action/IActionPointDao.java @@ -0,0 +1,22 @@ +package com.cm.inspection.dao.action; + +import com.cm.inspection.pojo.dtos.action.ActionPointDTO; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * @ClassName: IActionPointDao + * @Description: + * @Author: wanggeng + * @Date: 2022/11/25 15:30 + * @Version: 1.0 + */ +@Repository +public interface IActionPointDao { + + void save(Map params); + + List list(Map params); +} diff --git a/src/main/java/com/cm/inspection/dao/gridpersonnel/IGridPersonnelDao.java b/src/main/java/com/cm/inspection/dao/gridpersonnel/IGridPersonnelDao.java index 7d3911a..e003815 100644 --- a/src/main/java/com/cm/inspection/dao/gridpersonnel/IGridPersonnelDao.java +++ b/src/main/java/com/cm/inspection/dao/gridpersonnel/IGridPersonnelDao.java @@ -63,6 +63,15 @@ public interface IGridPersonnelDao { */ List listGridPersonnel(Map params) throws SearchException; + /** + * 网格人员列表 + * + * @param params + * @return + */ + List listPO(Map params); + + /** * 统计网格员 * @@ -105,4 +114,5 @@ public interface IGridPersonnelDao { * @throws SearchException */ GridPersonnelPO getPO(Map params) throws SearchException; + } diff --git a/src/main/java/com/cm/inspection/pojo/dtos/action/ActionPointDTO.java b/src/main/java/com/cm/inspection/pojo/dtos/action/ActionPointDTO.java new file mode 100644 index 0000000..c46caeb --- /dev/null +++ b/src/main/java/com/cm/inspection/pojo/dtos/action/ActionPointDTO.java @@ -0,0 +1,74 @@ +package com.cm.inspection.pojo.dtos.action; + +import io.swagger.annotations.ApiModelProperty; + +/** + * @ClassName: ActionPointDTO + * @Description: + * @Author: wanggeng + * @Date: 2022/11/25 16:16 + * @Version: 1.0 + */ +public class ActionPointDTO { + + @ApiModelProperty(name = "actionPointId", value = "主键") + private String actionPointId; + @ApiModelProperty(name = "lng", value = "经度") + private String lng; + @ApiModelProperty(name = "lat", value = "维度") + private String lat; + @ApiModelProperty(name = "gmtCreate", value = "创建时间") + private String gmtCreate; + @ApiModelProperty(name = "creator", value = "创建人") + private String creator; + @ApiModelProperty(name = "creatorName", value = "创建人名称") + private String creatorName; + + public String getActionPointId() { + return actionPointId == null ? "" : actionPointId.trim(); + } + + public void setActionPointId(String actionPointId) { + this.actionPointId = actionPointId; + } + + public String getLng() { + return lng == null ? "" : lng.trim(); + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getLat() { + return lat == null ? "" : lat.trim(); + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getGmtCreate() { + return gmtCreate == null ? "" : gmtCreate.trim(); + } + + public void setGmtCreate(String gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public String getCreator() { + return creator == null ? "" : creator.trim(); + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getCreatorName() { + return creatorName == null ? "" : creatorName.trim(); + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } +} diff --git a/src/main/java/com/cm/inspection/pojo/dtos/check/Check2DTO.java b/src/main/java/com/cm/inspection/pojo/dtos/check/Check2DTO.java index 8c19c8e..31fa10a 100644 --- a/src/main/java/com/cm/inspection/pojo/dtos/check/Check2DTO.java +++ b/src/main/java/com/cm/inspection/pojo/dtos/check/Check2DTO.java @@ -106,5 +106,7 @@ public class Check2DTO implements Serializable { private String creatorPhone; @ApiModelProperty(name = "checkItems", value = "检查列表") private List checkItems; + @ApiModelProperty(name = "cardColor", value = "卡片颜色") + private Integer cardColor; } diff --git a/src/main/java/com/cm/inspection/pojo/dtos/check/Check2PO.java b/src/main/java/com/cm/inspection/pojo/dtos/check/Check2PO.java index 7168e0c..ef23211 100644 --- a/src/main/java/com/cm/inspection/pojo/dtos/check/Check2PO.java +++ b/src/main/java/com/cm/inspection/pojo/dtos/check/Check2PO.java @@ -29,7 +29,7 @@ public class Check2PO implements Serializable { private Integer rectificationDays; private String summary; private Integer isComplete; - private String checkType; + private Integer checkType; private String checkLng; private String checkLat; private String creator; diff --git a/src/main/java/com/cm/inspection/pojo/dtos/enterpriseofgridoperator/EnterpriseOfGridOperatorDTO.java b/src/main/java/com/cm/inspection/pojo/dtos/enterpriseofgridoperator/EnterpriseOfGridOperatorDTO.java index e1c1dc8..62ce1aa 100644 --- a/src/main/java/com/cm/inspection/pojo/dtos/enterpriseofgridoperator/EnterpriseOfGridOperatorDTO.java +++ b/src/main/java/com/cm/inspection/pojo/dtos/enterpriseofgridoperator/EnterpriseOfGridOperatorDTO.java @@ -82,6 +82,10 @@ public class EnterpriseOfGridOperatorDTO implements Serializable { private Integer isLogOffByEnterpriseId; @ApiModelProperty(name = "userCount", value = "绑定用户数") private Integer userCount; + @ApiModelProperty(name = "lng", value = "经度") + private String lng; + @ApiModelProperty(name = "lat", value = "维度") + private String lat; public String getEnterpriseOfGridOperatorId() { return enterpriseOfGridOperatorId == null ? "" : enterpriseOfGridOperatorId; @@ -347,6 +351,22 @@ public class EnterpriseOfGridOperatorDTO implements Serializable { this.userCount = userCount; } + public String getLng() { + return lng == null ? "" : lng.trim(); + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getLat() { + return lat == null ? "" : lat.trim(); + } + + public void setLat(String lat) { + this.lat = lat; + } + @Override public String toString() { final StringBuilder sb = new StringBuilder("{"); @@ -416,6 +436,10 @@ public class EnterpriseOfGridOperatorDTO implements Serializable { .append(isLogOffByEnterpriseId); sb.append(",\"userCount\":") .append(userCount); + sb.append(",\"lng\":\"") + .append(lng).append('\"'); + sb.append(",\"lat\":\"") + .append(lat).append('\"'); sb.append('}'); return sb.toString(); } diff --git a/src/main/java/com/cm/inspection/pojo/vos/action/ActionPointVO.java b/src/main/java/com/cm/inspection/pojo/vos/action/ActionPointVO.java new file mode 100644 index 0000000..4fc5f34 --- /dev/null +++ b/src/main/java/com/cm/inspection/pojo/vos/action/ActionPointVO.java @@ -0,0 +1,36 @@ +package com.cm.inspection.pojo.vos.action; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @ClassName: ActionPointVO + * @Description: + * @Author: wanggeng + * @Date: 2022/11/25 15:13 + * @Version: 1.0 + */ +@ApiModel +public class ActionPointVO { + + @ApiModelProperty(name = "lng", value = "经度") + private String lng; + @ApiModelProperty(name = "lat", value = "维度") + private String lat; + + public String getLng() { + return lng == null ? "" : lng.trim(); + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getLat() { + return lat == null ? "" : lat.trim(); + } + + public void setLat(String lat) { + this.lat = lat; + } +} diff --git a/src/main/java/com/cm/inspection/pojo/vos/enterpriseofgridoperator/EnterpriseOfGridOperatorVO.java b/src/main/java/com/cm/inspection/pojo/vos/enterpriseofgridoperator/EnterpriseOfGridOperatorVO.java index b06c408..5ef8b22 100644 --- a/src/main/java/com/cm/inspection/pojo/vos/enterpriseofgridoperator/EnterpriseOfGridOperatorVO.java +++ b/src/main/java/com/cm/inspection/pojo/vos/enterpriseofgridoperator/EnterpriseOfGridOperatorVO.java @@ -1,10 +1,11 @@ package com.cm.inspection.pojo.vos.enterpriseofgridoperator; -import com.cm.common.annotation.CheckEmptyAnnotation; -import com.cm.common.annotation.CheckNumberAnnotation; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.util.ArrayList; +import java.util.List; + /** * @ClassName: EnterpriseOfGridOperatorVO * @Description: 网格员的企业 @@ -19,6 +20,8 @@ public class EnterpriseOfGridOperatorVO { private String userId; @ApiModelProperty(name = "enterpriseId", value = "企业ID") private String enterpriseId; + @ApiModelProperty(name = "enterpriseIds", value = "企业ID列表") + private List enterpriseIds; public String getUserId() { return userId == null ? "" : userId; @@ -36,6 +39,14 @@ public class EnterpriseOfGridOperatorVO { this.enterpriseId = enterpriseId; } + public List getEnterpriseIds() { + return enterpriseIds == null ? new ArrayList() : enterpriseIds; + } + + public void setEnterpriseIds(List enterpriseIds) { + this.enterpriseIds = enterpriseIds; + } + @Override public String toString() { final StringBuilder sb = new StringBuilder("{"); @@ -43,6 +54,8 @@ public class EnterpriseOfGridOperatorVO { .append(userId).append('\"'); sb.append(",\"enterpriseId\":\"") .append(enterpriseId).append('\"'); + sb.append(",\"enterpriseIds\":") + .append(enterpriseIds); sb.append('}'); return sb.toString(); } diff --git a/src/main/java/com/cm/inspection/service/action/IActionPointService.java b/src/main/java/com/cm/inspection/service/action/IActionPointService.java new file mode 100644 index 0000000..ce260fb --- /dev/null +++ b/src/main/java/com/cm/inspection/service/action/IActionPointService.java @@ -0,0 +1,22 @@ +package com.cm.inspection.service.action; + +import com.cm.inspection.pojo.dtos.action.ActionPointDTO; +import com.cm.inspection.pojo.vos.action.ActionPointVO; + +import java.util.List; + +/** + * @ClassName: IActionService + * @Description: + * @Author: wanggeng + * @Date: 2022/11/25 15:29 + * @Version: 1.0 + */ +public interface IActionPointService { + + void save(String token, ActionPointVO actionPointVO) throws Exception; + + List list(String token, String startDate, String endDate); + + List listByUserId(String userId, String startDate, String endDate); +} diff --git a/src/main/java/com/cm/inspection/service/action/impl/ActionPointServiceImpl.java b/src/main/java/com/cm/inspection/service/action/impl/ActionPointServiceImpl.java new file mode 100644 index 0000000..4bb50f5 --- /dev/null +++ b/src/main/java/com/cm/inspection/service/action/impl/ActionPointServiceImpl.java @@ -0,0 +1,61 @@ +package com.cm.inspection.service.action.impl; + +import com.cm.common.token.app.AppTokenManager; +import com.cm.common.token.app.entity.AppTokenUser; +import com.cm.common.utils.DateUtil; +import com.cm.common.utils.HashMapUtil; +import com.cm.common.utils.UUIDUtil; +import com.cm.inspection.dao.action.IActionPointDao; +import com.cm.inspection.pojo.dtos.action.ActionPointDTO; +import com.cm.inspection.pojo.vos.action.ActionPointVO; +import com.cm.inspection.service.BaseService; +import com.cm.inspection.service.action.IActionPointService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + * @ClassName: ActionServiceImpl + * @Description: + * @Author: wanggeng + * @Date: 2022/11/25 15:29 + * @Version: 1.0 + */ +@Service +public class ActionPointServiceImpl extends BaseService implements IActionPointService { + + @Autowired + private IActionPointDao actionPointDao; + + @Override + public void save(String token, ActionPointVO actionPointVO) throws Exception { + AppTokenUser appTokenUser = AppTokenManager.getInstance().getToken(token).getAppTokenUser(); + Map params = HashMapUtil.beanToMap(actionPointVO); + params.put("actionPointId", UUIDUtil.getUUID()); + params.put("gmtCreate", DateUtil.getTime()); + params.put("creator", appTokenUser.getId()); + params.put("creatorName", appTokenUser.getName()); + actionPointDao.save(params); + } + + @Override + public List list(String token, String startDate, String endDate) { + AppTokenUser appTokenUser = AppTokenManager.getInstance().getToken(token).getAppTokenUser(); + Map params = getHashMap(6); + params.put("creator", appTokenUser.getId()); + params.put("startDate", startDate); + params.put("endDate", endDate); + return actionPointDao.list(params); + } + + @Override + public List listByUserId(String userId, String startDate, String endDate) { + Map params = getHashMap(6); + params.put("creator", userId); + params.put("startDate", startDate); + params.put("endDate", endDate); + return actionPointDao.list(params); + } +} diff --git a/src/main/java/com/cm/inspection/service/check/impl/Check2ServiceImpl.java b/src/main/java/com/cm/inspection/service/check/impl/Check2ServiceImpl.java index f8378b0..623f64c 100644 --- a/src/main/java/com/cm/inspection/service/check/impl/Check2ServiceImpl.java +++ b/src/main/java/com/cm/inspection/service/check/impl/Check2ServiceImpl.java @@ -51,10 +51,12 @@ import org.activiti.engine.task.Task; import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; +import java.util.stream.Collectors; /** * @ClassName: CheckServiceImpl @@ -249,20 +251,90 @@ public class Check2ServiceImpl extends BaseService implements ICheck2Service { } } } - - List check2DTOs = check2Dao.list(params); + // 原来是直接取值,慢 + // List check2DTOs = check2Dao.list(params); + // 修改为逐步获取 + List check2POS = check2Dao.listPO(params); + List check2DTOs = listPO2DTO(check2POS); setUserInfo(check2DTOs); return check2DTOs; } + @Override public SuccessResultList> listPage(ListPage page) { + if (page.getParams().get("reporter") != null) { + String reporter = page.getParams().get("reporter").toString(); + if (!StringUtils.isBlank(reporter)) { + List userIds = listUserIdsByKeyword(reporter, userService); + if (userIds.isEmpty()) { + return new SuccessResultList<>(new ArrayList<>(), 1, 0L); + } else { + page.getParams().put("creators", userIds); + } + } + } PageHelper.startPage(page.getPage(), page.getRows()); - List check2DTOs = list(page.getParams()); - PageInfo pageInfo = new PageInfo<>(check2DTOs); + List check2POS = check2Dao.listPO(page.getParams()); + PageInfo pageInfo = new PageInfo<>(check2POS); + List check2DTOs = listPO2DTO(check2POS); + setUserInfo(check2DTOs); return new SuccessResultList<>(check2DTOs, pageInfo.getPageNum(), pageInfo.getTotal()); } + /** + * PO转DTO + * + * @param check2POS + * @return + */ + private List listPO2DTO(List check2POS) { + List enterpriseIds = new ArrayList<>(); + List check2DTOS = check2POS.stream().map(check2PO -> { + Check2DTO check2DTO = new Check2DTO(); + BeanUtils.copyProperties(check2PO, check2DTO); + enterpriseIds.add(check2PO.getEnterpriseId()); + return check2DTO; + }).collect(Collectors.toList()); + if (!enterpriseIds.isEmpty()) { + List enterpriseDTOS = enterpriseService.listEnterprise(enterpriseIds); + check2DTOS.forEach(check2DTO -> { + check2DTO.setEnterpriseName("企业不存在或已删除"); + for (EnterpriseDTO enterpriseDTO : enterpriseDTOS) { + if (StringUtils.equals(enterpriseDTO.getEnterpriseId(), check2DTO.getEnterpriseId())) { + check2DTO.setEnterpriseName(enterpriseDTO.getName()); + check2DTO.setEnterpriseType(enterpriseDTO.getType()); + check2DTO.setEnterpriseTypeName(enterpriseDTO.getTypeDictionaryName()); + check2DTO.setEnterpriseArea1(enterpriseDTO.getArea1()); + check2DTO.setEnterpriseArea1Name(enterpriseDTO.getArea1DictionaryName()); + check2DTO.setEnterpriseArea2(enterpriseDTO.getArea2()); + check2DTO.setEnterpriseArea2Name(enterpriseDTO.getArea2DictionaryName()); + check2DTO.setEnterpriseArea3(enterpriseDTO.getArea3()); + check2DTO.setEnterpriseArea3Name(enterpriseDTO.getArea3DictionaryName()); + check2DTO.setEnterpriseArea4(enterpriseDTO.getArea4()); + check2DTO.setEnterpriseArea4Name(enterpriseDTO.getArea4DictionaryName()); + check2DTO.setEnterpriseArea5(enterpriseDTO.getArea5()); + check2DTO.setEnterpriseArea5Name(enterpriseDTO.getArea5DictionaryName()); + check2DTO.setEnterpriseAddress(enterpriseDTO.getAddress()); + check2DTO.setEnterpriseIndustry(enterpriseDTO.getIndustry()); + check2DTO.setEnterpriseIndustryName(enterpriseDTO.getIndustryDictionaryName()); + check2DTO.setEnterpriseEngagedCount(enterpriseDTO.getEngagedCount() == null ? "0" : enterpriseDTO.getEngagedCount().toString()); + check2DTO.setEnterpriseRiskOperation(enterpriseDTO.getRiskOperation()); + check2DTO.setEnterpriseRiskOperationName(enterpriseDTO.getRiskOperationDictionaryName()); + check2DTO.setEnterpriseMaster(enterpriseDTO.getMaster()); + check2DTO.setEnterprisePhone(enterpriseDTO.getPhone()); + check2DTO.setEnterpriseLng(enterpriseDTO.getEnterpriseLng()); + check2DTO.setEnterpriseLat(enterpriseDTO.getEnterpriseLat()); + check2DTO.setEnterpriseFactoryGate(enterpriseDTO.getFactoryGate()); + check2DTO.setEnterpriseWorkplace(enterpriseDTO.getWorkplace()); + break; + } + } + }); + } + return check2DTOS; + } + @Override public SuccessResultList> listPageCheckOfMine(ListPage page) { return listPageCheckByUserId(securityComponent.getCurrentUser().getUserId(), page); diff --git a/src/main/java/com/cm/inspection/service/count/impl/CountServiceImpl.java b/src/main/java/com/cm/inspection/service/count/impl/CountServiceImpl.java index 796e683..6743dbc 100644 --- a/src/main/java/com/cm/inspection/service/count/impl/CountServiceImpl.java +++ b/src/main/java/com/cm/inspection/service/count/impl/CountServiceImpl.java @@ -5,6 +5,7 @@ import com.cm.common.config.properties.ApiPathProperties; import com.cm.common.exception.SearchException; import com.cm.common.plugin.oauth.token.ClientTokenManager; import com.cm.common.plugin.pojo.dtos.datadictionary.DataDictionaryDTO; +import com.cm.common.plugin.pojo.pos.datadictionary.DataDictionaryPO; import com.cm.common.plugin.service.datadictionary.IDataDictionaryService; import com.cm.common.pojo.ListPage; import com.cm.common.result.SuccessResultData; @@ -19,6 +20,7 @@ import com.cm.inspection.pojo.dtos.count.UserUseInfoDTO; import com.cm.inspection.pojo.dtos.gridpersonnel.GridPersonnelDTO; import com.cm.inspection.pojo.dtos.hiddendangerreport.HiddenDangerReportDTO; import com.cm.inspection.pojo.pos.count.IdCountPO; +import com.cm.inspection.pojo.pos.gridpersonnel.GridPersonnelPO; import com.cm.inspection.service.BaseService; import com.cm.inspection.service.check.ICheckService; import com.cm.inspection.service.checkitem.ICheckItemService; @@ -82,10 +84,10 @@ public class CountServiceImpl extends BaseService implements ICountService { areaId = StringUtils.isBlank(areaId) ? DEFAULT_AREA_ID : areaId; List areaDTOs = dataDictionaryService.listDictionaryByParentId(areaId); LOG.debug("统计区域下的人员计划数量"); - Map params = getHashMap(4); List userIdList = new ArrayList<>(); List> resultList = new ArrayList<>(); for (DataDictionaryDTO areaDTO : areaDTOs) { + Map params = getHashMap(4); Map resultListMap = getHashMap(3); // 查找区域下的人员 params.put("area" + areaLevel, areaDTO.getDictionaryId()); @@ -114,7 +116,6 @@ public class CountServiceImpl extends BaseService implements ICountService { areaId = StringUtils.isBlank(areaId) ? DEFAULT_AREA_ID : areaId; List areaDTOs = dataDictionaryService.listDictionaryByParentId(areaId); LOG.debug("统计区域下的人员计划数量"); - Map params = getHashMap(4); List> resultList = new ArrayList<>(); for (DataDictionaryDTO areaDTO : areaDTOs) { Map resultListMap = getHashMap(3); @@ -146,25 +147,43 @@ public class CountServiceImpl extends BaseService implements ICountService { List areaDTOs = dataDictionaryService.listDictionaryByParentId(areaId); LOG.debug("获取行业分类"); List dataDictionaryDTOs = dataDictionaryService.listDictionaryByParentId("b97630ab-45b7-45bc-a624-507d4df952ff"); - Map params = getHashMap(5); - params.put("isLogOff", 0); List> resultList = new ArrayList<>(); - for (DataDictionaryDTO areaDTO : areaDTOs) { + areaDTOs.parallelStream().forEach(areaDTO -> { + Map params = getHashMap(5); + params.put("isLogOff", 0); Map resultListMap = getHashMap(3); resultListMap.put("areaName", areaDTO.getDictionaryName()); resultListMap.put("areaId", areaDTO.getDictionaryId()); params.put("area" + areaLevel, areaDTO.getDictionaryId()); List> industryTypeCountList = new ArrayList<>(); - for (DataDictionaryDTO dataDictionaryDTO : dataDictionaryDTOs) { + dataDictionaryDTOs.parallelStream().forEach(dataDictionaryDTO -> { params.put("industryType", dataDictionaryDTO.getDictionaryId()); Map industryTypeCountMap = getHashMap(3); industryTypeCountMap.put("areaName", dataDictionaryDTO.getDictionaryName()); industryTypeCountMap.put("enterpriseCount", enterpriseService.countEnterpriseReturnInteger(params)); industryTypeCountList.add(industryTypeCountMap); - } + }); resultListMap.put("industryTypeCountList", industryTypeCountList); resultList.add(resultListMap); - } + }); + /** + for (DataDictionaryDTO areaDTO : areaDTOs) { + Map resultListMap = getHashMap(3); + resultListMap.put("areaName", areaDTO.getDictionaryName()); + resultListMap.put("areaId", areaDTO.getDictionaryId()); + params.put("area" + areaLevel, areaDTO.getDictionaryId()); + List> industryTypeCountList = new ArrayList<>(); + for (DataDictionaryDTO dataDictionaryDTO : dataDictionaryDTOs) { + params.put("industryType", dataDictionaryDTO.getDictionaryId()); + Map industryTypeCountMap = getHashMap(3); + industryTypeCountMap.put("areaName", dataDictionaryDTO.getDictionaryName()); + industryTypeCountMap.put("enterpriseCount", enterpriseService.countEnterpriseReturnInteger(params)); + industryTypeCountList.add(industryTypeCountMap); + } + resultListMap.put("industryTypeCountList", industryTypeCountList); + resultList.add(resultListMap); + } + **/ return new SuccessResultData<>(resultList); } @@ -174,8 +193,8 @@ public class CountServiceImpl extends BaseService implements ICountService { areaId = StringUtils.isBlank(areaId) ? DEFAULT_AREA_ID : areaId; List areaDTOs = dataDictionaryService.listDictionaryByParentId(areaId); List> resultList = new ArrayList<>(); - Map params = getHashMap(3); - for (DataDictionaryDTO areaDTO : areaDTOs) { + areaDTOs.parallelStream().forEach(areaDTO -> { + Map params = getHashMap(3); Map resultListMap = getHashMap(3); resultListMap.put("areaName", areaDTO.getDictionaryName()); resultListMap.put("areaId", areaDTO.getDictionaryId()); @@ -191,7 +210,26 @@ public class CountServiceImpl extends BaseService implements ICountService { resultListMap.put("enterpriseReceiveCount", enterpriseReceiveCount); resultListMap.put("enterpriseReceiveRatio", enterpriseCount == 0 ? 0 : String.format("%.2f", (double) enterpriseReceiveCount / enterpriseCount * 100)); resultList.add(resultListMap); - } + }); + /** + for (DataDictionaryDTO areaDTO : areaDTOs) { + Map resultListMap = getHashMap(3); + resultListMap.put("areaName", areaDTO.getDictionaryName()); + resultListMap.put("areaId", areaDTO.getDictionaryId()); + // 地区企业总数 + params.put("isLogOff", 0); + params.put("area" + areaLevel, areaDTO.getDictionaryId()); + setParentArea(areaDTO.getDictionaryParentId(), areaLevel - 1, params); + params.put("year", year); + Integer enterpriseCount = enterpriseService.countEnterpriseReturnInteger(params); + resultListMap.put("enterpriseCount", enterpriseCount); + // 地区企业认领总数 + Integer enterpriseReceiveCount = countEnterpriseOfArea(areaDTO.getDictionaryId(), areaLevel, year); + resultListMap.put("enterpriseReceiveCount", enterpriseReceiveCount); + resultListMap.put("enterpriseReceiveRatio", enterpriseCount == 0 ? 0 : String.format("%.2f", (double) enterpriseReceiveCount / enterpriseCount * 100)); + resultList.add(resultListMap); + } + **/ Map result = getHashMap(3); result.put("year", year); result.put("areaList", resultList); @@ -204,11 +242,11 @@ public class CountServiceImpl extends BaseService implements ICountService { areaId = StringUtils.isBlank(areaId) ? DEFAULT_AREA_ID : areaId; List areaDTOs = dataDictionaryService.listDictionaryByParentId(areaId); List> resultList = new ArrayList<>(); - for (DataDictionaryDTO areaDTO : areaDTOs) { + areaDTOs.parallelStream().forEach(areaDTO -> { Map resultListMap = getHashMap(16); resultListMap.put("areaId", areaDTO.getDictionaryId()); resultListMap.put("areaName", areaDTO.getDictionaryName()); - // 地区认领企业总数 + // 地区认领企业总数* Integer enterpriseReceiveCount = countEnterpriseOfArea(areaDTO.getDictionaryId(), areaLevel, year); resultListMap.put("enterpriseReceiveCount", enterpriseReceiveCount); // 网格员的Id列表 @@ -225,7 +263,7 @@ public class CountServiceImpl extends BaseService implements ICountService { resultListMap.put("rectificationRate", 0); resultListMap.put("countUnCoordination", 0); resultList.add(resultListMap); - continue; + return; } // 年度计划数量 Integer checkPlanCount = checkPlanService.countCheckPlanByUserIdsAndYear(userIdList, year); @@ -234,7 +272,7 @@ public class CountServiceImpl extends BaseService implements ICountService { Integer checkCount = getCheckCountByYear(userIdList, year); resultListMap.put("checkCount", checkCount); resultListMap.put("completeRatio", checkPlanCount == null || checkPlanCount == 0 ? 0 : String.format("%.2f", (double) checkCount / checkPlanCount * 100)); - // 待复查企业 + // 待复查企业**** List listNeedReCheck = listNeedReCheckIds(userIdList); List checkDTOs = listNeedReCheck(listNeedReCheck, year); resultListMap.put("needReCheck", checkDTOs.size()); @@ -261,7 +299,67 @@ public class CountServiceImpl extends BaseService implements ICountService { Integer countUnCoordination = countUnCoordination(userIdList, year); resultListMap.put("countUnCoordination", countUnCoordination); resultList.add(resultListMap); - } + }); + /** + for (DataDictionaryDTO areaDTO : areaDTOs) { + Map resultListMap = getHashMap(16); + resultListMap.put("areaId", areaDTO.getDictionaryId()); + resultListMap.put("areaName", areaDTO.getDictionaryName()); + // 地区认领企业总数 + Integer enterpriseReceiveCount = countEnterpriseOfArea(areaDTO.getDictionaryId(), areaLevel, year); + resultListMap.put("enterpriseReceiveCount", enterpriseReceiveCount); + // 网格员的Id列表 + List userIdList = listGridPersonnelUserId(areaDTO.getDictionaryId(), areaLevel); + if (userIdList.isEmpty()) { + resultListMap.put("checkPlanCount", 0); + resultListMap.put("checkCount", 0); + resultListMap.put("completeRatio", 0); + resultListMap.put("needReCheck", 0); + resultListMap.put("countTimeoutCheck", 0); + resultListMap.put("countCheckHiddenDanger", 0); + resultListMap.put("countReCheckHiddenDanger", 0); + resultListMap.put("countRectification", 0); + resultListMap.put("rectificationRate", 0); + resultListMap.put("countUnCoordination", 0); + resultList.add(resultListMap); + continue; + } + // 年度计划数量 + Integer checkPlanCount = checkPlanService.countCheckPlanByUserIdsAndYear(userIdList, year); + resultListMap.put("checkPlanCount", checkPlanCount); + // 实际检查企业统计 + Integer checkCount = getCheckCountByYear(userIdList, year); + resultListMap.put("checkCount", checkCount); + resultListMap.put("completeRatio", checkPlanCount == null || checkPlanCount == 0 ? 0 : String.format("%.2f", (double) checkCount / checkPlanCount * 100)); + // 待复查企业 + List listNeedReCheck = listNeedReCheckIds(userIdList); + List checkDTOs = listNeedReCheck(listNeedReCheck, year); + resultListMap.put("needReCheck", checkDTOs.size()); + // 超期企业 + resultListMap.put("countTimeoutCheck", countTimeoutCheck(checkDTOs)); + // 获取隐患列表 + List checkItemOptionDTOs = listCheckItemOptionDTO(); + // 企业检查隐患总数 + Integer countCheckHiddenDanger = countCheckHiddenDanger(checkItemOptionDTOs, userIdList, year); + resultListMap.put("countCheckHiddenDanger", countCheckHiddenDanger); + // 企业复查隐患总数 + Integer countReCheckHiddenDanger = countReCheckHiddenDanger(checkItemOptionDTOs, userIdList, year); + // 需复查隐患数 + resultListMap.put("countReCheckHiddenDanger", countReCheckHiddenDanger); + // 复查整改总数 + Integer countRectification = countCheckHiddenDanger - countReCheckHiddenDanger; + resultListMap.put("countRectification", countRectification); + // 立即整改(现场整改)数量 + Integer countImmediatelyRectification = countImmediatelyRectification(checkItemOptionDTOs, userIdList, year); + resultListMap.put("countImmediatelyRectification", countImmediatelyRectification); + // 整改率 + resultListMap.put("rectificationRate", countCheckHiddenDanger == null || countCheckHiddenDanger == 0 ? 0 : String.format("%.2f", (double) countRectification / countCheckHiddenDanger * 100)); + // 不配合次数(上报条数) + Integer countUnCoordination = countUnCoordination(userIdList, year); + resultListMap.put("countUnCoordination", countUnCoordination); + resultList.add(resultListMap); + } + **/ Map result = getHashMap(5); result.put("year", year); result.put("resultList", resultList); @@ -308,7 +406,7 @@ public class CountServiceImpl extends BaseService implements ICountService { List checkItemOptionDTOs = listCheckItemOptionDTO(); // 检查结果 List> listCheckItemOptionArea = new ArrayList<>(); - for (DataDictionaryDTO areaDTO : areaDTOs) { + areaDTOs.parallelStream().forEach(areaDTO -> { Map areaMap = getHashMap(4); areaMap.put("areaId", areaDTO.getDictionaryId()); areaMap.put("areaName", areaDTO.getDictionaryName()); @@ -318,22 +416,73 @@ public class CountServiceImpl extends BaseService implements ICountService { List listHiddenDangerReport = hiddenDangerReportService.listHiddenDangerReportSimpleByUserIdsYear(userIdList, year); // 遍历所有的检查项 List> listCheckItemOption = new ArrayList<>(); + /** + checkItemOptionDTOs.parallelStream().forEach(checkItemOptionDTO -> { + try { + Map checkItemOptionMap = HashMapUtil.beanToMap(checkItemOptionDTO); + int checkCount = 0; + for (HiddenDangerReportDTO hiddenDangerReportDTO : listHiddenDangerReport) { + // 检查项相同 + if (StringUtils.equals(checkItemOptionDTO.getCheckItemId(), hiddenDangerReportDTO.getCheckItemId()) && + StringUtils.equals(checkItemOptionDTO.getCheckItemOptionId(), hiddenDangerReportDTO.getCheckItemOptionId())) { + checkCount++; + } + } + checkItemOptionMap.put("checkCount", checkCount); + listCheckItemOption.add(checkItemOptionMap); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + **/ for (CheckItemOptionDTO checkItemOptionDTO : checkItemOptionDTOs) { - Map checkItemOptionMap = HashMapUtil.beanToMap(checkItemOptionDTO); - int checkCount = 0; - for (HiddenDangerReportDTO hiddenDangerReportDTO : listHiddenDangerReport) { - // 检查项相同 - if (StringUtils.equals(checkItemOptionDTO.getCheckItemId(), hiddenDangerReportDTO.getCheckItemId()) && - StringUtils.equals(checkItemOptionDTO.getCheckItemOptionId(), hiddenDangerReportDTO.getCheckItemOptionId())) { - checkCount++; + try { + Map checkItemOptionMap = HashMapUtil.beanToMap(checkItemOptionDTO); + int checkCount = 0; + for (HiddenDangerReportDTO hiddenDangerReportDTO : listHiddenDangerReport) { + // 检查项相同 + if (StringUtils.equals(checkItemOptionDTO.getCheckItemId(), hiddenDangerReportDTO.getCheckItemId()) && + StringUtils.equals(checkItemOptionDTO.getCheckItemOptionId(), hiddenDangerReportDTO.getCheckItemOptionId())) { + checkCount++; + } } + checkItemOptionMap.put("checkCount", checkCount); + listCheckItemOption.add(checkItemOptionMap); + } catch (Exception e) { + throw new RuntimeException(e); } - checkItemOptionMap.put("checkCount", checkCount); - listCheckItemOption.add(checkItemOptionMap); } areaMap.put("listCheckItemOption", listCheckItemOption); listCheckItemOptionArea.add(areaMap); - } + }); + /** + for (DataDictionaryDTO areaDTO : areaDTOs) { + Map areaMap = getHashMap(4); + areaMap.put("areaId", areaDTO.getDictionaryId()); + areaMap.put("areaName", areaDTO.getDictionaryName()); + // 网格员的Id列表 + List userIdList = listGridPersonnelUserId(areaDTO.getDictionaryId(), areaLevel); + // 网格员的所有上报项 + List listHiddenDangerReport = hiddenDangerReportService.listHiddenDangerReportSimpleByUserIdsYear(userIdList, year); + // 遍历所有的检查项 + List> listCheckItemOption = new ArrayList<>(); + for (CheckItemOptionDTO checkItemOptionDTO : checkItemOptionDTOs) { + Map checkItemOptionMap = HashMapUtil.beanToMap(checkItemOptionDTO); + int checkCount = 0; + for (HiddenDangerReportDTO hiddenDangerReportDTO : listHiddenDangerReport) { + // 检查项相同 + if (StringUtils.equals(checkItemOptionDTO.getCheckItemId(), hiddenDangerReportDTO.getCheckItemId()) && + StringUtils.equals(checkItemOptionDTO.getCheckItemOptionId(), hiddenDangerReportDTO.getCheckItemOptionId())) { + checkCount++; + } + } + checkItemOptionMap.put("checkCount", checkCount); + listCheckItemOption.add(checkItemOptionMap); + } + areaMap.put("listCheckItemOption", listCheckItemOption); + listCheckItemOptionArea.add(areaMap); + } + **/ // 封装结果 // 构建检查项列表 List> checkItemList = buildCheckItem(checkItemDTOs); @@ -356,9 +505,9 @@ public class CountServiceImpl extends BaseService implements ICountService { areaId = StringUtils.isBlank(areaId) ? DEFAULT_AREA_ID : areaId; List areaDTOs = dataDictionaryService.listDictionaryByParentId(areaId); List> resultList = new ArrayList<>(); - Map params = getHashMap(3); - params.put("year", year); - for (DataDictionaryDTO areaDTO : areaDTOs) { + areaDTOs.parallelStream().forEach(areaDTO -> { + Map params = getHashMap(3); + params.put("year", year); Map resultListMap = getHashMap(4); resultListMap.put("areaId", areaDTO.getDictionaryId()); resultListMap.put("areaName", areaDTO.getDictionaryName()); @@ -369,7 +518,7 @@ public class CountServiceImpl extends BaseService implements ICountService { resultListMap.put("enterpriseCount", 0); resultListMap.put("coverage", 0); resultList.add(resultListMap); - continue; + return; } params.put("userIdList", userIdList); // 统计检查多少家 @@ -384,7 +533,36 @@ public class CountServiceImpl extends BaseService implements ICountService { // 覆盖率 resultListMap.put("coverage", enterpriseCount == 0 ? 0 : String.format("%.2f", (double) enterpriseCheckCount / enterpriseCount * 100)); resultList.add(resultListMap); - } + }); + /** + for (DataDictionaryDTO areaDTO : areaDTOs) { + Map resultListMap = getHashMap(4); + resultListMap.put("areaId", areaDTO.getDictionaryId()); + resultListMap.put("areaName", areaDTO.getDictionaryName()); + // 网格员的Id列表 + List userIdList = listGridPersonnelUserId(areaDTO.getDictionaryId(), areaLevel); + if (userIdList.isEmpty()) { + resultListMap.put("enterpriseCheckCount", 0); + resultListMap.put("enterpriseCount", 0); + resultListMap.put("coverage", 0); + resultList.add(resultListMap); + continue; + } + params.put("userIdList", userIdList); + // 统计检查多少家 + Integer enterpriseCheckCount = checkService.countEnterpriseCheck(params); + resultListMap.put("enterpriseCheckCount", enterpriseCheckCount); + // 统计地区有多少企业 + params.put("isLogOff", 0); + params.put("area" + areaLevel, areaDTO.getDictionaryId()); + params.put("year", year); + Integer enterpriseCount = enterpriseService.countEnterpriseReturnInteger(params); + resultListMap.put("enterpriseCount", enterpriseCount); + // 覆盖率 + resultListMap.put("coverage", enterpriseCount == 0 ? 0 : String.format("%.2f", (double) enterpriseCheckCount / enterpriseCount * 100)); + resultList.add(resultListMap); + } + **/ Map result = getHashMap(4); result.put("year", year); result.put("resultList", resultList); @@ -397,8 +575,8 @@ public class CountServiceImpl extends BaseService implements ICountService { areaId = StringUtils.isBlank(areaId) ? DEFAULT_AREA_ID : areaId; List areaDTOs = dataDictionaryService.listDictionaryByParentId(areaId); List> resultList = new ArrayList<>(); - Map params = getHashMap(3); - for (DataDictionaryDTO areaDTO : areaDTOs) { + areaDTOs.parallelStream().forEach(areaDTO -> { + Map params = getHashMap(3); Map resultListMap = getHashMap(4); resultListMap.put("areaId", areaDTO.getDictionaryId()); resultListMap.put("areaName", areaDTO.getDictionaryName()); @@ -429,7 +607,41 @@ public class CountServiceImpl extends BaseService implements ICountService { } resultListMap.put("yearMonthList", yearMonthList); resultList.add(resultListMap); - } + }); + /** + for (DataDictionaryDTO areaDTO : areaDTOs) { + Map resultListMap = getHashMap(4); + resultListMap.put("areaId", areaDTO.getDictionaryId()); + resultListMap.put("areaName", areaDTO.getDictionaryName()); + // 网格员的Id列表 + List userIdList = listGridPersonnelUserId(areaDTO.getDictionaryId(), areaLevel); + params.put("userIdList", userIdList); + List> yearMonthList = new ArrayList<>(); + for (int month = 1; month <= 12; month++) { + Map yearMonthMap = getHashMap(3); + yearMonthMap.put("month", month); + if (userIdList.isEmpty()) { + yearMonthMap.put("planCount", 0); + yearMonthMap.put("enterpriseCheckCount", 0); + yearMonthMap.put("completionRate", 0); + yearMonthList.add(yearMonthMap); + continue; + } + Integer planCount = checkPlanService.countCheckPlanByUserIdsAndYearMonth(userIdList, year, month); + yearMonthMap.put("planCount", planCount); + // 计划总数 + params.remove("month"); + params.put("yearMonth", String.format("%s-%02d", year, month)); + // 统计检查多少家 + Integer enterpriseCheckCount = checkService.countEnterpriseCheck(params); + yearMonthMap.put("enterpriseCheckCount", enterpriseCheckCount); + yearMonthMap.put("completionRate", planCount == 0 ? 0 : String.format("%.2f", (double) enterpriseCheckCount / planCount * 100)); + yearMonthList.add(yearMonthMap); + } + resultListMap.put("yearMonthList", yearMonthList); + resultList.add(resultListMap); + } + **/ Map result = getHashMap(4); result.put("year", year); result.put("resultList", resultList); @@ -490,6 +702,25 @@ public class CountServiceImpl extends BaseService implements ICountService { List checkUserIdCountPOs = checkService.listUserIdCountPO(new ArrayList<>(userIdSet)); // 认领企业数量 List enterpriseUserIdCountPOs = enterpriseOfGridOperatorService.listUserIdCountPO(new ArrayList<>(userIdSet)); + userUseInfoDTOs.parallelStream().forEach(userUseInfoDTO -> { + int checkCount = 0; + int enterpriseCount = 0; + for (IdCountPO checkUserIdCountPO : checkUserIdCountPOs) { + if (StringUtils.equals(userUseInfoDTO.getUserId(), checkUserIdCountPO.getUserId())) { + checkCount = checkUserIdCountPO.getTotal(); + break; + } + } + for (IdCountPO enterpriseUserIdCountPO : enterpriseUserIdCountPOs) { + if (StringUtils.equals(userUseInfoDTO.getUserId(), enterpriseUserIdCountPO.getUserId())) { + enterpriseCount = enterpriseUserIdCountPO.getTotal(); + break; + } + } + userUseInfoDTO.setCheckCount(checkCount); + userUseInfoDTO.setEnterpriseCount(enterpriseCount); + }); + /** for (UserUseInfoDTO userUseInfoDTO : userUseInfoDTOs) { int checkCount = 0; int enterpriseCount = 0; @@ -508,6 +739,7 @@ public class CountServiceImpl extends BaseService implements ICountService { userUseInfoDTO.setCheckCount(checkCount); userUseInfoDTO.setEnterpriseCount(enterpriseCount); } + **/ return new SuccessResultList<>(userUseInfoDTOs, successResultList.getPage(), successResultList.getTotal()); } @@ -821,7 +1053,7 @@ public class CountServiceImpl extends BaseService implements ICountService { */ private List listNeedReCheckIds(List userIdList) { List checkIdList = new ArrayList<>(); - for (String userId : userIdList) { + userIdList.parallelStream().forEach(userId -> { List tasks = processService.listTaskByAssignee(userId); LinkedHashSet linkedHashSet = new LinkedHashSet<>(); for (Task task : tasks) { @@ -831,7 +1063,20 @@ public class CountServiceImpl extends BaseService implements ICountService { } } checkIdList.addAll(linkedHashSet); - } + }); + /** + for (String userId : userIdList) { + List tasks = processService.listTaskByAssignee(userId); + LinkedHashSet linkedHashSet = new LinkedHashSet<>(); + for (Task task : tasks) { + Object isKeyObj = processService.getTaskVariableByTaskId(task.getId(), "isReport"); + if (isKeyObj != null && Integer.parseInt(isKeyObj.toString()) == 1) { + linkedHashSet.add(processService.getTaskVariableByTaskId(task.getId(), "lastCheckId").toString()); + } + } + checkIdList.addAll(linkedHashSet); + } + **/ return checkIdList; } @@ -878,9 +1123,9 @@ public class CountServiceImpl extends BaseService implements ICountService { Map params = getHashMap(3); List userIdList = new ArrayList<>(); params.put("area" + areaLevel, area3Id); - List gridPersonnelDTOs = gridPersonnelService.list(params); - for (GridPersonnelDTO gridPersonnelDTO : gridPersonnelDTOs) { - userIdList.add(gridPersonnelDTO.getUserId().split("\\|")[0]); + List gridPersonnelPOS = gridPersonnelService.listPO(params); + for (GridPersonnelPO gridPersonnelPO : gridPersonnelPOS) { + userIdList.add(gridPersonnelPO.getUserId().split("\\|")[0]); } return userIdList; } @@ -978,8 +1223,8 @@ public class CountServiceImpl extends BaseService implements ICountService { return; } params.put("area" + parentAreaLevel, parentAreaId); - DataDictionaryDTO dataDictionaryDTO = dataDictionaryService.getDictionaryById(parentAreaId); - setParentArea(dataDictionaryDTO.getDictionaryParentId(), parentAreaLevel - 1, params); + DataDictionaryPO dataDictionaryPO = dataDictionaryService.getPOById(parentAreaId); + setParentArea(dataDictionaryPO.getDictionaryParentId(), parentAreaLevel - 1, params); } } diff --git a/src/main/java/com/cm/inspection/service/enterprise/IEnterpriseService.java b/src/main/java/com/cm/inspection/service/enterprise/IEnterpriseService.java index 2ba1d48..60a832c 100644 --- a/src/main/java/com/cm/inspection/service/enterprise/IEnterpriseService.java +++ b/src/main/java/com/cm/inspection/service/enterprise/IEnterpriseService.java @@ -295,4 +295,8 @@ public interface IEnterpriseService { * @param classifyDictionaryName */ void updateClassify(List enterpriseIds, String classify, String classifyDictionaryName); + + List listEnterprise(List enterpriseIds); + + List listEnterpriseWithDelete(List enterpriseIds); } diff --git a/src/main/java/com/cm/inspection/service/enterprise/impl/EnterpriseServiceImpl.java b/src/main/java/com/cm/inspection/service/enterprise/impl/EnterpriseServiceImpl.java index efb3c04..d9cc4e5 100644 --- a/src/main/java/com/cm/inspection/service/enterprise/impl/EnterpriseServiceImpl.java +++ b/src/main/java/com/cm/inspection/service/enterprise/impl/EnterpriseServiceImpl.java @@ -1,5 +1,6 @@ package com.cm.inspection.service.enterprise.impl; +import com.cm.common.constants.ISystemConstant; import com.cm.common.exception.ParamsException; import com.cm.common.exception.RemoveException; import com.cm.common.exception.SearchException; @@ -493,16 +494,29 @@ public class EnterpriseServiceImpl extends BaseService implements IEnterpriseSer List dataDictionaryDTOs = dataDictionaryService.listDictionaryByParentId("54c583df-6a6f-4a55-bcb3-2d6ace99b8ef"); List natureNameList = new ArrayList<>(); List> dataArray = new ArrayList<>(); - for (DataDictionaryDTO dataDictionaryDTO : dataDictionaryDTOs) { + dataDictionaryDTOs.parallelStream().forEach(dataDictionaryDTO -> { natureNameList.add(dataDictionaryDTO.getDictionaryName()); - params.put("nature", dataDictionaryDTO.getDictionaryId()); - Integer countResult = enterpriseDao.countEnterprise(params); + Map paramsMap = getHashMap(2); + paramsMap.put("nature", dataDictionaryDTO.getDictionaryId()); + Integer countResult = enterpriseDao.countEnterprise(paramsMap); // 数据 Map data = getHashMap(2); data.put("name", dataDictionaryDTO.getDictionaryName()); data.put("value", countResult == null ? 0 : countResult); dataArray.add(data); - } + }); + /** + for (DataDictionaryDTO dataDictionaryDTO : dataDictionaryDTOs) { + natureNameList.add(dataDictionaryDTO.getDictionaryName()); + params.put("nature", dataDictionaryDTO.getDictionaryId()); + Integer countResult = enterpriseDao.countEnterprise(params); + // 数据 + Map data = getHashMap(2); + data.put("name", dataDictionaryDTO.getDictionaryName()); + data.put("value", countResult == null ? 0 : countResult); + dataArray.add(data); + } + **/ Map result = getHashMap(2); result.put("dataNames", natureNameList); result.put("datas", dataArray); @@ -546,6 +560,21 @@ public class EnterpriseServiceImpl extends BaseService implements IEnterpriseSer enterpriseDao.updateEnterpriseClassify(params); } + @Override + public List listEnterprise(List enterpriseIds) { + Map params = getHashMap(2); + params.put("enterpriseIds", enterpriseIds); + return listEnterprise(params); + } + + @Override + public List listEnterpriseWithDelete(List enterpriseIds) { + Map params = getHashMap(2); + params.put("enterpriseIds", enterpriseIds); + params.put("isDelete", ISystemConstant.IS_FALSE); + return listEnterprise(params); + } + @Override public Integer countEnterprisePollution(Map params) throws SearchException { return enterpriseDao.countEnterprisePollution(params); diff --git a/src/main/java/com/cm/inspection/service/enterpriseofgridoperator/IEnterpriseOfGridOperatorService.java b/src/main/java/com/cm/inspection/service/enterpriseofgridoperator/IEnterpriseOfGridOperatorService.java index 161bd8e..b097725 100644 --- a/src/main/java/com/cm/inspection/service/enterpriseofgridoperator/IEnterpriseOfGridOperatorService.java +++ b/src/main/java/com/cm/inspection/service/enterpriseofgridoperator/IEnterpriseOfGridOperatorService.java @@ -269,4 +269,11 @@ public interface IEnterpriseOfGridOperatorService { * @return */ List listUserIdCountPO(List userIds); + + void saveEnterprisesOfGridOperator(String userId, List enterpriseIds) throws Exception; + + void deleteEnterprisesOfGridOperator(String userId, List enterpriseIds); + + List listEnterpriseOfGridOperatorByUserId(String userId); + } diff --git a/src/main/java/com/cm/inspection/service/enterpriseofgridoperator/impl/EnterpriseOfGridOperatorServiceImpl.java b/src/main/java/com/cm/inspection/service/enterpriseofgridoperator/impl/EnterpriseOfGridOperatorServiceImpl.java index 3b7de01..577b235 100644 --- a/src/main/java/com/cm/inspection/service/enterpriseofgridoperator/impl/EnterpriseOfGridOperatorServiceImpl.java +++ b/src/main/java/com/cm/inspection/service/enterpriseofgridoperator/impl/EnterpriseOfGridOperatorServiceImpl.java @@ -79,7 +79,7 @@ public class EnterpriseOfGridOperatorServiceImpl extends BaseService implements // 判断企业已经绑定别人 List enterpriseOfGridOperatorDTOs = enterpriseOfGridOperatorDao.listEnterpriseOfGridOperatorByUserIdAndEnterpriseId(params); if (!enterpriseOfGridOperatorDTOs.isEmpty()) { - throw new ParamsException("该企业已经被关联,不能重复关联"); + throw new ParamsException("企业已经被关联,不能重复关联"); } params.put("enterpriseOfGridOperatorId", UUIDUtil.getUUID()); if (token != null) { @@ -322,6 +322,51 @@ public class EnterpriseOfGridOperatorServiceImpl extends BaseService implements return enterpriseOfGridOperatorDao.listUserIdCountPO(params); } + @Override + public void saveEnterprisesOfGridOperator(String userId, List enterpriseIds) throws Exception { + List existEnterpriseIds = listEnterpriseIdByUserId(userId); + for (String enterpriseId : enterpriseIds) { + boolean isExist = false; + for (String existEnterpriseId : existEnterpriseIds) { + if (StringUtils.equals(enterpriseId, existEnterpriseId)) { + isExist = true; + break; + } + } + if (isExist) { + return; + } + EnterpriseOfGridOperatorVO enterpriseOfGridOperatorVO = new EnterpriseOfGridOperatorVO(); + enterpriseOfGridOperatorVO.setUserId(userId); + enterpriseOfGridOperatorVO.setEnterpriseId(enterpriseId); + saveEnterpriseOfGridOperator(enterpriseOfGridOperatorVO); + } + } + + @Override + public void deleteEnterprisesOfGridOperator(String userId, List enterpriseIds) { + Map params = getHashMap(2); + params.put("userId", userId); + params.put("enterpriseIds", enterpriseIds); + enterpriseOfGridOperatorDao.deleteEnterpriseOfGridOperator(params); + } + + @Override + public List listEnterpriseOfGridOperatorByUserId(String userId) { + Map params = getHashMap(2); + params.put("userId", userId); + GridPersonnelDTO gridPersonnelDTO = gridPersonnelService.getGridPersonnelByUserId(userId); + if (gridPersonnelDTO == null) { + throw new SearchException(""); + } + params.put("area1", gridPersonnelDTO.getArea1()); + params.put("area2", gridPersonnelDTO.getArea2()); + params.put("area3", gridPersonnelDTO.getArea3()); + params.put("area4", gridPersonnelDTO.getArea4()); + params.put("area5", gridPersonnelDTO.getArea5()); + return enterpriseOfGridOperatorDao.listEnterpriseOfGridOperatorByUserId(params); + } + /** * 初始化未认领地区 * diff --git a/src/main/java/com/cm/inspection/service/gridpersonnel/IGridPersonnelService.java b/src/main/java/com/cm/inspection/service/gridpersonnel/IGridPersonnelService.java index 3136268..015bd3b 100644 --- a/src/main/java/com/cm/inspection/service/gridpersonnel/IGridPersonnelService.java +++ b/src/main/java/com/cm/inspection/service/gridpersonnel/IGridPersonnelService.java @@ -111,6 +111,14 @@ public interface IGridPersonnelService { */ List list(Map params) throws SearchException; + /** + * 网格人员列表 + * + * @param params + * @return + */ + List listPO(Map params); + /** * 网格人员分页列表 * @@ -226,4 +234,5 @@ public interface IGridPersonnelService { * @return */ GridPersonnelDTO getSelf(); + } \ No newline at end of file diff --git a/src/main/java/com/cm/inspection/service/gridpersonnel/impl/GridPersonnelServiceImpl.java b/src/main/java/com/cm/inspection/service/gridpersonnel/impl/GridPersonnelServiceImpl.java index 5c50f97..8d16e5d 100644 --- a/src/main/java/com/cm/inspection/service/gridpersonnel/impl/GridPersonnelServiceImpl.java +++ b/src/main/java/com/cm/inspection/service/gridpersonnel/impl/GridPersonnelServiceImpl.java @@ -255,6 +255,11 @@ public class GridPersonnelServiceImpl extends BaseService implements IGridPerson return gridPersonnelDTOs; } + @Override + public List listPO(Map params) { + return gridPersonnelDao.listPO(params); + } + @Override public SuccessResultList> listPage(ListPage page) throws SearchException, UnsupportedEncodingException { PageHelper.startPage(page.getPage(), page.getRows()); diff --git a/src/main/resources/application-btyjtest.yml b/src/main/resources/application-btyjtest.yml index eab4099..2355d16 100644 --- a/src/main/resources/application-btyjtest.yml +++ b/src/main/resources/application-btyjtest.yml @@ -82,7 +82,8 @@ file: # 安全 security: oauth2: - oauth-server: http://192.168.0.103:7001/usercenter +# oauth-server: http://192.168.2.103:7011/usercenter + oauth-server: http://49.233.36.36:58091/usercenter oauth-logout: ${security.oauth2.oauth-server}/logout?redirect_uri=${server.url} client: client-id: 32ec344a5fd04fd9911586df5d1dc36b diff --git a/src/main/resources/mybatis/mapper/action/action-point-mapper.xml b/src/main/resources/mybatis/mapper/action/action-point-mapper.xml new file mode 100644 index 0000000..b453d8a --- /dev/null +++ b/src/main/resources/mybatis/mapper/action/action-point-mapper.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + INSERT INTO ac_action_point( + action_point_id, + lng, + lat, + gmt_create, + creator, + creator_name + ) VALUES( + #{actionPointId}, + #{lng}, + #{lat}, + #{gmtCreate}, + #{creator}, + #{creatorName} + ) + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/check/check2-mapper.xml b/src/main/resources/mybatis/mapper/check/check2-mapper.xml index 1b89a70..da226f3 100644 --- a/src/main/resources/mybatis/mapper/check/check2-mapper.xml +++ b/src/main/resources/mybatis/mapper/check/check2-mapper.xml @@ -379,6 +379,121 @@ t1.gmt_create DESC + + + + - - - UPDATE diff --git a/src/main/resources/mybatis/mapper/enterprise/enterprise-mapper.xml b/src/main/resources/mybatis/mapper/enterprise/enterprise-mapper.xml index 6c25e2f..3a167aa 100644 --- a/src/main/resources/mybatis/mapper/enterprise/enterprise-mapper.xml +++ b/src/main/resources/mybatis/mapper/enterprise/enterprise-mapper.xml @@ -630,8 +630,11 @@ t1.enterprise_id FROM gen_enterprise t1 - WHERE + + + AND t1.is_delete = 0 + AND t1.name LIKE CONCAT('%', #{keywords}, '%') @@ -679,6 +682,7 @@ #{enterpriseIds[${index}]} + diff --git a/src/main/resources/mybatis/mapper/enterpriseofgridoperator/enterpriseofgridoperator-mapper.xml b/src/main/resources/mybatis/mapper/enterpriseofgridoperator/enterpriseofgridoperator-mapper.xml index a430c86..cd19105 100644 --- a/src/main/resources/mybatis/mapper/enterpriseofgridoperator/enterpriseofgridoperator-mapper.xml +++ b/src/main/resources/mybatis/mapper/enterpriseofgridoperator/enterpriseofgridoperator-mapper.xml @@ -38,6 +38,8 @@ + + @@ -85,10 +87,12 @@ modifier = #{modifier}, gmt_modified = #{gmtModified} WHERE + enterprise_of_grid_operator_id IN - + #{enterpriseOfGridOperatorIds[${index}]} - + + @@ -107,6 +111,14 @@ AND user_id = #{userId} + + user_id = #{userId} + AND + enterprise_id IN + + #{enterpriseIds[${index}]} + + @@ -263,6 +275,8 @@ t1.classify_dictionary_name, t1.nature nature_by_enterprise_id, t1.nature_dictionary_name, + t1.enterprise_lng, + t1.enterprise_lat, t1.is_log_off is_log_off_by_enterprise_id, ( SELECT diff --git a/src/main/resources/mybatis/mapper/gridpersonnel/gridpersonnel-mapper.xml b/src/main/resources/mybatis/mapper/gridpersonnel/gridpersonnel-mapper.xml index df3f2cb..93ae951 100644 --- a/src/main/resources/mybatis/mapper/gridpersonnel/gridpersonnel-mapper.xml +++ b/src/main/resources/mybatis/mapper/gridpersonnel/gridpersonnel-mapper.xml @@ -311,6 +311,96 @@ t1.level ASC + + + -
- -
- -
- -
- -
- +
+ + + +
@@ -95,83 +55,6 @@ var basePath = "/inspection/"; var tableUrl = basePath+'api/enterpriseofgridoperator/listpageenterpriseofgridoperatorbyuserid/'+ userId; - // 初始化选择框、单选、复选模板 - function initSelectRadioCheckboxTemplate(templateId, templateBoxId, data, callback) { - laytpl(document.getElementById(templateId).innerHTML).render(data, function(html) { - document.getElementById(templateBoxId).innerHTML = html; - }); - form.render('select', templateBoxId); - } - - // 初始化1级区域下拉选择 - function initArea1Select() { - top.restAjax.get(top.restAjax.path('{basePath}api/datadictionary/listdictionarybyparentid/81583ade-5466-49aa-b7b6-c643c131ea34', [basePath]), {}, null, function(code, data, args) { - initSelectRadioCheckboxTemplate('area1SelectTemplate', 'area1SelectTemplateBox', data); - }, function(code, data) { - top.dialog.msg(data.msg); - }); - } - - // 初始化2级区域下拉选择 - function initArea2Select(area1) { - if(!area1) { - initSelectRadioCheckboxTemplate('area2SelectTemplate', 'area2SelectTemplateBox', []); - return; - } - top.restAjax.get(top.restAjax.path('{basePath}api/datadictionary/listdictionarybyparentid/{area1}', [basePath,area1]), {}, null, function(code, data, args) { - initSelectRadioCheckboxTemplate('area2SelectTemplate', 'area2SelectTemplateBox', data); - }, function(code, data) { - top.dialog.msg(data.msg); - }); - } - - // 初始化3级区域下拉选择 - function initArea3Select(area2) { - $('#area3Box').show(); - if(!area2) { - initSelectRadioCheckboxTemplate('area3SelectTemplate', 'area3SelectTemplateBox', []); - return; - } - top.restAjax.get(top.restAjax.path('{basePath}api/datadictionary/listdictionarybyparentid/{area2}', [basePath,area2]), {}, null, function(code, data, args) { - initSelectRadioCheckboxTemplate('area3SelectTemplate', 'area3SelectTemplateBox', data); - }, function(code, data) { - top.dialog.msg(data.msg); - }); - } - - // 初始化4级区域下拉选择 - function initArea4Select(area3) { - if(!area3) { - initSelectRadioCheckboxTemplate('area4SelectTemplate', 'area4SelectTemplateBox', []); - return; - } - top.restAjax.get(top.restAjax.path('{basePath}api/datadictionary/listdictionarybyparentid/{area3}', [basePath,area3]), {}, null, function(code, data, args) { - initSelectRadioCheckboxTemplate('area4SelectTemplate', 'area4SelectTemplateBox', data); - }, function(code, data) { - top.dialog.msg(data.msg); - }); - } - - // 初始化5级区域下拉选择 - function initArea5Select(area4) { - $('#area5Box').show(); - if(!area4) { - initSelectRadioCheckboxTemplate('area5SelectTemplate', 'area5SelectTemplateBox', []); - return; - } - top.restAjax.get(top.restAjax.path('{basePath}api/datadictionary/listdictionarybyparentid/{area4}', [basePath,area4]), {}, null, function(code, data, args) { - initSelectRadioCheckboxTemplate('area5SelectTemplate', 'area5SelectTemplateBox', data); - }, function(code, data) { - top.dialog.msg(data.msg); - }); - } - - initArea1Select(); - initArea2Select(); - initArea3Select(); - initArea4Select(); - initArea5Select(); - // 初始化表格 function initTable() { table.render({ @@ -351,11 +234,6 @@ url: top.restAjax.path(tableUrl, []), where: { keywords: $('#keywords').val(), - area1: $('#area1').val(), - area2: $('#area2').val(), - area3: $('#area3').val(), - area4: $('#area4').val(), - area5: $('#area5').val(), }, page: { curr: currentPage @@ -375,6 +253,57 @@ $(document).on('click', '#search', function() { reloadTable(1); }); + $(document).on('click', '#batchClaim', function() { + var data = table.checkStatus('dataTable').data; + var enterpriseIds = []; + $.each(data, function(index, item) { + enterpriseIds.push(item.enterpriseId); + }); + if(enterpriseIds.length === 0) { + top.dialog.msg('请先勾选数据'); + return; + } + top.restAjax.post(top.restAjax.path('{basePath}api/enterpriseofgridoperator/saveenterprisesofgridoperator', [basePath]), { + userId: userId, + enterpriseIds: enterpriseIds + }, null, function(code, data) { + top.dialog.msg('认领成功', {time: 1000}); + reloadTable(); + }, function(code, data) { + top.dialog.msg(data.msg); + }); + }) + $(document).on('click', '#batchRelieve', function() { + var data = table.checkStatus('dataTable').data; + var enterpriseIds = []; + $.each(data, function(index, item) { + enterpriseIds.push(item.enterpriseId); + }); + if(enterpriseIds.length === 0) { + top.dialog.msg('请先勾选数据'); + return; + } + top.restAjax.post(top.restAjax.path('{basePath}api/enterpriseofgridoperator/deleteenterprisesofgridoperator', [basePath]), { + userId: userId, + enterpriseIds: enterpriseIds + }, null, function (code, data) { + top.dialog.msg('解除成功', {time: 1000}); + reloadTable(); + }, function (code, data) { + top.dialog.msg(data.msg); + }); + }) + $(document).on('click', '#quickRelieve', function() { + top.dialog.open({ + url: top.restAjax.path('route/enterpriseofgridoperator/quick-relieve.html?userId={userId}', [userId]), + title: '快捷认领', + width: '80%', + height: '80%', + onClose: function () { + reloadTable(); + } + }); + }) table.on('tool(dataTable)', function(obj) { var layEvent = obj.event; var data = obj.data; @@ -398,29 +327,6 @@ } }); - // 联动事件 - // area1 选择事件 - form.on('select(area1)', function(data) { - initArea2Select(data.value); - initArea3Select(); - initArea4Select(); - initArea5Select(); - }); - // area2 选择事件 - form.on('select(area2)', function(data) { - initArea3Select(data.value); - initArea4Select(); - initArea5Select(); - }); - // area3 选择事件 - form.on('select(area3)', function(data) { - initArea4Select(data.value); - initArea5Select(); - }); - // area4 选择事件 - form.on('select(area4)', function(data) { - initArea5Select(data.value); - }); }); diff --git a/src/main/resources/static/route/enterpriseofgridoperator/quick-relieve.html b/src/main/resources/static/route/enterpriseofgridoperator/quick-relieve.html new file mode 100644 index 0000000..7bee167 --- /dev/null +++ b/src/main/resources/static/route/enterpriseofgridoperator/quick-relieve.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/route/gridpersonnel/get-actionpath.html b/src/main/resources/static/route/gridpersonnel/get-actionpath.html new file mode 100644 index 0000000..bfcc501 --- /dev/null +++ b/src/main/resources/static/route/gridpersonnel/get-actionpath.html @@ -0,0 +1,350 @@ + + + + + + + + + + + + + + +
+
+
+ +
+
+ +
+
+ +
+
+ + +
+
+
+
+ + + + + + \ No newline at end of file diff --git a/src/main/resources/static/route/gridpersonnel/list-gridpersonnel.html b/src/main/resources/static/route/gridpersonnel/list-gridpersonnel.html index 4e6f41d..5386ccc 100644 --- a/src/main/resources/static/route/gridpersonnel/list-gridpersonnel.html +++ b/src/main/resources/static/route/gridpersonnel/list-gridpersonnel.html @@ -296,11 +296,12 @@ } ]; if(level == 5) { - colArray.push({field: 'operation', width: 170, title: '操作', fixed: 'right', align:'center', + colArray.push({field: 'operation', width: 240, title: '操作', fixed: 'right', align:'center', templet: function(row) { return '
' + '' + '' + + '' + '
'; } }) @@ -462,16 +463,23 @@ url: top.restAjax.path('route/enterpriseofgridoperator/list-enterpriseofgridoperator.html?userId={userId}', [data.userId]), title: data.userName +' 的关联企业', width: (windowWidth * 0.9) +'px', - height: (windowHeight * 0.9) +'px' + height: '90%' }); } else if(layEvent === 'personnelEnterprise') { top.dialog.open({ url: top.restAjax.path('route/gridpersonnel/get-enterprise-location.html?userId={userId}', [data.userId]), title: data.userName +' 的企业片区', width: (windowWidth * 0.8) +'px', - height: (windowHeight * 0.8) +'px' + height: '80%' }); - } + } else if(layEvent === 'actionPathEvent') { + top.dialog.open({ + url: top.restAjax.path('route/gridpersonnel/get-actionpath.html?userId={userId}', [data.userId]), + title: data.userName +' 的轨迹查看', + width: (windowWidth * 0.8) +'px', + height: '80%' + }); + } }) // 联动事件