已修改7个文件
97 ■■■■■ 文件已修改
src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/dto/StockInventoryDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/pojo/StockInRecord.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/pojo/StockInventory.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProductionProductInputMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/stock/StockInventoryMapper.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
@@ -19,6 +19,7 @@
import com.ruoyi.quality.pojo.QualityInspect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.time.LocalDate;
@@ -85,42 +86,45 @@
        List<ProcessRouteItem> processRouteItems = processRouteItemMapper.selectList(new QueryWrapper<ProcessRouteItem>().lambda().eq(ProcessRouteItem::getRouteId, processRoute.getId()).orderByDesc(ProcessRouteItem::getDragSort));
        // 生成当前日期的前缀:年月日
        String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
        ProcessRouteItem processRouteItem = processRouteItems.get(0);
//        for (ProcessRouteItem processRouteItem : processRouteItems) {
        ProductProcessRouteItem productProcessRouteItem = new ProductProcessRouteItem();
        productProcessRouteItem.setProductModelId(processRouteItem.getProductModelId());
        productProcessRouteItem.setProcessId(processRouteItem.getProcessId());
        productProcessRouteItem.setProductOrderId(productOrder.getId());
        productProcessRouteItem.setProductRouteId(productProcessRoute.getId());
        productProcessRouteItem.setDragSort(processRouteItem.getDragSort());
        int insert = productProcessRouteItemMapper.insert(productProcessRouteItem);
        if (insert > 0) {
            // 查询今日已存在的最大工单号
            ProductWorkOrder lastWorkOrder = productWorkOrderMapper.selectMax(datePrefix);
            int sequenceNumber = 1; // 默认序号
            if (lastWorkOrder != null && lastWorkOrder.getWorkOrderNo() != null) {
                String lastNo = lastWorkOrder.getWorkOrderNo().toString();
                if (lastNo.startsWith(datePrefix)) {
                    String seqStr = lastNo.substring(datePrefix.length());
                    try {
                        sequenceNumber = Integer.parseInt(seqStr) + 1;
                    } catch (NumberFormatException e) {
                        sequenceNumber = 1;
        if (!CollectionUtils.isEmpty(processRouteItems)) {
            ProcessRouteItem processRouteItem = processRouteItems.get(0);
            //        for (ProcessRouteItem processRouteItem : processRouteItems) {
            ProductProcessRouteItem productProcessRouteItem = new ProductProcessRouteItem();
            productProcessRouteItem.setProductModelId(processRouteItem.getProductModelId());
            productProcessRouteItem.setProcessId(processRouteItem.getProcessId());
            productProcessRouteItem.setProductOrderId(productOrder.getId());
            productProcessRouteItem.setProductRouteId(productProcessRoute.getId());
            productProcessRouteItem.setDragSort(processRouteItem.getDragSort());
            int insert = productProcessRouteItemMapper.insert(productProcessRouteItem);
            if (insert > 0) {
                // 查询今日已存在的最大工单号
                ProductWorkOrder lastWorkOrder = productWorkOrderMapper.selectMax(datePrefix);
                int sequenceNumber = 1; // 默认序号
                if (lastWorkOrder != null && lastWorkOrder.getWorkOrderNo() != null) {
                    String lastNo = lastWorkOrder.getWorkOrderNo().toString();
                    if (lastNo.startsWith(datePrefix)) {
                        String seqStr = lastNo.substring(datePrefix.length());
                        try {
                            sequenceNumber = Integer.parseInt(seqStr) + 1;
                        } catch (NumberFormatException e) {
                            sequenceNumber = 1;
                        }
                    }
                }
            }
            // 生成完整的工单号
            String workOrderNoStr = "GD" + String.format("%s%03d", datePrefix, sequenceNumber);
            ProductWorkOrder productWorkOrder = new ProductWorkOrder();
            productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
            productWorkOrder.setProductOrderId(productOrder.getId());
            ProductOrder order = productOrderMapper.selectById(productOrder.getId());
            productWorkOrder.setPlanQuantity(order.getQuantity());
            productWorkOrder.setWorkOrderNo(workOrderNoStr);
            productWorkOrder.setStatus(1);
            productWorkOrderMapper.insert(productWorkOrder);
                // 生成完整的工单号
                String workOrderNoStr = "GD" + String.format("%s%03d", datePrefix, sequenceNumber);
                ProductWorkOrder productWorkOrder = new ProductWorkOrder();
                productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
                productWorkOrder.setProductOrderId(productOrder.getId());
                ProductOrder order = productOrderMapper.selectById(productOrder.getId());
                productWorkOrder.setPlanQuantity(order.getQuantity());
                productWorkOrder.setWorkOrderNo(workOrderNoStr);
                productWorkOrder.setStatus(1);
                productWorkOrderMapper.insert(productWorkOrder);
//            }
            }
        }
        return productOrderMapper.updateById(productOrder);
    }
src/main/java/com/ruoyi/stock/dto/StockInventoryDto.java
@@ -50,4 +50,7 @@
    private LocalDateTime weighingDate;
    private String  parentName;
    @ApiModelProperty("净重(总数)")
    private BigDecimal netWeight;
}
src/main/java/com/ruoyi/stock/pojo/StockInRecord.java
@@ -67,4 +67,7 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime weighingDate;
    @ApiModelProperty("净重")
    private BigDecimal netWeight;
}
src/main/java/com/ruoyi/stock/pojo/StockInventory.java
@@ -63,7 +63,4 @@
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("净重")
    private BigDecimal netWeight;
}
src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -61,6 +61,7 @@
        stockInRecordDto.setRecordType(stockInventoryDto.getRecordType());
        stockInRecordDto.setStockInNum(stockInventoryDto.getQualitity());
        stockInRecordDto.setWeighingDate(stockInventoryDto.getWeighingDate());
        stockInRecordDto.setNetWeight(stockInventoryDto.getNetWeight());
        stockInRecordDto.setProductModelId(stockInventoryDto.getProductModelId());
        stockInRecordDto.setType("0");
        stockInRecordService.add(stockInRecordDto);
@@ -71,7 +72,6 @@
            StockInventory newStockInventory = new StockInventory();
            newStockInventory.setProductModelId(stockInventoryDto.getProductModelId());
            newStockInventory.setQualitity(stockInventoryDto.getQualitity());
            newStockInventory.setNetWeight(stockInventoryDto.getNetWeight());
            newStockInventory.setVersion(1);
            newStockInventory.setRemark(stockInventoryDto.getRemark());
            newStockInventory.setLockedQuantity(stockInventoryDto.getLockedQuantity());
src/main/resources/mapper/production/ProductionProductInputMapper.xml
@@ -42,7 +42,8 @@
        SELECT
        DATE_FORMAT(ppi.create_time, '%Y-%m-%d') AS date,
        -- 报工数量 * 最小系数
        SUM(ppi.quantity * IFNULL(distinct_ps.unit_quantity, 1)) AS quantity
        # SUM(ppi.quantity * IFNULL(distinct_ps.unit_quantity, 1)) AS quantity
        SUM(ppi.quantity) AS quantity
        FROM production_product_input ppi
        INNER JOIN production_product_main ppm ON ppm.id = ppi.product_main_id
        INNER JOIN product_process_route_item ppri ON ppri.id = ppm.product_process_route_item_id
src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -19,9 +19,6 @@
            <if test="ew.qualitity != null">
                qualitity = qualitity + #{ew.qualitity},
            </if>
            <if test="ew.netWeight != null">
                net_weight = net_weight + #{ew.netWeight},
            </if>
            <if test="ew.version != null">
                version = version + 1,
            </if>
@@ -59,8 +56,9 @@
        where product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
    </update>
    <select id="pagestockInventory" resultType="com.ruoyi.stock.dto.StockInventoryDto">
        select si.id,
        si.net_weight,
        select
        si.id,
        COALESCE(sir.total_net_weight, 0) as net_weight,
        si.qualitity,
        COALESCE(si.locked_quantity, 0) as locked_quantity,
        si.product_model_id,
@@ -79,6 +77,13 @@
        left join product_model pm on si.product_model_id = pm.id
        left join product p on pm.product_id = p.id
        left join product p1 on p.parent_id = p1.id
        left join (
        select
        product_model_id,
        sum(net_weight) as total_net_weight
        from stock_in_record
        group by product_model_id
        ) sir on si.product_model_id = sir.product_model_id
        <where>
            1=1
            <if test="ew.parentId != null and ew.parentId !=''">