浏览代码

三单派单,批量关闭/NA

wangxuan 6 月之前
父节点
当前提交
b12cad81ff

+ 19 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementRecoredDao.java

@@ -3,6 +3,7 @@ package com.rongwei.bscommon.sys.dao;
 import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDo;
 import com.rongwei.bsentity.domain.ZhcxPmqManagementRecoredDo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.dto.ZhcxPmqManagementDistributionDTO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
@@ -33,4 +34,22 @@ public interface ZhcxPmqManagementRecoredDao extends BaseMapper<ZhcxPmqManagemen
     List<ZhcxPmqManagementDistributionDo> getDistributionsByPid(@Param("id") String id);
 
     void updateFilesById(@Param("files") String files,@Param("id") String id);
+
+    /**
+     * 根据pid删除2.5数据
+     * @param ids recored表的id集合
+     */
+    void deleteDistributionByPid(@Param("ids") List<String> ids);
+
+    /**
+     * 根据pid删除3数据
+     * @param ids recored表的id集合
+     */
+    void deleteDistributionDetailByPid(@Param("ids") List<String> ids);
+
+    /**
+     * 构建第2.5层数据(简化版)
+     * @param id PID
+     */
+    List<ZhcxPmqManagementDistributionDo> getDistributionsByPidSimple(@Param("id") String id);
 }

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

@@ -4,6 +4,7 @@ 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.bsentity.dto.sqlServer.RecoredDistributionDTO;
 import com.rongwei.rwcommon.base.R;
 
 import java.util.List;
@@ -58,5 +59,18 @@ public interface ZhcxPmqManagementRecoredService extends IService<ZhcxPmqManagem
      */
     R updateBatchList(List<ZhcxPmqManagementDistributionDTO> list);
 
+    /**
+     * 三单派单页面批量派单弹窗处理数据接口
+     * @param list  前端处理好的 第2.5层表数据
+     * @param status NA/已关闭
+     * @param dispatchstatus 派单状态
+     */
     R updateBatchList(List<ZhcxPmqManagementDistributionDTO> list,String status,String dispatchstatus);
+
+    /**
+     * 三单派单页面批量派单处理数据接口
+     * @param dto 参数
+     * @return
+     */
+    R closedBatchList(RecoredDistributionDTO dto);
 }

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

@@ -14,6 +14,7 @@ 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.bsentity.dto.sqlServer.RecoredDistributionDTO;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.utils.SecurityUtil;
@@ -574,4 +575,81 @@ public class ZhcxPmqManagementRecoredServiceImpl extends ServiceImpl<ZhcxPmqMana
         }
         return R.ok("批量派单成功");
     }
+
+    @Override
+    public R closedBatchList(RecoredDistributionDTO dto) {
+        // 关闭状态
+        String status = dto.getStatus();
+        // 派单状态
+        String dispatchstatus = dto.getDispatchstatus();
+        // recored表的id集合
+        List<String> ids = dto.getIds();
+        // 获取当前用户
+        SysUserVo user = CommonUtils.getCurrentUser();
+        /*SysUserVo user = new SysUserVo();
+        user.setId("222");
+        user.setName("xuan");*/
+        if(Objects.isNull(user) && !StringUtils.isEmpty(user.getId())){
+            return R.error("无法获取当前用户信息");
+        }
+        // 删除数据
+        baseMapper.deleteDistributionByPid(ids);
+        baseMapper.deleteDistributionDetailByPid(ids);
+        // 第2.5层集合
+        List<ZhcxPmqManagementDistributionDo> resultList1 = new ArrayList<>();
+        // 第三层集合
+        List<ZhcxPmqManagementDistributionDetailDo> resultList2 = new ArrayList<>();
+        // 第一层主表ID
+        List<String> managementIds = new ArrayList<>();
+        for (String id : ids) {
+            // 第二层数据
+            ZhcxPmqManagementRecoredDo recoredDo = this.getById(id);
+            // 去构建2.5层数据
+            List<ZhcxPmqManagementDistributionDo> list = baseMapper.getDistributionsByPidSimple(id);
+            for (ZhcxPmqManagementDistributionDo zhcxPmqManagementDistributionDo : list) {
+                if(!StringUtils.isEmpty(zhcxPmqManagementDistributionDo.getMachineid())) {
+                    ZhcxPmqManagementDistributionDo result = new ZhcxPmqManagementDistributionDo();
+                    String distributionId = SecurityUtil.getUUID();
+                    result.setId(distributionId);
+                    result.setPid(id);
+                    result.setProjectid(zhcxPmqManagementDistributionDo.getProjectid());
+                    result.setProjectname(zhcxPmqManagementDistributionDo.getProjectname());
+                    result.setProjectno(zhcxPmqManagementDistributionDo.getProjectno());
+                    result.setMachineid(zhcxPmqManagementDistributionDo.getMachineid());
+                    result.setMachineno(zhcxPmqManagementDistributionDo.getMachineno());
+                    result.setSerialnumber(zhcxPmqManagementDistributionDo.getSerialnumber());
+                    result.setRemark("批量派单");
+                    result.setConfirmerid(user.getId());
+                    result.setConfirmer(user.getName());
+                    result.setStatus(status); // 关闭状态
+                    resultList1.add(result);
+                    // 第三层数据
+                    ZhcxPmqManagementDistributionDetailDo bean = new ZhcxPmqManagementDistributionDetailDo();
+                    BeanUtil.copyProperties(result, bean);
+                    bean.setDistributid(distributionId);
+                    bean.setId(SecurityUtil.getUUID());
+                    resultList2.add(bean);
+                }
+            }
+            // 更新第二层表数据
+            recoredDo.setClosestatus(status);
+            recoredDo.setDispatchstatus(dispatchstatus);
+            this.updateById(recoredDo);
+            // 第一层主表id
+            managementIds.add(recoredDo.getPmqmid());
+        }
+        // 保存2.5层 3层数据
+        if(!resultList1.isEmpty()){
+            zhcxPmqManagementDistributionService.saveBatch(resultList1);
+            zhcxPmqManagementDistributionDetailService.saveBatch(resultList2);
+        }
+        if(!managementIds.isEmpty()){
+            List<String> managementids = managementIds.stream().distinct().collect(Collectors.toList());
+            if(!managementids.isEmpty()){
+                // 异步去更新第一层状态
+                managementMapService.updateClosedStateInFirstFloor(managementids);
+            }
+        }
+        return R.ok("批量操作成功");
+    }
 }

+ 54 - 0
business-common/src/main/resources/mybatis/business/ZhcxPmqManagementRecoredDao.xml

@@ -40,6 +40,38 @@
             TO_NUMBER(REPLACE(p.MACHINENO, '#', ''))
     </select>
 
+    <select id="getDistributionsByPidSimple"
+            resultType="com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDo">
+        SELECT
+            recored.ID AS PID,
+            manage.PROJECTID AS PROJECTID,
+            p.MACHINEID AS MACHINEID,
+            p.MACHINENO AS MACHINENO,
+            manage.PROJECTNO AS PROJECTNO,
+            manage.PROJECTNAME AS PROJECTNAME,
+            recored.SEQNO AS SERIALNUMBER
+        FROM
+            INCONTROL.ZHCX_PMQ_MANAGEMENT_RECORED recored
+                LEFT JOIN INCONTROL.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
+        WHERE
+            recored.DELETED = '0' AND recored.ID = #{id}
+        ORDER BY
+            TO_NUMBER(REPLACE(p.MACHINENO, '#', ''))
+    </select>
+
     <update id="updateFilesById">
         UPDATE
             INCONTROL.ZHCX_PMQ_MANAGEMENT_RECORED
@@ -48,4 +80,26 @@
         WHERE
             ID = #{id}
     </update>
+
+    <update id="deleteDistributionByPid">
+        UPDATE
+            INCONTROL.ZHCX_PMQ_MANAGEMENT_DISTRIBUTION
+        SET
+            DELETED ='1',REMARK='批量派单删除'
+        WHERE PID in
+        <foreach collection="ids" item="id" separator="," open="(" close=")">
+            #{id}
+        </foreach>
+    </update>
+
+    <update id="deleteDistributionDetailByPid">
+        UPDATE
+            INCONTROL.ZHCX_PMQ_MANAGEMENT_DISTRIBUTION_DETAIL
+        SET
+            DELETED ='1',REMARK='批量派单删除'
+        WHERE PID in
+        <foreach collection="ids" item="id" separator="," open="(" close=")">
+            #{id}
+        </foreach>
+    </update>
 </mapper>

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

@@ -11,7 +11,7 @@ import java.util.List;
 @Data
 public class DistributionDTO {
 
-    //第层表数据
+    //第2.5层表数据
     List<ZhcxPmqManagementDistributionDTO> list;
 
     // 关闭状态

+ 20 - 0
business-entity/src/main/java/com/rongwei/bsentity/dto/sqlServer/RecoredDistributionDTO.java

@@ -0,0 +1,20 @@
+package com.rongwei.bsentity.dto.sqlServer;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 三单批量派单接收实体类
+ */
+@Data
+public class RecoredDistributionDTO {
+    // zhcxPmqManagementRecored_ids
+    List<String> ids;
+
+    // 关闭状态
+    String status;
+
+    // 派单状态
+    String dispatchstatus;
+}

+ 16 - 2
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPmqManagementRecoredController.java

@@ -5,6 +5,7 @@ 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.bsentity.dto.sqlServer.RecoredDistributionDTO;
 import com.rongwei.rwcommon.base.R;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -55,7 +56,7 @@ public class ZhcxPmqManagementRecoredController {
      * @return
      */
     @PostMapping("/getListData")
-    @ApiOperation("三单派单页面右边列表数据源")
+    @ApiOperation("三单派单页面右边列表数据源(废弃接口)")
     public R getListData(@RequestBody Map<String,Object> map){
         try {
             if(Objects.isNull(map.get("queryId"))){
@@ -87,7 +88,7 @@ public class ZhcxPmqManagementRecoredController {
     }
 
     @PostMapping("/updateBatchList")
-    @ApiOperation("三单派单页面批量派单处理数据接口")
+    @ApiOperation("三单派单页面批量派单弹窗处理数据接口")
     public R updateBatchList(@RequestBody DistributionDTO dto){
         try {
             if(dto.getList().isEmpty()){return R.error("空数组");}
@@ -100,5 +101,18 @@ public class ZhcxPmqManagementRecoredController {
             return R.error("三单派单批量派单失败");
         }
     }
+
+    @PostMapping("/closedBatchList")
+    @ApiOperation("三单派单页面批量NA/批量关闭处理数据接口")
+    public R closedBatchList(@RequestBody RecoredDistributionDTO dto){
+        try {
+            if(dto.getIds().isEmpty()){return R.error("空数组");}
+            if(dto.getStatus().isEmpty()){return R.error("关闭状态为空");}
+            return managementRecoredService.closedBatchList(dto);
+        } catch (Exception e) {
+            log.info(String.valueOf(e));
+            return R.error("三单派单批量派单失败");
+        }
+    }
 }