chenlu
2024-04-08 7742e8433ad6eb4488298384ee42dc9f8940b7d0
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
 
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.util.HashMap;
import java.util.List;
import java.util.Map;
 
@Service
@DS("sd")
public class WorkOrderService {
    @Autowired
    WorkOrderMapper workOrderMapper;
 
    //查询工单
    public Map<String, Object> defaultDateWork(Date selectTime1, Date selectTime2, Integer state, OrderGlassDetail orderGlassDetail) {
        Map<String, Object> map = new HashMap<>();
        if (state == 1) {
            map.put("data", workOrderMapper.selectWordOrder(selectTime1, selectTime2, orderGlassDetail));
        } else {
            map.put("data", workOrderMapper.selectWordOrderNo(selectTime1, selectTime2, orderGlassDetail));
        }
 
        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) {
            //生成生产订单号
            for (int i = 0; i < count; i++) {
                letters = lettr++;
                productIdVl = orderId + 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 productName) {
        if (!orderId.isEmpty() && !productName.isEmpty()) {
            //删除订单小片表生产订单号
            workOrderMapper.deleteOrderWorkMp(orderId, productName);
            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;
        }
    }
}