From 8e64fdbe79f48c9635ded95860c3b1a364ecb1ea Mon Sep 17 00:00:00 2001
From: 刘小明 <liuxm_a@163.com>
Date: 星期四, 26 九月 2024 16:09:39 +0800
Subject: [PATCH] 生产流程-节点相关接口添加物料清单信息

---
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrBillOfMaterial.java           |   45 +++++++++++
 pms-parent/pms-global/src/main/resources/mapper/PrBillOfMaterialMapper.xml                  |   92 +++++++++++++++++++++++
 pms-parent/pms-global/src/main/resources/mapper/PrProductionNodeMapper.xml                  |    2 
 pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/process/ProcessSv.java           |   50 ++++++++++--
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoPr/PrBillOfMaterialMapper.java      |   23 +++++
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrProductionNode.java           |    2 
 pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java |    4 
 7 files changed, 206 insertions(+), 12 deletions(-)

diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoPr/PrBillOfMaterialMapper.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoPr/PrBillOfMaterialMapper.java
new file mode 100644
index 0000000..ffee6ba
--- /dev/null
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoPr/PrBillOfMaterialMapper.java
@@ -0,0 +1,23 @@
+package com.dy.pmsGlobal.daoPr;
+
+import com.dy.pmsGlobal.pojoPr.PrBillOfMaterial;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface PrBillOfMaterialMapper {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(PrBillOfMaterial record);
+
+    int insertSelective(PrBillOfMaterial record);
+
+    PrBillOfMaterial selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(PrBillOfMaterial record);
+
+    int updateByPrimaryKey(PrBillOfMaterial record);
+
+    int insertMany(List<PrBillOfMaterial> records);
+}
\ No newline at end of file
diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrBillOfMaterial.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrBillOfMaterial.java
new file mode 100644
index 0000000..62087f6
--- /dev/null
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrBillOfMaterial.java
@@ -0,0 +1,45 @@
+package com.dy.pmsGlobal.pojoPr;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import lombok.*;
+
+/**
+ * 鑺傜偣-鐗╂枡娓呭崟鍏宠仈琛�
+ */
+@TableName(value="pr_bill_of_material", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class PrBillOfMaterial implements BaseEntity {
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long id;
+
+    /**
+    * 鑺傜偣瀹炰綋缂栧彿
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long nodeId;
+
+    /**
+    * 鏂囦欢缂栧彿
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long fileId;
+
+    /**
+     * 鏂囦欢涓嬭浇鍦板潃
+     */
+    @TableField(exist = false)
+    public String webUrl;
+
+    @TableField(exist = false)
+    public String orgName;
+    @TableField(exist = false)
+    public String extName;
+}
\ No newline at end of file
diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrProductionNode.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrProductionNode.java
index a33064b..497b981 100644
--- a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrProductionNode.java
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrProductionNode.java
@@ -94,5 +94,7 @@
 
     @TableField(exist = false)
     public PrWorkingInstruction instruction;
+    @TableField(exist = false)
+    public PrBillOfMaterial bill;
 
 }
\ No newline at end of file
diff --git a/pms-parent/pms-global/src/main/resources/mapper/PrBillOfMaterialMapper.xml b/pms-parent/pms-global/src/main/resources/mapper/PrBillOfMaterialMapper.xml
new file mode 100644
index 0000000..a9c0e69
--- /dev/null
+++ b/pms-parent/pms-global/src/main/resources/mapper/PrBillOfMaterialMapper.xml
@@ -0,0 +1,92 @@
+<?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.dy.pmsGlobal.daoPr.PrBillOfMaterialMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pmsGlobal.pojoPr.PrBillOfMaterial">
+    <!--@mbg.generated-->
+    <!--@Table pr_bill_of_material-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="node_id" jdbcType="BIGINT" property="nodeId" />
+    <result column="file_id" jdbcType="BIGINT" property="fileId" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, node_id, file_id
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from pr_bill_of_material
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <select id="selectByNodeId" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from pr_bill_of_material
+    where  node_id = #{nodeId,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from pr_bill_of_material
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insertMany" parameterType="java.util.List">
+    insert into pr_bill_of_material
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      id,node_id,file_id
+    </trim>
+    values
+    <foreach collection="list" item="item" separator=",">
+      (
+      #{item.id,jdbcType=BIGINT},
+      #{item.nodeId,jdbcType=BIGINT},
+      #{item.fileId,jdbcType=BIGINT}
+      )
+    </foreach>
+  </insert>
+  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pmsGlobal.pojoPr.PrBillOfMaterial" useGeneratedKeys="true">
+    <!--@mbg.generated-->
+    insert into pr_bill_of_material (node_id, file_id)
+    values (#{nodeId,jdbcType=BIGINT}, #{fileId,jdbcType=BIGINT})
+  </insert>
+  <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pmsGlobal.pojoPr.PrBillOfMaterial" useGeneratedKeys="true">
+    <!--@mbg.generated-->
+    insert into pr_bill_of_material
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="nodeId != null">
+        node_id,
+      </if>
+      <if test="fileId != null">
+        file_id,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="nodeId != null">
+        #{nodeId,jdbcType=BIGINT},
+      </if>
+      <if test="fileId != null">
+        #{fileId,jdbcType=BIGINT},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pmsGlobal.pojoPr.PrBillOfMaterial">
+    <!--@mbg.generated-->
+    update pr_bill_of_material
+    <set>
+      <if test="nodeId != null">
+        node_id = #{nodeId,jdbcType=BIGINT},
+      </if>
+      <if test="fileId != null">
+        file_id = #{fileId,jdbcType=BIGINT},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pmsGlobal.pojoPr.PrBillOfMaterial">
+    <!--@mbg.generated-->
+    update pr_bill_of_material
+    set node_id = #{nodeId,jdbcType=BIGINT},
+      file_id = #{fileId,jdbcType=BIGINT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pms-parent/pms-global/src/main/resources/mapper/PrProductionNodeMapper.xml b/pms-parent/pms-global/src/main/resources/mapper/PrProductionNodeMapper.xml
index cd93f4c..67b5e16 100644
--- a/pms-parent/pms-global/src/main/resources/mapper/PrProductionNodeMapper.xml
+++ b/pms-parent/pms-global/src/main/resources/mapper/PrProductionNodeMapper.xml
@@ -18,6 +18,8 @@
         <result property="remark" column="remark" jdbcType="VARCHAR"/>
         <association property="instruction"
             column="id" javaType="java.lang.Long" select="com.dy.pmsGlobal.daoPr.PrWorkingInstructionMapper.selectByNodeId" fetchType="eager" />
+        <association property="bill"
+                     column="id" javaType="java.lang.Long" select="com.dy.pmsGlobal.daoPr.PrBillOfMaterialMapper.selectByNodeId" fetchType="eager" />
     </resultMap>
 
     <sql id="Base_Column_List">
diff --git a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/process/ProcessSv.java b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/process/ProcessSv.java
index 4f2a3b7..54ff76d 100644
--- a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/process/ProcessSv.java
+++ b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/process/ProcessSv.java
@@ -3,18 +3,12 @@
 import com.dy.common.webFilter.UserTokenContext;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pmsGlobal.daoOth.OthFileMapper;
-import com.dy.pmsGlobal.daoPr.PrAssemblyPlanMapper;
-import com.dy.pmsGlobal.daoPr.PrProductionNodeMapper;
-import com.dy.pmsGlobal.daoPr.PrProductionProcessMapper;
-import com.dy.pmsGlobal.daoPr.PrWorkingInstructionMapper;
+import com.dy.pmsGlobal.daoPr.*;
 import com.dy.pmsGlobal.dyFile.FileOperate;
 import com.dy.pmsGlobal.dyFile.FileRestVo;
 import com.dy.pmsGlobal.pojoBa.BaUser;
 import com.dy.pmsGlobal.pojoOth.OthFile;
-import com.dy.pmsGlobal.pojoPr.PrAssemblyPlan;
-import com.dy.pmsGlobal.pojoPr.PrProductionNode;
-import com.dy.pmsGlobal.pojoPr.PrProductionProcess;
-import com.dy.pmsGlobal.pojoPr.PrWorkingInstruction;
+import com.dy.pmsGlobal.pojoPr.*;
 import com.dy.pmsGlobal.util.UserUtil;
 import com.dy.pmsProduct.taskPlan.PlanStatusEnum;
 import lombok.extern.slf4j.Slf4j;
@@ -39,6 +33,7 @@
     private PrProductionProcessMapper processDao;
     private PrProductionNodeMapper nodeDao;
     private PrWorkingInstructionMapper workDao;
+    private PrBillOfMaterialMapper billDao;
     private UserUtil userUtil;
     private FileOperate fileOperate;
     private OthFileMapper othFileMapper;
@@ -78,6 +73,10 @@
     @Autowired
     public void setOthFileMapper(OthFileMapper othFileMapper) {
         this.othFileMapper = othFileMapper;
+    }
+    @Autowired
+    public void setBillDao(PrBillOfMaterialMapper billDao) {
+        this.billDao = billDao;
     }
 
     @Transactional
@@ -164,7 +163,7 @@
             }
         });
         if (startCount.get() != 1 || endCount.get() != 1) {
-            throw new RuntimeException("鑺傜偣寮�濮嬪拰缁撴潫鑺傜偣鏈変笖鍙兘鏈変竴涓�");
+            throw new RuntimeException("寮�濮嬭妭鐐瑰拰缁撴潫鑺傜偣鏈変笖鍙兘鏈変竴涓�");
         }
     }
 
@@ -203,6 +202,17 @@
         if (CollectionUtils.isNotEmpty(workList)) {
             workDao.insertMany(workList);
         }
+
+        List<PrBillOfMaterial> billList = process.nodes.stream().map(node -> {
+            if (node.bill != null) {
+                node.bill.nodeId = node.id;
+                return node.bill;
+            }
+            return null;
+        }).filter(bill -> bill != null).toList();
+        if (CollectionUtils.isNotEmpty(billList)) {
+            billDao.insertMany(billList);
+        }
     }
 
     public int delete(Long id) {
@@ -215,6 +225,9 @@
             process.nodes.forEach(node -> {
                 if (node.instruction != null) {
                     addUrl(node.instruction);
+                }
+                if (node.bill != null) {
+                    addBillUrl(node.bill);
                 }
             });
         }
@@ -238,6 +251,9 @@
                 if (node.instruction != null) {
                     addUrl(node.instruction);
                 }
+                if (node.bill != null) {
+                    addBillUrl(node.bill);
+                }
             });
         });
         return rsVo;
@@ -256,8 +272,22 @@
             return;
         }
         FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash);
-        ins.webUrl = fileRestVo.fileSysRestUrl + fileRestVo.fileWebDownloadPath + ins.fileId;
+        ins.webUrl = fileRestVo.fileWebDownloadPath + ins.fileId;
         ins.orgName = file.orgName;
         ins.extName = file.extName;
     }
+
+    private void addBillUrl(PrBillOfMaterial bill) {
+        if (bill == null || bill.fileId == null) {
+            return;
+        }
+        OthFile file = othFileMapper.selectByPrimaryKey(bill.fileId);
+        if (file == null) {
+            return;
+        }
+        FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash);
+        bill.webUrl = fileRestVo.fileWebDownloadPath + bill.fileId;
+        bill.orgName = file.orgName;
+        bill.extName = file.extName;
+    }
 }
diff --git a/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java b/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java
index c9071ae..860b7d3 100644
--- a/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java
+++ b/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java
@@ -480,7 +480,7 @@
                 return;
             }
             FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash);
-            doc.webUrl = fileRestVo.fileSysRestUrl + fileRestVo.fileWebDownloadPath + doc.fileId;
+            doc.webUrl = fileRestVo.fileWebDownloadPath + doc.fileId;
             doc.orgName = file.orgName;
             doc.extName = file.extName;
         });
@@ -522,7 +522,7 @@
             return;
         }
         FileRestVo fileRestVo = fileOperate.parseHashcode(fmUrl, file.hash);
-        ins.webUrl = fileRestVo.fileSysRestUrl + fileRestVo.fileWebDownloadPath + ins.fileId;
+        ins.webUrl = fileRestVo.fileWebDownloadPath + ins.fileId;
         ins.orgName = file.orgName;
         ins.extName = file.extName;
     }

--
Gitblit v1.8.0