From 30e858fa504b268b9b436afca0a1259cf6e8c488 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期二, 19 八月 2025 11:01:40 +0800 Subject: [PATCH] 优化 --- server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java | 269 +++++++++++++++++++++++++++++++++++------------------ 1 files changed, 176 insertions(+), 93 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 0507cab..5ddb640 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 @@ -94,6 +94,7 @@ //澶勭悊SHE浜嬩欢鐘舵�� Constants.WorkOrderStatus workOrderStatus = Constants.equalsInteger(workorder.getType(),Constants.ZERO)?Constants.WorkOrderStatus.close:Constants.WorkOrderStatus.waitConfirm; workorder.setStatus(workOrderStatus.getKey()); + workorder.setSheDealUserQwIds(workorder.getQwnoticeMemberIds()); workorderMapper.insert(workorder); //瀛樺偍DCA 闂璁板綍琛� @@ -185,14 +186,17 @@ }else{ textCard.setTitle(Constants.equalsInteger(workorder.getType(),Constants.ONE)?"銆怐CA涓婃姤銆�":"銆愯穼缁婃粦椋庨櫓涓婃姤銆�"); if(Constants.equalsInteger(workorder.getType(),Constants.THREE)){ - message = message + " <div class=\"normal\">"+ (org.apache.commons.lang3.StringUtils.isNotBlank(userName)?userName:"绯荤粺") + (Constants.equalsInteger(contentType,Constants.ZERO)?"浠诲姟鍒嗛厤缁欎綘":(Constants.equalsInteger(contentType,Constants.ONE)?"瀵硅宸ュ崟杩涜浜嗗偓淇冿紝璇峰敖蹇鐞�":"浠诲姟宸插鐞�")) +"</div>"; + message = message + " <div class=\"normal\">"+ (org.apache.commons.lang3.StringUtils.isNotBlank(userName)?userName:"绯荤粺") + (Constants.equalsInteger(contentType,Constants.ZERO)?"浠诲姟鍒嗛厤缁欎綘":(Constants.equalsInteger(contentType,Constants.ONE)?"瀵硅宸ュ崟杩涜浜嗗偓淇冿紝璇峰敖蹇鐞�":((Constants.equalsInteger(contentType,Constants.TWO)?"鎶勯�佺粰浣�":"浠诲姟宸插鐞�")))) +"</div>";//:"浠诲姟宸插鐞�")) +"</div>"; message = message + " <div class=\"normal\">"+ DateUtil.formatDate(new Date(),"yyyy-MM-dd HH:mm") +"/"+ workorder.getLocationName() +"/"+ categoryName+"</div>"; + if(Constants.equalsInteger(contentType,Constants.TWO)){ + message = message + " <div class=\"normal\">璇存槑 "+ csInfo +"</div>"; + } }else{ message = message + " <div class=\"normal\">"+ (org.apache.commons.lang3.StringUtils.isNotBlank(userName)?userName:"绯荤粺") + (Constants.equalsInteger(contentType,Constants.ZERO)?"浠诲姟鍒嗛厤缁欎綘":(Constants.equalsInteger(contentType,Constants.ONE)?"瀵硅宸ュ崟杩涜浜嗗偓淇冿紝璇峰敖蹇鐞�":((Constants.equalsInteger(contentType,Constants.TWO)?"鎶勯�佺粰浣�":"宸插鐞嗕竴椤�")))) +"</div>"; - message = message + " <div class=\"normal\">瑙傚療涓婚"+ categoryName +"</div>"; + message = message + " <div class=\"normal\">瑙傚療涓婚 "+ categoryName +"</div>"; message = message + " <div class=\"normal\">绗﹀悎锛�"+ workorder.getDcaYesNum() +" 涓嶇鍚堬細"+workorder.getDcaNoNum()+"</div>"; if(Constants.equalsInteger(contentType,Constants.TWO)){ - message = message + " <div class=\"normal\">璇存槑锛�"+ csInfo +"</div>"; + message = message + " <div class=\"normal\">璇存槑 "+ csInfo +"</div>"; } } textCard.setDescription(message); @@ -207,7 +211,7 @@ //澶勭悊涓婃姤鏃ュ織 DCA宸ュ崟 鏃ュ織瀛樺偍鑷冲瓙涓氬姟 涓嶅瓨鍦ㄤ簬鐖剁骇 涓庤穼缁婃粦 String logTitle = Constants.equalsInteger(workorder.getType(), Constants.THREE) ? "璺岀粖婊戦闄�" : "DCA"; workorder.setCreateDate(workorder.getSubmitDate()); - this.saveLog(null,workorder,Constants.ZERO,workorder.getMemberId(),workOrderStatus.getLogTitle().replace("{title}",logTitle),null,null); + this.saveLog(null,workorder,Constants.ZERO,workorder.getMemberId(),workOrderStatus.getLogTitle().replace("{title}",logTitle),null,null,null); } } @@ -269,6 +273,7 @@ dcaWorkOrder.setEventInfo(dcaNoProblemDTO.getEventInfo()); dcaWorkOrder.setQwnoticeMemberIds(workorder.getQwnoticeMemberIds()); dcaWorkOrder.setMemberNames(workorder.getMemberNames()); + dcaWorkOrder.setSheDealUserQwIds(dcaWorkOrder.getQwnoticeMemberIds()); workorderMapper.insert(dcaWorkOrder); //瀛樺偍鏃ュ織 this.dealLogData(dcaWorkOrder,workOrderStatus); @@ -404,10 +409,10 @@ * @param memberId * @param paramr2 杞氦缁欑殑澶勭悊浜� */ - public Integer saveLog(String beforeJson,Workorder afterWorkorder,Integer objType,Integer memberId,String title,String content,String paramr2){ + public Integer saveLog(String beforeJson,Workorder afterWorkorder,Integer objType,Integer memberId,String title,String content,String paramr2,String remark){ WorkorderLog workorderLog = new WorkorderLog(); - workorderLog.setCreateDate(afterWorkorder.getCreateDate()); - workorderLog.setEditDate(afterWorkorder.getCreateDate()); + workorderLog.setCreateDate(afterWorkorder.getEditDate()); + workorderLog.setEditDate(afterWorkorder.getEditDate()); workorderLog.setIsdeleted(Constants.ZERO); workorderLog.setBeforeContent(beforeJson); workorderLog.setAfterContent(JSONObject.toJSONString(afterWorkorder)); @@ -417,6 +422,7 @@ workorderLog.setObjType(objType); workorderLog.setTitle(title); workorderLog.setContent(content); + workorderLog.setRemark(remark); workorderLogMapper.insert(workorderLog); return workorderLog.getId(); } @@ -442,7 +448,7 @@ if(Objects.isNull(workorder.getMemberType()) || Objects.isNull(workorder.getOutJiuyi()) || (Constants.equalsInteger(workorder.getOutJiuyi(),Constants.ZERO) && Objects.isNull(workorder.getIsYiwushi())) - || (Constants.equalsInteger(workorder.getIsYiwushi(),Constants.ZERO) && Objects.isNull(workorder.getIsHurted())) + || (Constants.equalsInteger(workorder.getOutJiuyi(),Constants.ZERO) && Constants.equalsInteger(workorder.getIsYiwushi(),Constants.ZERO) && Objects.isNull(workorder.getIsHurted())) || Objects.isNull(workorder.getWorkRelated()) || (Constants.equalsInteger(workorder.getMemberType(),Constants.TWO) && StringUtils.isEmpty(workorder.getMemberNames())) || (Constants.equalsInteger(workorder.getMemberType(),Constants.ONE) && StringUtils.isEmpty(workorder.getMemberQwids())) @@ -500,10 +506,13 @@ if(Objects.isNull(workorder)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } + + workorder.setStatusName(Constants.WorkOrderStatus.getStatusName(workorder.getStatus())); this.dealButton(workorder,member); //鏌ヨ闄勪欢淇℃伅 List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda().eq(Multifile::getIsdeleted,Constants.ZERO) - .eq(Multifile::getObjId,workorder.getId()).orderByAsc(Multifile::getId)); + .eq(Multifile::getObjType,Constants.multiFileType.upload) + .eq(Multifile::getObjId,workorder.getId().toString()).orderByAsc(Multifile::getId)); String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +systemDictDataBiz.queryByCode(Constants.FTP,Constants.WORKORDER_FILE_PATH).getCode(); @@ -514,7 +523,6 @@ } workorder.setMultifileList(multifileList); } - //鏌ヨ鏃ュ織淇℃伅 workorder.setLogList(this.getLogList(workorder,member)); if(Constants.equalsInteger(workorder.getType(),Constants.ONE)){ @@ -523,10 +531,13 @@ param.setIsdeleted(Constants.ZERO); param.setDcaRecordId(workorder.getId()); List<Workorder> dcaChildList = findList(param); - for (Workorder dcaChild:dcaChildList) { - this.dealButton(dcaChild,member); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(dcaChildList)){ + for (Workorder dcaChild:dcaChildList) { + this.dealButton(dcaChild,member); + dcaChild.setStatusName(Constants.WorkOrderStatus.getStatusName(dcaChild.getStatus())); + } + workorder.setManagerId(dcaChildList.stream().filter(i->Objects.nonNull(i.getManagerId())).map(i->i.getManagerId()).collect(Collectors.joining(","))); } - workorder.setDcaChildList(dcaChildList); } return workorder; @@ -540,7 +551,7 @@ if(org.apache.commons.lang3.StringUtils.isNotBlank(workorder.getQwnoticeMemberIds())&& (Constants.equalsInteger(workorder.getStatus(),Constants.ZERO)|| Constants.equalsInteger(workorder.getStatus(),Constants.ONE)||Constants.equalsInteger(workorder.getStatus(),Constants.TWO))){ - closeUserList.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(","))); + closeUserList.addAll(Arrays.asList(workorder.getSheDealUserQwIds().split(","))); } if(org.apache.commons.lang3.StringUtils.isNotBlank(workorder.getManagerId())&& (Constants.equalsInteger(workorder.getStatus(),Constants.ONE)||Constants.equalsInteger(workorder.getStatus(),Constants.TWO))){ @@ -557,7 +568,7 @@ //寰呭垎閰嶇姸鎬� 澶勭悊杞氦鎸夐挳 if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey()) ){ - passOnUserList.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(","))); + passOnUserList.addAll(Arrays.asList(workorder.getSheDealUserQwIds().split(","))); } if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey()) || Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitDeal.getKey()) @@ -589,37 +600,41 @@ Boolean canOpenUrgeButton = true; for (WorkorderLog workorderLog:logList) { workorderLog.setUrgeButton(Constants.ZERO); - //鐗╀笟涓荤澶勭悊涓� - if(Constants.equalsInteger(workorder.getStatus(),Constants.ONE)){ - Member member = memberMapper.selectById(workorderLog.getParam1()); - if(Objects.nonNull(member) && org.apache.commons.lang3.StringUtils.isNotBlank(member.getQwId()) - && Objects.nonNull(loginMember) && Constants.equalsInteger(member.getId(),loginMember.getId()) - && workorder.getQwnoticeMemberIds().indexOf(member.getQwId())>=Constants.ZERO){ - workorderLog.setUrgeButton(Constants.ONE); + if(Constants.equalsInteger(workorderLog.getObjType(),Constants.TWO)||Constants.equalsInteger(workorderLog.getObjType(),Constants.ONE)){ + //鐗╀笟涓荤澶勭悊涓� + if(Constants.equalsInteger(workorder.getStatus(),Constants.ONE)){ + Member member = memberMapper.selectById(workorderLog.getParam1()); + if(Objects.nonNull(member) && org.apache.commons.lang3.StringUtils.isNotBlank(member.getQwId()) + && Objects.nonNull(loginMember) && Constants.equalsInteger(member.getId(),loginMember.getId()) + && workorder.getQwnoticeMemberIds().indexOf(member.getQwId())>=Constants.ZERO){ + workorderLog.setUrgeButton(Constants.ONE); + } + } + //宸ョ▼甯堝鐞嗕腑 + if(Constants.equalsInteger(workorder.getStatus(),Constants.TWO)){ + Member member = memberMapper.selectById(workorderLog.getParam1()); + if(Objects.nonNull(member) && org.apache.commons.lang3.StringUtils.isNotBlank(member.getQwId()) + && canOpenUrgeButton + && (workorder.getQwnoticeMemberIds().indexOf(member.getQwId()) >= Constants.ZERO || member.getQwId().equals(workorder.getManagerId()) ) + ){ + workorderLog.setUrgeButton(Constants.ONE); + canOpenUrgeButton = false; + } } } - //宸ョ▼甯堝鐞嗕腑 - if(Constants.equalsInteger(workorder.getStatus(),Constants.TWO)){ - Member member = memberMapper.selectById(workorderLog.getParam1()); - if(Objects.nonNull(member) && org.apache.commons.lang3.StringUtils.isNotBlank(member.getQwId()) - && canOpenUrgeButton - && (workorder.getQwnoticeMemberIds().indexOf(member.getQwId()) >= Constants.ZERO || member.getQwId().equals(workorder.getManagerId()) ) - ){ - workorderLog.setUrgeButton(Constants.ONE); - canOpenUrgeButton = false; + if(!Constants.equalsInteger(workorderLog.getObjType(),Constants.FOUR)){ + //鏌ヨ闄勪欢淇℃伅 + List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() + .eq(Multifile::getIsdeleted,Constants.ZERO) + .ne(Multifile::getObjType,Constants.multiFileType.upload) + .eq(Multifile::getObjId,workorderLog.getId()) + .orderByAsc(Multifile::getId)); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ + for (Multifile multifile:multifileList) { + multifile.setFileurlFull(path+multifile.getFileurl()); + } + workorderLog.setMultifileList(multifileList); } - } - //鏌ヨ闄勪欢淇℃伅 - List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() - .eq(Multifile::getIsdeleted,Constants.ZERO) - .ne(Multifile::getObjType,Constants.multiFileType.upload) - .eq(Multifile::getObjId,workorderLog.getId()) - .orderByAsc(Multifile::getId)); - if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ - for (Multifile multifile:multifileList) { - multifile.setFileurlFull(path+multifile.getFileurl()); - } - workorderLog.setMultifileList(multifileList); } } } @@ -701,7 +716,8 @@ .ne(org.apache.commons.lang3.StringUtils.isNotBlank(pageWrap.getQwId()),Workorder::getType,Constants.TWO) .in(Objects.nonNull(pageWrap.getDealStatus())&& Constants.equalsInteger(pageWrap.getDealStatus(),Constants.ZERO), - Workorder::getStatus,Constants.WorkOrderStatus.waitConfirm.getKey(),Constants.WorkOrderStatus.waitAllocation.getKey(),Constants.WorkOrderStatus.waitDeal.getKey()) + Workorder::getStatus,Constants.WorkOrderStatus.waitConfirm.getKey(), + Constants.WorkOrderStatus.waitAllocation.getKey(),Constants.WorkOrderStatus.waitDeal.getKey()) .in(Objects.nonNull(pageWrap.getDealStatus())&& Constants.equalsInteger(pageWrap.getDealStatus(),Constants.ONE), Workorder::getStatus,Constants.WorkOrderStatus.sheClose.getKey(),Constants.WorkOrderStatus.close.getKey(),Constants.WorkOrderStatus.wtsClose.getKey()) @@ -752,7 +768,9 @@ .eq( pageWrap.getDcaNoNum() != null, Workorder::getDcaNoNum, pageWrap.getDcaNoNum()) .eq( pageWrap.getDcaRecordId() != null, Workorder::getDcaRecordId, pageWrap.getDcaRecordId()) .likeRight( pageWrap.getTypeIdPath() != null,"c3.id_path", pageWrap.getTypeIdPath()) - .eq( pageWrap.getDcaCsIds() != null, Workorder::getDcaCsIds, pageWrap.getDcaCsIds()) ; + .eq( pageWrap.getDcaCsIds() != null, Workorder::getDcaCsIds, pageWrap.getDcaCsIds()) + .ge( pageWrap.getQueryStartTime() != null, Workorder::getCreateDate,pageWrap.getQueryStartTime()) + .le( pageWrap.getQueryEndTime() != null, Workorder::getCreateDate,pageWrap.getQueryEndTime()) ; if ( pageWrap.getMemberName() != null) { queryWrapper.and( ms->ms.like(Member::getName, pageWrap.getMemberName()) .or().like(Member::getPhone, pageWrap.getMemberName()) ); @@ -767,7 +785,13 @@ Utils.MP.blankToNull(pageWrap.getModel()); pageWrap.getModel().setIsdeleted(Constants.ZERO); MPJLambdaWrapper<Workorder> queryWrapper = getJoinQueryMapper(pageWrap.getModel()); - return PageData.from(workorderMapper.selectJoinPage(page,Workorder.class, queryWrapper)); + PageData<Workorder> result = PageData.from(workorderMapper.selectJoinPage(page,Workorder.class, queryWrapper)); + if(result!=null && result.getRecords()!=null){ + for(Workorder w : result.getRecords()){ + w.setStatusName(Constants.WorkOrderStatus.getStatusName(w.getStatus())); + } + } + return result; } @Override @@ -829,7 +853,7 @@ //鎻愪氦鍚庣殑 寰呯‘璁�/寰呭垵瀹$姸鎬� 濡傛灉鍘诲叧闂� 鍙湁宸ュ崟閲岀粦瀹氱殑SHE浜哄憳鍙互鍏抽棴 if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())){ //鍒ゆ柇SHE浜哄憳鍐呮槸鍚︽湁褰撳墠鐧诲綍璐﹀彿 - if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO){ + if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); } workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey()); @@ -837,22 +861,36 @@ qwIds.remove(closeDTO.getMember().getQwId()); }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())){ + if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO && !workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); } - workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); + if(workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ + workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); + }else if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){ + workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey()); + }else{ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); + } qwIds.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(","))); qwIds.add(workorder.getManagerId()); qwIds.remove(closeDTO.getMember().getQwId()); }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()) + if(workorder.getSheDealUserQwIds().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.getKey()); + if(workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ + workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); + }else if(workorder.getDealerId().equals(closeDTO.getMember().getQwId())){ + workorder.setStatus(Constants.WorkOrderStatus.close.getKey()); + }else if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){ + workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey()); + }else{ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); + } qwIds.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(","))); - qwIds.add(workorder.getDealerId()); + qwIds.add(workorder.getManagerId()); qwIds.remove(closeDTO.getMember().getQwId()); }else{ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"宸ュ崟鐘舵�佸凡娴佽浆"); @@ -860,9 +898,21 @@ workorder.setEditDate(new Date()); workorder.setDealTime(new Date()); workorder.setDealInfo(closeDTO.getInfo()); + //瀛愬伐鍗� 鍒欐煡璇㈢埗绾у伐鍗曟暟鎹� 鏄惁浠樺瓨鍦ㄦ湭瀹屾垚鐨� 濡傛灉涓嶅瓨鍦ㄦ湭瀹屾垚鐨勫垯杩涜涓诲伐鍗曠姸鎬佸彉鍖� + if(Constants.equalsInteger(workorder.getType(),Constants.TWO)&& + workorderMapper.selectCount(new QueryWrapper<Workorder>().lambda().eq(Workorder::getDcaRecordId,workorder.getDcaRecordId()).eq(Workorder::getIsdeleted,Constants.ZERO) + .ne(Workorder::getId,workorder.getId()).in(Workorder::getStatus, + Constants.WorkOrderStatus.waitConfirm.getKey(),Constants.WorkOrderStatus.waitAllocation.getKey(),Constants.WorkOrderStatus.waitDeal.getKey() + ))<=Constants.ZERO){ + Workorder parentWorkorder = new Workorder(); + parentWorkorder.setId(workorder.getDcaRecordId()); + parentWorkorder.setEditDate(new Date()); + parentWorkorder.setStatus(Constants.WorkOrderStatus.close.getKey()); + workorderMapper.updateById(parentWorkorder); + } workorderMapper.updateById(workorder); //澶勭悊涓婃姤鏃ュ織 - Integer logId = this.saveLog(beforeJson,workorder,Constants.THREE,workorder.getMemberId(),"浠诲姟宸插鐞�",closeDTO.getInfo(),null); + Integer logId = this.saveLog(beforeJson,workorder,Constants.THREE,closeDTO.getMember().getId(),"浠诲姟宸插鐞�",closeDTO.getInfo(),null,closeDTO.getInfo()); List<Multifile> multifileList = closeDTO.getMultifileList(); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ for (Multifile multifile:multifileList) { @@ -911,24 +961,32 @@ if(!Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"宸ュ崟鐘舵�佸凡娴佽浆"); } + if(workorder.getSheDealUserQwIds().indexOf(passOnDTO.getMember().getQwId())<Constants.ZERO){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝闈炲甫鎮ㄥ鐞嗙殑宸ュ崟锛屾棤娉曡繘琛岃鎿嶄綔"); + } workorder.setManagerId(member.getQwId()); workorder.setStatus(Constants.WorkOrderStatus.waitAllocation.getKey()); + workorder.setSheDealUserQwIds(passOnDTO.getMember().getQwId()); + }else{ if(!(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey()) || Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitDeal.getKey()))){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"宸ュ崟鐘舵�佸凡娴佽浆"); } + if(!workorder.getManagerId().equals(passOnDTO.getMember().getQwId())){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝闈炲甫鎮ㄥ鐞嗙殑宸ュ崟锛屾棤娉曡繘琛岃鎿嶄綔"); + } workorder.setDealerId(member.getQwId()); workorder.setStatus(Constants.WorkOrderStatus.waitDeal.getKey()); } workorder.setEditDate(new Date()); - workorder.setUrgeDate(DateUtil.afterMinutesDate(new Date(),2)); + workorder.setUrgeDate(DateUtil.afterMinutesDate(new Date(),10)); workorderMapper.updateById(workorder); String paramr2 = member.getCompanyName()+"/"+member.getName(); //澶勭悊涓婃姤鏃ュ織 Integer logId = this.saveLog(beforeJson,workorder, Constants.equalsInteger(passOnDTO.getPassOnType(),Constants.ZERO)?Constants.ONE:Constants.TWO - ,workorder.getMemberId(),"浠诲姟鍒嗛厤",passOnDTO.getInfo(),paramr2); + ,passOnDTO.getMember().getId(),"浠诲姟鍒嗛厤",passOnDTO.getInfo(),paramr2,null); List<Multifile> multifileList = passOnDTO.getMultifileList(); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ for (Multifile multifile:multifileList) { @@ -1028,6 +1086,7 @@ status = 2; info ="鏃犳晥鍛樺伐淇℃伅锛屾棤娉曞彂閫侀偖绠�"; }else{ + //閭宸插彂閫侊細鎴愬姛锛歔"姹熻悕閭jp@doumee.com"]澶辫触锛歔"姹熻悕/鏃犻偖绠�","鎴村己寮�/閭null","閮檯鏂囨/閭null"] List<String> successInfo = new ArrayList<>(); List<String> errorInfo = new ArrayList<>(); Map<String,String> contentForm = getEmailContentFormByModel(workorder); @@ -1128,7 +1187,7 @@ public void urge(Integer workorderId,Member member){ Workorder workorder = workorderMapper.selectById(workorderId); workorder.setEditDate(new Date()); - workorder.setUrgeDate(DateUtil.afterMinutesDate(new Date(),2));//DateUtil.afterHoursDate(new Date(),24)); + workorder.setUrgeDate(DateUtil.afterMinutesDate(new Date(),10)); workorderMapper.updateById(workorder); if(Objects.isNull(workorder)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌宸ュ崟鏁版嵁"); @@ -1145,7 +1204,7 @@ this.saveLog(null,workorder, Constants.FOUR - ,member.getId(),"鍌績","宸插偓淇� "+urgeUser.getCompanyName() + "/" + urgeUser.getName(),null); + ,member.getId(),"鍌績","宸插偓淇� "+urgeUser.getCompanyName() + "/" + urgeUser.getName(),null,null); //鍙戦�佷紒寰�氱煡 Category category = categoryMapper.selectById(workorder.getTypeId()); if(Objects.nonNull(category)){ @@ -1159,13 +1218,13 @@ public void jobUrge(){ List<Workorder> workorderList = workorderMapper.selectList(new QueryWrapper<Workorder>().lambda().eq(Workorder::getIsdeleted,Constants.ZERO) .in(Workorder::getStatus,Constants.WorkOrderStatus.waitAllocation.getKey(),Constants.WorkOrderStatus.waitDeal.getKey()) - .apply(" urge_time > now() ") + .apply(" URGE_DATE < now() ") ); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(workorderList)){ for (Workorder workorder:workorderList) { this.autoUrge(workorder); workorder.setEditDate(new Date()); - workorder.setUrgeDate(DateUtil.afterMinutesDate(new Date(),2));//DateUtil.afterHoursDate(new Date(),24)); + workorder.setUrgeDate(DateUtil.afterMinutesDate(new Date(),10));//DateUtil.afterHoursDate(new Date(),24)); workorderMapper.updateById(workorder); } } @@ -1325,11 +1384,13 @@ @Override public WorkorderIndexNumVO getIndexData(Workorder workorder) { WorkorderIndexNumVO model = new WorkorderIndexNumVO(); - List<WorkOrderDataVO> workOrderDataVOList = new ArrayList<>(); + Date startdate = getStartDateByType(workorder.getTimeType()); //鏌ヨ浠婂勾鎵�鏈夌殑鏁版嵁 List<Workorder> list = workorderMapper.selectJoinList(Workorder.class,new MPJLambdaWrapper<Workorder>() .select("type,count(id) as num") .eq(Workorder::getIsdeleted,Constants.ZERO) + .ge(startdate!=null,Workorder::getCreateDate,startdate) +// .lt(endDate!=null,Workorder::getCreateDate,endDate) .groupBy(Workorder::getType )); if(list !=null){ for(Workorder w : list){ @@ -1348,34 +1409,12 @@ } } } - List<Workorder> todays = workorderMapper.selectJoinList(Workorder.class,new MPJLambdaWrapper<Workorder>() - .select("type,count(id) as num") - .eq(Workorder::getIsdeleted,Constants.ZERO) - .apply("to_days(create_date)=to_days(now())") - .groupBy(Workorder::getType )); - if(todays !=null){ - for(Workorder w : todays){ - if(Constants.equalsInteger(w.getType(),Constants.ZERO)){ - //SHE - model.setTodaySheNum(Constants.formatLongNum(w.getNum())); - }else if(Constants.equalsInteger(w.getType(),Constants.ONE)){ - //DCA鎻愪氦鏁� - model.setTodayDcaNum(Constants.formatLongNum(w.getNum())); - }else if(Constants.equalsInteger(w.getType(),Constants.TWO)){ - //DCA瀛愬伐鍗� - model.setTodayDcaChildNum(Constants.formatLongNum(w.getNum())); - }else if(Constants.equalsInteger(w.getType(),Constants.THREE)){ - //璺岀粖婊� - model.setTodayDbhNum(Constants.formatLongNum(w.getNum())); - } - } - } - List<Workorder> yeslist = workorderMapper.selectJoinList(Workorder.class,new MPJLambdaWrapper<Workorder>() .select("type,count(id) as num") .eq(Workorder::getIsdeleted,Constants.ZERO) .in(Workorder::getStatus,Constants.THREE,Constants.FOUR,Constants.FIVE) .in(Workorder::getType,Constants.THREE,Constants.TWO) + .ge(startdate!=null,Workorder::getCreateDate,startdate) .groupBy(Workorder::getType )); if(yeslist !=null){ for(Workorder w : yeslist){ @@ -1390,20 +1429,64 @@ } } } - Workorder dcaList = workorderMapper.selectJoinOne(Workorder.class,new MPJLambdaWrapper<Workorder>() - .select("sum(dca_yes_num) as dcaYesNum,sum(dca_no_num) as dcaNoNum") - .eq(Workorder::getIsdeleted,Constants.ZERO) - .eq(Workorder::getType,Constants.ONE) ); - if(dcaList !=null){ - //DCA绗﹀悎椤瑰拰涓嶇鍚堥」缁熻 - model.setDcaYesNum((long)Constants.formatIntegerNum(dcaList.getDcaYesNum())); - model.setDcaNoNum((long)Constants.formatIntegerNum(dcaList.getDcaNoNum())); + if(workorder.getTimeType() == null){ + List<Workorder> todays = workorderMapper.selectJoinList(Workorder.class,new MPJLambdaWrapper<Workorder>() + .select("type,count(id) as num") + .eq(Workorder::getIsdeleted,Constants.ZERO) + .apply("to_days(create_date)=to_days(now())") + .groupBy(Workorder::getType )); + if(todays !=null){ + for(Workorder w : todays){ + if(Constants.equalsInteger(w.getType(),Constants.ZERO)){ + //SHE + model.setTodaySheNum(Constants.formatLongNum(w.getNum())); + }else if(Constants.equalsInteger(w.getType(),Constants.ONE)){ + //DCA鎻愪氦鏁� + model.setTodayDcaNum(Constants.formatLongNum(w.getNum())); + }else if(Constants.equalsInteger(w.getType(),Constants.TWO)){ + //DCA瀛愬伐鍗� + model.setTodayDcaChildNum(Constants.formatLongNum(w.getNum())); + }else if(Constants.equalsInteger(w.getType(),Constants.THREE)){ + //璺岀粖婊� + model.setTodayDbhNum(Constants.formatLongNum(w.getNum())); + } + } + } + Workorder dcaList = workorderMapper.selectJoinOne(Workorder.class,new MPJLambdaWrapper<Workorder>() + .select("sum(dca_yes_num) as dcaYesNum,sum(dca_no_num) as dcaNoNum") + .eq(Workorder::getIsdeleted,Constants.ZERO) + .eq(Workorder::getType,Constants.ONE) ); + if(dcaList !=null){ + //DCA绗﹀悎椤瑰拰涓嶇鍚堥」缁熻 + model.setDcaYesNum((long)Constants.formatIntegerNum(dcaList.getDcaYesNum())); + model.setDcaNoNum((long)Constants.formatIntegerNum(dcaList.getDcaNoNum())); + } } + + + return model; } + private Date getStartDateByType(Integer timeType) { + Date date = null; + if(timeType == null){ + return null; + } else if (timeType == 0) { + //鏈懆 + date = DateUtil.getBeginDayOfWeek(0); + }else if (timeType == 1) { + //鏈湀 + date = DateUtil.getBeginDayOfMonth(0); + }else if (timeType == 2) { + //鏈搴� + date = DateUtil.getBeginDayOfSeason(0); + }else if (timeType == 3) { + //鏈勾 + date = DateUtil.getBeginDayOfYear(0); + } - - + return date; + } } -- Gitblit v1.9.3