gongchunyi
6 天以前 33d93225f790ff72f8ba5e86f8cf2c3e2db94d0d
feat: 新增宽、高、面积,产品加工绑定
已修改7个文件
82 ■■■■ 文件已修改
doc/河南鹤壁天沐钢化玻璃厂.sql 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcessBind.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/ISalesLedgerProductProcessBindService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductProcessBindServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/ºÓÄϺױÚÌìãå¸Ö»¯²£Á§³§.sql
@@ -39,3 +39,13 @@
ALTER TABLE sales_ledger_product_process
    CHANGE COLUMN remark code VARCHAR(255) COMMENT '编码';
ALTER TABLE `product-inventory-management-hbtmblc`.`sales_ledger_product`
    MODIFY COLUMN `width` decimal(20, 15) NULL DEFAULT NULL COMMENT '宽(mm)' AFTER `is_checked`,
    MODIFY COLUMN `height` decimal(20, 15) NULL DEFAULT NULL COMMENT '高(mm)' AFTER `width`,
    MODIFY COLUMN `actual_piece_area` decimal(20, 15) NULL DEFAULT NULL COMMENT '实际单片面积(㎡)' AFTER `height`,
    MODIFY COLUMN `actual_total_area` decimal(20, 15) NULL DEFAULT NULL COMMENT '实际总面积(㎡)' AFTER `actual_piece_area`,
    MODIFY COLUMN `settle_piece_area` decimal(20, 15) NULL DEFAULT NULL COMMENT '结算单片面积(㎡)' AFTER `actual_total_area`,
    MODIFY COLUMN `settle_total_area` decimal(20, 15) NULL DEFAULT NULL COMMENT '结算总面积(㎡)' AFTER `settle_piece_area`,
    ADD COLUMN `perimeter` decimal(20, 15) NULL COMMENT '周长' AFTER `settle_total_area`,
    ADD COLUMN `heavy_box` decimal(20, 15) NULL COMMENT '重箱' AFTER `perimeter`;
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -270,6 +270,18 @@
    @ApiModelProperty("结算总面积(㎡)")
    private BigDecimal settleTotalArea;
    /**
     * å‘¨é•¿
     */
    @ApiModelProperty("周长(cm)")
    private BigDecimal perimeter;
    /**
     * å‘¨é•¿
     */
    @ApiModelProperty("重箱")
    private BigDecimal heavyBox;
    @TableField(exist = false)
    @ApiModelProperty("销售产品额外加工")
    private List<SalesLedgerProductProcess> salesProductProcessList;
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProductProcessBind.java
@@ -32,7 +32,7 @@
    private Integer id;
    @ApiModelProperty(value = "销售台账产品信息ID")
    private Integer salesLedgerProductId;
    private Long salesLedgerProductId;
    @ApiModelProperty(value = "销售产品加工明细ID")
    private Integer salesLedgerProductProcessId;
src/main/java/com/ruoyi/sales/service/ISalesLedgerProductProcessBindService.java
@@ -1,7 +1,10 @@
package com.ruoyi.sales.service;
import com.ruoyi.sales.pojo.SalesLedgerProductProcess;
import com.ruoyi.sales.pojo.SalesLedgerProductProcessBind;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * <p>
@@ -13,4 +16,6 @@
 */
public interface ISalesLedgerProductProcessBindService extends IService<SalesLedgerProductProcessBind> {
    void updateProductProcessBind(List<SalesLedgerProductProcess> list, Long salesLedgerProductId);
}
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductProcessBindServiceImpl.java
@@ -1,10 +1,14 @@
package com.ruoyi.sales.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.sales.pojo.SalesLedgerProductProcess;
import com.ruoyi.sales.pojo.SalesLedgerProductProcessBind;
import com.ruoyi.sales.mapper.SalesLedgerProductProcessBindMapper;
import com.ruoyi.sales.service.ISalesLedgerProductProcessBindService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * <p>
@@ -17,4 +21,19 @@
@Service
public class SalesLedgerProductProcessBindServiceImpl extends ServiceImpl<SalesLedgerProductProcessBindMapper, SalesLedgerProductProcessBind> implements ISalesLedgerProductProcessBindService {
    @Override
    public void updateProductProcessBind(List<SalesLedgerProductProcess> list, Long salesLedgerProductId) {
        if (list == null || list.isEmpty()) {
            return;
        }
        //  å…ˆæ¸…空再插入
        baseMapper.delete(new LambdaQueryWrapper<SalesLedgerProductProcessBind>().in(SalesLedgerProductProcessBind::getSalesLedgerProductId, salesLedgerProductId));
        list.forEach(s -> {
            SalesLedgerProductProcessBind salesLedgerProductProcessBind = new SalesLedgerProductProcessBind();
            salesLedgerProductProcessBind.setSalesLedgerProductId(salesLedgerProductId);
            salesLedgerProductProcessBind.setSalesLedgerProductProcessId(s.getId());
            salesLedgerProductProcessBind.setQuantity(s.getQuantity());
            baseMapper.insert(salesLedgerProductProcessBind);
        });
    }
}
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -24,9 +24,8 @@
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
import com.ruoyi.sales.mapper.ShippingInfoMapper;
import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.sales.pojo.ShippingInfo;
import com.ruoyi.sales.pojo.*;
import com.ruoyi.sales.service.ISalesLedgerProductProcessBindService;
import com.ruoyi.sales.service.ISalesLedgerProductService;
import com.ruoyi.stock.mapper.StockInventoryMapper;
import com.ruoyi.stock.pojo.StockInventory;
@@ -84,7 +83,7 @@
    private StockUtils stockUtils;
    private final ISalesLedgerProductProcessBindService salesLedgerProductProcessBindService;
    @Autowired
    private ProductStructureMapper productStructureMapper;
@@ -258,6 +257,9 @@
                        PurchaseLedger.class
                );
            }
            //  æ¸…空销售产品绑定的加工
            salesLedgerProductProcessBindService.updateProductProcessBind(salesLedgerProduct.getSalesProductProcessList(), salesLedgerProduct.getId());
        }
        return result;
    }
@@ -488,6 +490,7 @@
            throw new RuntimeException("动态更新主表金额失败", e);
        }
    }
    @Override
    public R judgmentInventory(SalesLedgerProduct salesLedgerProduct) {
        //获取产品最新的工艺路线
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -754,17 +754,8 @@
            for (SalesLedgerProduct product : updateList) {
                product.setType(type.getCode());
                salesLedgerProductMapper.updateById(product);
                //  å®žçŽ°åˆ é™¤ç»‘å®šçš„å…¨éƒ¨åŠ å·¥
                salesLedgerProductProcessBindService.remove(new LambdaQueryWrapper<SalesLedgerProductProcessBind>().eq(SalesLedgerProductProcessBind::getSalesLedgerProductId, product.getId()));
                //  ç»‘定产品额外加工
                List<SalesLedgerProductProcess> salesProductProcessList = product.getSalesProductProcessList();
                salesProductProcessList.forEach(s -> {
                    SalesLedgerProductProcessBind processBind = new SalesLedgerProductProcessBind();
                    processBind.setSalesLedgerProductId(Math.toIntExact(product.getId()));
                    processBind.setSalesLedgerProductProcessId(s.getId());
                    processBind.setQuantity(s.getQuantity());
                    salesLedgerProductProcessBindService.save(processBind);
                });
                //  æ¸…空销售产品绑定的加工
                salesLedgerProductProcessBindService.updateProductProcessBind(product.getSalesProductProcessList(), product.getId());
            }
        }
        // æ‰§è¡Œæ’入操作
@@ -776,14 +767,8 @@
                salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice());
                salesLedgerProductMapper.insert(salesLedgerProduct);
                //  ç»‘定产品额外加工
                List<SalesLedgerProductProcess> salesProductProcessList = salesLedgerProduct.getSalesProductProcessList();
                salesProductProcessList.forEach(s -> {
                    SalesLedgerProductProcessBind processBind = new SalesLedgerProductProcessBind();
                    processBind.setSalesLedgerProductId(Math.toIntExact(salesLedgerProduct.getId()));
                    processBind.setSalesLedgerProductProcessId(s.getId());
                    processBind.setQuantity(s.getQuantity());
                    salesLedgerProductProcessBindService.save(processBind);
                });
                //  æ¸…空销售产品绑定的加工
                salesLedgerProductProcessBindService.updateProductProcessBind(salesLedgerProduct.getSalesProductProcessList(), salesLedgerProduct.getId());
                // æ·»åŠ ç”Ÿäº§æ•°æ®
                salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
            }