From e12f190f8237c93a5054272ccd9f2eb15ac9e48a Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期四, 17 四月 2025 18:17:18 +0800 Subject: [PATCH] 工单业务 --- server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java | 44 ++++++++++++++++++++++++++++---------------- 1 files changed, 28 insertions(+), 16 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 627ae9f..06e4bb2 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 @@ -82,12 +82,12 @@ @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public Integer create(Workorder workorder) { this.isValidBaseParam(workorder); - workorder.setCreateDate(new Date()); workorder.setEditDate(new Date()); workorder.setMemberId(workorder.getMemberId()); workorder.setIsdeleted(Constants.ZERO); workorder.setCode(this.getNextCode(workorder.getType())); workorder.setEmailStatus(Constants.ZERO); + workorder.setCreateDate(new Date()); //澶勭悊浜哄憳绫讳俊鎭� this.dealNoticeData(workorder); //澶勭悊SHE浜嬩欢鐘舵�� @@ -143,10 +143,13 @@ qywxSendMsgRequest.setTextcard(textCard); QywxUtil.sendMsg(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(), qywxSendMsgRequest); + + + //https://open.weixin.qq.com/connect/oauth2/authorize?appid=${corpId}&redirect_uri=https://dmtest.ahapp.net/lianhelihua_web/&response_type=code&scope=snsapi_base&state={status}#wechat_redirect } + private static final String jumpUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={corpId}&redirect_uri={ourUrl}"; - private static final String [] qwDetailUrls = {"/pages/details_she/details_she","/pages/workOrder_dca/workOrder_dca","","/pages/workOrder_she/workOrder_she"}; /** * 閫氱煡鏂囨鏁寸悊 @@ -160,7 +163,9 @@ public QywxTextCardMsgRequest dealMessageContent(Workorder workorder,String userName ,String categoryName,Integer contentType,String csInfo){ QywxTextCardMsgRequest textCard = new QywxTextCardMsgRequest(); String message = ""; - textCard.setUrl(qwDetailUrls[workorder.getType()]+"?id="+workorder.getId()); + String url = jumpUrl.replace("{corpId}",systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_CORPID).getCode()); + String jumpOurUrl = systemDictDataBiz.queryByCode(Constants.QYWX,Constants.JUMP_OUT_URL).getCode().replace("{status}",workorder.getType()+"_"+workorder.getId()); + textCard.setUrl(url.replace("{ourUrl}",jumpOurUrl)); if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){ textCard.setTitle("銆怱HE浜嬩欢涓婃姤銆�"); if(Constants.equalsInteger(workorder.getMemberType(),Constants.ZERO)){ @@ -168,7 +173,7 @@ }else { message = Constants.equalsInteger(workorder.getMemberType(),Constants.ONE)?"鍚屼簨":"渚涘簲鍟�"; } - message = message + "-" + workorder.getMemberNames() + " " + DateUtil.formatDate(new Date(),"yyyy-MM-dd HH:mm") + workorder.getLocationName() + categoryName; + message = message + "-" + workorder.getMemberNames() + " " + DateUtil.formatDate(new Date(),"yyyy-MM-dd HH:mm") + "/" +workorder.getLocationName() + "/" + categoryName; textCard.setDescription("<div class=\"normal\">"+message+"</div>"); }else{ @@ -195,6 +200,7 @@ if (Constants.equalsInteger(workorder.getType(), Constants.THREE) || Constants.equalsInteger(workorder.getType(), Constants.TWO) ) { //澶勭悊涓婃姤鏃ュ織 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); } } @@ -271,6 +277,9 @@ multifileMapper.insert(multifileList); } } + }else{ + workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey()); + workorderMapper.updateById(workorder); } //鏌ヨ涓婚涓嬬殑鎵�鏈夎瀵熼」 @@ -279,13 +288,16 @@ //瀛樺偍DCA宸ュ崟璇︽儏 Map<String,Object> detail = new HashMap<>(); detail.put("title","瑙傚療涓婚锛�"+type.getName()); - List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda().eq(Category::getType,4).eq(Category::getParentId,workorder.getTypeId())); + List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda().eq(Category::getType,4) + .eq(Category::getIsdeleted,Constants.ZERO) + .eq(Category::getParentId,workorder.getTypeId())); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(categoryList)){ List<Map<String,Object>> childMapList = new ArrayList<>(); for (Category category:categoryList) { Map<String,Object> childMap = new HashMap<>(); childMap.put("childTitle",category.getName()); List<Category> problemList = categoryMapper.selectList(new QueryWrapper<Category>().lambda() + .eq(Category::getIsdeleted,Constants.ZERO) .eq(Category::getType,6).eq(Category::getParentId,category.getId())); List<Map<String,Object>> problemMapList = new ArrayList<>(); Integer index = Constants.ONE; @@ -384,8 +396,8 @@ */ public Integer saveLog(String beforeJson,Workorder afterWorkorder,Integer objType,Integer memberId,String title,String content,String paramr2){ WorkorderLog workorderLog = new WorkorderLog(); - workorderLog.setCreateDate(new Date()); - workorderLog.setEditDate(new Date()); + workorderLog.setCreateDate(afterWorkorder.getCreateDate()); + workorderLog.setEditDate(afterWorkorder.getCreateDate()); workorderLog.setIsdeleted(Constants.ZERO); workorderLog.setBeforeContent(beforeJson); workorderLog.setAfterContent(JSONObject.toJSONString(afterWorkorder)); @@ -564,7 +576,7 @@ 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()) - && member.getQwId().equals(workorder.getManagerId()) ){ + && workorder.getQwnoticeMemberIds().indexOf(member.getQwId())>=Constants.ZERO){ workorderLog.setUrgeButton(Constants.ONE); } } @@ -572,7 +584,7 @@ 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()) - && member.getQwId().equals(workorder.getDealerId()) && canOpenUrgeButton){ + && member.getQwId().equals(workorder.getManagerId()) && canOpenUrgeButton){ workorderLog.setUrgeButton(Constants.ONE); canOpenUrgeButton = false; } @@ -725,7 +737,7 @@ queryWrapper.and( ms->ms.like(Member::getName, pageWrap.getMemberName()) .or().like(Member::getPhone, pageWrap.getMemberName()) ); } - queryWrapper.orderByDesc(Workorder::getProblemId); + queryWrapper.orderByDesc(Workorder::getId); return queryWrapper; } @@ -809,7 +821,7 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); } workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); - qwIds = Arrays.asList(workorder.getQwnoticeMemberIds()); + 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())){ @@ -819,7 +831,7 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊"); } workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey()); - qwIds = Arrays.asList(workorder.getQwnoticeMemberIds()); + qwIds.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(","))); qwIds.add(workorder.getDealerId()); qwIds.remove(closeDTO.getMember().getQwId()); }else{ @@ -859,11 +871,11 @@ public void passOn(PassOnDTO passOnDTO){ if(Objects.isNull(passOnDTO) || Objects.isNull(passOnDTO.getWorkorderId()) - || Objects.isNull(passOnDTO.getPassOnUserId()) + || org.apache.commons.lang3.StringUtils.isBlank(passOnDTO.getPassOnUserId()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } - Member member = memberMapper.selectById(passOnDTO.getPassOnUserId()); + Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getQwId,passOnDTO.getPassOnUserId())); if(Objects.isNull(member)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌琚浆浜や汉淇℃伅"); } @@ -897,7 +909,7 @@ Integer logId = this.saveLog(beforeJson,workorder, Constants.equalsInteger(passOnDTO.getPassOnType(),Constants.ZERO)?Constants.ONE:Constants.TWO ,workorder.getMemberId(),"浠诲姟鍒嗛厤",passOnDTO.getInfo(),paramr2); - List<Multifile> multifileList = workorder.getMultifileList(); + List<Multifile> multifileList = passOnDTO.getMultifileList(); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ for (Multifile multifile:multifileList) { multifile.setObjId(logId); @@ -1110,7 +1122,7 @@ } this.saveLog(null,workorder, - Constants.ONE + Constants.FOUR ,member.getId(),"鍌績","宸插偓淇� "+urgeUser.getCompanyName() + "/" + urgeUser.getName(),null); //鍙戦�佷紒寰�氱煡 Category category = categoryMapper.selectById(workorder.getTypeId()); -- Gitblit v1.9.3