wangxuan пре 8 месеци
родитељ
комит
d6148d43ee

+ 28 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementDistributionDao.java

@@ -0,0 +1,28 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDetailDo;
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 三单管理_派发机台 Mapper 接口
+ * </p>
+ *
+ * @author xuan
+ * @since 2024-11-13
+ */
+@Mapper
+public interface ZhcxPmqManagementDistributionDao extends BaseMapper<ZhcxPmqManagementDistributionDo> {
+
+    List<ZhcxPmqManagementDistributionDo> selectListByPidForConfirmer(@Param("pid") String pid);
+
+    List<ZhcxPmqManagementDistributionDetailDo> getDetailList(@Param("distributid") String distributid,
+                                                              @Param("pid") String pid,
+                                                              @Param("machineid") String machineid,
+                                                              @Param("confirmerid") String confirmerid);
+}

+ 18 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementDistributionDetailDao.java

@@ -0,0 +1,18 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDetailDo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 三单管理_派发质检确认人 Mapper 接口
+ * </p>
+ *
+ * @author xuan
+ * @since 2024-11-13
+ */
+@Mapper
+public interface ZhcxPmqManagementDistributionDetailDao extends BaseMapper<ZhcxPmqManagementDistributionDetailDo> {
+
+}

+ 16 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxPmqManagementDistributionDetailService.java

@@ -0,0 +1,16 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDetailDo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 三单管理_派发质检确认人 服务类
+ * </p>
+ *
+ * @author xuan
+ * @since 2024-11-13
+ */
+public interface ZhcxPmqManagementDistributionDetailService extends IService<ZhcxPmqManagementDistributionDetailDo> {
+
+}

+ 23 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxPmqManagementDistributionService.java

@@ -0,0 +1,23 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.rwcommon.base.R;
+
+/**
+ * <p>
+ * 三单管理_派发机台 服务类
+ * </p>
+ *
+ * @author xuan
+ * @since 2024-11-13
+ */
+public interface ZhcxPmqManagementDistributionService extends IService<ZhcxPmqManagementDistributionDo> {
+
+    /**
+     * 生成三单派单数据(第三层)
+     * @param pid 第二层的表id
+     * @return 响应状态
+     */
+    R generateDistributionDetail(String pid);
+}

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

@@ -0,0 +1,20 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDetailDo;
+import com.rongwei.bscommon.sys.dao.ZhcxPmqManagementDistributionDetailDao;
+import com.rongwei.bscommon.sys.service.ZhcxPmqManagementDistributionDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 三单管理_派发质检确认人 服务实现类
+ * </p>
+ *
+ * @author xuan
+ * @since 2024-11-13
+ */
+@Service
+public class ZhcxPmqManagementDistributionDetailServiceImpl extends ServiceImpl<ZhcxPmqManagementDistributionDetailDao, ZhcxPmqManagementDistributionDetailDo> implements ZhcxPmqManagementDistributionDetailService {
+
+}

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

@@ -0,0 +1,95 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.rongwei.bscommon.sys.service.ZhcxPmqManagementDistributionDetailService;
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDetailDo;
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDo;
+import com.rongwei.bscommon.sys.dao.ZhcxPmqManagementDistributionDao;
+import com.rongwei.bscommon.sys.service.ZhcxPmqManagementDistributionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.utils.SecurityUtil;
+import com.rongwei.rwcommon.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 三单管理_派发机台 服务实现类
+ * </p>
+ *
+ * @author xuan
+ * @since 2024-11-13
+ */
+@Service
+public class ZhcxPmqManagementDistributionServiceImpl extends ServiceImpl<ZhcxPmqManagementDistributionDao, ZhcxPmqManagementDistributionDo> implements ZhcxPmqManagementDistributionService {
+
+    @Autowired
+    private ZhcxPmqManagementDistributionDetailService detailService;
+
+
+    @Override
+    public R generateDistributionDetail(String pid) {
+        if(StringUtils.isEmpty(pid)){
+            return R.error("id不能为空");
+        }
+        // 一个sql直接把数据拆开
+        List<ZhcxPmqManagementDistributionDo> baseList = baseMapper.selectListByPidForConfirmer(pid);
+        if(baseList.isEmpty()){
+            return R.ok("暂无数据需要派单");
+        }
+        // 派单集合
+        List<ZhcxPmqManagementDistributionDetailDo> addList = new ArrayList<>();
+        List<ZhcxPmqManagementDistributionDetailDo> updateList = new ArrayList<>();
+        // 正文如下
+        for (ZhcxPmqManagementDistributionDo zhcxPmqManagementDistributionDo : baseList) {
+            // 防止脏数据
+            if(StringUtils.isEmpty(zhcxPmqManagementDistributionDo.getId())
+                    || StringUtils.isEmpty(zhcxPmqManagementDistributionDo.getMachineid())
+                    || StringUtils.isEmpty(zhcxPmqManagementDistributionDo.getConfirmerid())){
+                return R.error("派单数据异常,含有脏数据");
+            }
+            // 判断数据是否已生成派单
+            List<ZhcxPmqManagementDistributionDetailDo> details =
+                    baseMapper.getDetailList(zhcxPmqManagementDistributionDo.getId(),
+                            pid,
+                            zhcxPmqManagementDistributionDo.getMachineid(),
+                            zhcxPmqManagementDistributionDo.getConfirmerid());
+            if(details.size() > 2){return R.error("派单数据异常");}
+            if(details.isEmpty()){
+               // 添加
+                ZhcxPmqManagementDistributionDetailDo add = new ZhcxPmqManagementDistributionDetailDo();
+                add.setId(SecurityUtil.getUUID())
+                        .setPid(pid)
+                        .setProjectid(zhcxPmqManagementDistributionDo.getProjectid())
+                        .setMachineid(zhcxPmqManagementDistributionDo.getMachineid())
+                        .setMachineno(zhcxPmqManagementDistributionDo.getMachineno())
+                        .setProjectno(zhcxPmqManagementDistributionDo.getProjectno())
+                        .setProjectname(zhcxPmqManagementDistributionDo.getProjectname())
+                        .setConfirmerid(zhcxPmqManagementDistributionDo.getConfirmerid())
+                        .setConfirmer(zhcxPmqManagementDistributionDo.getConfirmer())
+                        .setEstimatedclosedata(zhcxPmqManagementDistributionDo.getEstimatedclosedata())
+                        .setSerialnumber(zhcxPmqManagementDistributionDo.getSerialnumber())
+                        .setDistributid(zhcxPmqManagementDistributionDo.getId());
+                addList.add(add);
+            }else {
+               // 更新
+                ZhcxPmqManagementDistributionDetailDo detailDo = details.get(0);
+                detailDo.setEstimatedclosedata(zhcxPmqManagementDistributionDo.getEstimatedclosedata());
+                updateList.add(detailDo);
+            }
+        }
+
+        // 操作派单表
+        if(!addList.isEmpty()){
+            detailService.saveBatch(addList);
+        }
+        if(!updateList.isEmpty()){
+            detailService.updateBatchById(updateList);
+        }
+        return R.ok("生成派单成功");
+    }
+}

+ 66 - 0
business-common/src/main/resources/mybatis/business/ZhcxPmqManagementDistributionDao.xml

@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.rongwei.bscommon.sys.dao.ZhcxPmqManagementDistributionDao">
+
+
+    <select id="selectListByPidForConfirmer"
+            resultType="com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDo">
+        WITH SplitConfirmers AS (
+            SELECT
+                a.ID,
+                a.DELETED,
+                a.REMARK,
+                a.PID,
+                a.PROJECTID,
+                a.MACHINEID,
+                a.MACHINENO,
+                a.PROJECTNO,
+                a.PROJECTNAME,
+                SUBSTRING_INDEX(SUBSTRING_INDEX(a.CONFIRMERID, ',', n.n), ',', -1) AS CONFIRMERID,
+                SUBSTRING_INDEX(SUBSTRING_INDEX(a.CONFIRMER, ',', n.n), ',', -1) AS CONFIRMER,
+                a.ESTIMATEDCLOSEDATA,
+                a.STATUS,
+                a.SERIALNUMBER
+            FROM
+                INCONTROL.ZHCX_PMQ_MANAGEMENT_DISTRIBUTION a
+                    CROSS JOIN (
+                    SELECT 1 n
+                    UNION ALL SELECT 2
+                    UNION ALL SELECT 3
+                    UNION ALL SELECT 4
+                    UNION ALL SELECT 5
+                    UNION ALL SELECT 6
+                    UNION ALL SELECT 7
+                    UNION ALL SELECT 8
+                    UNION ALL SELECT 9
+                    UNION ALL SELECT 10
+                ) AS n
+            WHERE
+                a.DELETED = '0'
+              AND a.PID = #{pid}
+              AND a.CONFIRMERID IS NOT NULL
+              AND LENGTH(a.CONFIRMERID) - LENGTH(REPLACE(a.CONFIRMERID, ',', '')) >= n.n - 1
+              AND LENGTH(a.CONFIRMER) - LENGTH(REPLACE(a.CONFIRMER, ',', '')) >= n.n - 1
+        )
+        SELECT
+            *
+        FROM
+            SplitConfirmers
+        WHERE
+            CONFIRMERID != ''
+    </select>
+
+    <select id="getDetailList" resultType="com.rongwei.bsentity.domain.ZhcxPmqManagementDistributionDetailDo">
+        SELECT
+            *
+        FROM
+            INCONTROL.ZHCX_PMQ_MANAGEMENT_DISTRIBUTION_DETAIL detail
+        WHERE
+            detail.DELETED = '0'
+          AND detail.DISTRIBUTID = #{distributid}
+          AND detail.PID = #{pid}
+          AND detail.MACHINEID = #{machineid}
+          AND detail.CONFIRMERID = #{confirmerid}
+    </select>
+</mapper>

+ 112 - 0
business-entity/src/main/java/com/rongwei/bsentity/domain/ZhcxPmqManagementDistributionDetailDo.java

@@ -0,0 +1,112 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.rongwei.rwcommon.base.BaseDo;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 三单管理_派发质检确认人
+ * </p>
+ *
+ * @author xuan
+ * @since 2024-11-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("ZHCX_PMQ_MANAGEMENT_DISTRIBUTION_DETAIL")
+public class ZhcxPmqManagementDistributionDetailDo extends BaseDo implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    @TableField("ID")
+    private String id;
+    /**
+     * 租户id
+     */
+    @TableField("TENANTID")
+    private String tenantid;
+    /**
+     * 扩展json
+     */
+    @TableField("ROPTION")
+    private String roption;
+    /**
+     * 父ID
+     */
+    @TableField("PID")
+    private String pid;
+    /**
+     * 项目id
+     */
+    @TableField("PROJECTID")
+    private String projectid;
+    /**
+     * 机号id
+     */
+    @TableField("MACHINEID")
+    private String machineid;
+    /**
+     * 机号
+     */
+    @TableField("MACHINENO")
+    private String machineno;
+    /**
+     * 项目工号
+     */
+    @TableField("PROJECTNO")
+    private String projectno;
+    /**
+     * 项目名称
+     */
+    @TableField("PROJECTNAME")
+    private String projectname;
+    /**
+     * 质检确认人ID
+     */
+    @TableField("CONFIRMERID")
+    private String confirmerid;
+    /**
+     * 质检确认人
+     */
+    @TableField("CONFIRMER")
+    private String confirmer;
+    /**
+     * 预计关闭日期
+     */
+    @TableField("ESTIMATEDCLOSEDATA")
+    private Date estimatedclosedata;
+    /**
+     * 状态
+     */
+    @TableField("STATUS")
+    private String status;
+    /**
+     * 流水号
+     */
+    @TableField("SERIALNUMBER")
+    private String serialnumber;
+    /**
+     * 派发id
+     */
+    @TableField("DISTRIBUTID")
+    private String distributid;
+    /**
+     * 质检确认时间
+     */
+    @TableField("CLOSEDATA")
+    private Date closedata;
+
+
+}

+ 101 - 0
business-entity/src/main/java/com/rongwei/bsentity/domain/ZhcxPmqManagementDistributionDo.java

@@ -0,0 +1,101 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 三单管理_派发机台
+ * </p>
+ *
+ * @author xuan
+ * @since 2024-11-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("ZHCX_PMQ_MANAGEMENT_DISTRIBUTION")
+public class ZhcxPmqManagementDistributionDo extends BaseDo implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    @TableField("ID")
+    private String id;
+    /**
+     * 租户id
+     */
+    @TableField("TENANTID")
+    private String tenantid;
+    /**
+     * 扩展json
+     */
+    @TableField("ROPTION")
+    private String roption;
+    /**
+     * 父ID
+     */
+    @TableField("PID")
+    private String pid;
+    /**
+     * 项目id
+     */
+    @TableField("PROJECTID")
+    private String projectid;
+    /**
+     * 机号id
+     */
+    @TableField("MACHINEID")
+    private String machineid;
+    /**
+     * 机号
+     */
+    @TableField("MACHINENO")
+    private String machineno;
+    /**
+     * 项目工号
+     */
+    @TableField("PROJECTNO")
+    private String projectno;
+    /**
+     * 项目名称
+     */
+    @TableField("PROJECTNAME")
+    private String projectname;
+    /**
+     * 质检确认人ID
+     */
+    @TableField("CONFIRMERID")
+    private String confirmerid;
+    /**
+     * 质检确认人
+     */
+    @TableField("CONFIRMER")
+    private String confirmer;
+    /**
+     * 预计关闭日期
+     */
+    @TableField("ESTIMATEDCLOSEDATA")
+    private Date estimatedclosedata;
+    /**
+     * 状态
+     */
+    @TableField("STATUS")
+    private String status;
+    /**
+     * 流水号
+     */
+    @TableField("SERIALNUMBER")
+    private String serialnumber;
+
+
+}

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

@@ -2,6 +2,8 @@ package com.rongwei.bsentity.domain;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.rongwei.rwcommon.base.BaseDo;
+
+import java.io.Serializable;
 import java.util.Date;
 import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
@@ -20,7 +22,7 @@ import lombok.experimental.Accessors;
 @EqualsAndHashCode(callSuper = true)
 @Accessors(chain = true)
 @TableName("ZHCX_PMQ_MANAGEMENT_MAP")
-public class ZhcxPmqManagementMapDo extends BaseDo {
+public class ZhcxPmqManagementMapDo extends BaseDo implements Serializable {
 
     private static final long serialVersionUID=1L;
 

+ 21 - 0
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPMQMController.java

@@ -1,6 +1,7 @@
 package com.rongwei.bsserver.controller;
 
 import com.rongwei.bscommon.sys.service.ZhcxPMQMService;
+import com.rongwei.bscommon.sys.service.ZhcxPmqManagementDistributionService;
 import com.rongwei.bscommon.sys.utils.ZhcxCommon;
 import com.rongwei.bsentity.domain.ZhcxPmqManagementSourceDo;
 import com.rongwei.rwcommon.base.R;
@@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 @Slf4j
 @RestController
@@ -28,6 +30,9 @@ public class ZhcxPMQMController {
     @Autowired
     private ZhcxPMQMService pmqmService;
 
+    @Autowired
+    private ZhcxPmqManagementDistributionService pmqManagementDistributionService;
+
     @PostMapping("/gdfnx")
     @ApiOperation("获取NX系统的三单数据")
     public R getDataFromNX() {
@@ -51,4 +56,20 @@ public class ZhcxPMQMController {
         return R.ok(list);
     }
 
+
+    @PostMapping("/generateDistributionDetail")
+    @ApiOperation("生成三单派单数据")
+    public R generateDistributionDetail(@RequestBody Map<String,Object> map){
+        try {
+            if(Objects.isNull(map.get("pid"))){
+                return R.error("pid不能为空");
+            }
+            String pid = (String) map.get("pid");
+            log.info("生成三单派单数据__>pid:{}",pid);
+            return pmqManagementDistributionService.generateDistributionDetail(pid);
+        } catch (Exception e) {
+            log.info(String.valueOf(e));
+            return R.error("生成三单派单数据异常");
+        }
+    }
 }