刘小明
2024-09-26 8e64fdbe79f48c9635ded95860c3b1a364ecb1ea
生产流程-节点相关接口添加物料清单信息
3个文件已添加
4个文件已修改
218 ■■■■■ 已修改文件
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoPr/PrBillOfMaterialMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrBillOfMaterial.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrProductionNode.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/resources/mapper/PrBillOfMaterialMapper.xml 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/resources/mapper/PrProductionNodeMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/process/ProcessSv.java 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoPr/PrBillOfMaterialMapper.java
New file
@@ -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);
}
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrBillOfMaterial.java
New file
@@ -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;
}
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;
}
pms-parent/pms-global/src/main/resources/mapper/PrBillOfMaterialMapper.xml
New file
@@ -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>
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">
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;
    }
}
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;
    }