#
zwl
2025-07-19 6193eddf242c4b879402367704b8b5b2e8df84a4
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
138
139
140
141
142
143
144
145
146
147
148
149
package com.zy.asrs.task;
 
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.TaskOverToWms;
import com.zy.asrs.entity.param.TaskStatusFeedbackParam;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.TaskWrkLogServiceImpl;
import com.zy.asrs.utils.PostMesDataUtils;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
 
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/**
 * 定时将任务(完成、取消)转成日志
 */
@Slf4j
@Component
public class TaskLogScheduler {
 
    @Autowired
    private TaskWrkService taskWrkService;
    @Autowired
    private CommandInfoService commandInfoService;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private BasDevpService basDevpService;
 
    @Autowired
    private StaDescService staDescService;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private TaskWrkLogServiceImpl wrkLogService;
 
    @Value("${wms.url}")
    private String wmsUrl;
    @Value("${wms.movePath}")
    private String movePath;
    @Value("${wms.inboundTaskApplyPath}")
    private String inboundTaskApplyPath;
    @Value("${wms.taskLeave}")
    private String taskLeave;
    @Value("${wms.taskStatusFeedbackPath}")
    private String taskStatusFeedbackPath;
 
    /**
     * 入出库任务转历史档
     * @throws IOException
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute() throws IOException {
        //入库7转历史档,移库7转历史档,出库18转
        List<TaskWrk> taskWrkList = taskWrkService.selectList(new EntityWrapper<TaskWrk>()
                .in("wrk_sts", 7,17)
                .or()
                .in("status",5,7));//取消或者完结
        if(taskWrkList.size() == 0){
            return;
        }
        for (TaskWrk taskWrk : taskWrkList) {
            TaskWrkLog taskWrkLog = new TaskWrkLog(taskWrk);
            if(taskWrkLog.getIoType().equals(1)){
                taskWrkLog.setWrkSts(8);
                taskWrkLog.setModiTime(new Date());
                if (!wrkLogService.insert(taskWrkLog)) {
                    throw new CoolException("转历史档失败" + taskWrkLog);
                }
                if (!taskWrkService.deleteById(taskWrk)) {
                    throw new CoolException("任务档删除失败" + taskWrkLog);
                }
            }else if(taskWrkLog.getIoType().equals(2)){
                BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("wrk_no",taskWrk.getWrkNo()));
                if(taskWrk.getWrkNo()>=3001&&taskWrk.getWrkNo()<=6000){
                    taskWrkLog.setWrkSts(18);
                    taskWrkLog.setModiTime(new Date());
                    if (!wrkLogService.insert(taskWrkLog)) {
                        throw new CoolException("转历史档失败" + taskWrkLog);
                    }
                    if (!taskWrkService.deleteById(taskWrk)) {
                        throw new CoolException("任务档删除失败" + taskWrkLog);
                    }
                }
                if(basDevp==null){
                    HashMap<Object, Object> headParam = new HashMap<>();
                    String response = "";
                    Boolean bool = false;
                    try {
                        headParam.put("TaskNo", taskWrk.getTaskNo());
                        log.info("wcs"+"出库搬离任务上报wms={}", taskWrk);
                        response = new HttpHandler.Builder()
                                // .setHeaders(headParam)
                                .setUri(wmsUrl)
                                .setPath(taskLeave)
                                .setJson(JSON.toJSONString(headParam))
                                .build()
                                .doPost();
                        JSONObject jsonObject = JSON.parseObject(response);
                        if(jsonObject.get("ReturnStatus").equals(0)){
                            taskWrkLog.setWrkSts(18);
                            taskWrkLog.setModiTime(new Date());
                            if (!wrkLogService.insert(taskWrkLog)) {
                                throw new CoolException("转历史档失败" + taskWrkLog);
                            }
                            if (!taskWrkService.deleteById(taskWrk)) {
                                throw new CoolException("任务档删除失败" + taskWrkLog);
                            }
                        }
                    } catch (Exception e){
                        log.error("wcs搬离出库给wms失败{},返回值={}", taskWrk, response);
                    }finally {
                        apiLogService.save("wcs搬离出库给wms"
                                , wmsUrl + taskLeave
                                , null
                                , "127.0.0.1"
                                , JSON.toJSONString(headParam)
                                , response
                                , bool
                        );
                    }
                    taskWrkLog.setWrkSts(19);
                    taskWrkLog.setModiTime(new Date());
                    if (!wrkLogService.insert(taskWrkLog)) {
                        throw new CoolException("转历史档失败" + taskWrkLog);
                    }
                    if (!taskWrkService.deleteById(taskWrk)) {
                        throw new CoolException("任务档删除失败" + taskWrkLog);
                    }
                }
 
            }
 
        }
    }
}