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 |  203 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 143 insertions(+), 60 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 7cc0471..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,8 +186,11 @@
         }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>";
@@ -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,7 +409,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 +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()))
@@ -501,10 +507,12 @@
             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();
 
@@ -526,6 +534,7 @@
             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(",")));
             }
@@ -542,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))){
@@ -559,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())
@@ -613,18 +622,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 +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())
@@ -757,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()) );
@@ -772,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
@@ -834,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());
@@ -842,20 +861,34 @@
             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.getManagerId());
             qwIds.remove(closeDTO.getMember().getQwId());
@@ -865,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,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) {
@@ -916,12 +961,20 @@
             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());
@@ -933,7 +986,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) {
@@ -1033,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);
@@ -1150,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)){
@@ -1330,10 +1384,13 @@
     @Override
     public WorkorderIndexNumVO getIndexData(Workorder workorder) {
         WorkorderIndexNumVO model = new WorkorderIndexNumVO();
+        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){
@@ -1352,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){
@@ -1394,16 +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