From 7b51c9e1abc198a501f7858599da9c116130fd6f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 27 三月 2025 16:47:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java |  144 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 127 insertions(+), 17 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
index af8fff4..62f6a40 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -169,7 +169,7 @@
         String[] params = new String[3];
         params[0] = user.getRealname();
         params[1]=DateUtil.getPlusTime2(date);
-        params[2]=job.getBillCode()+"-銆愬徃鏈猴細"+job.getDriverName()+" "+job.getDrivierPhone()+"銆�-銆愯溅鐗屽彿锛�"+job.getCarCodeFront()+"銆�";
+        params[2]="銆愯繍鍗曞彿锛�"+job.getBillCode()+"銆�-銆愬徃鏈猴細"+job.getDriverName()+" "+job.getDrivierPhone()+"銆�-銆愯溅鐗屽彿锛�"+job.getCarCodeFront()+"銆�";
         //璁板綍鍒犻櫎鏃ュ織
         UserActionServiceImpl.saveUserActionBiz(user,id,Constants.UserActionType.PLATFROM_JOB_DEL,userActionMapper,date,params,JSONObject.toJSONString(job));
     }
@@ -223,6 +223,7 @@
 
     @Override
     public List<PlatformJob> findList(PlatformJob platformJob) {
+        platformJob.setIsdeleted(Constants.ZERO);
         QueryWrapper<PlatformJob> wrapper = new QueryWrapper<>(platformJob);
         return platformJobMapper.selectList(wrapper);
     }
@@ -247,6 +248,7 @@
                 .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode)
                 .leftJoin(SystemUser.class,SystemUser::getId,PlatformJob::getOutUserId)
                 .leftJoin(PlatformBooks.class,PlatformBooks::getJobId,PlatformJob::getId)
+                .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                 .eq(pageWrap.getModel().getId() != null, PlatformJob::getId, pageWrap.getModel().getId())
                 .eq(pageWrap.getModel().getCreator() != null, PlatformJob::getCreator, pageWrap.getModel().getCreator())
                 .ge(pageWrap.getModel().getCreateDate() != null, PlatformJob::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
@@ -336,14 +338,14 @@
                 .isNull(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ZERO,pageWrap.getModel().getJobType()), PlatformJob::getContractNum)
                 .exists(StringUtils.isNotBlank(pageWrap.getModel().getWmsContractNum()),
                         "select tt.id from platform_wms_detail tt where tt.isdeleted=0 and tt.contract_num='"+pageWrap.getModel().getWmsContractNum()+"' and  tt.job_id=t.id");
-
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+        queryWrapper.orderByDesc(PlatformJob::getCreateDate);
+        /*for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                 queryWrapper.orderByDesc(sortData.getProperty());
             } else {
                 queryWrapper.orderByAsc(sortData.getProperty());
             }
-        }
+        }*/
        IPage<PlatformJob> platformJobIPage = platformJobJoinMapper.selectJoinPage(page,PlatformJob.class,queryWrapper);
         platformJobIPage.getRecords().forEach(i->{
             i.dealTime();
@@ -400,6 +402,7 @@
                 )
 //                .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(new Date(),"yyyy-MM-dd"))
                 .orderByDesc(PlatformJob::getStatus)
+                .orderByAsc(PlatformJob::getSignDate)
         ;
         IPage<PlatformJob> platformJobIPage = platformJobJoinMapper.selectJoinPage(page,PlatformJob.class,queryWrapper);
         platformJobIPage.getRecords().forEach(i->{
@@ -588,7 +591,7 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob = platformJobMapper.selectById(confirmTaskDTO.getId());
-        if(Objects.isNull(platformJob)){
+        if(Objects.isNull(platformJob)||Constants.equalsInteger(platformJob.getIsdeleted(),Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(!Constants.equalsInteger(platformJob.getStatus(),Constants.ZERO)){
@@ -624,7 +627,7 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob = platformJobMapper.selectById(signInDTO.getJobId());
-        if(Objects.isNull(platformJob)){
+        if(Objects.isNull(platformJob)||Constants.equalsInteger(platformJob.getIsdeleted(),Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
 
@@ -669,6 +672,7 @@
         }
         //鏌ヨ浠婃棩鏈�澶х殑绛惧埌鏁�
         List<PlatformJob> signList = platformJobMapper.selectList(new QueryWrapper<PlatformJob>().lambda()
+                .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                 .apply(" DATE(SIGN_DATE) = DATE(NOW()) and sign_date is not null  "));
         if(CollectionUtils.isEmpty(signList)){
             platformJob.setSignNum(Constants.ONE);
@@ -683,7 +687,80 @@
         //瀛樺偍鎿嶄綔鏃ュ織
         savePlatformLog(Constants.PlatformJobLogType.SIGN.getKey(),oldPlatformJob,platformJob,
                 Constants.PlatformJobLogType.SIGN.getInfo());
+        //绛惧埌寰俊閫氱煡 2025骞�3鏈�26鏃�14:25:00
+        logger.info("绛惧埌寰俊閫氱煡=========================>寮�濮�====绛惧埌绫诲瀷=>"+signInDTO.getSignType()+"===>浜哄憳涓婚敭=>"+platformGroup.getSignInNoticeUsers());
+        if(!Constants.equalsInteger(signInDTO.getSignType(),Constants.TWO)&&
+                StringUtils.isNotBlank(platformGroup.getSignInNoticeUsers())){
+            logger.info("绛惧埌寰俊閫氱煡=========================>杩涘叆");
+            List<SystemUser> systemUserList = systemUserMapper.selectList(new QueryWrapper<SystemUser>().lambda()
+                    .eq(SystemUser::getDeleted,Constants.ZERO).eq(SystemUser::getStatus,Constants.ZERO).isNotNull(SystemUser::getOpenid)
+                    .in(SystemUser::getMemberId,Arrays.asList(platformGroup.getSignInNoticeUsers().split(",")))
+            );
+            if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemUserList)) {
+                WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                wxPlatNotice.sendPlatformJobSignNotice(wxNoticeConfigMapper, platformJob,
+                        WxPlatConstants.platformJobContent.platformGroupSignIn,
+                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                        systemUserList.stream().map(i->i.getOpenid()).collect(Collectors.toList())
+                );
+            }
+        }
+        logger.info("绛惧埌寰俊閫氱煡=========================>缁撴潫");
     }
+
+
+    @Override
+    public void sendUnFinishNotice(){
+        //鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�  12鍙栨秷锛圵MS锛�
+        List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,
+                new MPJLambdaWrapper<PlatformJob>()
+                        .selectAll(PlatformJob.class)
+                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                        .isNotNull(PlatformJob::getPlatformGroupId)
+                        .apply(" CREATE_DATE < now() ")
+                        .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CONFIRM.getKey()
+                                ,Constants.PlatformJobStatus.WART_SIGN_IN.getKey()
+                                ,Constants.PlatformJobStatus.WAIT_CALL.getKey()
+                                ,Constants.PlatformJobStatus.IN_WAIT.getKey()
+                                ,Constants.PlatformJobStatus.CALLED.getKey()
+                                ,Constants.PlatformJobStatus.WORKING.getKey()
+                                ,Constants.PlatformJobStatus.TRANSFERING.getKey()
+                                ,Constants.PlatformJobStatus.EXCEPTION.getKey()
+                                ,Constants.PlatformJobStatus.OVER_NUMBER.getKey()
+                        )
+        );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobList)){
+            List<Integer> platformGroupId = platformJobList.stream().map(i->i.getPlatformGroupId()).collect(Collectors.toList());
+            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformGroupId)){
+                Set<Integer> setList = new HashSet<>(platformGroupId);
+                for (Integer groupId:setList) {
+                    PlatformGroup platformGroup = platformGroupMapper.selectById(groupId);
+                    if(Objects.nonNull(platformGroup)){
+                        List<SystemUser> systemUserList = systemUserMapper.selectList(new QueryWrapper<SystemUser>().lambda()
+                                .eq(SystemUser::getDeleted,Constants.ZERO).eq(SystemUser::getStatus,Constants.ZERO).isNotNull(SystemUser::getOpenid)
+                                .in(SystemUser::getMemberId,Arrays.asList(platformGroup.getUnFinishNoticeUsers().split(",")))
+                        );
+                        if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemUserList)) {
+                            WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                            wxPlatNotice.sendUnFinishNotice(
+                                    wxNoticeConfigMapper,
+                                    platformJobList.stream().filter(i->Constants.equalsInteger(i.getPlatformGroupId(),groupId)).collect(Collectors.toList()).size(),
+                                    WxPlatConstants.platformJobContent.unFinishNotice,
+                                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                                    systemUserList.stream().map(i->i.getOpenid()).collect(Collectors.toList())
+                            );
+                        }
+                    }
+                }
+            }
+        }
+
+
+
+    }
+
+
+
 
     public void distanceSignIn(SignInDTO signInDTO , PlatformJob platformJob){
         if(Objects.isNull(signInDTO.getLat())
@@ -720,7 +797,7 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob  = platformJobMapper.selectById(jobDetailDTO.getJobId());
-        if(Objects.isNull(platformJob)){
+        if(Objects.isNull(platformJob)||Constants.equalsInteger(platformJob.getIsdeleted(),Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){
@@ -880,7 +957,7 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
-        if(Objects.isNull(platformJob)){
+        if(Objects.isNull(platformJob)||Constants.equalsInteger(platformJob.getIsdeleted(),Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){
@@ -944,7 +1021,6 @@
                             .eq(PlatformJob::getId,platformJob.getId())
                             .last(" limit 1")
             );
-
             WxPlatNotice wxPlatNotice = new WxPlatNotice();
             wxPlatNotice.sendPlatformJobTemplateNotice(systemDictDataBiz,
                     wxNoticeConfigMapper, p,
@@ -954,6 +1030,7 @@
             );
         }
     }
+
 
 
 
@@ -1119,7 +1196,7 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
-        if(Objects.isNull(platformJob)){
+        if(Objects.isNull(platformJob)||Constants.equalsInteger(platformJob.getIsdeleted(),Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(!(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())
@@ -1137,6 +1214,7 @@
         //鏌ヨ鏈堝彴浠诲姟绛夊緟浣滀笟鏁伴噺
         if(platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
                 .eq(PlatformJob::getPlatformId,platform.getId())
+                .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                 .in(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey(),Constants.PlatformJobStatus.WORKING.getKey())
         )>=platform.getWorkingNum()){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瓒呭嚭鏈堝彴鍙悓鏃朵綔涓氭暟閲廩"+platform.getWorkingNum()+"杈哴");
@@ -1266,7 +1344,7 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
-        if(Objects.isNull(platformJob)){
+        if(Objects.isNull(platformJob)||Constants.equalsInteger(platformJob.getIsdeleted(),Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if( !( Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())
@@ -1334,7 +1412,7 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
-        if(Objects.isNull(platformJob)){
+        if(Objects.isNull(platformJob)||Constants.equalsInteger(platformJob.getIsdeleted(),Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
 
@@ -1387,7 +1465,7 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
-        if(Objects.isNull(platformJob)){
+        if(Objects.isNull(platformJob)||Constants.equalsInteger(platformJob.getIsdeleted(),Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
@@ -1438,7 +1516,7 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
-        if(Objects.isNull(platformJob)){
+        if(Objects.isNull(platformJob)||Constants.equalsInteger(platformJob.getIsdeleted(),Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){
@@ -1504,7 +1582,7 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
-        if(Objects.isNull(platformJob)){
+        if(Objects.isNull(platformJob)||Constants.equalsInteger(platformJob.getIsdeleted(),Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(! (Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())
@@ -1576,7 +1654,9 @@
 
         //骞挎挱 led閫氱煡
         platformJob.setPlatformName(platform.getName());
-        this.broadcastAndLEed(platformJob,Constants.PlatformLedContent.DONE.getInfo(),
+        this.broadcastAndLEed(platformJob,
+                //Constants.PlatformLedContent.DONE.getInfo(),
+                StringUtils.isBlank(platform.getLedContent())?Constants.PlatformLedContent.IDEL_CONTNET.getInfo():platform.getLedContent(),
                 Constants.PlatformBroadcastContent.DONE.getInfo());
         return platformJob;
     }
@@ -1621,6 +1701,7 @@
            if(jobIds.size()>0){
                List<PlatformJob> list = platformJobMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
                        .selectAll(PlatformJob.class)
+                       .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                        .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey())
                        .in(PlatformJob::getId,jobIds)
                );
@@ -1663,7 +1744,7 @@
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
-        if(Objects.isNull(platformJob)){
+        if(Objects.isNull(platformJob)||Constants.equalsInteger(platformJob.getIsdeleted(),Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
@@ -1707,6 +1788,7 @@
         PlatformJob platformJob =  platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda()
                 .eq(PlatformJob::getPlatformId,platformDevice.getPlatformId())
                 .eq(PlatformJob::getCarCodeBack,jobOperateDTO.getCarCodeBack())
+                .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                 .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey())
                 .last(" limit 1 ")
         );
@@ -2348,5 +2430,33 @@
     }
 
 
+    /**
+     * 鎵嬪姩瀹屾垚浣滀笟
+     * @param jobIdList
+     */
+    @Override
+    public void dealJobFinish(List<Integer> jobIdList){
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(jobIdList)){
+            List<PlatformJob> platformJobList = platformJobMapper.selectList(new QueryWrapper<PlatformJob>().lambda()
+                    .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                    .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CONFIRM,Constants.PlatformJobStatus.WART_SIGN_IN)
+                    .in(PlatformJob::getId,jobIdList)
+            );
+            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobList)){
+
+                platformJobMapper.update(null,new UpdateWrapper<PlatformJob>().lambda()
+                        .set(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey())
+                        .set(PlatformJob::getDoneDate,new Date())
+                        .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CONFIRM,Constants.PlatformJobStatus.WART_SIGN_IN)
+                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                        .in(PlatformJob::getId,platformJobList.stream().map(i->i.getId()).collect(Collectors.toList())));
+
+            }
+
+        }
+
+
+    }
+
 
 }

--
Gitblit v1.9.3