From 0c1e0ce669b87cb46461682cb7fe5507c9ef7952 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期二, 22 四月 2025 17:19:25 +0800 Subject: [PATCH] 工单业务 --- server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java | 67 ++++++++++++++++++++++++--------- 1 files changed, 48 insertions(+), 19 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 8b80a22..1b6ba87 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 @@ -207,7 +207,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); } } @@ -404,7 +404,7 @@ * @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.getEditDate()); workorderLog.setEditDate(afterWorkorder.getEditDate()); @@ -417,6 +417,7 @@ workorderLog.setObjType(objType); workorderLog.setTitle(title); workorderLog.setContent(content); + workorderLog.setRemark(remark); workorderLogMapper.insert(workorderLog); return workorderLog.getId(); } @@ -613,18 +614,19 @@ } } } - - //鏌ヨ闄勪欢淇℃伅 - 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()); + 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); } - workorderLog.setMultifileList(multifileList); } } } @@ -706,7 +708,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()) @@ -847,7 +850,13 @@ 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.getKey()); + if(workorder.getManagerId().equals(closeDTO.getMember().getQwId())){ + workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); + }else if(workorder.getQwnoticeMemberIds().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()); @@ -857,7 +866,15 @@ && !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.getQwnoticeMemberIds().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()); @@ -867,9 +884,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,closeDTO.getMember().getId(),"浠诲姟宸插鐞�",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) { @@ -935,7 +964,7 @@ //澶勭悊涓婃姤鏃ュ織 Integer logId = this.saveLog(beforeJson,workorder, Constants.equalsInteger(passOnDTO.getPassOnType(),Constants.ZERO)?Constants.ONE:Constants.TWO - ,passOnDTO.getMember().getId(),"浠诲姟鍒嗛厤",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) { @@ -1152,7 +1181,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)){ -- Gitblit v1.9.3