From d866f110ae6534eeb1caa35e1ea0d5b9154bd6af Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 11 四月 2025 09:08:07 +0800
Subject: [PATCH] 工单业务

---
 server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java |  258 +++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 185 insertions(+), 73 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 c6a91b9..36aae5b 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
@@ -14,9 +14,7 @@
 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;
-import com.doumee.dao.web.dto.DCANoProblemDTO;
-import com.doumee.dao.web.dto.PassOnDTO;
+import com.doumee.dao.web.dto.*;
 import com.doumee.dao.web.vo.WorkOrderDataVO;
 import com.doumee.service.business.WorkorderService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -67,6 +65,9 @@
     @Autowired
     private CategoryMapper categoryMapper;
 
+    @Autowired
+    private NoticesMapper noticesMapper;
+
     @Resource(name="sessionRedisTemplate")
     private RedisTemplate<Object, Serializable> redisTemplate;
 
@@ -85,84 +86,93 @@
         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,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);
-
+        Member member = memberMapper.selectById(workorder.getMemberId());
+        Category category = categoryMapper.selectById(workorder.getTypeId());
+        if(Objects.nonNull(member)&&Objects.nonNull(category)){
+            // 鍙戦�佷紒寰�氱煡
+            this.sendQwMsg(workorder,workorder.getQwnoticeMemberIds(),member,category.getName(),Constants.ZERO,null);
+        }
+        //瀛樺偍寰呭姙浜哄憳淇℃伅
+        this.saveNotice(Arrays.asList(workorder.getQwnoticeMemberIds().split(",")),workorder.getId(),Constants.ZERO,Constants.ZERO);
         return workorder.getId();
     }
 
 
-    public void sendQwMsg(Workorder workorder){
+    /**
+     * 鍙戦�侀�氱煡
+     * @param workorder
+     * @param qwIds 娑堟伅鎺ユ敹浜�
+     * @param member 鎿嶄綔浜哄悕绉�
+     * @param categoryName
+     * @param contentType 0=姝e父閫氱煡锛�1=鍌績锛�2=鎶勯�� 3=宸插鐞嗕竴椤�/浠诲姟宸插鐞�
+     * @param csInfo 鎶勯�佷俊鎭�
+     */
+    public void sendQwMsg(Workorder workorder,String qwIds,Member member,String categoryName,Integer contentType,String csInfo){
         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{
-
+        qywxSendMsgRequest.setTouser(qwIds.replace(",","|"));
+        qywxSendMsgRequest.setAgentid(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_AGENTID).getCode());
+        String sendUser = "";
+        if(Objects.nonNull(member)){
+            if(org.apache.commons.lang3.StringUtils.isNotBlank(member.getName())){
+                sendUser =  member.getName();
+            }
+            if(org.apache.commons.lang3.StringUtils.isNotBlank(member.getCompanyName())){
+                sendUser =  member.getCompanyName()+"/" + sendUser ;
             }
         }
+        QywxTextCardMsgRequest textCard = this.dealMessageContent(workorder,sendUser,categoryName,contentType,csInfo);
         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)){
-//
-//            }
-//
-//
-//
-//        }
-//
-//    }
+    /**
+     * 閫氱煡鏂囨鏁寸悊
+     * @param workorder
+     * @param userName 鎿嶄綔浜哄悕绉�  閮ㄩ棬+鍚嶇О
+     * @param categoryName
+     * @param contentType 0=姝e父閫氱煡锛�1=鍌績锛堣穼缁婃粦/DCA锛夛紱2=鎶勯�侊紙DCA锛� 3=宸插鐞嗕竴椤�/浠诲姟宸插鐞�
+     * @param csInfo 鎶勯�佷俊鎭�
+     * @return
+     */
+    public QywxTextCardMsgRequest dealMessageContent(Workorder workorder,String userName ,String categoryName,Integer contentType,String csInfo){
+        QywxTextCardMsgRequest textCard = new QywxTextCardMsgRequest();
+        String message = "";
+        if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){
+            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() + categoryName;
+            textCard.setDescription(" <div class=\"normal\">"+message+"</div>");
+        }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\">"+  DateUtil.formatDate(new Date(),"yyyy-MM-dd HH:mm") +"/"+ workorder.getLocationName() +"/"+  categoryName+"</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\">绗﹀悎锛�"+ workorder.getDcaYesNum()  +" 涓嶇鍚堬細"+workorder.getDcaNoNum()+"</div>";
+                if(Constants.equalsInteger(contentType,Constants.TWO)){
+                    message = message + " <div class=\"normal\">璇存槑锛�"+ csInfo +"</div>";
+                }
+            }
+            textCard.setDescription(message);
+        }
+        return textCard;
+    }
 
 
 
@@ -207,7 +217,8 @@
                     dcaWorkOrder.setCreateDate(new Date());
                     dcaWorkOrder.setEditDate(new Date());
                     dcaWorkOrder.setMemberId(workorder.getMemberId());
-                    dcaWorkOrder.setTypeId(dcaNoProblemDTO.getProblemId());
+                    dcaWorkOrder.setTypeId(workorder.getTypeId());
+                    dcaWorkOrder.setCategoryId(Integer.toString(problem.getParentId()));
                     dcaWorkOrder.setType(Constants.TWO);
                     dcaWorkOrder.setStatus(workOrderStatus.getKey());
                     dcaWorkOrder.setIsdeleted(Constants.ZERO);
@@ -256,6 +267,9 @@
                     .eq(Managers::getIsdeleted,Constants.ZERO)
                     .eq(Managers::getType,Constants.ZERO).orderByAsc(Managers::getSortnum)
             );
+            if(Objects.isNull(managersList)){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌SHE澶勭悊鎶勯�佷汉鍛�");
+            }
             if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(managersList)){
                 workorder.setQwnoticeMemberIds(managersList.stream().map(i->i.getMemberId().toString()).collect(Collectors.joining(",")));
                 if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){
@@ -332,6 +346,7 @@
         if(Constants.equalsInteger(workorder.getType(),Constants.ONE)){
             if(Objects.isNull(workorder.getDcaYesNum())
                 || Objects.isNull(workorder.getDcaNoNum())
+                    || Objects.isNull(workorder.getCategoryId())
             ){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST);
             }
@@ -658,12 +673,14 @@
         if(Objects.isNull(workorder)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌宸ュ崟鏁版嵁");
         }
-        if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"SHE宸ュ崟鏃犳硶杩涜璇ユ搷浣�");
+        if(Constants.equalsInteger(workorder.getType(),Constants.ZERO)||Constants.equalsInteger(workorder.getType(),Constants.ONE)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"SHE銆丏CA宸ュ崟鏃犳硶杩涜璇ユ搷浣�");
         }
         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(),"宸ュ崟鐘舵�佸凡娴佽浆");
         }
+        //浼佸井閫氱煡浜� 浼佸井涓婚敭 
+        List<String> qwIds = new ArrayList<>();
         //鎻愪氦鍚庣殑 寰呯‘璁�/寰呭垵瀹$姸鎬� 濡傛灉鍘诲叧闂� 鍙湁宸ュ崟閲岀粦瀹氱殑SHE浜哄憳鍙互鍏抽棴
         if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())){
             //鍒ゆ柇SHE浜哄憳鍐呮槸鍚︽湁褰撳墠鐧诲綍璐﹀彿
@@ -671,12 +688,17 @@
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊");
             }
             workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey());
+            qwIds = Arrays.asList(workorder.getQwnoticeMemberIds());
+            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())){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊");
             }
             workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey());
+            qwIds = Arrays.asList(workorder.getQwnoticeMemberIds());
+            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())
@@ -684,6 +706,9 @@
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝褰撳墠宸ュ崟闈炴偍鐨勫伐鍗曪紝鏃犳硶杩涜澶勭悊");
             }
             workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey());
+            qwIds = Arrays.asList(workorder.getQwnoticeMemberIds());
+            qwIds.add(workorder.getDealerId());
+            qwIds.remove(closeDTO.getMember().getQwId());
         }else{
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"宸ュ崟鐘舵�佸凡娴佽浆");
         }
@@ -702,6 +727,17 @@
             }
             multifileMapper.insert(multifileList);
         }
+        //鍙戦�佷紒寰�氱煡
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(qwIds)){
+            Set<String> qwIdSet = new HashSet<>(qwIds);
+            String qwIdStr  = String.join(",", qwIdSet);
+            Category category = categoryMapper.selectById(workorder.getTypeId());
+            if(Objects.nonNull(closeDTO.getMember())&&Objects.nonNull(category)&& org.apache.commons.lang3.StringUtils.isNotBlank(qwIdStr)){
+                // 鍙戦�佷紒寰�氱煡
+                this.sendQwMsg(workorder,qwIdStr,closeDTO.getMember(),category.getName(),Constants.THREE,null);
+            }
+        }
+
     }
 
 
@@ -750,15 +786,49 @@
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
             for (Multifile multifile:multifileList) {
                 multifile.setObjId(logId);
+                multifile.setIsdeleted(Constants.ZERO);
                 multifile.setCreateDate(new Date());
                 multifile.setObjType(Constants.multiFileType.passOn);
             }
             multifileMapper.insert(multifileList);
         }
-        //TODO 浼佷笟寰俊閫氱煡
+        //浼佷笟寰俊閫氱煡
+        Category category = categoryMapper.selectById(workorder.getTypeId());
+        if(Objects.nonNull(passOnDTO.getMember())&&Objects.nonNull(category)){
+            // 鍙戦�佷紒寰�氱煡
+            this.sendQwMsg(workorder,member.getQwId(),passOnDTO.getMember(),category.getName(),Constants.ZERO,null);
+        }
+        //瀛樺偍寰呭姙浜哄憳淇℃伅
+        this.saveNotice(Arrays.asList(passOnDTO.getMember().getQwId().split(",")),workorder.getId(),Constants.ZERO,Constants.TWO);
     }
 
 
+    @Override
+    public void sendCopy(SendCopyDTO sendCopyDTO) {
+        if (Objects.isNull(sendCopyDTO)
+                || Objects.isNull(sendCopyDTO.getWorkorderId())
+                || StringUtils.isEmpty(sendCopyDTO.getUserIds())) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        Workorder workorder = workorderMapper.selectById(sendCopyDTO.getWorkorderId());
+        if (Objects.isNull(workorder)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted, Constants.ZERO)
+                .isNotNull(Member::getQwId)
+                .in(Member::getId, sendCopyDTO.getUserIds().split(",")));
+        if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberList)) {
+            List<String> qwIdList = memberList.stream().map(i -> i.getQwId()).collect(Collectors.toList());
+            Category category = categoryMapper.selectById(workorder.getTypeId());
+            if (Objects.nonNull(category)) {
+                // 鍙戦�佷紒寰�氱煡
+                this.sendQwMsg(workorder, String.join(",", qwIdList), sendCopyDTO.getMember(), category.getName(), Constants.ONE, null);
+            }
+            //瀛樺偍寰呭姙淇℃伅
+            this.saveNotice(qwIdList, workorder.getId(), Constants.ONE, Constants.ONE);
+        }
+
+    }
 
     @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
@@ -783,7 +853,12 @@
         this.saveLog(null,workorder,
                 Constants.ONE
                 ,member.getId(),"鍌績","宸插偓淇� "+urgeUser.getCompanyName() + "/" + urgeUser.getName());
-        //TODO 鍙戦�佷紒寰�氱煡
+        //鍙戦�佷紒寰�氱煡
+        Category category = categoryMapper.selectById(workorder.getTypeId());
+        if(Objects.nonNull(category)){
+            // 鍙戦�佷紒寰�氱煡
+            this.sendQwMsg(workorder,urgeUser.getQwId(),null,category.getName(),Constants.ONE,null);
+        }
 
     }
 
@@ -818,25 +893,62 @@
         }else{
             return;
         }
-        //TODO 鍙戦�佷紒寰�氱煡
+        //鍙戦�佷紒寰�氱煡
+        Category category = categoryMapper.selectById(workorder.getTypeId());
+        if(Objects.nonNull(category)){
+            // 鍙戦�佷紒寰�氱煡
+            this.sendQwMsg(workorder,urgeUser.getQwId(),null,category.getName(),Constants.ONE,null);
+        }
     }
 
 
+    public void saveNotice(List<String> qwIdList ,Integer workorderId,Integer isSendCopy,Integer type){
+        List<Notices> noticesList = new ArrayList<>();
+        for (String qwId:qwIdList) {
+            //瀛樺偍鎶勯�佽褰�
+            Notices notices = new Notices();
+            notices.setCreateDate(new Date());
+            notices.setIsdeleted(Constants.ZERO);
+            notices.setObjId(workorderId);
+            notices.setObjType(Constants.ZERO+"");
+            notices.setStatus(Constants.ZERO);
+            notices.setSendacopy(isSendCopy);
+            notices.setParam1(qwId);
+            notices.setType(Integer.toString(type));
+            noticesList.add(notices);
+        }
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(noticesList)){
+            noticesMapper.insert(noticesList);
+        }
+    }
+
+
+
     /**
-     * 鏁版嵁鎶ヨ〃
-     * @param queryType 0=鎸夌収鏈堜唤锛�1=鎸夌収瀛e害锛�2=鎸夌収骞翠唤锛堟殏涓嶅鐞嗭級
+     * SHE / 璺岀粖婊戞姤琛�
      * @return
+     * @throws Exception
      */
     @Override
-    public List<WorkOrderDataVO> getWorkOrderData(Integer queryType) throws Exception {
+    public List<WorkOrderDataVO> getWorkOrderData(OrderDataDTO orderDataDTO) throws Exception {
+        if (Objects.isNull(orderDataDTO.getQueryType())||Objects.isNull(orderDataDTO.getOrderType())) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
         String year = DateUtil.getNowYear();
         Integer nowMonth = DateUtil.getNowMonth();
         Integer quarter  = (nowMonth - 1) / 3 + 1;
         List<WorkOrderDataVO> workOrderDataVOList = new ArrayList<>();
         //鏌ヨ浠婂勾鎵�鏈夌殑鏁版嵁
-        List<Workorder> workorderList = workorderMapper.selectList(new QueryWrapper<Workorder>().lambda().like(Workorder::getCreateDate,year)
+        List<Workorder> workorderList = workorderMapper.selectJoinList(Workorder.class,new MPJLambdaWrapper<Workorder>()
+                        .selectAll(Workorder.class)
+                        .leftJoin(" category c1 on c1.id = t.type_id " )
+                        .leftJoin(" category c2 on c2.id = t.localtion_id " )
+                        .apply(Objects.nonNull(orderDataDTO.getTypeId())," find_in_set("+orderDataDTO.getTypeId()+", REPLACE(c1.ID_PATH,'/',',')  )  ")
+                        .apply(Objects.nonNull(orderDataDTO.getLocationId())," find_in_set("+orderDataDTO.getLocationId()+", REPLACE(c2.ID_PATH,'/',',')  )  ")
+                        .like(Workorder::getCreateDate,year)
+                        .eq(Workorder::getType,orderDataDTO.getOrderType())
                 .eq(Workorder::getIsdeleted,Constants.ZERO));
-        if(Constants.equalsInteger(queryType,Constants.ZERO)){
+        if(Constants.equalsInteger(orderDataDTO.getQueryType(),Constants.ZERO)){
             for (int i = 1 ; i <= nowMonth; i++) {
                 WorkOrderDataVO workOrderDataVO = new WorkOrderDataVO();
                 String monthDay = year + "-" + org.apache.commons.lang3.StringUtils.leftPad(nowMonth.toString(),2,"0");
@@ -857,7 +969,7 @@
                 }
                 workOrderDataVOList.add(workOrderDataVO);
             }
-        }else if(Constants.equalsInteger(queryType,Constants.ONE)){
+        }else if(Constants.equalsInteger(orderDataDTO.getQueryType(),Constants.ONE)){
             //鎸夌収瀛e害鏌ヨ
             for (int i = 1 ; i <= quarter; i++) {
                 List<Workorder> dataList = new ArrayList<>();

--
Gitblit v1.9.3