自动化立体仓库 - WCS系统
4c88c0606bb333ac1ad4c1ad536a848f7d27fdb7..aa641ae9531ff38a80316cb4f72fa8ece43d7029
1 天以前 Junjie
#
aa641a 对比 | 目录
1 天以前 Junjie
#
7e5fd4 对比 | 目录
1 天以前 Junjie
#
544f7c 对比 | 目录
1个文件已删除
4个文件已修改
562 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/autoReportStartHandler.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-prod.yml 340 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java
@@ -2,6 +2,7 @@
public enum NotifyMsgType {
    //任务
    TASK_START("task_start", "任务开始"),
    TASK_COMPLETE("task_complete", "任务完成"),
    TASK_CANCEL("task_cancel", "任务取消"),
    ;
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -5,15 +5,17 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.domain.dto.NotifyCustomDataDto;
import com.zy.asrs.domain.enums.NotifyMsgType;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.Result;
import com.zy.asrs.entity.param.StorageEscalationParam;
import com.zy.asrs.mapper.*;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.CommandUtils;
import com.zy.asrs.utils.CrnOperaUtils;
import com.zy.asrs.utils.NotifyUtils;
import com.zy.asrs.utils.Utils;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
@@ -87,6 +89,8 @@
    private CommonService commonService;
    @Autowired
    private CrnOperaUtils crnOperaUtils;
    @Autowired
    private NotifyUtils notifyUtils;
    @Value("${wms.count}")
    private Integer maxCount;
    @Autowired
@@ -215,33 +219,18 @@
                                staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                //上报
                                HashMap<String, Object> hashMap = new HashMap<>();
                                hashMap.put("TaskNo", taskWrk.getTaskNo());
                                try {
                                    //开始上报,任务开始时,WCS回调WMS
                                    response = new HttpHandler.Builder()
                                            .setUri(wmsUrl)
                                            .setPath(taskStatusFeedbackPath)
                                            .setJson(JSON.toJSONString(hashMap))
                                            .build()
                                            .doPost();
                                    JSONObject jsonObject1 = JSON.parseObject(response);
                                    boolean bool = false;
                                    if(jsonObject1.get("ReturnStatus").equals(0)){
                                        taskWrk.setStatus(2);//派发任务
                                        bool = true;
                                        taskWrkService.updateById(taskWrk);
                                    }
                                    apiLogService.save("wcs开始入库任务上报wms"
                                            , wmsUrl + TaskExecCallback
                                            , null
                                            , "127.0.0.1"
                                            , JSON.toJSONString(hashMap)
                                            , response
                                            , bool
                                    );
                                } catch (Exception e) {
                                NotifyCustomDataDto customDataDto = new NotifyCustomDataDto();
                                customDataDto.setUri(wmsUrl);
                                customDataDto.setPath(taskStatusFeedbackPath);
                                customDataDto.setData(JSON.toJSONString(hashMap));
                                boolean notifyResult = notifyUtils.notify("task", 1, String.valueOf(taskWrk.getWrkNo()), taskWrk.getTaskNo(), NotifyMsgType.TASK_START, JSON.toJSONString(taskWrk), true, customDataDto);
                                if(notifyResult) {
                                    taskWrk.setStatus(2);
                                    taskWrkService.updateById(taskWrk);
                                }
                            }
                        } catch (Exception e) {
@@ -706,9 +695,6 @@
                    continue;
                }
//                int workNo = commonService.getWorkNo(WorkNoType.PAKIN.type);//获取入库工作号
//                taskWrk.setWrkNo(workNo);//工作号
//                taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//派发状态
                taskWrk.setAssignTime(new Date());//派发时间
                taskWrk.setWrkSts(3);//工作状态 3.吊车入库
                taskWrk.setCrnNo(staDesc.getCrnNo());//堆垛机号
@@ -750,7 +736,7 @@
     */
    public synchronized void  locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
        List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOut(slave.getId(), null);
        if (taskWrksInitial.size() == 0) {
        if (taskWrksInitial.isEmpty()) {
            return;
        }
        for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
@@ -855,33 +841,20 @@
                                log.error("修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", taskWrk.getWrkNo());
                                log.error("修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,异常:" + e);
                            }
//                            try {
//                                HashMap<String, Object> headParam = new HashMap<>();
//                                headParam.put("taskNo", taskWrk.getTaskNo());
//                                headParam.put("status", taskWrk.getStatus());
//                                headParam.put("ioType", taskWrk.getIoType());
//                                headParam.put("barcode", taskWrk.getBarcode());
//                                String response;
//                                response = new HttpHandler.Builder()
//                                        // .setHeaders(headParam)
//                                        .setUri(wmsUrl)
//                                        .setPath(taskStatusFeedbackPath)
//                                        .setJson(JSON.toJSONString(headParam))
//                                        .build()
//                                        .doPost();
//                                JSONObject jsonObject = JSON.parseObject(response);
//                                apiLogService.save("wcs派发出库任务上报wms"
//                                        , wmsUrl + taskStatusFeedbackPath
//                                        , null
//                                        , "127.0.0.1"
//                                        , JSON.toJSONString(headParam)
//                                        , response
//                                        , true
//                                );
//                            } catch (Exception e) {
//                                log.error("wcs派发出库任务上报wms失败", JSON.toJSONString(taskWrk));
////                                throw new CoolException("wcs派发入库任务上报wms失败");
//                            }
                            //上报-出库任务开始时,WCS回调WMS
                            HashMap<String, Object> hashMap = new HashMap<>();
                            hashMap.put("TaskNo", taskWrk.getTaskNo());
                            NotifyCustomDataDto customDataDto = new NotifyCustomDataDto();
                            customDataDto.setUri(wmsUrl);
                            customDataDto.setPath(taskStatusFeedbackPath);
                            customDataDto.setData(JSON.toJSONString(hashMap));
                            boolean notifyResult = notifyUtils.notify("task", 1, String.valueOf(taskWrk.getWrkNo()), taskWrk.getTaskNo(), NotifyMsgType.TASK_START, JSON.toJSONString(taskWrk), true, customDataDto);
                            if(notifyResult) {
                                taskWrk.setStatus(2);
                                taskWrkService.updateById(taskWrk);
                            }
                        }
                    }
                }
@@ -1073,6 +1046,7 @@
                    if (taskWrk.getIoType() == 1 && taskWrk.getWrkSts() == 3) {
                        taskWrk.setWrkSts(4);//入库完成
                        taskWrk.setStatus(5);//完结
                        //更新库位状态
                        LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
                        locMast.setLocSts("F");//F.在库
@@ -1083,6 +1057,7 @@
                    } else if (taskWrk.getIoType() == 2 && taskWrk.getWrkSts() == 12) {
                        taskWrk.setWrkSts(13);//出库完成
                        taskWrk.setStatus(5);//完结
                        //更新库位状态
                        LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
                        locMast.setLocSts("O");//O.空库位
src/main/java/com/zy/asrs/task/autoReportStartHandler.java
File was deleted
src/main/resources/application-prod.yml
@@ -1,210 +1,166 @@
wcs-slave:
  doubleDeep: true #双深
  doubleLocs: 1,4,5,8 #双深库位排号 1,4,5,8
  groupCount: 4 #一个堆垛机负责的货架排数
  crn[0]: #堆垛机1
    id: 1
    ip: 10.10.10.110
    slot: 0
    demo: false
    rack: 0
    offset: 2  #偏移量,当堆垛机站点列号=1时,偏移量=2
    offset: 2    #偏移量,当堆垛机站点列号=1时,偏移量=2
    port: 102
    crnOutStn[0]: #堆垛机出库站点
      staNo: 125
      row: 3
      bay: 1
      lev: 2
      devpPlcId: ${wcs-slave.devp[0].id}
    crnInStn[0]: #堆垛机入库站点1
      staNo: 100
    crnOutStn[1]:    #堆垛机出库站点
      staNo: 101
      row: 2
      bay: 1
      lev: 2
      backSta: 102
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
  crn[1]: #堆垛机2
    id: 2
    ip: 10.10.10.120
    crnOutStn[0]:    #堆垛机出库站点
      staNo: 100
      row: 1
      bay: 1
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    ip: 192.168.4.250
    crnInStn[0]:    #堆垛机入库站点1
      staNo: 100
      row: 1
      bay: 1
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    id: 1
    slot: 0
    demo: false
  crn[1]: #堆垛机2
    rack: 0
    offset: 2  #偏移量,当堆垛机站点列号=1时,偏移量=2
    offset: 2    #偏移量,当堆垛机站点列号=1时,偏移量=2
    port: 102
    crnOutStn[0]: #堆垛机出库站点
      staNo: 115
      row: 7
    crnOutStn[1]:    #堆垛机出库站点
      staNo: 103
      row: 5
      bay: 1
      lev: 2
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    crnInStn[0]: #堆垛机入库站点1
      staNo: 120
      row: 6
    crnOutStn[0]:    #堆垛机出库站点
      staNo: 102
      row: 4
      bay: 1
      lev: 2
      backSta: 106
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
  devp[0]: #输送线
    id: 1
    ip: 10.10.10.130
    rack: 0
    port: 102
    ip: 10.10.10.10
    crnInStn[0]:    #堆垛机入库站点1
      staNo: 102
      row: 4
      bay: 1
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    id: 2
    slot: 0
    emptyInSta[0]: #空板入库口0
      staNo: 116
    inSta[0]: #入库口1
      staNo: 116
      backSta: 110
      barcode: ${wcs-slave.barcode[0].id}
    outSta[0]: #出库口1
      staNo: 105
    outSta[1]: #出库口2
      staNo: 107
    outSta[2]: #出库口2
      staNo: 109
    outSta[3]: #出库口1
      staNo: 110
  barcode[0]: #条码扫描仪
    demo: false
  barcode[3]: #条码扫描仪4
    port: 51236
    ip: 172.17.91.39
    ip: 10.10.10.52
    id: 4
  barcode[2]: #条码扫描仪3
    port: 51236
    ip: 10.10.10.52
    id: 3
  doubleLocs: 3,6,7,10,13 #双深库位排号 3,6,7,10,13
  barcode[1]: #条码扫描仪2
    port: 51236
    ip: 10.10.10.52
    id: 2
  groupCount: 4 #一个堆垛机负责的货架排数
  devp[0]: #输送线
    emptyInSta[2]: #空板入库口3
      staNo: 104
    emptyInSta[1]: #空板入库口2
      staNo: 102
    rack: 0
    emptyInSta[0]: #空板入库口1
      staNo: 100
    ip: 192.168.4.250
    outSta[4]: #出库口5
      staNo: 104
    outSta[3]: #出库口4
      staNo: 103
    outSta[6]: #出库口7
      staNo: 106
    slot: 0
    outSta[5]: #出库口6
      staNo: 105
    outSta[0]: #出库口1
      staNo: 100
    outSta[2]: #出库口3
      staNo: 102
    emptyInSta[3]: #空板入库口4
      staNo: 106
    outSta[1]: #出库口2
      staNo: 101
    inSta[2]:
      staNo: 104
      barcode: ${wcs-slave.barcode[2].id}
    inSta[3]:
      staNo: 106
      barcode: ${wcs-slave.barcode[3].id}
    port: 102
    outSta[7]: #出库口8
      staNo: 107
    inSta[0]: #入库口1
      staNo: 100
      barcode: ${wcs-slave.barcode[0].id}
    inSta[1]: #入库口2
      staNo: 102
      barcode: ${wcs-slave.barcode[1].id}
    id: 1
#  crn[0]: #堆垛机1
#    rack: 0
#    offset: 2    #偏移量,当堆垛机站点列号=1时,偏移量=2
#    port: 102
#    crnOutStn[0]:    #堆垛机出库站点
#      staNo: 101
#      row: 2
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    ip: 192.168.1.100
#    crnInStn[0]:    #堆垛机入库站点1
#      staNo: 100
#      row: 1
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    id: 1
#    slot: 0
#    demo: false
#  crn[1]: #堆垛机2
#    rack: 0
#    offset: 2    #偏移量,当堆垛机站点列号=1时,偏移量=2
#    port: 102
#    crnOutStn[0]:    #堆垛机出库站点
#      staNo: 103
#      row: 5
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    ip: 192.168.1.110
#    crnInStn[0]:    #堆垛机入库站点1
#      staNo: 102
#      row: 4
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    id: 2
#    slot: 0
#    demo: false
#  barcode[3]: #条码扫描仪4
#    port: 51236
#    ip: 10.10.10.52
#    id: 4
#  barcode[2]: #条码扫描仪3
#    port: 51236
#    ip: 10.10.10.52
#    id: 3
#
#  barcode[1]: #条码扫描仪2
#    port: 51236
#    ip: 10.10.10.52
#    id: 2
#
#  devp[0]: #输送线
#    emptyInSta[2]: #空板入库口3
#      staNo: 104
#    emptyInSta[1]: #空板入库口2
#      staNo: 102
#    rack: 0
#    emptyInSta[0]: #空板入库口1
#      staNo: 100
#    ip: 192.168.1.140
#    outSta[4]: #出库口5
#      staNo: 104
#    outSta[3]: #出库口4
#      staNo: 103
#    outSta[6]: #出库口7
#      staNo: 106
#    slot: 0
#    outSta[5]: #出库口6
#      staNo: 105
#    outSta[0]: #出库口1
#      staNo: 100
#    outSta[2]: #出库口3
#      staNo: 102
#    emptyInSta[3]: #空板入库口4
#      staNo: 106
#    outSta[1]: #出库口2
#      staNo: 101
#    inSta[2]:
#      staNo: 104
#      barcode: ${wcs-slave.barcode[2].id}
#    inSta[3]:
#      staNo: 106
#      barcode: ${wcs-slave.barcode[3].id}
#    port: 102
#    outSta[7]: #出库口8
#      staNo: 107
#    inSta[0]: #入库口1
#      staNo: 100
#      barcode: ${wcs-slave.barcode[0].id}
#    inSta[1]: #入库口2
#      staNo: 102
#      barcode: ${wcs-slave.barcode[1].id}
#    id: 1
#
#
#  crn[2]: #堆垛机3
#    rack: 0
#    offset: 2    #偏移量,当堆垛机站点列号=1时,偏移量=2
#    port: 102
#    crnOutStn[0]:    #堆垛机出库站点
#      staNo: 105
#      row: 9
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    ip: 192.168.1.120
#    crnInStn[0]:    #堆垛机入库站点1
#      staNo: 104
#      row: 8
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    id: 3
#    slot: 0
#    demo: false
#  crn[3]: #堆垛机4
#    rack: 0
#    offset: 2    #偏移量,当堆垛机站点列号=1时,偏移量=2
#    port: 102
#    crnOutStn[0]:    #堆垛机出库站点
#      staNo: 107
#      row: 12
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    ip: 192.168.1.130
#    crnInStn[0]:    #堆垛机入库站点1
#      staNo: 106
#      row: 11
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    id: 4
#    slot: 0
#    demo: false
  barcode[0]: #条码扫描仪1
    port: 51236
    ip: 10.10.10.52
    id: 1
  doubleDeep: false #双深
  crn[2]: #堆垛机3
    rack: 0
    offset: 2    #偏移量,当堆垛机站点列号=1时,偏移量=2
    port: 102
    crnOutStn[1]:    #堆垛机出库站点
      staNo: 105
      row: 9
      bay: 1
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    crnOutStn[0]:    #堆垛机出库站点
      staNo: 104
      row: 8
      bay: 1
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    ip: 10.10.10.11
    crnInStn[0]:    #堆垛机入库站点1
      staNo: 104
      row: 8
      bay: 1
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    id: 3
    slot: 0
    demo: false
  crn[3]: #堆垛机4
    rack: 0
    offset: 2    #偏移量,当堆垛机站点列号=1时,偏移量=2
    port: 102
    crnOutStn[1]:    #堆垛机出库站点
      staNo: 107
      row: 12
      bay: 1
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    crnOutStn[0]:    #堆垛机出库站点
      staNo: 106
      row: 11
      bay: 1
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    ip: 10.10.10.11
    crnInStn[0]:    #堆垛机入库站点1
      staNo: 106
      row: 11
      bay: 1
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    id: 4
    slot: 0
    demo: false
src/main/resources/application.yml
@@ -8,7 +8,7 @@
    name: @pom.build.finalName@
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://192.168.4.42:1433;databasename=ynhfasrs
    url: jdbc:sqlserver://127.0.0.1:1433;databasename=ynhfasrs
    username: sa
    password: sa@123
  mvc:
@@ -52,7 +52,7 @@
  url: 10.10.10.222:2410
  # 入库任务申请接口
  inboundTaskApplyPath: api/StereoscopicCallBack/AcceptTaskStatus
  # 任务开始时,WCS回调WMS
  # 任务开始时,WCS回调WMSz
  taskStatusFeedbackPath: api/StereoscopicCallBack/TaskExecCallback
  # 任务完成结束时,WCS回调WMS
  TaskExecCallback: api/StereoscopicCallBack/TaskExecFinishedCallback