guoyujie
2025-09-05 b0c60452329a61c32db74a1c7d7753d383d6310a
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -11,12 +11,12 @@
import com.example.erp.entity.userInfo.Log;
import com.example.erp.exception.ServiceException;
import com.example.erp.mapper.pp.FlowCardMapper;
import com.example.erp.mapper.pp.ReportingWorkMapper;
import com.example.erp.mapper.sd.*;
import com.example.erp.service.userInfo.LogService;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Service;
import java.awt.*;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;
@@ -48,8 +48,12 @@
    private final OrderDetailMapper orderDetailMapper;
    private final OrderMapper orderMapper;
    private final ReportingWorkMapper reportingWorkMapper;
    public FlowCardService(FlowCardMapper flowCardMapper, OrderGlassDetailMapper orderGlassDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, LogService logService, ProductMapper productMapper, ProductDetailMapper productDetailMapper, OrderDetailMapper orderDetailMapper, OrderMapper orderMapper) {
    public FlowCardService(FlowCardMapper flowCardMapper, OrderGlassDetailMapper orderGlassDetailMapper,
                           OrderProcessDetailMapper orderProcessDetailMapper, LogService logService,
                           ProductMapper productMapper, ProductDetailMapper productDetailMapper,
                           OrderDetailMapper orderDetailMapper, OrderMapper orderMapper,ReportingWorkMapper reportingWorkMapper) {
        this.flowCardMapper = flowCardMapper;
        this.orderGlassDetailMapper = orderGlassDetailMapper;
        this.orderProcessDetailMapper = orderProcessDetailMapper;
@@ -58,6 +62,7 @@
        this.productDetailMapper = productDetailMapper;
        this.orderDetailMapper = orderDetailMapper;
        this.orderMapper = orderMapper;
        this.reportingWorkMapper = reportingWorkMapper;
    }
    //流程卡管理查询
@@ -325,6 +330,7 @@
                    String processSub = flowCard.getProcess().split("->")[0];
                    //获取工序对应的别称
                    String processName = flowCardMapper.getProcessName(processSub);
                    //processName.equals("stepC") || processName.equals("stepD")
                    if (processName.equals("stepC") || processName.equals("stepD")) {//工艺是否包含夹胶中空
                        itemmap.put("detail", flowCardMapper.getPrimaryListLimt(flowCard.getProcessId(),
                                String.valueOf("null".equals(compound)
@@ -684,14 +690,14 @@
                                flowCard.getProcessId(),
                                flowCard.getTechnologyNumber(),
                                flowCard.getProcess(),
                                flowCard.getOrderNumber()
                                flowCard.getOrderNumber(), flowCard.getPrintQuantity()
                        ));
                    } else {
                            //用于天津现场流程卡打印界面的小片标签打印
                        itemmap.put("data", flowCardMapper.getPrintCustomDataSemiTj(
                                flowCard.getProcessId(),
                                flowCard.getTechnologyNumber(),
                                flowCard.getProcess()
                                flowCard.getProcess(), flowCard.getPrintQuantity()
                        ));
                    }
                    list.add(itemmap);
@@ -729,7 +735,7 @@
            } else {//小片标签
                for (FlowCard flowCard : flowCardList) {
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getPrintCustomDataSemi(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(), flowCard.getOrderNumber()));
                    itemmap.put("data", flowCardMapper.getPrintCustomDataSemi(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(), flowCard.getOrderNumber(), flowCard.getPrintQuantity()));
                    list.add(itemmap);
                }
            }
@@ -946,7 +952,7 @@
            } else {//小片标签
                for (FlowCard flowCard : flowCardList) {
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getPrintCustomDataSemi(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(), flowCard.getOrderNumber()));
                    itemmap.put("data", flowCardMapper.getPrintCustomDataSemi(flowCard.getProcessId(), flowCard.getTechnologyNumber(), flowCard.getProcess(), flowCard.getOrderNumber(), flowCard.getPrintQuantity()));
                    list.add(itemmap);
                }
            }
@@ -1207,11 +1213,33 @@
        return map;
    }
    public Boolean updateProcessSv(String processId, String technologyNumber, String orderId, String Orderprocess, Map<String, Object> object) {
    public Boolean updateProcessSv(String processId,String orderNumber, String technologyNumber, String orderId, String Orderprocess, Map<String, Object> object) {
        List<OrderProcessDetail> resultList = new ArrayList<>();
        //获取已报工工艺流程
        String processOk = flowCardMapper.getProcessOk(processId,orderNumber,technologyNumber);
        if (processOk != null && !processOk.isEmpty()){
            List<String> okList = Arrays.asList(processOk.split("->"));
            List<String> orderList = Arrays.asList(Orderprocess.split("->"));
        //判断该流程卡是否报工
        Integer count = flowCardMapper.reportingWorkCount(processId);
        if (count == 0) {
            // 判断 processOk 的每个工序是否都包含在 orderProcess 中
            for (String p : okList) {
                if (!orderList.contains(p)) {
                    return false;
                }
            }
            for (String process : okList) {
                List<OrderProcessDetail> details =
                        flowCardMapper.getProcessDetail(processId,orderNumber, technologyNumber, process);
                if (details != null && !details.isEmpty()) {
                    resultList.addAll(details);
                }
            }
        }
            //删除小片工艺表对应的数据
            flowCardMapper.deleteProcessMp(processId, technologyNumber);
            //重新插入修改好工艺流程卡的数据
@@ -1227,12 +1255,15 @@
                    }
                }
            }
            //将原来已报工的数据更新
            if (resultList != null && !resultList.isEmpty()) {
                for (OrderProcessDetail d : resultList) {
                    flowCardMapper.updateOrderProcessDetail(d.getProcessId(),d.getOrderNumber(),d.getTechnologyNumber(),
                            d.getReportingWorkNumCount(),d.getReportingWorkNum(),d.getBrokenNum(),d.getProcess());
                }
            }
            return true;
        } else {
            return false;
        }
    }
@@ -1449,6 +1480,16 @@
        }
    }
    public Map<String, Object> selectCompletedSv(String processId, Integer orderNumber, String process) {
        Map<String, Object> map = new HashMap<>();
        String[] processList = process.split("->");
        //获取工艺流程第一个工序
        String interceptProcess = processList[0];
        map.put("data", flowCardMapper.selectCompletedMp(processId, orderNumber,interceptProcess));
        return map;
    }
}