Explorar o código

对外报价单转合同添加合同配件

yzc hai 1 ano
pai
achega
1d75b59a5c

+ 20 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractProductBomController.java

@@ -0,0 +1,20 @@
+package com.fjhx.sale.controller.contract;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 合同产品BOM 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2024-01-17
+ */
+@RestController
+@RequestMapping("/contractProductBom")
+public class ContractProductBomController {
+
+
+}

+ 7 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractDto.java

@@ -2,10 +2,12 @@ package com.fjhx.sale.entity.contract.dto;
 
 import com.fjhx.area.service.SetCustomizeAreaId;
 import com.fjhx.sale.entity.contract.po.Contract;
+import com.fjhx.sale.entity.contract.po.ContractProduct;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 外销合同表新增编辑入参实体
@@ -90,4 +92,9 @@ public class ContractDto extends Contract implements SetCustomizeAreaId {
      * 发起类型 0:正常变更  1:直接审批通过
      */
     private Integer startType;
+
+    /**
+     * 合同产品列表
+     */
+    private List<ContractProduct> contractProductList;
 }

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractProductBomDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.entity.contract.dto;
+
+import com.fjhx.sale.entity.contract.po.ContractProductBom;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 合同产品BOM新增编辑入参实体
+ *
+ * @author
+ * @since 2024-01-17
+ */
+@Getter
+@Setter
+public class ContractProductBomDto extends ContractProductBom {
+
+}

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractProductBomSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.entity.contract.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 合同产品BOM列表查询入参实体
+ *
+ * @author
+ * @since 2024-01-17
+ */
+@Getter
+@Setter
+public class ContractProductBomSelectDto extends BaseSelectDto {
+
+}

+ 0 - 6
hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/Contract.java

@@ -382,12 +382,6 @@ public class Contract extends BasePo {
     private List<ObsFile> remarkFileList;
 
     /**
-     * 合同产品列表
-     */
-    @TableField(exist = false)
-    private List<ContractProduct> contractProductList;
-
-    /**
      * 合同出货列表
      */
     @TableField(exist = false)

+ 6 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/ContractProduct.java

@@ -143,4 +143,10 @@ public class ContractProduct extends BasePo {
      */
     private Long quotationProductId;
 
+    /**
+     * 产品单位
+     */
+    @TableField(exist = false)
+    private List<ContractProductBom> contractProductBomList;
+
 }

+ 88 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/po/ContractProductBom.java

@@ -0,0 +1,88 @@
+package com.fjhx.sale.entity.contract.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 合同产品BOM
+ * </p>
+ *
+ * @author
+ * @since 2024-01-17
+ */
+@Getter
+@Setter
+@TableName("contract_product_bom")
+public class ContractProductBom extends BasePo {
+
+    /**
+     * 产品id
+     */
+    private Long productId;
+
+    /**
+     * 商品名称
+     */
+    private String productName;
+
+    /**
+     * 商品型号
+     */
+    private String productModel;
+
+    /**
+     * 商品数量
+     */
+    private BigDecimal quantity;
+
+    /**
+     * 商品单价
+     */
+    private BigDecimal price;
+
+    /**
+     * 商品金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 物料id
+     */
+    private Long materialId;
+
+    /**
+     * 物料成本价
+     */
+    private BigDecimal costPrice;
+
+    /**
+     * 物料销售价
+     */
+    private BigDecimal salePrice;
+
+    /**
+     * 物料类型1原材料 2包材辅材
+     */
+    private Integer type;
+
+    /**
+     * 合同产品表id
+     */
+    private Long contractProductId;
+
+    /**
+     * 报价产品BOM表id
+     */
+    private Long quotationProductBomId;
+
+}

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractProductBomVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.entity.contract.vo;
+
+import com.fjhx.sale.entity.contract.po.ContractProductBom;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 合同产品BOM列表查询返回值实体
+ *
+ * @author
+ * @since 2024-01-17
+ */
+@Getter
+@Setter
+public class ContractProductBomVo extends ContractProductBom {
+
+}

+ 20 - 7
hx-sale/src/main/java/com/fjhx/sale/flow/ContractFlow.java

@@ -27,7 +27,9 @@ import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
 import com.fjhx.sale.entity.contract.dto.ContractDto;
 import com.fjhx.sale.entity.contract.po.Contract;
 import com.fjhx.sale.entity.contract.po.ContractProduct;
+import com.fjhx.sale.entity.contract.po.ContractProductBom;
 import com.fjhx.sale.entity.contract.po.ContractProject;
+import com.fjhx.sale.service.contract.ContractProductBomService;
 import com.fjhx.sale.service.contract.ContractProductService;
 import com.fjhx.sale.service.contract.ContractProjectService;
 import com.fjhx.sale.service.contract.ContractService;
@@ -80,6 +82,8 @@ public class ContractFlow extends FlowDelegate {
     private ISysDeptService deptService;
     @Autowired
     private ProductStockInfoService productStockInfoService;
+    @Autowired
+    private ContractProductBomService contractProductBomService;
 
     @Override
     public String getFlowKey() {
@@ -165,20 +169,29 @@ public class ContractFlow extends FlowDelegate {
         // 保存合同产品
         List<ContractProduct> contractProductList = contract.getContractProductList();
         contractProductList = ObjectUtil.isEmpty(contractProductList) ? new ArrayList<>() : contractProductList;
-        for (ContractProduct c : contractProductList) {
+        for (ContractProduct cp : contractProductList) {
             //对新数据创建id
-            c.setId(ObjectUtil.isEmpty(c.getId()) ? IdWorker.getId() : c.getId());
+            cp.setId(ObjectUtil.isEmpty(cp.getId()) ? IdWorker.getId() : cp.getId());
             //赋值合同Id
-            c.setContractId(contract.getId());
+            cp.setContractId(contract.getId());
             //保存设计稿图
-            ObsFileUtil.editFile(c.getFileList(), c.getId());
+            ObsFileUtil.editFile(cp.getFileList(), cp.getId());
             //保存生产源文件
-            String prodFilePath = c.getProdFilePath();
+            String prodFilePath = cp.getProdFilePath();
             if (ObjectUtil.isNotEmpty(prodFilePath) && prodFilePath.startsWith("/temp")) {
-                String targetFolderPath = String.format("/contractProduct/%s", c.getId());
+                String targetFolderPath = String.format("/contractProduct/%s", cp.getId());
                 com.alibaba.fastjson2.JSONObject prodFile = ftpFileService.moveFolder(prodFilePath, targetFolderPath);
-                c.setProdFilePath(prodFile.getString("path"));
+                cp.setProdFilePath(prodFile.getString("path"));
             }
+
+            //赋值产品BOM信息
+            List<ContractProductBom> contractProductBomList = cp.getContractProductBomList();
+            for (ContractProductBom contractProductBom : contractProductBomList) {
+                contractProductBom.setContractProductId(cp.getId());
+                contractProductBom.setProductId(cp.getProductId());
+            }
+
+            contractProductBomService.editLinked(contractProductBomList, ContractProductBom::getContractProductId, cp.getId());
         }
         contractProductService.editLinked(contractProductList, ContractProduct::getContractId, contract.getId());
 

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractProductBomMapper.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.mapper.contract;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.sale.entity.contract.po.ContractProductBom;
+
+
+/**
+ * <p>
+ * 合同产品BOM Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2024-01-17
+ */
+public interface ContractProductBomMapper extends BaseMapper<ContractProductBom> {
+
+}

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractProductBomService.java

@@ -0,0 +1,17 @@
+package com.fjhx.sale.service.contract;
+
+import com.fjhx.sale.entity.contract.po.ContractProductBom;
+import com.ruoyi.common.core.service.BaseService;
+
+
+/**
+ * <p>
+ * 合同产品BOM 服务类
+ * </p>
+ *
+ * @author
+ * @since 2024-01-17
+ */
+public interface ContractProductBomService extends BaseService<ContractProductBom> {
+
+}

+ 21 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductBomServiceImpl.java

@@ -0,0 +1,21 @@
+package com.fjhx.sale.service.contract.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.sale.entity.contract.po.ContractProductBom;
+import com.fjhx.sale.mapper.contract.ContractProductBomMapper;
+import com.fjhx.sale.service.contract.ContractProductBomService;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ * 合同产品BOM 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2024-01-17
+ */
+@Service
+public class ContractProductBomServiceImpl extends ServiceImpl<ContractProductBomMapper, ContractProductBom> implements ContractProductBomService {
+
+}

+ 4 - 0
hx-sale/src/main/resources/mapper/contract/ContractProductBomMapper.xml

@@ -0,0 +1,4 @@
+<?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.fjhx.sale.mapper.contract.ContractProductBomMapper">
+</mapper>