guoyuji
2024-09-26 26633e17d9e9a612e4744405d214cf513d13bffd
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -5,10 +5,12 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.erp.common.Constants;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.sd.OrderGlassDetail;
import com.example.erp.entity.sd.OrderProcessDetail;
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.sd.OrderGlassDetailMapper;
import com.example.erp.mapper.sd.OrderProcessDetailMapper;
@@ -83,6 +85,8 @@
                flowCardMapper.deleteReportingWork(processId);
                //删除分架明细
                flowCardMapper.deleteFlowCardMp(orderId, processId);
                //删除排序表数据
                flowCardMapper.deleteflowCardSort(orderId, processId);
                //判断该订单流程卡是否全部删除
                Integer flowNumber = flowCardMapper.selectFlowCardCount(orderId);
                if (flowNumber == 0) {
@@ -403,6 +407,27 @@
        return map;
    }
    public Map<String, Object> getSelectPrintLabelDetails(Map<String, Object> object) {
        Map<String, Object> map = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                // Integer count=flowCardMapper.getPrintLabelCount(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                Map<String, Object> itemmap = new HashMap<>();
                // for (int i = 0; i < count; i++) {
                itemmap.put("data", flowCardMapper.getPrintLabelDetail(flowCard));
                list.add(itemmap);
                //}
            }
        }
        map.put("data", list);
        return map;
    }
    public Map<String, Object> printFlowCardDetailsSv(String processId, String technologyNumber, String process, FlowCard flowCard) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.printFlowCardDetailsMp(processId, technologyNumber,process, flowCard));
@@ -515,8 +540,8 @@
                //流程卡表头表尾数据
                //是否传入合并层数
                if (printMerge.equals("")||printMerge.equals("null") ){
                    itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(),flowCard.getReportingWorkId(),mergeTechnologyNumber));
                    List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(),flowCard.getReportingWorkId());
                    itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(),flowCard.getReportingWorkId(),mergeTechnologyNumber,flowCard.getPatchReason()));
                    List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(),flowCard.getReportingWorkId(),flowCard.getPatchReason());
                    itemmap.put("detailList", detailList);
                }
                else {
@@ -525,11 +550,11 @@
                    if (printLike.equals("")||printLike.equals("null") ){
                        itemmap.put("detail", flowCardMapper.getPrimaryListMergeRefund(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(), flowCard.getReportingWorkId());
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), flowCard.getPatchReason());
                        itemmap.put("detailList", detailList);
                    }
                    else {
                        itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), mergeTechnologyNumber));
                        itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), mergeTechnologyNumber, flowCard.getPatchReason()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeRefund(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber(),flowCard.getReportingWorkId());
                        itemmap.put("detailList", detailList);
@@ -603,14 +628,19 @@
        return map;
    }
    public Object selectPrintDetailsSv(Map<String, Object> object, String inquiryMode) {
    public Object selectPrintDetailsSv(Map<String, Object> object, String inquiryMode,Integer type) {
        Map<String, Object> map = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("detail", flowCardMapper.selectPrintDetailsMp(flowCard.getOrderId()));
                    if(type==1){
                        itemmap.put("detail", flowCardMapper.selectPrintDetailsMp(flowCard.getOrderId()));
                    }else if(type==2){
                        itemmap.put("detail", flowCardMapper.selectPrintDetailsMp1(flowCard.getOrderId()));
                    }
                list.add(itemmap);
            }
        }
@@ -624,12 +654,24 @@
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            Set<String> processedProcessIds = new HashSet<>();  // 用来存放已处理过的 processId
            if (lableType != 2){
                for (FlowCard flowCard : flowCardList) {
                    String processId = flowCard.getProcessId();
                    String orderNumber = flowCard.getOrderNumber().toString();
                    // 检查是否已经处理过该 processId,如果处理过则跳过
                    if (processedProcessIds.contains(processId)&&processedProcessIds.contains(orderNumber)) {
                        continue;
                    }
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getPrintCustomDataDetails(flowCard.getProcessId(),flowCard.getOrderNumber()));
                    list.add(itemmap);
                    // 将该 processId 加入已处理集合
                    processedProcessIds.add(processId);
                    processedProcessIds.add(orderNumber);
                }
            }
            else{
@@ -680,6 +722,84 @@
    }
    public  List<FlowCard> getProcessCard(Map<String, String> processCards) {
        String processCard = processCards.get("processCard");
        if(!processCard.contains("/")){
            throw new ServiceException(Constants.Code_600, "错误的流程卡号,请检查!");
        }
        String[] processCardList = processCard.split("/");
        List<FlowCard> flowCardList = flowCardMapper.selectList(
                new QueryWrapper<FlowCard>()
                        .eq("process_id", processCardList[0])
                        .eq("technology_number", processCardList[1])
        );
        for (FlowCard flowCard : flowCardList) {
            flowCard.setOrderGlassDetail(
                    orderGlassDetailMapper.selectOne(
                            new QueryWrapper<OrderGlassDetail>()
                                    .eq("order_id", flowCard.getOrderId())
                                    .eq("order_number", flowCard.getOrderNumber())
                                    .eq("technology_number", flowCard.getTechnologyNumber())
                    )
            );
            String str = flowCard.getOrderGlassDetail().getGlassChild();
            String delimiter = "mm";
            int index = str.indexOf(delimiter);
            Integer subString = Integer.valueOf(str.substring(0, index).trim());
            flowCard.getOrderGlassDetail().setThickness(subString);
        }
        return flowCardList;
    }
    public Boolean checkboxDeleteSv(Map<String, Object> object) {
        String userName = "";
        if (object.get("userName") != null) {
            userName = object.get("userName").toString();
        }
        String userId = "";
        if (object.get("userId") != null) {
            userId = object.get("userId").toString();
        }
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("composing")), FlowCard.class);
            for (FlowCard flowCard : flowCardList) {
                Integer count = flowCardMapper.reportingWorkCount(flowCard.getProcessId());
                if (count == 0) {
                    //修改分架状态
                    flowCardMapper.updateDeleteState(flowCard.getOrderId(), flowCard.getProcessId());
                    //删除报工流程明细表数据
                    flowCardMapper.deleteReportingWork(flowCard.getProcessId());
                    //删除分架明细
                    flowCardMapper.deleteFlowCardMp(flowCard.getOrderId(), flowCard.getProcessId());
                    //删除排序表数据
                    flowCardMapper.deleteflowCardSort(flowCard.getOrderId(), flowCard.getProcessId());
                    //判断该订单流程卡是否全部删除
                    Integer flowNumber = flowCardMapper.selectFlowCardCount(flowCard.getOrderId());
                    if (flowNumber == 0) {
                        //修改订单表分架状态为0,全部删除
                        flowCardMapper.updateProcessingCard(flowCard.getOrderId(), 0);
                    } else {
                        //修改订单表分架状态为1,删除部分
                        flowCardMapper.updateProcessingCard(flowCard.getOrderId(), 1);
                    }
                    //保存日志
                    Log log = new Log();
                    log.setContent(flowCard.getOrderId()+flowCard.getProcessId());
                    log.setFunction("checkboxDeleteSv流程卡删除");
                    log.setOperatorId(userId);
                    log.setOperator(userName);
                    logService.saveLog(log);
                } else {
                    return false;
                }
            }
            return true;
    }
}