diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java
index 2a914e39c..d3f9cc4e9 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java
@@ -3,9 +3,11 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdis;
+import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.StructAllsetDto;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
/**
*
@@ -41,5 +43,7 @@ public interface IStIvtIostorinvdisService extends IService {
* @param task_id: 任务标识
*/
void confirmDisIn(String task_id);
+
+ List getDisStructSet(String iostorinvId);
}
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.java
index 551a55894..ad34266df 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvdisMapper.java
@@ -2,7 +2,9 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Select;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdis;
+import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.StructAllsetDto;
import java.util.List;
@@ -46,4 +48,10 @@ public interface StIvtIostorinvdisMapper extends BaseMapper {
*/
List getNotCreateDis(JSONObject whereJson);
+ @Select("select st_ivt_structattr.sect_id,st_ivt_structattr.block_num,st_ivt_structattr.row_num,st_ivt_structattr.out_order_seq,st_ivt_structattr.struct_code,st_ivt_structattr.placement_type \n" +
+ "from st_ivt_iostorinvdis \n" +
+ "left join st_ivt_structattr on st_ivt_iostorinvdis.struct_code = st_ivt_structattr.struct_code\n" +
+ "where st_ivt_iostorinvdis.work_status = '00' and st_ivt_iostorinvdis.iostorinv_id = #{iostorinvId}")
+ List getDisStructSet(String iostorinvId);
+
}
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdisServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdisServiceImpl.java
index 7cc5f72a5..7facde980 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdisServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvdisServiceImpl.java
@@ -12,6 +12,7 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdtlServi
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdis;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvdisMapper;
+import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.StructAllsetDto;
import org.nl.common.utils.IdUtil;
import org.nl.modules.wql.util.SpringContextHolder;
import org.springframework.beans.factory.annotation.Autowired;
@@ -148,4 +149,10 @@ public class StIvtIostorinvdisServiceImpl extends ServiceImpl getDisStructSet(String iostorinvId) {
+ List structSet = this.baseMapper.getDisStructSet(iostorinvId);
+ return structSet;
+ }
}
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java
index 4ca915c56..dafefac1a 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java
@@ -4,6 +4,8 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.lang3.StringUtils;
+import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.AcsTaskDto;
import org.nl.wms.sch.AcsUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -34,12 +36,19 @@ public abstract class AbstractAcsTask {
return addTask();
}
+ public List schedule(String taskId) {
+ return addTask(taskId);
+ }
+
/**
* 添加任务进行下发
*
* @return
*/
public abstract List addTask();
+ public List addTask(String taskId){
+ throw new BadRequestException("当前类没有重写addTask(taskId)方法");
+ };
/**
* @param taskObj 代表一条任务对象
@@ -111,15 +120,20 @@ public abstract class AbstractAcsTask {
*
*/
public JSONObject immediateNotifyAcs(String task_id) {
- List taskList = this.schedule();
- if (ObjectUtil.isNotEmpty(taskList)) {
- JSONArray arr = JSONArray.parseArray(JSON.toJSONString(taskList));
- if (acsUtil == null){
- return AcsUtil.notifyAcs("api/wms/task", arr);
- }else {
- return acsUtil.notifyAcs3("api/wms/task", arr);
- }
- }
+ List taskList;
+ if (StringUtils.isEmpty(task_id)){
+ taskList = this.schedule();
+ }else {
+ taskList = this.schedule(task_id);
+ }
+ if (ObjectUtil.isNotEmpty(taskList)) {
+ JSONArray arr = JSONArray.parseArray(JSON.toJSONString(taskList));
+ if (acsUtil == null){
+ return AcsUtil.notifyAcs("api/wms/task", arr);
+ }else {
+ return acsUtil.notifyAcs3("api/wms/task", arr);
+ }
+ }
return null;
}
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java
index 0227e8260..f37b2086f 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java
@@ -70,6 +70,46 @@ public class OutTask extends AbstractAcsTask {
return resultList;
}
+ @Override
+ public List addTask(String taskId) {
+ /*
+ * 下发给ACS时需要特殊处理
+ */
+ //任务表
+ WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
+
+ JSONObject map = new JSONObject();
+ map.put("flag", "1");
+ map.put("handle_class", THIS_CLASS);
+ JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task")
+ .query("task_id = '"+taskId+"' and handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0);
+ ArrayList resultList = new ArrayList<>();
+ for (int i = 0; i < arr.size(); i++) {
+ JSONObject json = arr.getJSONObject(i);
+
+ char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1);
+ AcsTaskDto dto = AcsTaskDto.builder()
+ .ext_task_id(json.getString("task_id"))
+ .task_code(json.getString("task_code"))
+ .task_type(json.getString("acs_task_type"))
+ .start_device_code(json.getString("point_code1"))
+ .next_device_code(json.getString("point_code2"))
+ .vehicle_code(json.getString("vehicle_code"))
+ .priority(json.getString("priority"))
+ .class_type(json.getString("task_type"))
+ .dtl_type(String.valueOf(dtl_type))
+ .remark(json.getString("remark"))
+ .build();
+ resultList.add(dto);
+
+ // 更新任务为下发
+ JSONObject paramMap = new JSONObject();
+ paramMap.put("task_status", TaskStatusEnum.ISSUE.getCode());
+ wo_Task.update(paramMap, "task_id ='" + json.getString("task_id") + "'");
+ }
+ return resultList;
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public void updateTaskStatus(JSONObject taskObj, String status) {
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/CheckOutBillService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/CheckOutBillService.java
index 3978620d5..0081d9f43 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/CheckOutBillService.java
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/CheckOutBillService.java
@@ -167,6 +167,12 @@ public interface CheckOutBillService {
*/
void allSetPoint(JSONObject whereJson);
+ /**
+ * 出库一件设置:修改事务工具
+ * @param whereJson
+ */
+ void allSetPointByNoTran(JSONObject whereJson);
+
/**
* 查询可分配库存
*
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/HandMoveStorAcsTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/HandMoveStorAcsTask.java
index e692760de..175678610 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/HandMoveStorAcsTask.java
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/task/HandMoveStorAcsTask.java
@@ -80,6 +80,60 @@ public class HandMoveStorAcsTask extends AbstractAcsTask {
return resultList;
}
+ @Override
+ public List addTask(String taskId) {
+
+ JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task")
+ .query("task_id = '" + taskId + "' and handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'")
+ .getResultJSONArray(0);
+
+ ArrayList resultList = new ArrayList<>();
+ for (int i = 0; i < arr.size(); i++) {
+ JSONObject json = arr.getJSONObject(i);
+
+ //判断该任务所在的块、排存在其他任务
+ /*String point_code2 = json.getString("point_code2");
+ JSONObject struct_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("struct_code = '"+point_code2+"'").uniqueResult(0);
+ String row_num = struct_jo.getString("row_num");
+ String block_num = struct_jo.getString("block_num");
+ JSONObject task_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("block_num = '"+block_num+"' AND row_num = '"+row_num+"' AND lock_type in ('3','6')").uniqueResult(0);
+ if (ObjectUtil.isNotEmpty(task_jo)){
+ continue;
+ }*/
+
+ char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1);
+ AcsTaskDto dto = AcsTaskDto.builder()
+ .ext_task_id(json.getString("task_id"))
+ .task_code(json.getString("task_code"))
+ .task_type(json.getString("acs_task_type"))
+ .start_device_code(json.getString("point_code1"))
+ .next_device_code(json.getString("point_code2"))
+ .vehicle_code(json.getString("vehicle_code"))
+ .priority(json.getString("priority"))
+ .class_type(json.getString("task_type"))
+ .dtl_type(String.valueOf(dtl_type))
+ .remark(json.getString("remark"))
+ .build();
+
+ // 如果是二期转库任务则下发托盘 && 下发路由方案 大托盘托盘号开头A是大B是小
+ if (json.getString("task_type").equals("010709")) {
+ dto.setVehicle_code(json.getString("vehicle_code2"));
+
+ if (json.getString("vehicle_code2").contains("A")) {
+ dto.setRoute_plan_code("two");
+ } else {
+ dto.setRoute_plan_code("normal");
+ }
+
+ }
+
+ resultList.add(dto);
+ json.put("task_status", TaskStatusEnum.ISSUE.getCode());
+ WQLObject.getWQLObject("SCH_BASE_Task").update(json);
+ }
+ return resultList;
+ }
+
/**
* @param taskObj 代表一条任务对象
* @param status 代表wcs任务完成状态: //1:执行中,2:完成 ,3:acs取消
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java
index 4e988a2a4..2b31fc22f 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java
@@ -208,12 +208,11 @@ public class CheckOutBillController {
@PostMapping("/allSetPoint")
@Log("一键设置")
-
public ResponseEntity