chenlu
2024-03-01 ede4e6aef5421f3a28fb4bc083ee60025b1b5f03
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package com.example.erp.service.pp;
 
import com.example.erp.entity.pp.ReportingWork;
import com.example.erp.entity.sd.OrderProcessDetail;
import com.example.erp.mapper.pp.BasicDateProduceMapper;
import com.example.erp.mapper.pp.ReportingWorkMapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.HashMap;
import java.util.Map;
 
@Service
@DS("pp")
public class ReportingWorkService {
    @Autowired
    ReportingWorkMapper reportingWorkMapper;
 
    BasicDateProduceMapper basicDateProduceMapper;
 
    public Map<String, Object> AddSelectLastWorkSv(String processIdStr, String technologyStr, String process) {
        Map<String, Object> map = new HashMap<>();
        //查询流程卡工艺流程
        String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(processIdStr);
 
        int index = technologicalProcess.indexOf("-");
        //获取工艺流程第一个工序
        String interceptProcess = technologicalProcess.substring(0, index);
        String[] processList = technologicalProcess.split("->");
        int length = processList.length;
 
        //定义当前工序上下工序
        String previousProcess = "";
        String nextProcess = "";
 
        //循环该流程卡工艺流程
        for (int i = 0; i < length; i++) {
            //当到当前工序时
            if (processList[i].equals(process)) {
                //获取当前工序的上一道工序
                if (i - 1 < 0) {
                    previousProcess = "";
                } else {
                    previousProcess = processList[i - 1];
                }
                //获取当前工序的下一道工序
                if (i + 1 > length - 1) {
                    nextProcess = "";
                } else {
                    nextProcess = processList[i + 1];
                }
                //System.out.println("当前工序:" + process + " 上一道工序:" + previousProcess + " 下一道工序:" + nextProcess);
                //查询当前工序的表头数据
                map.put("data", reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr,previousProcess,nextProcess,process));
                map.put("thisProcess", processList);
                break;
            }
        }
 
 
        //设备下拉框
        map.put("device", reportingWorkMapper.SelectWorkBasicDeviceMp(process));
        //班组下拉框
        map.put("teams", reportingWorkMapper.SelectWorkBasicTeamsMp(process));
 
 
        //查询本工序报工需要哪几层,上工序是什么
        String  obtainTechnology = reportingWorkMapper.SelectWorkTechnologyMp(processIdStr);
 
 
        //判断本工序是不是第一道工序
        if (interceptProcess.equals(process)) {
            //是第一道工序,查询流程卡数据
            map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr,technologyStr));
 
        }
        else {
            //不是第一道工序,查询报工数据
 
            map.put("Detail", reportingWorkMapper.SelectReworlDetailMp(processIdStr,technologyStr,previousProcess));
        }
 
        // 第一道工序(流程卡数+补片数量-完工数-次破数-返工未完成数-禁用数量)
 
        // 后续工序(上工序报工数-完工数-次破数-返工未完成数)
 
        return map;
 
    }
 
    public Map<String, Object> SelectProcessSv() {
        Map<String, Object> map = new HashMap<>();
        map.put("process", reportingWorkMapper.SelectProcessMp());
        return map;
    }
}