guoyujie
2025-08-12 8193c07839e362801486f4827c92d32a6c2d5d36
提交流程卡实时进度条件设置,只要报工报了就修改
5个文件已修改
1个文件已添加
97 ■■■■■ 已修改文件
north-glass-erp/src/main/java/com/example/erp/mapper/pp/DamageDetailsMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderProcessDetailMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/DamageDetails.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/pp/DamageDetailsMapper.java
@@ -6,4 +6,5 @@
@Mapper
public interface DamageDetailsMapper extends BaseMapper<DamageDetails> {
    Integer getBehindDamageSum(String processId, String orderNumber, String technologyNumber, String behindProcess);
}
north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderProcessDetailMapper.java
@@ -33,4 +33,6 @@
    String selectNextProcess(String processId, String technologyNumber, String thisProcess, String orderNumber);
    List<Map<String, String>> selectShiftQuantitySv(String creatorId, String startDatetime, String endDatetime, String step);
    String getBehindProcess(String processId, String orderNumber, String technologyNumber, String thisProcess,String orderId);
}
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -5,18 +5,18 @@
import com.alibaba.fastjson.TypeReference;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.erp.dto.pp.*;
import com.example.erp.entity.pp.DamageDetails;
import com.example.erp.entity.pp.Report;
import com.example.erp.entity.sd.BasicData;
import com.example.erp.entity.sd.OrderDetail;
import com.example.erp.entity.sd.OrderGlassDetail;
import com.example.erp.entity.sd.ProductDetail;
import com.example.erp.mapper.pp.FlowCardMapper;
import com.example.erp.mapper.pp.ProductionSchedulingMapper;
import com.example.erp.mapper.pp.ReportMapper;
import com.example.erp.mapper.pp.ReportingWorkMapper;
import com.example.erp.mapper.pp.*;
import com.example.erp.mapper.sd.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@@ -42,6 +42,7 @@
    private final BasicDataMapper basicDataMapper;
    private final ProductDetailMapper productDetailMapper;
    private final OrderDetailMapper orderDetailMapper;
    private final DamageDetailsMapper damageDetailsMapper;
    FlowCardMapper flowCardMapper;
    private ReportingWorkMapper reportingWorkMapper;
@@ -122,7 +123,7 @@
                         ProductionSchedulingMapper productionSchedulingMapper, FlowCardMapper flowCardMapper,
                         OrderGlassDetailMapper orderGlassDetailMapper, BasicDataMapper basicDataMapper,
                         ProductDetailMapper productDetailMapper, OrderDetailMapper orderDetailMapper,
                         ReportingWorkMapper reportingWorkMapper) {
                         ReportingWorkMapper reportingWorkMapper, DamageDetailsMapper damageDetailsMapper) {
        this.reportMapper = reportMapper;
        this.orderProcessDetailMapper = orderProcessDetailMapper;
        this.productionSchedulingMapper = productionSchedulingMapper;
@@ -132,6 +133,7 @@
        this.productDetailMapper = productDetailMapper;
        this.orderDetailMapper = orderDetailMapper;
        this.reportingWorkMapper = reportingWorkMapper;
        this.damageDetailsMapper = damageDetailsMapper;
    }
    //流程卡进度方法
@@ -186,6 +188,50 @@
                Map<String, String> data = JSON.parseObject(dataList.get(i).get("reportWorkQuantity"),
                        new TypeReference<Map<String, String>>() {
                        });
                Map<String, String> dataShow = JSON.parseObject(dataList.get(i).get("reportWorkQuantityShow"),
                        new TypeReference<Map<String, String>>() {
                        });
               //判断后工序此流程卡号是否有次破
                List<DamageDetails> hasBreak = damageDetailsMapper
                        .selectList(new LambdaQueryWrapper<DamageDetails>()
                                .eq(DamageDetails::getProcessId, dataList.get(i).get("processId"))
                                .eq(DamageDetails::getOrderNumber, dataList.get(i).get("order_number"))
                                .eq(DamageDetails::getTechnologyNumber, dataList.get(i).get("technology_number"))
                                .eq(DamageDetails::getPatchStatus, 0)
                                .gt(DamageDetails::getBreakageQuantity,0)
                        );
                if(!hasBreak.isEmpty()){
                    int finalI = i;
                    data.forEach((thisProcess, index)->{
                        String behindProcess = orderProcessDetailMapper.getBehindProcess(
                                dataList.get(finalI).get("processId"),
                                String.valueOf(dataList.get(finalI).get("order_number")),
                                String.valueOf(dataList.get(finalI).get("technology_number")),
                                thisProcess,
                                orderId
                        );
                        System.out.println(behindProcess);
                        System.out.println("--------");
                        if(behindProcess!=null &&!behindProcess.isEmpty()){
                            Integer behindDamageSum = damageDetailsMapper.getBehindDamageSum(
                                    dataList.get(finalI).get("processId"),
                                    String.valueOf(dataList.get(finalI).get("order_number")),
                                    String.valueOf(dataList.get(finalI).get("technology_number")),
                                    behindProcess
                            );
                            if(behindDamageSum>0){
                                data.put(thisProcess, String.valueOf(Integer.parseInt(data.get(thisProcess) )- behindDamageSum));
                                dataShow.put(thisProcess, String.valueOf(Integer.parseInt(dataShow.get(thisProcess) )- behindDamageSum));
                            }
                        }
                    });
                }
                Integer max = orderGlassDetailMapper
                        .getMaxTechnologyNumberByGroup(dataList.get(i).get("order_id"),
                                String.valueOf(dataList.get(i).get("order_number")),
@@ -214,6 +260,7 @@
                    }
                }
                dataList.get(i).put("reportWorkQuantity",JSON.toJSONString(data));
                dataList.get(i).put("reportWorkQuantityShow",JSON.toJSONString(dataShow));
            }
        }
north-glass-erp/src/main/resources/mapper/pp/DamageDetails.xml
New file
@@ -0,0 +1,20 @@
<?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.example.erp.mapper.pp.DamageDetailsMapper">
<select id="getBehindDamageSum">
    SELECT ifnull(SUM(a.breakage_quantity),0)
    FROM pp.damage_details as a
    left join pp.reporting_work as b
    on a.reporting_work_id = b.reporting_work_id
    WHERE a.process_id = #{processId}
    and a.order_number = #{orderNumber}
    and a.technology_number =#{technologyNumber}
    and a.breakage_quantity>0
    and a.patch_status=0
    and b.reviewed_state>=0
    and b.this_process in (SUBSTRING_INDEX(#{behindProcess},',',1))
</select>
</mapper>
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -169,6 +169,7 @@
               b.glass_child,
               d.order_type,
               concat(c.process_id, '/', c.technology_number) as process_id,
               c.process_id as 'processId',
               c.order_id,
               c.order_number,
               c.technology_number,
north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml
@@ -215,4 +215,20 @@
            group by e.order_number
        </if>
    </select>
    <select id="getBehindProcess">
        select group_concat(process) from sd.order_process_detail as a
        where a.order_id = #{orderId}
        and a.process_id = #{processId}
        and a.order_number =#{orderNumber}
        and a.technology_number =#{technologyNumber}
        and a.id>(select id
                  from sd.order_process_detail as b
                  where b.order_id = #{orderId}
                    and b.process_id = #{processId}
                    and b.order_number =#{orderNumber}
                    and b.technology_number =#{technologyNumber}
                  and b.process = #{thisProcess}
                )
    </select>
</mapper>