From b25b814a949d2065a61fd3167206ffb51a57af65 Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期日, 28 四月 2024 15:31:09 +0800 Subject: [PATCH] 修改告警阈值重启线程 --- src/main/java/com/whyc/service/WorkflowLinkService.java | 320 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 295 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/whyc/service/WorkflowLinkService.java b/src/main/java/com/whyc/service/WorkflowLinkService.java index d7fb82d..f4a3231 100644 --- a/src/main/java/com/whyc/service/WorkflowLinkService.java +++ b/src/main/java/com/whyc/service/WorkflowLinkService.java @@ -44,7 +44,32 @@ private BattInfMapper binfMapper; @Autowired(required = false) + private StationInfMapper stationInfMapper; + + @Autowired(required = false) private WorkflowMainMapper mainMapper; + + @Autowired(required = false) + private WorkflowLinkMapper linkMapper; + + @Autowired(required = false) + private FaultUploadMapper faultUploadMapper; + + @Autowired(required = false) + private BattAlarmDataVerifyMapper alarmDataVerifyMapper; + + @Autowired(required = false) + private DevAlarmDataVerifyMapper devAlarmDataVerifyMapper; + + @Autowired(required = false) + private PwrDevAlarmVerifyMapper pwrDevAlarmVerifyMapper; + + + @Autowired(required = false) + private AlarmManualClearMapper alarmManualClearMapper; + + @Autowired + private FaultUploadApplicationService faultUploadApplicationService; public void addBatch(List<WorkflowLink> links) { mapper.insertBatchSomeColumn(links); @@ -67,6 +92,28 @@ Date now = new Date(); int userId = ActionUtil.getUser().getUId().intValue(); switch (processLevel){ + case "P0":{ //褰撳墠鑺傜偣杩囩▼0-涓撳憳瀹℃牳 + link.setDealUserId(userId); + if(link.getStatus() == WorkflowEnum.STATUS_REJECT.getValue().intValue()){ //椹冲洖 + updateLinkFieldAndFinish(link); + }else{ //閫氳繃 + updateLinkField(link); + //鏂板缓涓嬩竴鑺傜偣-绠$悊灞� + WorkflowLink linkNew = new WorkflowLink(); + linkNew.setMainId(link.getMainId()); + linkNew.setParentId(link.getId()); + linkNew.setProcessLevel(WorkflowDischargePlanEnum.PROCESS_MANAGER1SIGN.getProcessLevel()); + linkNew.setProcessLevelName(WorkflowDischargePlanEnum.PROCESS_MANAGER1SIGN.getProcessLevelName()); + linkNew.setCreateTime(now); + linkNew.setDealRoleId(RoleEnum.ADMIN.getId()); + linkNew.setDealType(WorkflowEnum.TYPE_TRANSFER_DISPATCH.getValue()); + String dealUserName = ActionUtil.getUser().getUName(); + linkNew.setDealDesc(dealUserName+"瀹℃牳瀹屾垚"); + linkNew.setStatus(WorkflowEnum.STATUS_TAKING.getValue()); + mapper.insert(linkNew); + } + break; + } case "P1"://褰撳墠鑺傜偣涓鸿繃绋�1-浼氱,鏈満鏅病鏈夋嫆缁濋�夐」 { battDischargePlanTempService.updateList(tempList); @@ -88,7 +135,7 @@ } break; } - case "P2"://褰撳墠鑺傜偣涓鸿繃绋�2-绠$悊瀹℃牳 + case "P2"://褰撳墠鑺傜偣涓鸿繃绋�2-绠$悊涓撹矗瀹℃牳 { link.setDealUserId(userId); if(link.getStatus() == WorkflowEnum.STATUS_REJECT.getValue().intValue()){ //椹冲洖 @@ -115,17 +162,79 @@ { link.setDealUserId(userId); updateLinkFieldAndFinish(link); - - Integer mainId = link.getMainId(); - WorkflowMain main = mainService.getOne(mainId); - if(main.getType()==1){ //灏嗚鍒掕浆绉诲埌姝e紡琛� - List<BattDischargePlanTemp> tempListByMain = battDischargePlanTempService.getListByMainId(mainId); - planService.insertConfirmDischargePlan(tempListByMain); + if(link.getStatus().intValue() == WorkflowEnum.STATUS_FINISH.getValue()) { + Integer mainId = link.getMainId(); + WorkflowMain main = mainService.getOne(mainId); + if (main.getType() == 1) { //灏嗚鍒掕浆绉诲埌姝e紡琛� + List<BattDischargePlanTemp> tempListByMain = battDischargePlanTempService.getListByMainId(mainId); + planService.insertConfirmDischargePlan(tempListByMain); + } } break; } } return new Response().setII(1,"鏇存柊瀹屾垚"); + } + + public Response updateLink(WorkflowLinkDTO linkDTO) { + int userId = ActionUtil.getUser().getUId().intValue(); + if(linkDTO.getType().intValue() == WorkflowEnum.MAIN_TYPE_FAULT_UPLOAD.getValue()) { //鏁呴殰闅愭偅娴佺▼ + updateLinkOfFaultUpload(linkDTO, userId); + } + return new Response().setII(1,"鏇存柊瀹屾垚"); + } + + private void updateLinkOfFaultUpload(WorkflowLinkDTO linkDTO, int userId) { + Date now = new Date(); + WorkflowLink link = linkDTO.getLink(); + String processLevel = link.getProcessLevel(); + FaultUpload faultUpload = linkDTO.getFaultUpload(); + switch (processLevel){ + case "P2"://褰撳墠鑺傜偣涓鸿繃绋�1-绠$悊灞傚鏍� + { + link.setDealUserId(userId); + if(link.getStatus() == WorkflowEnum.STATUS_REJECT.getValue().intValue()){ //椹冲洖 + updateLinkFieldAndFinish(link); + }else{ //閫氳繃 + //涓昏〃鏇存柊灞傜骇 + mainService.updateProcessLevel("P3",link.getMainId()); + updateLinkField(link); + //鏂板缓涓嬩竴鑺傜偣-棰嗗灞� + WorkflowLink linkNew = new WorkflowLink(); + linkNew.setMainId(link.getMainId()); + linkNew.setParentId(link.getId()); + linkNew.setProcessLevel(WorkflowDischargePlanEnum.PROCESS_MANAGER2SIGN.getProcessLevel()); + linkNew.setProcessLevelName(WorkflowDischargePlanEnum.PROCESS_MANAGER2SIGN.getProcessLevelName()); + linkNew.setCreateTime(now); + linkNew.setDealRoleId(RoleEnum.LEADER.getId()); + linkNew.setDealType(WorkflowEnum.TYPE_TRANSFER_DISPATCH.getValue()); + String dealUserName = ActionUtil.getUser().getUName(); + linkNew.setDealDesc(dealUserName+"瀹℃牳瀹屾垚"); + linkNew.setStatus(WorkflowEnum.STATUS_TAKING.getValue()); + mapper.insert(linkNew); + + //绠$悊灞傛彁鍑虹敵鎶�,鐢熸垚鐢虫姤搴撳唴鐨勮褰� + FaultUploadApplication application = new FaultUploadApplication(); + application.setAlarmNum(faultUpload.getAlarmNum()); + application.setAlarmType(faultUpload.getAlarmType()); + application.setStationId(faultUpload.getStationId()); + application.setType(faultUpload.getType()); + application.setDescription(faultUpload.getDescription()); + application.setUploadUserId(userId); + application.setCreateTime(now); + application.setMainId(link.getMainId()); + faultUploadApplicationService.add(application); + + } + break; + } + case "P3"://褰撳墠鑺傜偣涓鸿繃绋�3-棰嗗灞傚鎵� + { + link.setDealUserId(userId); + updateLinkFieldAndFinish(link); + break; + } + } } /** @@ -147,7 +256,6 @@ private void updateLinkField(WorkflowLink link) { Date now = new Date(); link.setDealTime(now); - link.setDealDesc("绠$悊鍛樺鐞嗛�氳繃"); mapper.updateById(link); } @@ -183,6 +291,47 @@ return statistics; } + /** + * + * 浜屾鏍稿鍜岄殣鎮f晠闅滅殑缁熻 + * + * 澧炲姞浜嗗叏閮� 0 + * 0:鍏ㄩ儴 + * 1:瀹℃壒涓� + * 2:閫氳繃 + * 3:椹冲洖 + * + * status鍚箟:1-寰呮帴鍗�,6-寰呭鏍�,58-宸插鏍� + * @param type + * @param user + * @return + */ + public Response getReceivedStatistics2(int type, UserInf user) { + Map<Integer,Integer> statistics = new HashMap<>(); + statistics.put(0,0); + statistics.put(1,0); + statistics.put(2,0); + statistics.put(3,0); + List<WorkflowLink> links = mapper.getReceivedList2(type,user); + Map<Integer, List<WorkflowLink>> receivedListMap = links.stream().collect(Collectors.groupingBy(WorkflowLink::getStatus)); + Set<Integer> statusSet = receivedListMap.keySet(); + int sum = 0; + for (Integer status : statusSet) { + int size = receivedListMap.get(status).size(); + if (status == 1 || status == 6) { //瀹℃壒涓� + statistics.put(1, statistics.get(1) + size); + } else if(status == 5){ //閫氳繃 + statistics.put(2, size); + }else if(status == 8){ //椹冲洖 + statistics.put(3,size); + } + sum+=size; + } + statistics.put(0,sum); + return new Response().set(1,statistics); + } + + public void add(WorkflowLink link) { mapper.insert(link); } @@ -196,28 +345,37 @@ case 0://褰撳墠鑺傜偣涓鸿繃绋�0-绠$悊鍛樺鎵� { link.setDealUserId(userId); + link.setDealDesc("绠$悊鍛樺鐞嗛�氳繃"); if (link.getStatus() == WorkflowEnum.STATUS_REJECT.getValue().intValue()) { //椹冲洖 + link.setDealDesc("绠$悊鍛橀┏鍥�"); updateLinkFieldAndFinish(link); } else { //閫氳繃 updateLinkField(link); //鏂板缓涓嬩竴鑺傜偣-棰嗗灞� WorkflowLink linkNew = new WorkflowLink(); linkNew.setMainId(link.getMainId()); + linkNew.setProcessLevel("P3"); + linkNew.setProcessLevelName("棰嗗瀹℃壒"); linkNew.setParentId(link.getId()); linkNew.setCreateTime(now); linkNew.setDealRoleId(RoleEnum.LEADER.getId()); linkNew.setDealType(WorkflowEnum.TYPE_TRANSFER_DISPATCH.getValue()); - String dealUserName = ActionUtil.getUser().getUName(); linkNew.setDealDesc("棰嗗灞傚鐞嗕腑"); - linkNew.setStatus(WorkflowEnum.STATUS_WAIT_FOR_APPROVE.getValue()); + linkNew.setStatus(WorkflowEnum.STATUS_TAKING.getValue()); mapper.insert(linkNew); + //淇敼涓昏〃鐨勬祦绋� + mainService.updateProcessLevel("P3", link.getMainId()); } break; } case 10://褰撳墠鑺傜偣涓鸿繃绋�10-棰嗗灞傚鎵� { link.setDealUserId(userId); - link.setDealDesc("棰嗗灞傚鎵归�氳繃"); + if (link.getStatus() == WorkflowEnum.STATUS_REJECT.getValue().intValue()) { //椹冲洖 + link.setDealDesc("棰嗗灞傞┏鍥�"); + } else { + link.setDealDesc("棰嗗灞傚鎵归�氳繃"); + } updateLinkFieldAndFinish(link); } } @@ -225,17 +383,79 @@ } //鏌ヨ鑺傜偣(闄ゆ斁鐢佃鍒掍箣澶栫殑) - public Response searchTmp(int type, int status, int pageNum, int pageSize) { - UserInf uinf = ActionUtil.getUser(); + public Response searchTmp(int uId, int uRole, int type, int status, int pageNum, int pageSize) { //鏌ヨ鑷繁闇�瑕佸鐞嗘垨鑰呭鎵圭殑 PageHelper.startPage(pageNum, pageSize); - List<WorkflowLink> list = mapper.searchTmp(uinf.getUId().intValue(), uinf.getURole(), type, status); + List<WorkflowLink> list = mapper.searchTmp(uId, uRole, type, status); PageInfo pageInfo = new PageInfo(list); - return new Response().setII(1, list == null ? false : true, list, "鏌ヨ鑺傜偣(闄ゆ斁鐢佃鍒掍箣澶栫殑)"); + //杩藉姞鏈烘埧淇℃伅 + if(type !=1) { //1涓烘煡璇㈡斁鐢佃鍒�,涓嶈拷鍔犳満鎴夸俊鎭� + List<Integer> mainIdList = list.stream().map(WorkflowLink::getMainId).collect(Collectors.toList()); + //浠庝簩娆℃牳瀹规煡璇� + List<StationInf> stationInfList = tmpMapper.getStationInfWithSpecificMainId(mainIdList); + //浠庢晠闅滈殣鎮f煡璇� + List<StationInf> stationInfList2 = faultUploadApplicationService.getStationInfWithSpecificMainId(mainIdList); + + list.forEach(link -> { + if(link.getWorkflowMain().getType().intValue() == WorkflowEnum.MAIN_TYPE_DISCHARGE_DIST.getValue()){ + for (StationInf stationInf : stationInfList) { + if(stationInf.getTogetherFlag() == link.getMainId()){ + link.setStationInf(stationInf); + break; + } + } + } + else if(link.getWorkflowMain().getType().intValue() == WorkflowEnum.MAIN_TYPE_FAULT_UPLOAD.getValue()){ + for (StationInf stationInf : stationInfList2) { + if(stationInf.getTogetherFlag() == link.getMainId()){ + link.setStationInf(stationInf); + break; + } + } + } + }); + } + + + + return new Response().setII(1, list == null ? false : true, pageInfo, "鏌ヨ鑺傜偣(闄ゆ斁鐢佃鍒掍箣澶栫殑)"); } //鑺傜偣涓轰簩娆℃斁鐢垫椂鏌ヨ浜屾鏀剧數鍙傛暟鍜屾湰骞翠笂涓�娆℃湁鏁堟牳瀹规暟鎹� public Response searchLastHrById(int mid) { + Map<String, Object> map = searchHrByMId(mid); + return new Response().setII(1, true, map, "鑺傜偣涓轰簩娆℃斁鐢垫椂鏌ヨ浜屾鏀剧數鍙傛暟鍜屾湰骞翠笂涓�娆℃湁鏁堟牳瀹规暟鎹�"); + } + + //鑺傜偣涓烘晠闅滈殣鎮� + public Response searcFaultById(int mid) { + Map<String, Object> map = searchFaultByMId(mid); + return new Response().setII(1, true, map, "鑺傜偣涓轰簩娆℃斁鐢垫椂鏌ヨ浜屾鏀剧數鍙傛暟鍜屾湰骞翠笂涓�娆℃湁鏁堟牳瀹规暟鎹�"); + } + + //鏌ヨ鑷繁鐢宠鐨勫伐鍗�(鍘婚櫎鏀剧數璁″垝) + public Response getFlowMainByUid(int uId, int type, int status, int pageNum, int pageSize) { + //鏌ヨ鑷繁闇�瑕佸鐞嗘垨鑰呭鎵圭殑 + PageHelper.startPage(pageNum, pageSize); + List<WorkflowMain> list = mapper.getFlowMainByUid(uId, type, status); + if (list != null && list.size() > 0) { + for (WorkflowMain main : list) { + if (main.getType() == 2) { + Map<String, Object> map = searchHrByMId(main.getId()); + main.setHrMap(map); + } + if (main.getType() == 3) { + Map<String, Object> map = searchFaultByMId(main.getId()); + main.setFaultMap(map); + } + } + } + PageInfo pageInfo = new PageInfo(list); + return new Response().setII(1, list == null ? false : true, pageInfo, "鏌ヨ鑷繁鐢宠鐨勫伐鍗�(鍘婚櫎鏀剧數璁″垝)"); + } + + //鑺傜偣涓轰簩娆℃斁鐢垫椂鏌ヨ浜屾鏀剧數鍙傛暟鍜屾湰骞翠笂涓�娆℃湁鏁堟牳瀹规暟鎹� + public Map searchHrByMId(int mid) { Map<String, Object> map = new HashMap<>(); //鏌ヨ浜屾鏀剧數鍙傛暟 QueryWrapper tmpWrapper = Wrappers.query(); @@ -249,6 +469,12 @@ mainWrapper.last("limit 1"); WorkflowMain main = mainMapper.selectOne(mainWrapper); map.put("main", main); + //link琛ㄥ崟淇℃伅 + QueryWrapper linkWrapper = Wrappers.query(); + linkWrapper.eq("main_id", mid); + linkWrapper.orderByAsc("parent_id"); + List<WorkflowLink> linkList = linkMapper.selectList(linkWrapper); + map.put("linkList", linkList); //鏈勾涓婁竴娆℃湁鏁堟牳瀹规暟鎹� if (tmp != null) { BatttestdataInf tinf = testInfMapper.searchHrYear(tmp.getBattGroupId()); @@ -259,17 +485,61 @@ Battinf binf = binfMapper.selectOne(infWrapper); map.put("binf", binf); } - - return new Response().setII(1, true, map, "鑺傜偣涓轰簩娆℃斁鐢垫椂鏌ヨ浜屾鏀剧數鍙傛暟鍜屾湰骞翠笂涓�娆℃湁鏁堟牳瀹规暟鎹�"); + return map; } - //鏌ヨ鑷繁鐢宠鐨勫伐鍗�(鍘婚櫎鏀剧數璁″垝) - public Response getFlowMainByUid(int type, int status, int pageNum, int pageSize) { - UserInf uinf = ActionUtil.getUser(); - //鏌ヨ鑷繁闇�瑕佸鐞嗘垨鑰呭鎵圭殑 - PageHelper.startPage(pageNum, pageSize); - List<WorkflowMain> list = mapper.getFlowMainByUid(uinf.getUId().intValue(), type, status); - PageInfo pageInfo = new PageInfo(list); - return new Response().setII(1, list == null ? false : true, list, "鏌ヨ鑷繁鐢宠鐨勫伐鍗�(鍘婚櫎鏀剧數璁″垝)"); + //鑺傜偣涓烘晠闅滈殣鎮f椂 + public Map searchFaultByMId(int mid) { + Map<String, Object> map = new HashMap<>(); + //鏌ヨ鏁呴殰闅愭偅鐢宠琛� + QueryWrapper faultWrapper = Wrappers.query(); + faultWrapper.eq("main_id", mid); + faultWrapper.last("limit 1"); + FaultUpload faultUpload = faultUploadMapper.selectOne(faultWrapper); + map.put("faultUpload", faultUpload); + if (faultUpload != null) { + QueryWrapper infWrapper = new QueryWrapper(); + infWrapper.eq("stationid", faultUpload.getStationId()); + infWrapper.last("limit 1"); + StationInf sinf = stationInfMapper.selectOne(infWrapper); + map.put("sinf", sinf); + QueryWrapper almWrapper = new QueryWrapper(); + almWrapper.eq("alm_solekey", faultUpload.getAlarmNum()); + almWrapper.last("limit 1"); + if (faultUpload.getAlarmType() == 1) {//鐢垫睜鍛婅 + BattAlarmDataVerify battAlm = alarmDataVerifyMapper.selectOne(almWrapper); + map.put("alarm", battAlm); + } else if (faultUpload.getAlarmType() == 2) {//璁惧鍛婅 + DevAlarmDataVerify devAlm = devAlarmDataVerifyMapper.selectOne(almWrapper); + map.put("alarm", devAlm); + } else if (faultUpload.getAlarmType() == 3) {//鐢垫簮鍛婅 + PwrDevAlarmVerify pwrAlm = pwrDevAlarmVerifyMapper.selectOne(almWrapper); + map.put("alarm", pwrAlm); + } + } + //鏌ヨ鏄惁瑙e喅 + //鏌ヨ鏁呴殰闅愭偅鐢宠琛� + QueryWrapper clearWrapper = Wrappers.query(); + clearWrapper.eq("main_id", mid); + clearWrapper.last("limit 1"); + AlarmManualClear alarmManualClear = alarmManualClearMapper.selectOne(clearWrapper); + if (alarmManualClear != null) { + map.put("clearFlag", true); + } else { + map.put("clearFlag", false); + } + //main琛ㄥ崟淇℃伅 + QueryWrapper mainWrapper = Wrappers.query(); + mainWrapper.eq("id", mid); + mainWrapper.last("limit 1"); + WorkflowMain main = mainMapper.selectOne(mainWrapper); + map.put("main", main); + //link琛ㄥ崟淇℃伅 + QueryWrapper linkWrapper = Wrappers.query(); + linkWrapper.eq("main_id", mid); + linkWrapper.orderByAsc("parent_id"); + List<WorkflowLink> linkList = linkMapper.selectList(linkWrapper); + map.put("linkList", linkList); + return map; } } -- Gitblit v1.9.1