wangxuan 7 달 전
부모
커밋
ef67a4ceb7

+ 9 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxPmqManagementRecoredService.java

@@ -1,9 +1,12 @@
 package com.rongwei.bscommon.sys.service;
 
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDo;
 import com.rongwei.bsentity.domain.ZhcxPmqManagementRecoredDo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.bsentity.dto.ZhcxPmqManagementDistributionDTO;
 import com.rongwei.rwcommon.base.R;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -48,4 +51,10 @@ public interface ZhcxPmqManagementRecoredService extends IService<ZhcxPmqManagem
      * 更新全表三单关闭状态(谨慎调用)
      */
     void updateClosedStatus();
+
+    /**
+     * 三单派单页面批量派单处理数据接口
+     * @param list 前端数据
+     */
+    R updateBatchList(List<ZhcxPmqManagementDistributionDTO> list);
 }

+ 58 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPmqManagementRecoredServiceImpl.java

@@ -14,6 +14,7 @@ import com.rongwei.bsentity.domain.ZhcxPmqManagementRecoredDo;
 import com.rongwei.bscommon.sys.dao.ZhcxPmqManagementRecoredDao;
 import com.rongwei.bscommon.sys.service.ZhcxPmqManagementRecoredService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bsentity.dto.ZhcxPmqManagementDistributionDTO;
 import com.rongwei.bsentity.dto.sqlServer.JuFileInfoDto;
 import com.rongwei.bsentity.dto.sqlServer.JutInfo;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
@@ -443,9 +444,66 @@ public class ZhcxPmqManagementRecoredServiceImpl extends ServiceImpl<ZhcxPmqMana
         // 谨慎调用
         LambdaQueryWrapper<ZhcxPmqManagementRecoredDo> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ZhcxPmqManagementRecoredDo::getDeleted,"0")
+                .eq(ZhcxPmqManagementRecoredDo::getDispatchstatus,"0")
                 .isNotNull(ZhcxPmqManagementRecoredDo::getDeptid)
                 .isNotNull(ZhcxPmqManagementRecoredDo::getSeqno);
         List<ZhcxPmqManagementRecoredDo> list = this.list(queryWrapper);
         list.forEach(item -> getDistributionDataByPidInSqlServer(item.getId()));
     }
+
+
+
+    @Override
+    public R updateBatchList(List<ZhcxPmqManagementDistributionDTO> list) {
+        // 过滤行状态不为add的数据
+        list = list.stream()
+                .filter(item -> item.getRowStatus().equals("add"))
+                .filter(item -> !StringUtils.isEmpty(item.getConfirmerid()))
+                .collect(Collectors.toList());
+        if(list.isEmpty()){return R.error("数据异常,请联系管理员");}
+        String pids = list.get(0).getPid();
+        if(StringUtils.isEmpty(pids)){
+            return R.error("数据异常,请联系管理员");
+        }
+        String[] pidStr = pids.split(",");
+        // 第2.5层集合
+        List<ZhcxPmqManagementDistributionDo> resultList = new ArrayList<>();
+        for (String pid : pidStr) {
+            ZhcxPmqManagementRecoredDo recoredDo = this.getById(pid);
+            for (ZhcxPmqManagementDistributionDTO zhcxPmqManagementDistributionDTO : list) {
+                ZhcxPmqManagementDistributionDo result = new ZhcxPmqManagementDistributionDo();
+                result.setId(SecurityUtil.getUUID());
+                result.setPid(pid);
+                result.setProjectid(zhcxPmqManagementDistributionDTO.getProjectid());
+                result.setProjectname(zhcxPmqManagementDistributionDTO.getProjectname());
+                result.setProjectno(zhcxPmqManagementDistributionDTO.getProjectno());
+                result.setMachineid(zhcxPmqManagementDistributionDTO.getMachineid());
+                result.setMachineno(zhcxPmqManagementDistributionDTO.getMachineno());
+                result.setConfirmerid(zhcxPmqManagementDistributionDTO.getConfirmerid());
+                result.setConfirmer(zhcxPmqManagementDistributionDTO.getConfirmer());
+                result.setEstimatedclosedata(zhcxPmqManagementDistributionDTO.getEstimatedclosedata());
+                if(!StringUtils.isEmpty(zhcxPmqManagementDistributionDTO.getStatus())){
+                    result.setStatus(zhcxPmqManagementDistributionDTO.getStatus());
+                }
+                if(!StringUtils.isEmpty(String.valueOf(recoredDo.getSeqno()))) {
+                    result.setSerialnumber(String.valueOf(recoredDo.getSeqno()));
+                }
+                if(!StringUtils.isEmpty(zhcxPmqManagementDistributionDTO.getSupplement())) {
+                    result.setSupplement(zhcxPmqManagementDistributionDTO.getSupplement());
+                }
+                result.setRemark("批量派单");
+
+                resultList.add(result);
+            }
+        }
+        // 进行第2.5层保存操作
+        if(!resultList.isEmpty()){
+            zhcxPmqManagementDistributionService.saveBatch(resultList);
+            // 进行派单操作
+            for (String pid : pidStr) {
+                zhcxPmqManagementDistributionService.generateDistributionDetail(pid);
+            }
+        }
+        return R.ok("批量派单成功");
+    }
 }

+ 27 - 5
business-common/src/main/resources/mybatis/business/ZhcxPmqManagementDistributionDao.xml

@@ -49,14 +49,36 @@
         WHERE a.DELETED = '0'
           AND a.PID = #{pid}
           AND a.CONFIRMERID IS NOT NULL
+          AND a.CONFIRMERID != ''
     </select>
 
     <select id="selectListByPid"
             resultType="com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDo">
-        SELECT a.*
-        FROM INCONTROL.ZHCX_PMQ_MANAGEMENT_DISTRIBUTION a
-        WHERE a.DELETED = '0' AND a.PID = #{pid}
-              AND a.CONFIRMERID IS NULL
+        SELECT
+            dis.ID AS ID,
+            dis.CONFIRMERID AS CONFIRMERID,
+            dis.CONFIRMER AS CONFIRMER,
+            dis.ESTIMATEDCLOSEDATA AS ESTIMATEDCLOSEDATA,
+            dis.STATUS AS STATUS
+        FROM
+            ZHCX_PMQ_MANAGEMENT_RECORED recored
+                LEFT JOIN ZHCX_PMQ_MANAGEMENT manage ON manage.ID = recored.PMQMID AND manage.DELETED = '0'
+                LEFT JOIN (
+                SELECT
+                    n.ID AS MACHINEID,
+                    n.DEVICE_NUMBER AS MACHINENO,
+                    p.ID AS PROJECTID
+                FROM
+                    INCONTROL.ZHCX_PROJECT_DEVICE_NUMBER n
+                        JOIN INCONTROL.ZHCX_PROJECT_MANAGE p ON
+                        p.ID = n.PID
+                            AND p.DELETED = '0'
+                WHERE
+                    n.DELETED = '0'
+            )p ON p.PROJECTID = manage.PROJECTID
+                LEFT JOIN ZHCX_PMQ_MANAGEMENT_DISTRIBUTION dis ON dis.PID = recored.ID AND dis.MACHINEID = p.MACHINEID AND dis.DELETED = '0'
+        WHERE
+            recored.DELETED = '0' AND dis.CONFIRMERID IS NULL AND recored.ID = #{pid}
     </select>
     <select id="getDetailList" resultType="com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDetailDo">
         SELECT
@@ -145,7 +167,7 @@
                     ELSE '未关闭'
                     END AS STATUS
                     FROM
-                    INCONTROL.ZHCX_PMQ_MANAGEMENT_DISTRIBUTION_DETAIL x
+                    INCONTROL.ZHCX_PMQ_MANAGEMENT_DISTRIBUTION x
                     WHERE
                     x.PID = #{id}
                     AND x.DELETED = '0'

+ 1 - 1
business-entity/src/main/java/com/rongwei/bsentity/domain/ZhcxPmqManagementRecoredDo.java

@@ -116,7 +116,7 @@ public class ZhcxPmqManagementRecoredDo extends BaseDo {
     private Integer totaltimes;
 
     /**
-     * 派单状态:默认为0(待派单)
+     * 派单状态:默认为0(待派单) 1.已派单  2.部分派单
      */
     @TableField("DISPATCHSTATUS")
     private String dispatchstatus;

+ 18 - 0
business-entity/src/main/java/com/rongwei/bsentity/dto/ZhcxPmqManagementDistributionDTO.java

@@ -0,0 +1,18 @@
+package com.rongwei.bsentity.dto;
+
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDo;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+public class ZhcxPmqManagementDistributionDTO extends ZhcxPmqManagementDistributionDo {
+
+    // 行状态 add
+    private String rowStatus;
+}

+ 12 - 0
business-entity/src/main/java/com/rongwei/bsentity/dto/sqlServer/DistributionDTO.java

@@ -0,0 +1,12 @@
+package com.rongwei.bsentity.dto.sqlServer;
+
+import com.rongwei.bsentity.dto.ZhcxPmqManagementDistributionDTO;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class DistributionDTO {
+
+    List<ZhcxPmqManagementDistributionDTO> list;
+}

+ 18 - 1
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPmqManagementRecoredController.java

@@ -2,6 +2,9 @@ package com.rongwei.bsserver.controller;
 
 
 import com.rongwei.bscommon.sys.service.ZhcxPmqManagementRecoredService;
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDo;
+import com.rongwei.bsentity.dto.ZhcxPmqManagementDistributionDTO;
+import com.rongwei.bsentity.dto.sqlServer.DistributionDTO;
 import com.rongwei.rwcommon.base.R;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -11,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
@@ -67,7 +71,7 @@ public class ZhcxPmqManagementRecoredController {
     }
 
     @PostMapping("/getBatchListData")
-    @ApiOperation("三单派单页面批量派单数据源")
+    @ApiOperation("三单派单页面批量派单数据源(废弃接口)")
     public R getBatchListData(@RequestBody Map<String,Object> map){
         try {
             if(Objects.isNull(map.get("queryId"))){
@@ -81,5 +85,18 @@ public class ZhcxPmqManagementRecoredController {
             return R.error("三单派单页面批量派单数据源");
         }
     }
+
+    @PostMapping("/updateBatchList")
+    @ApiOperation("三单派单页面批量派单处理数据接口")
+    public R updateBatchList(@RequestBody DistributionDTO dto){
+        try {
+            if(dto.getList().isEmpty()){return R.error("空数组");}
+            log.info("三单派单页面批量派单处理数据接口->集合大小:{}",dto.getList().size());
+            return managementRecoredService.updateBatchList(dto.getList());
+        } catch (Exception e) {
+            log.info(String.valueOf(e));
+            return R.error("三单派单批量派单失败");
+        }
+    }
 }