From b3b9b700ca5121dd0f9472df2e1527ed5f47e887 Mon Sep 17 00:00:00 2001
From: whycq <123456>
Date: 星期三, 31 一月 2024 23:02:10 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  342 +++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 251 insertions(+), 91 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 030453e..fc220a1 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -5,13 +5,18 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
+import com.zy.asrs.controller.CrnController;
+import com.zy.asrs.controller.OpenController;
 import com.zy.asrs.domain.enums.TaskStatusType;
+import com.zy.asrs.domain.enums.WorkNoType;
+import com.zy.asrs.domain.param.CrnOperatorParam;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.TaskOverToWms;
 import com.zy.asrs.mapper.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.CommandUtils;
 import com.zy.asrs.utils.Utils;
+import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
 import com.zy.core.CrnThread;
 import com.zy.core.DevpThread;
@@ -83,6 +88,8 @@
 
     @Autowired
     private ApiLogService apiLogService;
+    @Autowired
+    private CommonService commonService;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -90,6 +97,10 @@
     private String inboundTaskApplyPath;
     @Value("${wms.movePath}")
     private String movePath;
+    @Value("${wms.taskStatusFeedbackPath}")
+    private String taskStatusFeedbackPath;
+    @Autowired
+    private CrnController crnController;
 
 
     public void generateStoreWrkFile() throws IOException, InterruptedException {
@@ -179,9 +190,16 @@
                         if(!Cools.isEmpty(barcode)) {
                             // 璇锋眰wms鎺ュ彛锛岃幏鍙栧伐浣滃彿鍜岀洰鏍囧簱浣�
                             ToWmsDTO toWmsDTO = new ToWmsDTO(barcode,staProtocol.getSiteId(),staProtocol.isHigh() ? 2 : 1);
+                            TaskWrk taskWrk1=taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode",barcode));
+                            if(!Cools.isEmpty(taskWrk1)){
+                                log.info("鎵樼洏鐮侊細"+barcode+"浠诲姟妗e瓨鍦�");
+                                continue;
+                            }
+                            HashMap<String, Object> headParam = new HashMap<>();
+                            headParam.put("Content-Type","application/json");
                             String response;
                             response = new HttpHandler.Builder()
-                                    .setHeaders(null)
+                                   // .setHeaders(headParam)
                                     .setUri(wmsUrl)
                                     .setPath(inboundTaskApplyPath)
                                     .setJson(JSON.toJSONString(toWmsDTO))
@@ -197,10 +215,11 @@
                                     ,response
                                     ,true
                             );
+                            log.info("鍏ュ簱璇锋眰鍙傛暟{}" + JSON.toJSONString(toWmsDTO));
                             if (jsonObject.getInteger("code").equals(200) && !Cools.isEmpty(jsonObject.get("data").toString())) {
                                 GetWmsDto getWmsDto = JSON.parseObject(jsonObject.get("data").toString(), GetWmsDto.class);
                                 // 鍒涙柊涓�涓叆搴撳伐浣滄。
-                                TaskWrk taskWrk = taskWrkService.selectByTaskNo(getWmsDto.getTaskNo());
+                                TaskWrk taskWrk = taskWrkService.selectByTaskNo(getWmsDto.getWrkNo());
                                 if(Cools.isEmpty(taskWrk)) {
                                     taskWrk = createTask(getWmsDto,barcode);
                                     if (Cools.isEmpty(taskWrk)){
@@ -208,7 +227,7 @@
                                     }else {
                                         taskWrkService.insert(taskWrk);
                                         StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                                                .eq("crn_no", taskWrk.getCrnNo()).eq("type_no",1).eq("stn_no",staProtocol.getStaNo().intValue()));
+                                                .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));
@@ -447,6 +466,7 @@
                 if (!flag) {
                     continue;
                 }
+
                 // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
                 TaskWrk taskWrk = taskWrkMapper.selectPakIn(slave.getId(), staProtocol.getWorkNo().intValue(), staDesc.getStnNo().toString());
                 if(null == taskWrk) {
@@ -462,6 +482,16 @@
                 if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
                     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());//鍫嗗灈鏈哄彿
+                taskWrk.setModiTime(new Date());
+                taskWrk.setModiUser(9988L);
+                taskWrkService.updateById(taskWrk);
 
 //                //鍙栧嚭鍛戒护
 //                List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskWrk.getTaskNo());
@@ -496,27 +526,49 @@
 
                 // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                 CrnCommand crnCommand = new CrnCommand();
-                crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+                crnCommand.setCrnNo(staDesc.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
                 crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
                 crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
                 crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-                crnCommand.setSourcePosX(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
-                crnCommand.setSourcePosY(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
-                crnCommand.setSourcePosZ(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
-                crnCommand.setDestinationPosX(Utils.getBayShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鍒�
-                crnCommand.setDestinationPosY(Utils.getLevShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅灞�
-                crnCommand.setDestinationPosZ(Utils.getRowShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鎺�
+                crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶅垪
+                crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅眰
+                crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶆帓
+                crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鍒�
+                crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅灞�
+                crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鎺�
                 crnCommand.setCommand((short)1);
-                if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) {
-                    log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
-                } else {
-                    // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
-                    Date now = new Date();
-                    taskWrk.setWrkSts(3);
-                    taskWrk.setModiTime(now);
-                    if (taskWrkMapper.updateById(taskWrk) == 0) {
-                        log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
+                if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand),false)) {
+                    log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
+                    throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
+                }else{
+                    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澶辫触", taskWrk);
+                        throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
                     }
+
                 }
             }
 
@@ -578,59 +630,108 @@
                             break;
                         }
 
-                        // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-                        if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) {
 
-                            taskWrkMapper.selectPakOutIoType(taskWrk.getCrnNo());
+                        // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+                        Date now = new Date();
+                        taskWrk.setWrkSts(12);
+                        taskWrk.setStatus(2);
+                        taskWrk.setModiTime(now);
+                        if (taskWrkMapper.updateById(taskWrk) == 0) {
+                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
+                        }
+                        CrnCommand command = new CrnCommand();
+                        command.setCrnNo(taskWrk.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+                        command.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+                        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+                        command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
+                        command.setSourcePosX(Utils.getRowShort(taskWrk.getStartPoint()));     // 婧愬簱浣嶆帓
+                        command.setSourcePosY(Utils.getBayShort(taskWrk.getStartPoint()));     // 婧愬簱浣嶅垪
+                        command.setSourcePosZ(Utils.getLevShort(taskWrk.getStartPoint()));     // 婧愬簱浣嶅眰
+                        command.setDestinationPosX(crnStn.getRow().shortValue());     // 鐩爣搴撲綅鎺�
+                        command.setDestinationPosY(crnStn.getBay().shortValue());     // 鐩爣搴撲綅鍒�
+                        command.setDestinationPosZ(crnStn.getLev().shortValue());     // 鐩爣搴撲綅灞�
+                        command.setCommand((short)1);
+                        if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, command),false)) {
+                            log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(command));
+                            throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
+                        }else{
+                            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澶辫触", taskWrk);
+                                throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
+                            }
 
-                            List<TaskWrk> taskWrks1 = taskWrkMapper.selectPakOutIoType(taskWrk.getCrnNo());
-                            if (Cools.isEmpty(taskWrks1) && taskWrks1.size()!=0){
-                                continue;
-                            }
-                            String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint());
-                            TaskWrk hallowLocNoTask = taskWrkMapper.selectByStartPoint(shallowLocNo);
-                            if (!Cools.isEmpty(hallowLocNoTask)){
-                                continue;
-                            }
                         }
 
-                        //鍙栧嚭鍛戒护
-                        List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskWrk.getTaskNo());
-                        Integer commandStep = taskWrk.getCommandStep();
-                        if (commandInfos.isEmpty()) {
-                            continue;//鍛戒护绌�
-                        }
-
-                        //鍒ゆ柇鏈鍛戒护鏄惁鎵ц
-                        CommandInfo commandInfo2 = commandInfos.get(commandInfos.size() - 1);
-                        if (commandInfo2.getCommandStatus() != CommandStatusType.CREATE.id) {
-                            continue;//鎸囦护宸叉墽琛�
-                        }
-
-                        CommandInfo commandInfo = commandInfos.get(commandStep);
-                        CommandPackage commandPackage = JSON.parseObject(commandInfo.getCommand(), CommandPackage.class);//鍙栧嚭鍛戒护鎶ユ枃
-                        CrnCommand crnCommand = JSON.parseObject(commandPackage.getCommand().toString(), CrnCommand.class);
-
-                        if (!MessageQueue.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) {
-                            log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
-                        } else {
-                            // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-                            Date now = new Date();
-                            taskWrk.setWrkSts(12);
-                            taskWrk.setModiTime(now);
-                            if (taskWrkMapper.updateById(taskWrk) == 0) {
-                                log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
-                            }
-                            //寮�濮嬭繍琛�
-                            String response = CrnStartRunning(taskWrk);
-                            JSONObject jsonObject = JSON.parseObject(response);
-                            if (jsonObject.getInteger("code").equals(200)) {
-
-                            }else {
-                                log.error("鍑哄簱寮�濮嬭繍琛岄�氳澶辫触,"+jsonObject.get("msg"));
-
-                            }
-                        }
+//                        // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
+//                        if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) {
+//
+//                            taskWrkMapper.selectPakOutIoType(taskWrk.getCrnNo());
+//
+//                            List<TaskWrk> taskWrks1 = taskWrkMapper.selectPakOutIoType(taskWrk.getCrnNo());
+//                            if (Cools.isEmpty(taskWrks1) && taskWrks1.size()!=0){
+//                                continue;
+//                            }
+//                            String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint());
+//                            TaskWrk hallowLocNoTask = taskWrkMapper.selectByStartPoint(shallowLocNo);
+//                            if (!Cools.isEmpty(hallowLocNoTask)){
+//                                continue;
+//                            }
+//                        }
+//
+//                        //鍙栧嚭鍛戒护
+//                        List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskWrk.getTaskNo());
+//                        Integer commandStep = taskWrk.getCommandStep();
+//                        if (commandInfos.isEmpty()) {
+//                            continue;//鍛戒护绌�
+//                        }
+//
+//                        //鍒ゆ柇鏈鍛戒护鏄惁鎵ц
+//                        CommandInfo commandInfo2 = commandInfos.get(commandInfos.size() - 1);
+//                        if (commandInfo2.getCommandStatus() != CommandStatusType.CREATE.id) {
+//                            continue;//鎸囦护宸叉墽琛�
+//                        }
+//
+//                        CommandInfo commandInfo = commandInfos.get(commandStep);
+//                        CommandPackage commandPackage = JSON.parseObject(commandInfo.getCommand(), CommandPackage.class);//鍙栧嚭鍛戒护鎶ユ枃
+//                        CrnCommand crnCommand = JSON.parseObject(commandPackage.getCommand().toString(), CrnCommand.class);
+//
+//                        if (!MessageQueue.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) {
+//                            log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
+//                        } else {
+//
+//                            //寮�濮嬭繍琛�
+//                            String response = CrnStartRunning(taskWrk);
+//                            JSONObject jsonObject = JSON.parseObject(response);
+//                            if (jsonObject.getInteger("code").equals(200)) {
+//
+//                            }else {
+//                                log.error("鍑哄簱寮�濮嬭繍琛岄�氳澶辫触,"+jsonObject.get("msg"));
+//
+//                            }
+//                        }
 
                     }
                 }
@@ -810,42 +911,98 @@
     /**
      * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
      */
-    public void storeFinished() {
+    public void storeFinished() throws InterruptedException {
         for (CrnSlave crn : slaveProperties.getCrn()) {
             // 鑾峰彇鍫嗗灈鏈轰俊鎭�
             CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
             CrnProtocol crnProtocol = crnThread.getCrnProtocol();
             if (crnProtocol == null) { continue; }
+
             //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
             if (crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.getTaskNo() != 0) {
-                // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
+                //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
                 TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crn.getId(),crnProtocol.getTaskNo().intValue());
-                if (Cools.isEmpty(taskWrk)) {
+                if (Cools.isEmpty(taskWrk)&&crnProtocol.getTaskNo() !=999) {
                     log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
                     continue;
                 }
-                // 鍏ュ簱 + 搴撲綅杞Щ  ==> 4.鍏ュ簱瀹屾垚
-                if ((taskWrk.getWrkSts() == 3 && taskWrk.getIoType() == 1) || (taskWrk.getWrkSts() == 12 && taskWrk.getIoType() == 3)) {
-                    taskWrk.setWrkSts(4);
-                } else {
-                    continue;
-                }
-                Date now = new Date();
-                taskWrk.setModiTime(now);
-                Integer integerTaskWrk = taskWrkMapper.updateById(taskWrk);
-                // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-                if (integerTaskWrk > 0) {
-                    // 鍫嗗灈鏈哄浣�
-                    crnThread.setResetFlag(true);
+                Thread.sleep(300);
+                //纭瀹屾垚淇″彿
+                CrnOperatorParam crnOperatorParam=new CrnOperatorParam();
+                crnOperatorParam.setCrnNo(crn.getId());
 
-                    //鏇存柊搴撲綅鐘舵��
-                    LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
-                    locMast.setLocSts("F");//F.鍦ㄥ簱
-                    locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
-                    locMast.setModiTime(now);
-                    locMast.setModiUser(9999L);
-                    locMastService.updateById(locMast);
+                crnController.crnTaskComplete(crnOperatorParam);
+                if(!Cools.isEmpty(taskWrk)){
+                    if(taskWrk.getIoType()==1){
+                        taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
+                        taskWrk.setStatus(5);//瀹岀粨
+                        //鏇存柊搴撲綅鐘舵��
+                        LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
+                        locMast.setLocSts("F");//F.鍦ㄥ簱
+                        locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
+                        locMast.setModiTime(new Date());
+                        locMast.setModiUser(9999L);
+                        locMastService.updateById(locMast);
+                    }else if(taskWrk.getIoType()==2){
+                        taskWrk.setWrkSts(14);//鍑哄簱瀹屾垚
+                        taskWrk.setStatus(5);//瀹岀粨
+                        //鏇存柊搴撲綅鐘舵��
+                        LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
+                        locMast.setLocSts("O");//O.绌哄簱浣�
+                        locMast.setBarcode("");//鎵樼洏鐮�
+                        locMast.setModiTime(new Date());
+                        locMast.setModiUser(9999L);
+                        locMastService.updateById(locMast);
+                    }else if(taskWrk.getIoType()==3){
+                        taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
+                        taskWrk.setStatus(5);//瀹岀粨
+                        //鏇存柊搴撲綅鐘舵��
+                        LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
+                        locMast.setLocSts("F");//F.鍦ㄥ簱
+                        locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
+                        locMast.setModiTime(new Date());
+                        locMast.setModiUser(9999L);
+                        locMastService.updateById(locMast);
+
+                        LocMast locMast1 = locMastService.selectByLocNo(taskWrk.getStartPoint());
+                        locMast1.setLocSts("O");//O.绌哄簱浣�
+                        locMast1.setBarcode("");//鎵樼洏鐮�
+                        locMast1.setModiTime(new Date());
+                        locMast1.setModiUser(9999L);
+                        locMastService.updateById(locMast1);
+                    }
+                    taskWrkService.updateById(taskWrk);
+
+
+                    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澶辫触", taskWrk);
+                        throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
+                    }
                 }
+
             }
         }
     }
@@ -980,6 +1137,7 @@
         }
 
         for (TaskWrk taskWrk : taskWrkService.selectReceive()) {
+
             try {
                 taskWrkService.distribute(taskWrk.getTaskNo(), 9527L);
             } catch (CoolException e) {
@@ -1110,7 +1268,9 @@
         }
         Date now = new Date();
         TaskWrk taskWrk = new TaskWrk();
+        int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
         taskWrk.setTaskNo(dto.getWrkNo());//浠诲姟鍙�
+        taskWrk.setWrkNo(workNo1);
         taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
         taskWrk.setCreateTime(now);
         taskWrk.setIoType(1);//浠诲姟绫诲瀷

--
Gitblit v1.9.1