野心家
2025-03-07 2553ff09b3dc2523d6d8e19762a0aea1eafd73af
初始化立福德wcs
4个文件已修改
2个文件已添加
1 文件已重命名
400 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/TaskWrkController.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AutoReportStartHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/RepositionLED.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/TaskLogScheduler.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/TaskMastScheduler.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/TaskWrkMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/TaskWrkController.java
@@ -360,8 +360,11 @@
            return R.error("没有找到该任务={"+notifyDto+"}");
        }
        Date now = new Date();
        if(notifyDto.getMsgType().equals("task_complete")){
        }
        if(notifyDto.getMsgType().equals("task_complete")&&taskWrk.getIoType()==3){
            taskWrk.setWrkSts(9);//更新数据完成,直接转历史档
            taskWrk.setWrkSts(8);//更新数据完成,直接转历史档
            //更新源库位状态为空库位
            LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -233,6 +233,7 @@
                                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                            HashMap<String, Object> hashMap = new HashMap<>();
                                            hashMap.put("TaskNo", taskWrk.getTaskNo());
                                            Boolean bool = false;
                                            try {
                                                //开始上报,任务开始时,WCS回调WMS
                                                response = new HttpHandler.Builder()
@@ -242,10 +243,14 @@
                                                        .build()
                                                        .doPost();
                                                JSONObject jsonObject1 = JSON.parseObject(response);
                                                Boolean bool = false;
                                                if (jsonObject1.get("ReturnStatus").equals(0)) {
                                                    bool = true;
                                                }
                                            } catch (Exception e) {
                                            }finally {
                                                apiLogService.save("wcs开始入库任务上报wms"
                                                        , wmsUrl + TaskExecCallback
                                                        , null
@@ -254,8 +259,6 @@
                                                        , response
                                                        , bool
                                                );
                                            } catch (Exception e) {
                                            }
                                        }
                                    } else {
@@ -355,7 +358,7 @@
                            if (offer) {
                                log.info("下发输送线任务成功:taskWrk:" + JSON.toJSONString(taskWrk));
                                taskWrk.setStatus(5);
                                taskWrk.setWrkSts(14);
                                taskWrk.setWrkSts(16);
                                taskWrkService.updateById(taskWrk);
                            } else {
@@ -441,7 +444,7 @@
                    if(jsonObject.get("code").equals(200)){
                        bool = true;
                        taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//派发状态
//                        taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//派发状态
                        taskWrk.setAssignTime(new Date());//派发时间
                        taskWrk.setWrkSts(3);//工作状态 3.成功下发入库任务给RCS
                        taskWrk.setCrnNo(staDesc.getCrnNo());//堆垛机号
@@ -518,6 +521,46 @@
                            break;
                        }
                        String mbz=taskWrk.getTargetPoint().substring(5);
                        HashMap<String, Object> hashMap = new HashMap<>();
                        hashMap.put("taskNo",taskWrk.getTaskNo());//wms任务号
                        hashMap.put("sourceStaNo",staDetl.getDevNo());//源站点
                        hashMap.put("staNo",Integer.parseInt(mbz)+"");//目标站
                        hashMap.put("locNo",taskWrk.getTargetPoint());//目标库位
                        String response = "";
                        Boolean bool = false;
                        try {
                            //开始上报,出库任务开始时,WCS回调WMS
                            response = new HttpHandler.Builder()
                                    .setUri(wcsUrl)
                                    .setPath(wcsInboundTaskApplyPath)
                                    .setJson(JSON.toJSONString(hashMap))
                                    .build()
                                    .doPost();
                            JSONObject jsonObject = JSON.parseObject(response);
                            if(jsonObject.get("code").equals(200)){
                                bool = true;
//                        taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//派发状态
                                taskWrk.setAssignTime(new Date());//派发时间
                                taskWrk.setWrkSts(3);//工作状态 3.成功下发入库任务给RCS
                                taskWrk.setCrnNo(staDesc.getCrnNo());//堆垛机号
                                taskWrk.setModiTime(new Date());
                                taskWrk.setModiUser(9988L);
                            }
                        } catch (Exception e) {
                        }finally {
                            apiLogService.save("wcs派发出库任务给RCS"
                                    , wcsUrl + wcsInboundTaskApplyPath
                                    , null
                                    , "127.0.0.1"
                                    , JSON.toJSONString(hashMap)
                                    , response
                                    , bool
                            );
                        }
                        try {
                            // 修改工作档状态 11.生成出库ID => 12.吊车出库中
                            Date now = new Date();
src/main/java/com/zy/asrs/task/AutoReportStartHandler.java
File was renamed from src/main/java/com/zy/asrs/task/autoReportStartHandler.java
@@ -29,7 +29,7 @@
@Slf4j
@Component
public class autoReportStartHandler {
public class AutoReportStartHandler {
    @Autowired
    private SlaveProperties slaveProperties;
@@ -85,7 +85,7 @@
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute() throws IOException {
        List<TaskWrk> taskWrks=taskWrkService.selectList(new EntityWrapper<TaskWrk>().eq("status",1).in("wrk_sts",12,3));
        List<TaskWrk> taskWrks=taskWrkService.selectList(new EntityWrapper<TaskWrk>().eq("status",1).in("wrk_sts",12,13,14,15,16,17,18,3,4,5,6,7,8));
        if(taskWrks.size()>0){
            for(TaskWrk taskWrk:taskWrks){
                if(Cools.isEmpty(taskWrk.getMarkStart())||taskWrk.getMarkStart()==0){
src/main/java/com/zy/asrs/task/RepositionLED.java
New file
@@ -0,0 +1,132 @@
package com.zy.asrs.task;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.zy.asrs.controller.CrnController;
import com.zy.asrs.controller.SiteController;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.TaskWrk;
import com.zy.asrs.mapper.BasCrnErrorMapper;
import com.zy.asrs.mapper.StaDescMapper;
import com.zy.asrs.mapper.TaskWrkMapper;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.OpenServiceImpl;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.core.properties.SlaveProperties;
import com.zy.system.service.ConfigService;
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;
@Slf4j
@Component
public class RepositionLED {
    @Autowired
    private SlaveProperties slaveProperties;
    @Autowired
    private WrkMastMapper wrkMastMapper;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private BasCrnpService basCrnpService;
    @Autowired
    private BasDevpService basDevpService;
    @Autowired
    private BasErrLogService basErrLogService;
    @Autowired
    private BasCrnErrorMapper basCrnErrorMapper;
    @Autowired
    private TaskWrkMapper taskWrkMapper;
    @Autowired
    private TaskWrkService taskWrkService;
    @Autowired
    private ConfigService configService;
    @Autowired
    private StaDescMapper staDescMapper;
    @Autowired
    private CommandInfoService commandInfoService;
    @Autowired
    private OpenServiceImpl openServiceImpl;
    @Autowired
    private StaDescService staDescService;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private CommonService commonService;
    @Value("${wms.url}")
    private String wmsUrl;
    @Value("${wms.inboundTaskApplyPath}")
    private String inboundTaskApplyPath;
    @Value("${wms.TaskExecCallback}")
    private String TaskExecCallback;
    @Value("${wms.taskStatusFeedbackPath}")
    private String taskStatusFeedbackPath;
    @Autowired
    private CrnController crnController;
    @Autowired
    private SiteController siteController;
    /**
     * 货物搬离---出库复位电视机
     * 上报WMS货物搬离
     * @throws IOException
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute() throws IOException {
        List<TaskWrk> taskWrks=taskWrkService.selectList(new EntityWrapper<TaskWrk>().eq("wrk_sts",17));
        for(TaskWrk taskWrk:taskWrks){
            List<BasDevp> basDevps=basDevpService.selectList(new EntityWrapper<BasDevp>().eq("wrk_no",taskWrk.getWrkNo()));
            if(basDevps.size()>0){
                continue;
            }
            HashMap<String,Object> headParam=new HashMap<>();
            String response = "";
            Boolean bool = false;
            try {
                headParam.put("Result", 10);//货物搬离---出库复位电视机
                headParam.put("TaskNo", taskWrk.getTaskNo());
                log.info("WCS任务上报WMS货物搬离={}", taskWrk);
                response = new HttpHandler.Builder()
                        // .setHeaders(headParam)
                        .setUri(wmsUrl)
                        .setPath(TaskExecCallback)
                        .setJson(JSON.toJSONString(headParam))
                        .build()
                        .doPost();
                JSONObject jsonObject = JSON.parseObject(response);
                Date date=new Date();
                if(jsonObject.get("ReturnStatus").equals(0)){
                    taskWrk.setWrkSts(18);//18.出库完成-上报WMS货物搬离
                    taskWrk.setModiTime(date);
                    taskWrkMapper.updateById(taskWrk);
                    bool = true;
                }
            } catch (Exception e) {
                log.error("WCS任务上报WMS货物搬离={},返回值={}", taskWrk, response);
            } finally {
                apiLogService.save("WCS任务上报WMS货物搬离"
                        , wmsUrl + TaskExecCallback
                        , null
                        , "127.0.0.1"
                        , JSON.toJSONString(headParam)
                        , response
                        , bool
                );
            }
        }
    }
}
src/main/java/com/zy/asrs/task/TaskLogScheduler.java
@@ -58,66 +58,28 @@
    @Value("${wms.taskStatusFeedbackPath}")
    private String taskStatusFeedbackPath;
    /**
     * 入出库任务转历史档
     * @throws IOException
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute() throws IOException {
        //入库9转历史档
        List<TaskWrk> taskWrkList = taskWrkService.selectList(new EntityWrapper<TaskWrk>().eq("wrk_sts", 9));
        //入库7转历史档,移库7转历史档,出库18转
        List<TaskWrk> taskWrkList = taskWrkService.selectList(new EntityWrapper<TaskWrk>().in("wrk_sts", 7,18));
        for (TaskWrk taskWrk : taskWrkList) {
            TaskWrkLog taskWrkLog = new TaskWrkLog(taskWrk);
            if(taskWrkLog.getIoType().equals(2)){
                taskWrkLog.setWrkSts(19);
            }else{
                taskWrkLog.setWrkSts(8);
            }
            taskWrkLog.setModiTime(new Date());
            if (!wrkLogService.insert(taskWrkLog)) {
                throw new CoolException("转历史档失败" + taskWrkLog);
            }
            if (!taskWrkService.deleteById(taskWrk)) {
                throw new CoolException("任务档删除失败" + taskWrkLog);
            }
        }
//        for (TaskWrk taskWrk : taskWrkService.selectToBeHistoryData()) {
//            HashMap<String, Object> headParam = new HashMap<>();
//            if (taskWrk.getStatus().equals(TaskStatusType.OVER.id) || taskWrk.getStatus() == 7) {//完成
//                headParam.put("Result", 1);
//            } else if (taskWrk.getStatus().equals(TaskStatusType.CANCEL.id)) {
//                headParam.put("Result", 2);
//            }
//            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(TaskExecCallback)
//                        .setJson(JSON.toJSONString(headParam))
//                        .build()
//                        .doPost();
//                JSONObject jsonObject = JSON.parseObject(response);
//        TaskWrkLog taskWrkLog = new TaskWrkLog(taskWrk);
//               if(jsonObject.get("ReturnStatus").equals(0)){
//                    taskWrkLog.setWrkSts(8);
//        if (!wrkLogService.insert(taskWrkLog)) {
//            throw new CoolException("转历史档失败" + taskWrkLog);
//        }
//        if (!taskWrkService.deleteById(taskWrk)) {
//            throw new CoolException("任务档删除失败" + taskWrkLog);
//        }
//                    bool = true;
//                }
//            } catch (Exception e) {
//                log.error("wcs手动完成任务上报wms失败{},返回值={}", taskWrk, response);
//            } finally {
//                apiLogService.save("wcs完成或者取消任务上报wms"
//                        , wmsUrl + TaskExecCallback
//                        , null
//                        , "127.0.0.1"
//                        , JSON.toJSONString(headParam)
//                        , response
//                        , bool
//                );
//            }
//        }
    }
}
src/main/java/com/zy/asrs/task/TaskMastScheduler.java
New file
@@ -0,0 +1,142 @@
package com.zy.asrs.task;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.TaskWrk;
import com.zy.asrs.entity.TaskWrkLog;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.TaskWrkLogServiceImpl;
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;
/**
 * 定时将完成任务上报给wms
 */
@Slf4j
@Component
public class TaskMastScheduler {
    @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.TaskExecCallback}")
    private String TaskExecCallback;
    @Value("${wms.taskStatusFeedbackPath}")
    private String taskStatusFeedbackPath;
    /**
     * 定时将完成任务上报给wms
     * 出库到目标站点
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute() throws IOException {
        for (TaskWrk taskWrk : taskWrkService.selectToBeHistoryData()) {
            HashMap<String, Object> headParam = new HashMap<>();
            String s="";//日志标识
            if (taskWrk.getWrkSts() == 6) {//入库完成
                headParam.put("Result", 1);
                s="入库完成";
                taskWrk.setWrkSts(7);//入库任务转历史档7--》8
            } else if (taskWrk.getWrkSts() == 16) {//出库完成-待搬离
                headParam.put("Result", 1);
                s="出库完成-待搬离";
                taskWrk.setWrkSts(17);//出库任务16--》17
            } else if (taskWrk.getWrkSts().equals(30)) {//取消
                s="取消";
                headParam.put("Result", 2);
                taskWrk.setWrkSts(31);//取消任务30--》31
            }
            String response = "";
            Boolean bool = false;
            try {
                headParam.put("TaskNo", taskWrk.getTaskNo());
                log.info("wcs"+s+"任务上报wms={}", taskWrk);
                response = new HttpHandler.Builder()
                        // .setHeaders(headParam)
                        .setUri(wmsUrl)
                        .setPath(TaskExecCallback)
                        .setJson(JSON.toJSONString(headParam))
                        .build()
                        .doPost();
                JSONObject jsonObject = JSON.parseObject(response);
                Date date=new Date();
                if(jsonObject.get("ReturnStatus").equals(0)){
                    if(taskWrk.getIoType().equals(1)){//入库
                        LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());//目标库位
                        if(locMast != null){
                            locMast.setLocSts("F");
                            locMast.setBarcode(taskWrk.getBarcode());
                            locMast.setModiTime(date);
                            locMastService.updateById(locMast);
                        }
                    }else if(taskWrk.getIoType().equals(3)){//移库
                        LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());//目标库位
                        if(locMast != null){
                            locMast.setLocSts("F");
                            locMast.setBarcode(taskWrk.getBarcode());
                            locMast.setModiTime(date);
                            locMastService.updateById(locMast);
                        }
                        LocMast locMast2 = locMastService.selectByLocNo(taskWrk.getStartPoint());//原始库位
                        if(locMast2 != null){
                            locMast2.setLocSts("O");
                            locMast2.setBarcode("");
                            locMast.setModiTime(date);
                            locMastService.updateById(locMast2);
                        }
                    }else if(taskWrk.getIoType().equals(2)){//出库
                        LocMast locMast2 = locMastService.selectByLocNo(taskWrk.getStartPoint());//原始库位
                        if(locMast2 != null){
                            locMast2.setLocSts("O");
                            locMast2.setBarcode("");
                            locMast2.setModiTime(date);
                            locMastService.updateById(locMast2);
                        }
                    }
                    taskWrkService.updateById(taskWrk);
                    bool = true;
                }
            } catch (Exception e) {
                log.error("wcs"+s+"任务上报wms失败={},返回值={}", taskWrk, response);
            } finally {
                apiLogService.save("wcs"+s+"任务上报wms"
                        , wmsUrl + TaskExecCallback
                        , null
                        , "127.0.0.1"
                        , JSON.toJSONString(headParam)
                        , response
                        , bool
                );
            }
        }
    }
}
src/main/resources/mapper/TaskWrkMapper.xml
@@ -119,7 +119,7 @@
    <select id="selectToBeHistoryData" resultMap="BaseResultMap">
        select * from dbo.wcs_task_wrk
        where 1=1
        and ((wrk_sts=14 and status=5) or status=7 or status=4 or (wrk_sts=7 and status=5))
        and (wrk_sts=16 or wrk_sts=7 or wrk_sts=30)
        order by io_pri desc,create_time,wrk_no ASC
    </select>