wuyouming666
2025-03-19 c6ca78efd59710d1564aca05f70d2197f68feb4b
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
 
package com.example.erp.service.pp;
 
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.example.erp.entity.sd.OrderDetail;
import com.example.erp.entity.sd.OrderGlassDetail;
import com.example.erp.mapper.pp.WorkOrderMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.sql.Date;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
@Service
@DS("sd")
public class WorkOrderService {
    @Autowired
    WorkOrderMapper workOrderMapper;
 
    //查询工单
    public Map<String, Object> defaultDateWork(List<String> selectDate, Integer state, OrderGlassDetail orderGlassDetail) {
        String endDate = LocalDate.now().toString();
        String startDate = LocalDate.now().minusDays(15).toString();
        if(selectDate !=null && selectDate.size()==2){
            if(!selectDate.get(0).isEmpty()){
                startDate = selectDate.get(0);
            }
            if(!selectDate.get(1).isEmpty()){
                endDate = selectDate.get(1);
            }
        }
        Map<String, Object> map = new HashMap<>();
        if (state == 1) {//已转工单
            map.put("data", workOrderMapper.selectWordOrder(startDate, endDate, orderGlassDetail));
        } else {//未转工单
            map.put("data", workOrderMapper.selectWordOrderNo(startDate, endDate, orderGlassDetail));
        }
        List<String> list = new ArrayList<>();
        list.add(startDate);
        list.add(endDate);
        map.put("selectDate",list);
        return map;
    }
 
    //转生产订单查询
    public Map<String, Object> addDateWork(String orderId, OrderDetail orderDetail) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", workOrderMapper.addWordOrder(orderId, orderDetail));
        return map;
    }
 
    //新增生产订单
    public Boolean addOrderWorkSv(Map<String, Object> object) {
        String userName = "";
        if (object.get("userName") != null) {
            userName = object.get("userName").toString();
        }
 
        //定义生产订单号生成需要的条件
        char lettr = 'A';
        char letters = '1';
        int count = 25;
        String productIdVl = "";
        //将接收到的信息解析成list
        List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderdetail")), OrderDetail.class);
        String orderId = orderDetaillist.get(0).getOrderId();
 
        for (OrderDetail orderDetail : orderDetaillist) {
            if(orderDetail.getOrderId()!= orderId){
                orderId = orderDetail.getOrderId();
                letters = '1';
                lettr = 'A';
            }
            //生成生产订单号
            for (int i = 0; i < count; i++) {
                letters = lettr++;
                productIdVl = orderDetail.getOrderId() + letters;
                //查询生成的生产订单号是否存在
                Integer workCount = workOrderMapper.selectOrderNumber(productIdVl);
                if (workCount < 1) {
                    break;
                }
 
            }
            //添加生产订单
            workOrderMapper.addOrderWorkMp(productIdVl, orderDetail.getOrderId(), orderDetail.getProductId(), orderDetail.getProductName(), userName);
            Integer state = 2;
            Integer states = 1;
            //查询该订单未转生产订单的条数
            Integer noWorkCount = workOrderMapper.selectWorkCount(orderDetail.getOrderId());
            if (noWorkCount == 0) {
                //条数为0修改转生产订单状态为2,否则为1
                workOrderMapper.updateWorkType(orderDetail.getOrderId(), state);
            } else {
                workOrderMapper.updateWorkType(orderDetail.getOrderId(), states);
            }
        }
        return true;
 
    }
 
    //删除生产订单
    public Boolean deleteOrderWorkSv(String orderId, String productionId) {
        if (!orderId.isEmpty() && !productionId.isEmpty()) {
            //查询该订单是否已经建立流程卡
            Integer getProcessCard = workOrderMapper.selectProcessCard(orderId);
            if (getProcessCard == 0){
                //删除订单小片表生产订单号
                workOrderMapper.deleteOrderWorkMp(orderId, productionId);
                int state = 0;
                int states = 1;
                //查询该订单未转生产订单的条数
                Integer noWorkCount = workOrderMapper.selectWorkCount(orderId);
                //查询该订单转生产订单的条数
                Integer yesWorkCount = workOrderMapper.selectYesWorkCount(orderId);
                if (noWorkCount.equals(yesWorkCount)) {//判断订单是否全部转工单
                    workOrderMapper.updateWorkType(orderId, state);//全部
                } else {
                    workOrderMapper.updateWorkType(orderId, states);//部分
                }
                return true;
            }
            else {
                return false;
            }
 
        } else {
            return false;
        }
    }
}