From d8a2d8271dfd177b15c15f7b2d26404cb5c27f52 Mon Sep 17 00:00:00 2001 From: Zangzhipeng Date: Fri, 23 Aug 2024 12:42:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E6=9C=9F=E9=9C=80=E6=B1=82=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ApproveController.java | 2 +- .../controller/GovernmentController.java | 26 +- .../controller/HighDangerController.java | 236 ++++++++++++++---- .../controller/OperatorController.java | 5 +- .../server_api/mapper/HighDangerMapper.java | 18 +- .../server_api/mapper/ThtRoadInfoMapper.java | 2 - .../service/impl/ThtApproveServiceImpl.java | 70 +++++- .../server_api/utils/WatermarkUtil.java | 176 +++++++++++++ .../resources/sql-mapper/HighDangerMapper.xml | 97 +++++-- .../resources/sql-mapper/OperatorMapper.xml | 9 +- .../resources/sql-mapper/ThtApproveMapper.xml | 14 +- .../sql-mapper/ThtRoadInfoMapper.xml | 4 +- .../hiatmp/model/common/HiddenDangerDTO.java | 3 + .../hiatmp/model/common/HighDangerBase.java | 2 + .../hiatmp/model/common/ThtApprove.java | 3 + .../hiatmp/model/common/VO/GovernmentVO.java | 1 + 16 files changed, 571 insertions(+), 97 deletions(-) create mode 100644 hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/utils/WatermarkUtil.java diff --git a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/ApproveController.java b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/ApproveController.java index f4a4cfd..9024a40 100644 --- a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/ApproveController.java +++ b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/ApproveController.java @@ -19,7 +19,7 @@ public class ApproveController { @PostMapping("/SubmitHigDangerApproval") public ServerResponse SubmitHigDangerApproval(@RequestBody ThtApproveVO thtApproveVo){ - int i = thtApproveService.SubmitHigDangerApproval(thtApproveVo); + thtApproveService.SubmitHigDangerApproval(thtApproveVo); return ServerResponse.ok("提交审批成功"); } } \ No newline at end of file diff --git a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/GovernmentController.java b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/GovernmentController.java index 8070d21..c2bc5ff 100644 --- a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/GovernmentController.java +++ b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/GovernmentController.java @@ -5,6 +5,7 @@ import com.hisense.hiatmp.model.common.*; import com.hisense.hiatmp.model.common.VO.GovernmentVO; import com.hisense.hiatmp.server_api.mapper.HighDangerMapper; import com.hisense.hiatmp.server_api.service.GovernmentService; +import com.hisense.hiatmp.server_api.service.ThtApproveService; import com.hisense.hiatmp.server_api.service.ThtAttachsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -44,13 +45,18 @@ public class GovernmentController { @Autowired HighDangerMapper highDangerMapper; + @Autowired + ThtApproveService thtApproveService; + @PostMapping("/saveGovernment") public ServerResponse saveGovernment(@RequestBody GovernmentVO governmentVO){ String ftpUrl = "ftp://" + userName + ":" + passWord + "@" + ip + ":" + port + CURRENT_DIR; - String nid; + UUID uuid = UUID.fromString(UUID.randomUUID().toString()); + String nid = uuid.toString().replaceAll("-", ""); Date date = new Date(); + HighDangerBase higDangerDetail = highDangerMapper.getHigDangerDetail(governmentVO.getBusinessId()); String pcCount = higDangerDetail.getPcCount(); // 隐患排查表--如果存在该记录则更新 @@ -59,18 +65,20 @@ public class GovernmentController { // 随机生成UUID // String uuidString = UUID.randomUUID().toString().replace("-", ""); // details.setNid(uuidString); -// details.setBusinessId(hidden_businessId); + details.setBusinessId(governmentVO.getBusinessId()); // details.setPcCount(manualInvestigation.getPcCount()); // ThtDangerItems dangerItemsById = highDangerMapper.getDangerItemsById(details.getHdTerm()); // // details.setSmallCategory(dangerItemsById.getParentid()); -// ThtDangerItems dangerItemsById_f = highDangerMapper.getDangerItemsById(dangerItemsById.getParentid()); +// ThtDangerItems dangerItemsById_f = highDangerMapper.getDangerItemsById(dangerItemsgetHigDangerDealtById.getParentid()); // // details.setBigCategory(dangerItemsById_f.getParentid()); // 保存重点排查数据 governmentService.updateRoadInfo(details); + highDangerMapper.updateTemporary(governmentVO.getBusinessId()); + // 治理图片 if (StringUtils.isNotEmpty(details.getZlPic())) { String hdPicArr[] = details.getZlPic().split(","); @@ -112,8 +120,18 @@ public class GovernmentController { thtAttachsService.saveAttachs(thtAttachs); } } + + ThtApprove thtAApprove = new ThtApprove(); +// String uuidString = uuid.toString().replace("-", ""); + thtAApprove.setNid(nid); + thtAApprove.setBusinessId(governmentVO.getBusinessId()); + thtAApprove.setOperator(governmentVO.getNuserid()); + thtAApprove.setStatus("20"); + thtAApprove.setOperateTime(date); + thtAApprove.setOperateContent("0"); + thtAApprove.setLastModDate(date); + thtApproveService.save(thtAApprove); } return ServerResponse.ok("治理提交成功"); - } } diff --git a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/HighDangerController.java b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/HighDangerController.java index 02ff5a5..61c7362 100644 --- a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/HighDangerController.java +++ b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/HighDangerController.java @@ -139,6 +139,8 @@ public class HighDangerController { @RequestParam(defaultValue = "") String search, @RequestParam(defaultValue = "") String approve, @RequestParam(defaultValue = "") String classification, // 1 已完成 2 个人上报 3 系统下发 + @RequestParam(value = "startTime", required = false) String startTime, + @RequestParam(value = "endTime", required = false) String endTime, HttpServletRequest request ) { log.info("/getHigDangerDealt(查询首页各个状态的数据列表)接口被调用,调用ip: {}, 入参:{},{},{},{}", request.getRemoteAddr(), highDangerBaseVO, pageNum, pageSize, search); @@ -161,8 +163,11 @@ public class HighDangerController { //Page page = new Page<>(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize); // 将要查询的状态和部门id查询数据库,获得隐患排查表 - List statusCounts = highDangerMapper.getHigDangerDealt(highDangerBaseVO.getStatus(), departmentid, search, highDangerBaseVO.getNuserid(), classification,approve); + List statusCounts = highDangerMapper.getHigDangerDealt(highDangerBaseVO.getStatus(), departmentid, search, highDangerBaseVO.getNuserid(), classification,approve,startTime,endTime); + SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd"); + + Integer flag = 0; // 待办 /*if("20".equals(highDangerBaseVO.getStatus())){ List statusCount = highDangerMapper.getHigDangerDealt("99",cdepartmentid,page,"%" + search + "%"); @@ -177,9 +182,76 @@ public class HighDangerController { int nearDay = base.getNearDay(); int nearHour = base.getNearHour(); - // 审批状态添加 - if(!Objects.equals(base.getApproveStatus(), "0") && !Objects.equals(base.getApproveStatus(), "-1") && !Objects.equals(base.getApproveStatus(),null)){ - base.setEnumname(base.getEnumname() + "(审批)"); + List processRecord = highDangerService.getProcessRecord(base.getBusinessId()); + + if(Objects.equals(approve, "1")){ + ; + if(!processRecord.isEmpty()){ + ThtApprove thtApprove = processRecord.get(processRecord.size() - 1); + + String approveTime = ""; + String approveStatus = ""; + String format = dateFormat.format(thtApprove.getOperateTime()); + + if(Objects.equals(thtApprove.getOperateContent(), "1")){ + approveTime = "一次审批"; + base.setEnumname(base.getEnumname() + "(" + approveTime + ") " + approveStatus + " " + format); + } + if(Objects.equals(thtApprove.getOperateContent(), "2")){ + approveTime = "二次审批"; + base.setEnumname(base.getEnumname() + "(" + approveTime + ") " + approveStatus + " " + format); + } +// // 第二次审批完成 +// else if(Objects.equals(thtApprove.getOperateContent(), "2") && "1".equals(thtApprove.getApproveResult()) ){ +// if("20".equals(base.getStatus())){ +// approveTime = "已办结"; +// } + + +// if("0".equals(thtApprove.getOperateContent()) && base.getApproveStatus().equals("1")){ +// // 审批状态添加 +// base.setEnumname(base.getEnumname() + "(审批中) " + format); +// }else{ + // 审批状态添加 +// base.setEnumname(base.getEnumname() + "(" + approveTime + ") " + approveStatus + " " + format); + } + } + else{ + + ThtApprove thtApprove = highDangerMapper.getProcessRecordByNid(base.getTaNid()); + + String approveTime = ""; + String approveStatus = ""; + String format = dateFormat.format(thtApprove.getOperateTime()); + + if(Objects.equals(thtApprove.getStatus(), "10")){ + base.setEnumname("隐患排查"); + } + if(Objects.equals(thtApprove.getStatus(), "20")){ + base.setEnumname("隐患治理"); + } + if(Objects.equals(thtApprove.getStatus(), "60")){ + base.setEnumname("治理分析"); + } + + if(Objects.equals(approve, "2")){ + if("1".equals(thtApprove.getApproveResult())){ + approveStatus = "通过"; + }else if("-1".equals(thtApprove.getApproveResult())){ + approveStatus = "驳回"; + } + } + + if(Objects.equals(thtApprove.getOperateContent(), "1")){ + approveTime = "一次审批"; + base.setEnumname(base.getEnumname() + "(" + approveTime + ") " + approveStatus + " " + format); + } + if(Objects.equals(thtApprove.getOperateContent(), "2")){ + approveTime = "二次审批"; + base.setEnumname(base.getEnumname() + "(" + approveTime + ") " + approveStatus + " " + format); + } + + } if (base.getTimeStatus() == null || base.getTimeStatus().equals("9")) { @@ -387,7 +459,7 @@ public class HighDangerController { // }else{ // base.setDeadlineStatus("无排查结束和开始时间"); // base.setDeadlineType("3"); -// } + } PageInfo pageInfo = new PageInfo<>(statusCounts); @@ -415,6 +487,7 @@ public class HighDangerController { } else { return ServerResponse.error("未查询到任务"); } + } // 查询指定任务详情任务 @@ -646,7 +719,7 @@ public class HighDangerController { @RequestParam String ifCross, HttpServletRequest request) { - SectionDTO sectionByCode; + SectionDTO sectionByCode = new SectionDTO(); log.info("/getDangerRoad(查询当前排查所在路段)接口被调用,调用ip: {}, 入参:{}", request.getRemoteAddr(), businessId); HighDangerRoad roadInfo = highDangerMapper.getRoadInfo(businessId); @@ -1026,7 +1099,6 @@ public class HighDangerController { HighDangerBase highDangerBase = new HighDangerBase(); HighDangerRoad highDangerRoad = new HighDangerRoad(); - hidden_businessId = "ZZ" + highDangerService.random12(); // base主键 @@ -1039,6 +1111,7 @@ public class HighDangerController { highDangerBase.setOperator(manualInvestigation.getOperator()); highDangerBase.setPcCount("0"); highDangerBase.setApproveStatus("0"); + highDangerBase.setInsertTime(date); // 道路NID highDangerRoad.setNid(nid); @@ -1151,7 +1224,7 @@ public class HighDangerController { thtTimeLineDTO.setLastModDate(date); thtTimeLineDTO.setOperator(manualInvestigation.getOperator()); // -// highDangerService.insertTimeLine(thtTimeLineDTO); + highDangerService.insertTimeLine(thtTimeLineDTO); /*if(!highDangerMapper.isExtraExistence(manualInvestigation.getBusinessId()).isEmpty()){ }else{ }*/ @@ -1286,6 +1359,11 @@ public class HighDangerController { @GetMapping("/getProcessRecord") public ServerResponse getProcessRecord(@RequestParam String businessId){ + LinkedHashMap danger = new LinkedHashMap<>(); + LinkedList dangerSubmit = new LinkedList(); + LinkedList governmentFx = new LinkedList(); + LinkedList governmentZL = new LinkedList(); + Integer flag = 1; List processRecord = highDangerService.getProcessRecord(businessId); LinkedHashMap processMap = new LinkedHashMap<>(); @@ -1293,11 +1371,15 @@ public class HighDangerController { HighDangerBase hiddenDangerBaseById = highDangerMapper.getHiddenDangerBaseById(businessId); Operator operatorById1 = operatorMapper.getOperatorById(hiddenDangerBaseById.getOperator()); // String username = operatorById.getCusername(); + ThtApprove thtApprove1 = new ThtApprove(); - thtApprove1.setApprovalInfo( operatorById1.getCusername() + "创建排查"); + thtApprove1.setOperator(operatorById1.getCusername()); + thtApprove1.setApprovalInfo("创建排查"); thtApprove1.setOperateTime(hiddenDangerBaseById.getFindTime()); thtApprove1.setBusinessId(businessId); - processMap.put("0",thtApprove1); + + dangerSubmit.add(thtApprove1); +// processMap.put("0",thtApprove1); for (ThtApprove thtApprove : processRecord){ // 获取操作用户 @@ -1306,36 +1388,46 @@ public class HighDangerController { if("10".equals(thtApprove.getStatus())){ if("0".equals(thtApprove.getOperateContent())){ - thtApprove.setApprovalInfo(username + "排查完成"); - processMap.put(flag.toString(), thtApprove); - flag++; + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("提交审批"); + dangerSubmit.add(thtApprove); +// processMap.put(flag.toString(), thtApprove); +// flag++; continue; } if ("1".equals(thtApprove.getOperateContent())) { if("-1".equals(thtApprove.getApproveResult())){ - thtApprove.setApprovalInfo(username + "一级审批驳回"); - processMap.put(flag.toString(), thtApprove); - flag++; + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("一级审批驳回"); +// processMap.put(flag.toString(), thtApprove); + dangerSubmit.add(thtApprove); +// flag++; continue; } if("1".equals(thtApprove.getApproveResult())){ - thtApprove.setApprovalInfo(username + "一级审批通过"); - processMap.put(flag.toString(), thtApprove); - flag++; + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("一级审批通过"); +// processMap.put(flag.toString(), thtApprove); + dangerSubmit.add(thtApprove); +// flag++; continue; } } if ("2".equals(thtApprove.getOperateContent())) { if("-1".equals(thtApprove.getApproveResult())){ - thtApprove.setApprovalInfo(username + "二级审批驳回"); - processMap.put(flag.toString(), thtApprove); - flag++; + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("二级审批驳回"); + dangerSubmit.add(thtApprove); +// processMap.put(flag.toString(), thtApprove); +// flag++; continue; } if("1".equals(thtApprove.getApproveResult())){ - thtApprove.setApprovalInfo(username + "二级审批通过"); - processMap.put(flag.toString(), thtApprove); - flag++; + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("二级审批通过"); + dangerSubmit.add(thtApprove); +// processMap.put(flag.toString(), thtApprove); +// flag++; continue; } } @@ -1344,45 +1436,101 @@ public class HighDangerController { if("20".equals(thtApprove.getStatus())){ if("0".equals(thtApprove.getOperateContent())){ - thtApprove.setApprovalInfo(username + "治理完成"); - processMap.put(flag.toString(), thtApprove); - flag++; + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("提交审批"); + governmentZL.add(thtApprove); +// processMap.put(flag.toString(), thtApprove); +// flag++; continue; } if ("1".equals(thtApprove.getOperateContent())) { if("-1".equals(thtApprove.getApproveResult())){ - thtApprove.setApprovalInfo(username + "一级审批驳回"); - processMap.put(flag.toString(), thtApprove); - flag++; + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("一级审批驳回"); + governmentZL.add(thtApprove); +// processMap.put(flag.toString(), thtApprove); +// flag++; continue; } if("1".equals(thtApprove.getOperateContent())){ - thtApprove.setApprovalInfo(username + "一级审批通过"); - processMap.put(flag.toString(), thtApprove); - flag++; + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("一级审批通过"); + governmentZL.add(thtApprove); +// processMap.put(flag.toString(), thtApprove); +// flag++; continue; } } if ("2".equals(thtApprove.getOperateContent())) { if("-1".equals(thtApprove.getApproveResult())){ - thtApprove.setApprovalInfo(username + "二级审批驳回"); - processMap.put(flag.toString(), thtApprove); - flag++; + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("二级审批驳回"); + governmentZL.add(thtApprove); +// processMap.put(flag.toString(), thtApprove); +// flag++; continue; } if("1".equals(thtApprove.getApproveResult())){ - thtApprove.setApprovalInfo(username + "二级审批通过"); - processMap.put(flag.toString(), thtApprove); - flag++; + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("二级审批通过"); + governmentZL.add(thtApprove); +// processMap.put(flag.toString(), thtApprove); +// flag++; + } + } + } + + if("60".equals(thtApprove.getStatus())){ + if("0".equals(thtApprove.getOperateContent())){ + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("提交审批"); + governmentFx.add(thtApprove); +// processMap.put(flag.toString(), thtApprove); +// flag++; + continue; + } + if ("1".equals(thtApprove.getOperateContent())) { + if("-1".equals(thtApprove.getApproveResult())){ + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("一级审批驳回"); + governmentFx.add(thtApprove); +// processMap.put(flag.toString(), thtApprove); +// flag++; + continue; + } + if("1".equals(thtApprove.getOperateContent())){ + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("一级审批通过"); + governmentFx.add(thtApprove); +// processMap.put(flag.toString(), thtApprove); +// flag++; + continue; + } + } + if ("2".equals(thtApprove.getOperateContent())) { + if("-1".equals(thtApprove.getApproveResult())){ + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("二级审批驳回"); + governmentFx.add(thtApprove); +// processMap.put(flag.toString(), thtApprove); +// flag++; + continue; + } + if("1".equals(thtApprove.getApproveResult())){ + thtApprove.setOperator(username); + thtApprove.setApprovalInfo("二级审批通过"); + governmentFx.add(thtApprove); +// processMap.put(flag.toString(), thtApprove); +// flag++; } } } } - return ServerResponse.ok(processMap); + danger.put("隐患上报",dangerSubmit); + danger.put("治理方案",governmentFx); + danger.put("隐患治理",governmentZL); + return ServerResponse.ok(danger); } - - - // 图片上传接口 /*@PostMapping("/uploadImage") public ServerResponse uploadImage(@RequestBody MultipartFile multipartFile) throws IOException { diff --git a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/OperatorController.java b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/OperatorController.java index 87961f8..4141f8c 100644 --- a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/OperatorController.java +++ b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/controller/OperatorController.java @@ -42,10 +42,9 @@ public class OperatorController { } @GetMapping("/getOperatorDataSum") - public ServerResponse getOperatorDataSum(@RequestParam String nuserId){ - List operatorDataSum = operatorMapper.getOperatorDataSum(nuserId); + public ServerResponse getOperatorDataSum(@RequestParam String nuserid){ + List operatorDataSum = operatorMapper.getOperatorDataSum(nuserid); return ServerResponse.ok(operatorDataSum); } - } diff --git a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/mapper/HighDangerMapper.java b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/mapper/HighDangerMapper.java index f312dd8..d4f00ab 100644 --- a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/mapper/HighDangerMapper.java +++ b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/mapper/HighDangerMapper.java @@ -24,7 +24,15 @@ public interface HighDangerMapper{ List getStatusCounts(@Param("cdepartmentid") String cdepartmentid, @Param("nuserid") String nuserid); // - List getHigDangerDealt(@Param("status") String status, @Param("cdepartmentid") String cdepartmentid,@Param("search") String search,@Param("nuserid")String nuserId, @Param("classification") String classification,@Param("approve") String approve); + List getHigDangerDealt(@Param("status") String status, + @Param("cdepartmentid") String cdepartmentid, + @Param("search") String search, + @Param("nuserid")String nuserId, + @Param("classification") String classification, + @Param("approve") String approve, + @Param("startTime") String startTime, + @Param("endTime") String endTime + ); List getHigDangerDying(String status, String cdepartmentid); @@ -122,5 +130,13 @@ public interface HighDangerMapper{ List getProcessRecord(String businessId); + ThtApprove getProcessRecordByNid(String nid); + HighDangerBase getHiddenDangerBaseById(String businessId); + + void updateApproveStatus(@Param("businessId") String businessId,@Param("approveStatus") String approveStatus); + + void updateThtHiddenDangerBaseStatus(@Param("businessId") String businessId,@Param("status") String status); + + } diff --git a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/mapper/ThtRoadInfoMapper.java b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/mapper/ThtRoadInfoMapper.java index f3cd4a8..07442f2 100644 --- a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/mapper/ThtRoadInfoMapper.java +++ b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/mapper/ThtRoadInfoMapper.java @@ -7,6 +7,4 @@ import org.springframework.stereotype.Repository; public interface ThtRoadInfoMapper { void updateRoadInfo(HiddenDangerDTO hiddenDangerDTO); - - } diff --git a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/service/impl/ThtApproveServiceImpl.java b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/service/impl/ThtApproveServiceImpl.java index b3eb2b3..500718c 100644 --- a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/service/impl/ThtApproveServiceImpl.java +++ b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/service/impl/ThtApproveServiceImpl.java @@ -2,12 +2,15 @@ package com.hisense.hiatmp.server_api.service.impl; import com.hisense.hiatmp.model.common.ThtApprove; import com.hisense.hiatmp.model.common.VO.ThtApproveVO; +import com.hisense.hiatmp.server_api.mapper.HighDangerMapper; import com.hisense.hiatmp.server_api.mapper.ThtApproveMapper; import com.hisense.hiatmp.server_api.service.ThtApproveService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; +import java.util.List; +import java.util.Objects; import java.util.UUID; @Service @@ -16,6 +19,9 @@ public class ThtApproveServiceImpl implements ThtApproveService { @Autowired private ThtApproveMapper thtApproveMapper; + @Autowired + private HighDangerMapper highDangerMapper; + @Override public int save(ThtApprove thtApprove) { return thtApproveMapper.save(thtApprove); @@ -23,6 +29,8 @@ public class ThtApproveServiceImpl implements ThtApproveService { @Override public int SubmitHigDangerApproval(ThtApproveVO thtApproveVO) { + // 是否是最后一次审批 + Boolean ifLastApprove = false; Date date = new Date(); UUID uuid = UUID.fromString(UUID.randomUUID().toString()); @@ -35,18 +43,60 @@ public class ThtApproveServiceImpl implements ThtApproveService { thtApprove.setOperator(thtApproveVO.getNuserid()); thtApprove.setReason(thtApproveVO.getReason()); thtApprove.setLastModDate(date); - // 一级审批 - thtApprove.setOperateContent("1"); - - if("0".equals(thtApproveVO.getApprovalStatus())){ - // 驳回 - thtApprove.setApproveResult("-1"); - }else{ - // 审批通过 - thtApprove.setApproveResult("1"); + thtApprove.setOperateTime(date); + thtApprove.setReason(thtApproveVO.getReason()); + + List processRecord = highDangerMapper.getProcessRecord(thtApproveVO.getBusinessId()); + if(!processRecord.isEmpty()) { + ThtApprove thtApprove1 = processRecord.get(processRecord.size() - 1); + // 一次审批 + if("0".equals(thtApprove1.getOperateContent()) && thtApprove1.getApproveResult() == null){ + thtApprove.setOperateContent("1"); + } + // 二次审批 + if("1".equals(thtApprove1.getOperateContent()) && Objects.equals(thtApprove1.getApproveResult(), "1")){ + thtApprove.setOperateContent("2"); + } + + if("0".equals(thtApproveVO.getApprovalStatus())){ + // 驳回 + thtApprove.setApproveResult("-1"); + highDangerMapper.updateApproveStatus(thtApproveVO.getBusinessId(),"-1"); + }else{ + // 审批通过 + thtApprove.setApproveResult("1"); + highDangerMapper.updateApproveStatus(thtApproveVO.getBusinessId(),"2"); + } + + // 最后一次审批 + if("1".equals(thtApprove1.getOperateContent()) && Objects.equals(thtApprove1.getApproveResult(), "1") && "1".equals(thtApproveVO.getApprovalStatus())){ + ifLastApprove = true; + } } - thtApprove.setReason(thtApproveVO.getReason()); + if(ifLastApprove){ + if(Objects.equals(thtApprove.getStatus(), "10")){ // 排查提交 + highDangerMapper.updateThtHiddenDangerBaseStatus(thtApprove.getBusinessId(),"60"); + highDangerMapper.updateApproveStatus(thtApprove.getBusinessId(), "1"); + thtApproveMapper.save(thtApprove); + ThtApprove thtApprove1 = new ThtApprove(); + + UUID uuid1 = UUID.fromString(UUID.randomUUID().toString()); + String nid1 = uuid1.toString().replaceAll("-", ""); + thtApprove1.setNid(nid1); + thtApprove1.setBusinessId(thtApproveVO.getBusinessId()); + thtApprove1.setStatus("60"); + thtApprove1.setOperator(thtApproveVO.getNuserid()); + thtApprove1.setLastModDate(date); + thtApprove1.setOperateTime(date); + thtApprove1.setOperateContent("0"); + return thtApproveMapper.save(thtApprove1); + + } else if (Objects.equals(thtApprove.getStatus(), "60")) { // 治理方案 + highDangerMapper.updateThtHiddenDangerBaseStatus(thtApprove.getBusinessId(),"20"); + highDangerMapper.updateApproveStatus(thtApprove.getBusinessId(), "0"); + } + } return thtApproveMapper.save(thtApprove); } diff --git a/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/utils/WatermarkUtil.java b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/utils/WatermarkUtil.java new file mode 100644 index 0000000..85c08c4 --- /dev/null +++ b/hiatmp-hidden-danger-server/src/main/java/com/hisense/hiatmp/server_api/utils/WatermarkUtil.java @@ -0,0 +1,176 @@ +package com.hisense.hiatmp.server_api.utils; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; + +/** + * 添加水印util + */ +public class WatermarkUtil { + + /** + * 添加水印 + * + * @param pictureSourceType 图片来源类型 + * @param watermarkType 水印类型 + * @param path 图片路径 + * @param watermark 水印内容(文字水印内容/图片水印的存放路径) + * @param formatName 图片格式 + * @param targetPath 输出图片存放路径 + * @param color 水印颜色 + */ + public static void addWatermark(PictureSourceType pictureSourceType, WatermarkType watermarkType, String path, String watermark, String formatName, String targetPath, Color color) { + if (null == pictureSourceType) { + throw new RuntimeException("图片来源类型不能为空"); + } + if (null == watermarkType) { + throw new RuntimeException("水印类型不能为空"); + } + Image image; + if (pictureSourceType == PictureSourceType.LOCAL_PICTURE) { + // 读取本地图片 + image = readLocalPicture(path); + } else { + // 读取网络图片 + image = readNetworkPicture(path); + } + // 水印处理 + manageWatermark(image, watermarkType, watermark, formatName, targetPath, color); + } + + + //图片来源类型枚举 + public enum PictureSourceType { + //本地图片 + LOCAL_PICTURE, + //网络图片 + NETWORK_PICTURE; + } + + //水印类型枚举 + public enum WatermarkType { + //文字水印 + TEXT_WATERMARK, + //图片水印 + IMAGE_WATERMARK; + } + + /** + * 读取本地图片 + * + * @param path 本地图片存放路径 + */ + public static Image readLocalPicture(String path) { + if (null == path) { + throw new RuntimeException("本地图片路径不能为空"); + } + // 读取原图片信息 得到文件 + File srcImgFile = new File(path); + try { + // 将文件对象转化为图片对象 + return ImageIO.read(srcImgFile); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + /** + * 读取网络图片 + * + * @param path 网络图片地址 + */ + public static Image readNetworkPicture(String path) { + if (null == path) { + throw new RuntimeException("网络图片路径不能为空"); + } + try { + // 创建一个URL对象,获取网络图片的地址信息 + URL url = new URL(path); + // 将URL对象输入流转化为图片对象 (url.openStream()方法,获得一个输入流) + BufferedImage bugImg = ImageIO.read(url.openStream()); + if (null == bugImg) { + throw new RuntimeException("网络图片地址不正确"); + } + return bugImg; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + /** + * 水印处理 + * + * @param image 图片对象 + * @param watermarkType 水印类型(1-文字水印 2-图片水印) + * @param watermark 水印内容(文字水印内容/图片水印的存放路径) + * @param formatName 图片格式 + * @param tarImgPath 输出图片存放路径 + * @param color 水印颜色 + */ + public static void manageWatermark(Image image, WatermarkType watermarkType, String watermark, String formatName, String tarImgPath, Color color) { + int imgWidth = image.getWidth(null); + int imgHeight = image.getHeight(null); + BufferedImage bufImg = new BufferedImage(imgWidth, imgHeight, BufferedImage.TYPE_INT_RGB); + // 加水印,创建画笔 + Graphics2D graphics = bufImg.createGraphics(); + // 绘制原始图片 + graphics.drawImage(image, 0, 0, imgWidth, imgHeight, null); + + // 校验水印的类型 + if (watermarkType == WatermarkType.TEXT_WATERMARK) { + if (watermark.isEmpty()) { + throw new RuntimeException("文字水印内容不能为空"); + } + // 添加文字水印: + // 根据图片的背景设置水印颜色 + graphics.setColor(color == null ? Color.RED : color); + // 设置字体 画笔字体样式为微软雅黑,加粗,文字大小为45pt + graphics.setFont(new Font("微软雅黑", Font.BOLD, 45)); + // 设置水印的坐标(为原图片中间位置) + int x = (imgWidth - getWatermarkLength(watermark, graphics)) / 2; + int y = imgHeight / 2; + // 画出水印 第一个参数是水印内容,第二个参数是x轴坐标,第三个参数是y轴坐标 + graphics.drawString(watermark, x, y); + graphics.dispose(); + } else { + // 添加图片水印: + if (watermark.isEmpty()) { + throw new RuntimeException("图片水印存放路径不能为空"); + } + Image srcWatermark = readLocalPicture(watermark); + int watermarkWidth = srcWatermark.getWidth(null); + int watermarkHeight = srcWatermark.getHeight(null); + // 设置 alpha 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字 + graphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.9f)); + // 绘制水印图片 坐标为中间位置 + graphics.drawImage(srcWatermark, (imgWidth - watermarkWidth) / 2, (imgHeight - watermarkHeight) / 2, watermarkWidth, watermarkHeight, null); + graphics.dispose(); + } + // 输出图片 + try { + FileOutputStream outImgStream = new FileOutputStream(tarImgPath); + ImageIO.write(bufImg, formatName, outImgStream); + outImgStream.flush(); + outImgStream.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + /** + * 获取水印文字的长度 + * + * @param watermarkContent 文字水印内容 + * @param graphics 图像类 + */ + private static int getWatermarkLength(String watermarkContent, Graphics2D graphics) { + return graphics.getFontMetrics(graphics.getFont()).charsWidth(watermarkContent.toCharArray(), 0, watermarkContent.length()); + } + +} + diff --git a/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/HighDangerMapper.xml b/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/HighDangerMapper.xml index 8dc1a8d..036b197 100644 --- a/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/HighDangerMapper.xml +++ b/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/HighDangerMapper.xml @@ -17,6 +17,7 @@ status, find_time, pc_start_time, + insert_time, report_dept, handle_dept, delay_count, @@ -35,6 +36,7 @@ #{status}, #{findTime}, #{pcStartTime}, + #{insertTime}, #{reportDept}, #{handleDept}, #{delayCount}, @@ -237,18 +239,23 @@ insert into tht_timeline ("nid", "business_id", "status", "title", "operator", "start_time", "end_time", "insert_time", "last_mod_date") - values (nextval('test_id_seq2'), #{business_id}, #{status}, #{title}, #{operator}, #{start_time}, #{end_time}, #{insert_time}, - #{last_mod_date}) + values (nextval('test_id_seq2'), #{businessId}, #{status}, #{title}, #{operator}, #{startTime}, #{endTime}, #{insertTime}, + #{lastModDate}) + + + + + update tht_hidden_danger_base + set approve_status = #{approveStatus}, + last_mod_date = NOW() + where business_id = #{businessId} + + + + update tht_hidden_danger_base + set status = #{status}, + last_mod_date = NOW() + where business_id = #{businessId} + \ No newline at end of file diff --git a/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/OperatorMapper.xml b/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/OperatorMapper.xml index 46c4f8c..8504d70 100644 --- a/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/OperatorMapper.xml +++ b/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/OperatorMapper.xml @@ -64,11 +64,14 @@ UNION ALL - SELECT DISTINCT 'MySP' AS status, count(DISTINCT business_id) AS count - FROM tht_approve + SELECT DISTINCT 'MySP' AS status, count(*) AS count + FROM tht_approve ta + LEFT JOIN tht_hidden_danger_base hdb ON hdb.business_id = ta.business_id WHERE 1 = 1 - AND operator = #{nuserid} + AND hdb.status in ('10','20') + AND ta.operate_content in ('1','2') + AND ta.operator = #{nuserid} diff --git a/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/ThtApproveMapper.xml b/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/ThtApproveMapper.xml index 2e3e302..026c164 100644 --- a/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/ThtApproveMapper.xml +++ b/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/ThtApproveMapper.xml @@ -9,16 +9,21 @@ business_id, operator, status, - timeline_nid, operate_time, operate_content, - last_mod_date + approve_result, + last_mod_date, + timeline_nid ) VALUES ( #{nid} , #{businessId}, #{operator}, #{status}, + #{operateTime}, + #{operateContent}, + #{approveResult}, + #{lastModDate}, (SELECT nid FROM @@ -28,10 +33,7 @@ AND status = #{status} ORDER BY start_time DESC - LIMIT 1), - #{operateTime}, - #{operateContent}, - #{lastModDate} + LIMIT 1) ) diff --git a/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/ThtRoadInfoMapper.xml b/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/ThtRoadInfoMapper.xml index d1a576a..6c3bc5a 100644 --- a/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/ThtRoadInfoMapper.xml +++ b/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/ThtRoadInfoMapper.xml @@ -7,9 +7,7 @@ set zl_unit = #{zlUnit}, zl_measure = #{zlMeasure}, zl_pic = #{zlPic}, - hd_pic = #{hdPic}, - last_mod_date = NOW(), - zl_time = NOW() + zl_time = #{zlTime} where business_id = #{businessId} And hd_term = #{hdTerm} diff --git a/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/HiddenDangerDTO.java b/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/HiddenDangerDTO.java index c6b3ebb..f0d6f12 100644 --- a/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/HiddenDangerDTO.java +++ b/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/HiddenDangerDTO.java @@ -1,5 +1,6 @@ package com.hisense.hiatmp.model.common; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; @@ -25,6 +26,8 @@ public class HiddenDangerDTO implements Serializable { private String hdInfo; private String dangerProblem; private String pcType; + + @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm") private Date zlTime; private String zlPic; } diff --git a/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/HighDangerBase.java b/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/HighDangerBase.java index f463c96..87fbeca 100644 --- a/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/HighDangerBase.java +++ b/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/HighDangerBase.java @@ -20,6 +20,8 @@ public class HighDangerBase implements Serializable { */ private String nid; + private String taNid; + /** * business_id */ diff --git a/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/ThtApprove.java b/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/ThtApprove.java index 511f42a..685465d 100644 --- a/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/ThtApprove.java +++ b/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/ThtApprove.java @@ -1,5 +1,6 @@ package com.hisense.hiatmp.model.common; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; @@ -18,9 +19,11 @@ public class ThtApprove implements Serializable { String operator; String status; String timelineNid; + @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm") Date operateTime; String operateContent; String approveResult; + @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm") Date lastModDate; String approvalInfo; String reason; diff --git a/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/VO/GovernmentVO.java b/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/VO/GovernmentVO.java index 3272854..3c73472 100644 --- a/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/VO/GovernmentVO.java +++ b/hiatmp-model/src/main/java/com/hisense/hiatmp/model/common/VO/GovernmentVO.java @@ -10,6 +10,7 @@ import java.util.List; public class GovernmentVO { String businessId; + String nuserid; List describe; }