野心家
2025-01-07 8faeb5058b4b634cc32d7b1d373fa9243f3661b0
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -109,7 +109,7 @@
    private SiteController siteController;
    public void generateStoreWrkFile1() throws IOException, InterruptedException {
    public synchronized void generateStoreWrkFile1() throws IOException, InterruptedException {
        try {
            // 根据输送线plc遍历
            for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -198,68 +198,82 @@
                                    .build()
                                    .doPost();
                            JSONObject jsonObject = JSON.parseObject(response);
                            if (!Cools.isEmpty(response)&&!Cools.isEmpty(jsonObject.get("ReturnStatus"))&&jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
                                Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
                                // 创新一个入库工作档
                                TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
                                if (Cools.isEmpty(taskWrk)) {
                                    taskWrk = createTask1(result, BoxNo);
                            if(back){
                                if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){
                                    staProtocol.setStaNo((short)105);
                                } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) {
                                    staProtocol.setStaNo((short)107);
                                }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) {
                                    staProtocol.setStaNo((short)109);
                                }else{
                                    staProtocol.setStaNo((short)110);
                                }
                                devpThread.setPakMk(staProtocol.getSiteId(), false);
                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            }else{
                                if (!Cools.isEmpty(response)&&!Cools.isEmpty(jsonObject.get("ReturnStatus"))&&jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
                                    Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
                                    // 创新一个入库工作档
                                    TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
                                    if (Cools.isEmpty(taskWrk)) {
                                        log.error("库位异常,库位号:={}", taskWrk.getOriginTargetPoint());
                                    } else {
                                        taskWrkService.insert(taskWrk);
                                        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                                                .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
                                        staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
                                        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)){
                                                bool = true;
                                            }
                                            apiLogService.save("wcs开始入库任务上报wms"
                                                    , wmsUrl + TaskExecCallback
                                                    , null
                                                    , "127.0.0.1"
                                                    , JSON.toJSONString(hashMap)
                                                    , response
                                                    , bool
                                            );
                                        } catch (Exception e) {
                                        taskWrk = createTask1(result, BoxNo);
                                        if (Cools.isEmpty(taskWrk)) {
                                            log.error("库位异常,库位号:={}", taskWrk.getOriginTargetPoint());
                                        } else {
                                            taskWrkService.insert(taskWrk);
                                            StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                                                    .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
                                            staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
                                            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)){
                                                    bool = true;
                                                }
                                                apiLogService.save("wcs开始入库任务上报wms"
                                                        , wmsUrl + TaskExecCallback
                                                        , null
                                                        , "127.0.0.1"
                                                        , JSON.toJSONString(hashMap)
                                                        , response
                                                        , bool
                                                );
                                            } catch (Exception e) {
                                            }
                                        }
                                    }
                                } else {
                                    } else {
//                                    staProtocol.setWorkNo((short) 9991);
                                    if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){
                                        staProtocol.setStaNo((short)105);
                                    } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) {
                                        staProtocol.setStaNo((short)107);
                                    }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) {
                                        staProtocol.setStaNo((short)109);
                                    }else{
                                        staProtocol.setStaNo((short)110);
                                        if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){
                                            staProtocol.setStaNo((short)105);
                                        } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) {
                                            staProtocol.setStaNo((short)107);
                                        }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) {
                                            staProtocol.setStaNo((short)109);
                                        }else{
                                            staProtocol.setStaNo((short)110);
                                        }
                                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                    }
                                } else {
//                                staProtocol.setWorkNo((short) 9991);
                                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
                                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                }
                            } else {
//                                staProtocol.setWorkNo((short) 9991);
                                staProtocol.setStaNo(inSta.getBackSta().shortValue());
                                devpThread.setPakMk(staProtocol.getSiteId(), false);
                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            }
                        } catch (Exception e) {
                            log.error("请求入库调用接口失败");
@@ -297,7 +311,7 @@
        }
    }
    public void generateStoreWrkFile() throws IOException, InterruptedException {
    public synchronized void generateStoreWrkFile() throws IOException, InterruptedException {
        try {
            // 根据输送线plc遍历
            for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -574,7 +588,7 @@
    /**
     * 堆垛机站出库到出库站
     */
    public void crnStnToOutStn() {
    public synchronized void crnStnToOutStn() {
        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
            // 遍历堆垛机出库站
            for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
@@ -679,7 +693,7 @@
    /**
     * 入库  ===>>  堆垛机站到库位
     */
    public void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
    public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
        for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
            List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", slave.getId()).eq("crn_stn", crnStn.getStaNo()));
            for (StaDesc staDesc : staDescs) {
@@ -764,7 +778,7 @@
     * 出库  ===>>  库位到堆垛机站
     * 2022-06-09 TQS修改,查询工作档LIST,遍历下发,防止第一个任务堵塞出库
     */
    public void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
    public synchronized void  locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
        List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOut(slave.getId(), null);
        if (taskWrksInitial.size() == 0) {
            return;
@@ -933,7 +947,7 @@
    /**
     * 库位移转
     */
    public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
    public synchronized void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
        for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
            // 获取工作状态为11(生成出库ID)的移库工作档
            List<TaskWrk> taskWrks = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>()
@@ -1080,7 +1094,7 @@
    /**
     * 执行对工作档的完成操作
     */
    public void storeFinished() throws InterruptedException {
    public synchronized void storeFinished() throws InterruptedException {
        for (CrnSlave crn : slaveProperties.getCrn()) {
            // 获取堆垛机信息
            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
@@ -1154,7 +1168,7 @@
    /**
     * 堆垛机异常信息记录
     */
    public void recCrnErr() {
    public synchronized void recCrnErr() {
        Date now = new Date();
        for (CrnSlave crn : slaveProperties.getCrn()) {
            // 获取堆垛机信息
@@ -1270,7 +1284,7 @@
    }
    //自动派发任务
    public void autoDistribute() {
    public synchronized void autoDistribute() {
        Config config = configService.selectByCode("autoDistribute");
        if (config == null) {
            return;