From 330f39a4e5ac926d6a61dab239bff903dda91fb2 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 10 四月 2025 11:27:30 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java | 146 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 109 insertions(+), 37 deletions(-) diff --git a/server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java index 6a03643..c823afb 100644 --- a/server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java +++ b/server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java @@ -10,6 +10,8 @@ import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; import com.doumee.core.utils.qiyeweixin.QywxUtil; +import com.doumee.core.utils.qiyeweixin.model.request.QywxSendMsgRequest; +import com.doumee.core.utils.qiyeweixin.model.request.QywxTextCardMsgRequest; import com.doumee.dao.business.*; import com.doumee.dao.business.model.*; import com.doumee.dao.web.dto.CloseDTO; @@ -80,28 +82,95 @@ //澶勭悊浜哄憳绫讳俊鎭� this.dealNoticeData(workorder); //澶勭悊SHE浜嬩欢鐘舵�� - workorder.setStatus(Constants.equalsInteger(workorder.getType(),Constants.ZERO)?Constants.workOrderStatus.close:Constants.workOrderStatus.waitConfirm); + Constants.WorkOrderStatus workOrderStatus = Constants.equalsInteger(workorder.getType(),Constants.ZERO)?Constants.WorkOrderStatus.close:Constants.WorkOrderStatus.waitConfirm; + workorder.setStatus(workOrderStatus.getKey()); workorderMapper.insert(workorder); //瀛樺偍DCA 闂璁板綍琛� this.saveProblemData(workorder); //瀛樺偍闄勪欢淇℃伅 this.saveMutiFile(workorder); //瀛樺偍鏃ュ織 - this.dealLogData(workorder); - //TODO 鍙戦�佷紒寰�氱煡 + this.dealLogData(workorder,workOrderStatus); + // 鍙戦�佷紒寰�氱煡 + QywxSendMsgRequest qywxSendMsgRequest = new QywxSendMsgRequest(); + qywxSendMsgRequest.setTouser(workorder.getQwnoticeMemberIds().replace(",","|")); + qywxSendMsgRequest.setMsgtype("text"); + qywxSendMsgRequest.setAgentid(null); + QywxTextCardMsgRequest textCard = new QywxTextCardMsgRequest(); + textCard.setTitle(workOrderStatus.getLogTitle()); + + qywxSendMsgRequest.setTextcard(textCard); + QywxUtil.sendMsg(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(), + qywxSendMsgRequest); return workorder.getId(); } - public void dealLogData(Workorder workorder){ - //澶勭悊涓婃姤鏃ュ織 DCA宸ュ崟 鏃ュ織瀛樺偍鑷冲瓙涓氬姟 涓嶅瓨鍦ㄤ簬鐖剁骇 - if(!Constants.equalsInteger(workorder.getType(),Constants.ONE)){ - String logTitle = "宸ュ崟鎻愭姤"; - if(!Constants.equalsInteger(workorder.getType(),Constants.ZERO)){ - logTitle = Constants.equalsInteger(workorder.getType(),Constants.ONE)?"璺岀粖婊戦闄╂彁鎶�":"DCA涓婃姤"; + public void sendQwMsg(Workorder workorder){ + QywxSendMsgRequest qywxSendMsgRequest = new QywxSendMsgRequest(); + QywxTextCardMsgRequest textCard = new QywxTextCardMsgRequest(); + qywxSendMsgRequest.setMsgtype("text"); + qywxSendMsgRequest.setAgentid(null); + textCard.setBtntxt("璇︽儏"); + //鏂版彁浜� + if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())){ + qywxSendMsgRequest.setTouser(workorder.getQwnoticeMemberIds().replace(",","|")); + textCard.setUrl(null); + //SHE 鎻愪氦 + if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){ + Category category = categoryMapper.selectById(workorder.getType()); + textCard.setTitle("銆怱HE浜嬩欢涓婃姤銆�"); + String message = ""; + if(Constants.equalsInteger(workorder.getMemberType(),Constants.ZERO)){ + message = "鏈汉"; + }else { + message = Constants.equalsInteger(workorder.getMemberType(),Constants.ONE)?"鍚屼簨":"渚涘簲鍟�"; + } + message = message + "-" + workorder.getMemberNames() + " " + DateUtil.formatDate(new Date(),"yyyy-MM-dd HH:mm") + workorder.getLocationName() + category.getName(); + textCard.setDescription(" <div class=\"normal\">"+message+"</div>"); + }else{ + } - this.saveLog(null,workorder,Constants.ZERO,workorder.getMemberId(),logTitle,null); + } + qywxSendMsgRequest.setTextcard(textCard); + QywxUtil.sendMsg(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(), + qywxSendMsgRequest); + } + + +// public QywxTextCardMsgRequest dealMessageContent(Workorder workorder,Integer type){ +// QywxTextCardMsgRequest textCard = new QywxTextCardMsgRequest(); +// String message = ""; +// if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){ +// Category category = categoryMapper.selectById(workorder.getType()); +// textCard.setTitle("銆怱HE浜嬩欢涓婃姤銆�"); +// if(Constants.equalsInteger(workorder.getMemberType(),Constants.ZERO)){ +// message = "鏈汉"; +// }else { +// message = Constants.equalsInteger(workorder.getMemberType(),Constants.ONE)?"鍚屼簨":"渚涘簲鍟�"; +// } +// message = message + "-" + workorder.getMemberNames() + " " + DateUtil.formatDate(new Date(),"yyyy-MM-dd HH:mm") + workorder.getLocationName() + category.getName(); +// textCard.setDescription(" <div class=\"normal\">"+message+"</div>"); +// }else{ +// textCard.setTitle(Constants.equalsInteger(workorder.getType(),Constants.ONE)?"銆怐CA涓婃姤銆�":"璺岀粖婊戦闄╀笂鎶�"); +// if(Constants.equalsInteger(workorder.getType(),Con)){ +// +// } +// +// +// +// } +// +// } + + + + public void dealLogData(Workorder workorder,Constants.WorkOrderStatus workOrderStatus){ + if (Constants.equalsInteger(workorder.getType(), Constants.THREE) || Constants.equalsInteger(workorder.getType(), Constants.TWO) ) { + //澶勭悊涓婃姤鏃ュ織 DCA宸ュ崟 鏃ュ織瀛樺偍鑷冲瓙涓氬姟 涓嶅瓨鍦ㄤ簬鐖剁骇 涓庤穼缁婃粦 + String logTitle = Constants.equalsInteger(workorder.getType(), Constants.THREE) ? "璺岀粖婊戦闄�" : "DCA"; + this.saveLog(null,workorder,Constants.ZERO,workorder.getMemberId(),workOrderStatus.getLogTitle().replace("{title}",logTitle),null); } } @@ -113,6 +182,7 @@ List<Multifile> multifileList = workorder.getMultifileList(); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ for (Multifile multifile:multifileList) { + multifile.setIsdeleted(Constants.ZERO); multifile.setObjId(workorder.getId()); multifile.setCreateDate(new Date()); multifile.setObjType(Constants.multiFileType.upload); @@ -132,13 +202,14 @@ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(dcaNoProblemDTOList)){ for (DCANoProblemDTO dcaNoProblemDTO:dcaNoProblemDTOList) { Category problem = categoryMapper.selectById(dcaNoProblemDTO.getProblemId()); + Constants.WorkOrderStatus workOrderStatus = Constants.WorkOrderStatus.waitConfirm; Workorder dcaWorkOrder = new Workorder(); dcaWorkOrder.setCreateDate(new Date()); dcaWorkOrder.setEditDate(new Date()); dcaWorkOrder.setMemberId(workorder.getMemberId()); dcaWorkOrder.setTypeId(dcaNoProblemDTO.getProblemId()); dcaWorkOrder.setType(Constants.TWO); - dcaWorkOrder.setStatus(Constants.ZERO); + dcaWorkOrder.setStatus(workOrderStatus.getKey()); dcaWorkOrder.setIsdeleted(Constants.ZERO); dcaWorkOrder.setProblemTitle(problem.getName()); dcaWorkOrder.setProblemId(problem.getId()); @@ -147,10 +218,11 @@ dcaWorkOrder.setEventInfo(dcaNoProblemDTO.getEventInfo()); workorderMapper.insert(dcaWorkOrder); //瀛樺偍鏃ュ織 - this.dealLogData(dcaWorkOrder); + this.dealLogData(dcaWorkOrder,workOrderStatus); List<Multifile> multifileList = dcaNoProblemDTO.getMultifileList(); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ for (Multifile multifile:multifileList) { + multifile.setIsdeleted(Constants.ZERO); multifile.setObjId(dcaWorkOrder.getId()); multifile.setCreateDate(new Date()); multifile.setObjType(Constants.multiFileType.upload); @@ -284,7 +356,7 @@ .selectAll(Workorder.class) .selectAs(Member::getPhone,Workorder::getMemberPhone) .selectAs(Member::getName,Workorder::getMemberName) - .selectAs(Workorder::getCompanyName,Workorder::getCompanyName) + .selectAs(Member::getCompanyName,Workorder::getCompanyName) .select(" c3.name ",Workorder::getTypeName) .select(" c4.name ",Workorder::getProblemName) .leftJoin(Member.class,Member::getId,Workorder::getMemberId) @@ -296,7 +368,7 @@ if(Objects.nonNull(workorder)){ //鏌ヨ闄勪欢淇℃伅 List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda().eq(Multifile::getIsdeleted,Constants.ZERO) - .eq(Multifile::getObjId,workorder).orderByAsc(Multifile::getId)); + .eq(Multifile::getObjId,workorder.getId()).orderByAsc(Multifile::getId)); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +systemDictDataBiz.queryByCode(Constants.FTP,Constants.WORKORDER_FILE_PATH).getCode(); @@ -513,29 +585,29 @@ if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"SHE宸ュ崟鏃犳硶杩涜璇ユ搷浣�"); } - if(Constants.equalsInteger(workorder.getStatus(),Constants.workOrderStatus.sheClose)||Constants.equalsInteger(workorder.getStatus(),Constants.workOrderStatus.wtsClose)||Constants.equalsInteger(workorder.getStatus(),Constants.workOrderStatus.close)){ + if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.sheClose.getKey())||Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.wtsClose.getKey())||Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.close.getKey())){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"宸ュ崟鐘舵�佸凡娴佽浆"); } //鎻愪氦鍚庣殑 寰呯‘璁�/寰呭垵瀹$姸鎬� 濡傛灉鍘诲叧闂� 鍙湁宸ュ崟閲岀粦瀹氱殑SHE浜哄憳鍙互鍏抽棴 - if(Constants.equalsInteger(workorder.getStatus(),Constants.workOrderStatus.waitConfirm)){ + if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())){ //鍒ゆ柇SHE浜哄憳鍐呮槸鍚︽湁褰撳墠鐧诲綍璐﹀彿 if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); } - workorder.setStatus(Constants.workOrderStatus.sheClose); - }else if(Constants.equalsInteger(workorder.getStatus(),Constants.workOrderStatus.waitAllocation)){ + workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey()); + }else if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey())){ //鍒ゆ柇SHE浜哄憳鍐呮槸鍚︽湁褰撳墠鐧诲綍璐﹀彿 if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO && !workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); } - workorder.setStatus(Constants.workOrderStatus.wtsClose); - }else if(Constants.equalsInteger(workorder.getStatus(),Constants.workOrderStatus.waitDeal)){ + workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); + }else if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitDeal.getKey())){ //鍒ゆ柇SHE浜哄憳鍐呮槸鍚︽湁褰撳墠鐧诲綍璐﹀彿 if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO && !workorder.getManagerId().equals(closeDTO.getMember().getQwId()) && !workorder.getDealerId().equals(closeDTO.getMember().getQwId()) ){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); } - workorder.setStatus(Constants.workOrderStatus.wtsClose); + workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); }else{ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"宸ュ崟鐘舵�佸凡娴佽浆"); } @@ -578,18 +650,18 @@ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"SHE宸ュ崟鏃犳硶杩涜璇ユ搷浣�"); } if(Constants.equalsInteger(passOnDTO.getPassOnType(),Constants.ZERO)){ - if(!Constants.equalsInteger(workorder.getStatus(),Constants.workOrderStatus.waitConfirm)){ + if(!Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"宸ュ崟鐘舵�佸凡娴佽浆"); } workorder.setManagerId(member.getQwId()); - workorder.setStatus(Constants.workOrderStatus.waitAllocation); + workorder.setStatus(Constants.WorkOrderStatus.waitAllocation.getKey()); }else{ - if(!(Constants.equalsInteger(workorder.getStatus(),Constants.workOrderStatus.waitAllocation) - || Constants.equalsInteger(workorder.getStatus(),Constants.workOrderStatus.waitDeal))){ + if(!(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey()) + || Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitDeal.getKey()))){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"宸ュ崟鐘舵�佸凡娴佽浆"); } workorder.setDealerId(member.getQwId()); - workorder.setStatus(Constants.workOrderStatus.waitDeal); + workorder.setStatus(Constants.WorkOrderStatus.waitDeal.getKey()); } workorder.setEditDate(new Date()); workorder.setUrgeDate(DateUtil.afterHoursDate(new Date(),24)); @@ -624,9 +696,9 @@ } Member urgeUser = new Member(); //濡傛灉宸插垎閰� wts 鍒欐槸鍌績wts - if(Constants.equalsInteger(workorder.getStatus(),Constants.workOrderStatus.waitAllocation)){ + if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey())){ urgeUser = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getQwId,workorder.getManagerId()).last("limit 1 ")); - }else if(Constants.equalsInteger(workorder.getStatus(),Constants.workOrderStatus.waitAllocation)){ + }else if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey())){ urgeUser = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getQwId,workorder.getDealerId()).last("limit 1 ")); }else{ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鐘舵�佸凡娴佽浆鏃犳硶杩涜璇ユ搷浣�"); @@ -642,7 +714,7 @@ @Override public void jobUrge(){ List<Workorder> workorderList = workorderMapper.selectList(new QueryWrapper<Workorder>().lambda().eq(Workorder::getIsdeleted,Constants.ZERO) - .in(Workorder::getStatus,Constants.workOrderStatus.waitAllocation,Constants.workOrderStatus.waitDeal) + .in(Workorder::getStatus,Constants.WorkOrderStatus.waitAllocation.getKey(),Constants.WorkOrderStatus.waitDeal.getKey()) .apply(" urge_time > now() ") ); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(workorderList)){ @@ -663,9 +735,9 @@ } Member urgeUser = new Member(); //濡傛灉宸插垎閰� wts 鍒欐槸鍌績wts - if(Constants.equalsInteger(workorder.getStatus(),Constants.workOrderStatus.waitAllocation)){ + if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey())){ urgeUser = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getQwId,workorder.getManagerId()).last("limit 1 ")); - }else if(Constants.equalsInteger(workorder.getStatus(),Constants.workOrderStatus.waitAllocation)){ + }else if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey())){ urgeUser = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getQwId,workorder.getDealerId()).last("limit 1 ")); }else{ return; @@ -702,9 +774,9 @@ workOrderDataVO.setTotal(Constants.ZERO); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(dataList)){ workOrderDataVO.setTotal(dataList.size()); - workOrderDataVO.setGcsTotal(dataList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.workOrderStatus.close)).collect(Collectors.toList()).size()); - workOrderDataVO.setSheTotal(dataList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.workOrderStatus.sheClose)).collect(Collectors.toList()).size()); - workOrderDataVO.setWtsTotal(dataList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.workOrderStatus.wtsClose)).collect(Collectors.toList()).size()); + workOrderDataVO.setGcsTotal(dataList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.WorkOrderStatus.close.getKey())).collect(Collectors.toList()).size()); + workOrderDataVO.setSheTotal(dataList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.WorkOrderStatus.sheClose.getKey())).collect(Collectors.toList()).size()); + workOrderDataVO.setWtsTotal(dataList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.WorkOrderStatus.wtsClose.getKey())).collect(Collectors.toList()).size()); workOrderDataVO.setUnCloseTotal(workOrderDataVO.getTotal() - workOrderDataVO.getSheTotal() - workOrderDataVO.getWtsTotal() - workOrderDataVO.getGcsTotal()); } workOrderDataVOList.add(workOrderDataVO); @@ -735,9 +807,9 @@ workOrderDataVO.setTotal(Constants.ZERO); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(dataList)){ workOrderDataVO.setTotal(dataList.size()); - workOrderDataVO.setGcsTotal(dataList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.workOrderStatus.close)).collect(Collectors.toList()).size()); - workOrderDataVO.setSheTotal(dataList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.workOrderStatus.sheClose)).collect(Collectors.toList()).size()); - workOrderDataVO.setWtsTotal(dataList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.workOrderStatus.wtsClose)).collect(Collectors.toList()).size()); + workOrderDataVO.setGcsTotal(dataList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.WorkOrderStatus.close.getKey())).collect(Collectors.toList()).size()); + workOrderDataVO.setSheTotal(dataList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.WorkOrderStatus.sheClose.getKey())).collect(Collectors.toList()).size()); + workOrderDataVO.setWtsTotal(dataList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.WorkOrderStatus.wtsClose.getKey())).collect(Collectors.toList()).size()); workOrderDataVO.setUnCloseTotal(workOrderDataVO.getTotal() - workOrderDataVO.getSheTotal() - workOrderDataVO.getWtsTotal() - workOrderDataVO.getGcsTotal()); } workOrderDataVOList.add(workOrderDataVO); -- Gitblit v1.9.3