Browse Source

opt:任务表代码替换优化

master
张东升 8 months ago
parent
commit
d57d2e7a03
  1. 6
      lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/SchBaseTask.java
  2. 2
      lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/TaskService.java
  3. 6
      lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/TaskServiceImpl.java
  4. 232
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java
  5. 26
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java
  6. 14
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java
  7. 22
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java
  8. 10
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java
  9. 33
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java
  10. 26
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/SendOutManageServiceImpl.java
  11. 2
      lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java
  12. 25
      lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java
  13. 17
      lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java
  14. 16
      lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/InServiceImpl.java
  15. 18
      lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/OutServiceImpl.java
  16. 36
      lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java
  17. 31
      lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/SerfaceServiceImpl.java
  18. 81
      lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/ShippingServiceImpl.java
  19. 17
      lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/CoolInServiceImpl.java
  20. 28
      lms/nladmin-system/src/main/java/org/nl/wms/pda/task/service/impl/PdaTaskServiceImpl.java
  21. 14
      lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/RawfoilworkorderServiceImpl.java
  22. 30
      lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsUtil.java
  23. 17
      lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java
  24. 69
      lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java
  25. 20
      lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java
  26. 18
      lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java
  27. 1
      lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java
  28. 19
      lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/PaperTubeTask.java
  29. 21
      lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java
  30. 79
      lms/nladmin-system/src/main/java/org/nl/wms/st/instor/movestor/service/impl/HandMoveStorServiceImpl.java
  31. 231
      lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java
  32. 6
      lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java

6
lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/SchBaseTask.java

@ -114,7 +114,7 @@ public class SchBaseTask extends Model<SchBaseTask> {
/**
* 载具数量
*/
private BigDecimal vehicle_qty;
private Integer vehicle_qty;
/**
@ -156,7 +156,7 @@ public class SchBaseTask extends Model<SchBaseTask> {
/**
* 任务组顺序号
*/
private BigDecimal sort_seq;
private Integer sort_seq;
/**
@ -274,6 +274,8 @@ public class SchBaseTask extends Model<SchBaseTask> {
@TableField(exist = false)
private String weight;
@TableField(exist = false)
private String method_name;
/**
* 是否立即下发
*/

2
lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/TaskService.java

@ -89,7 +89,7 @@ public interface TaskService extends IService<SchBaseTask> {
*/
Boolean checkHaveTaskByZcPoint(BstIvtCutpointivt point);
void operation(Map<String, Object> map);
void operation(SchBaseTask map);
}

6
lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/TaskServiceImpl.java

@ -202,13 +202,13 @@ public class TaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBaseTask>
@SneakyThrows
@Override
public void operation(Map<String, Object> map) {
String task_id = MapUtil.getStr(map, "task_id");
public void operation(SchBaseTask map) {
String task_id = map.getTask_id();
RLock lock = redissonClient.getLock(task_id);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
String method_name = MapUtil.getStr(map, "method_name");
String method_name = map.getMethod_name();
SchBaseTask taskObj = this.getById(task_id);
if ("finish".equals(method_name)) {
//强制执行,只把任务变更成完成状态

232
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java

@ -13,6 +13,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.b_lms.pdm_manage.enums.SUBEnum;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.b_lms.sch.tasks.TwoOutExceptionalTask;
import org.nl.b_lms.sch.tasks.TwoOutTask;
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
@ -74,6 +76,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
@Autowired
private StorattrMapper storattrMapper;
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
/**
* 仓库服务
*/
@ -411,8 +415,6 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
@Override
@Transactional(rollbackFor = Exception.class)
public void cancelDiv(JSONObject whereJson) {
// 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
StIvtIostorinv mstDao = this.getById(whereJson.getLongValue("iostorinv_id"));
@ -536,21 +538,20 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
this.updateMstStatus(mstDao.getIostorinv_id());
/*删除出库任务*/
String task_id_in = disList.stream()
List<String> task_id_in = disList.stream()
.map(row -> row.getString("task_id"))
.distinct()
.collect(Collectors.joining("','"));
if (task_id_in.equals("null")) {
task_id_in = "";
}
.collect(Collectors.toList());
JSONObject taskParam = new JSONObject();
taskParam.put("is_delete", IOSEnum.IS_NOTANDYES.code("是"));
taskService.update(taskParam,"task_id IN ('"+task_id_in+"')");
if (task_id_in.size()>0) {
LambdaUpdateWrapper<SchBaseTask> lam = new LambdaUpdateWrapper<>();
lam.in(SchBaseTask::getTask_id, task_id_in)
.eq(SchBaseTask::getIs_delete, "0");
lam.set(SchBaseTask::getIs_delete,IOSEnum.IS_NOTANDYES.code("是"));
schBaseTaskMapper.update(null,lam);
}
/*
* 删除移库单移库任务
*/
@ -578,18 +579,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
@Override
@Transactional
public void allSetPoint2(JSONObject whereJson) {
// 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
StIvtIostorinv mstDao = this.getById(whereJson.getLongValue("iostorinv_id"));
//判断是否有正在执行中的任务
// List<JSONObject> arr = taskService.query("handle_class = '" + TwoOutTask.class.getName() + "' and task_status = '" + TaskStatusEnum.EXECUTING.getCode() + "' and is_delete ='0'")
// .getResultJSONArray(0).toJavaList(JSONObject.class);
//
// if (ObjectUtil.isNotEmpty(arr)) {
// throw new BadRequestException("当前有出库任务正在执行,请稍后在试!");
// }
// 查询此明细所有未生成的分配明细
List<JSONObject> disDaoList = stIvtIostorinvdisMapper.getNotCreateDis(whereJson);
@ -621,8 +614,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
}
// 下发任务:判断当前单据是否有正在执行的的任务
JSONArray disArr = taskService.query("table_fk = '" + mstDao.getIostorinv_id().toString() + "' and is_delete = '0' and task_status = '" + TaskStatusEnum.EXECUTING.getCode() + "'")
.getResultJSONArray(0);
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getTable_fk, mstDao.getIostorinv_id().toString())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getTask_status,TaskStatusEnum.EXECUTING.getCode())
.orderByDesc(SchBaseTask::getCreate_time);
List<SchBaseTask> disArr = schBaseTaskMapper.selectList(lam);
if (ObjectUtil.isEmpty(disArr)) {
TwoOutTask twoOutTask = new TwoOutTask();
@ -633,8 +630,6 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
@Override
public void allSetPoint(JSONObject whereJson) {
// 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
StIvtIostorinv mstDao = this.getById(whereJson.getLongValue("iostorinv_id"));
@ -652,16 +647,18 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
boxCheck(whereJson.getString("iostorinv_id"));
//判断是否有正在执行中的任务
List<JSONObject> arr2 = taskService.query("handle_class = '" + TwoOutTask.class.getName() + "' and task_status < '" + TaskStatusEnum.FINISHED.getCode() + "' and is_delete ='0'")
.getResultJSONArray(0).toJavaList(JSONObject.class);
Map<String, List<JSONObject>> taskGroup = arr2.stream()
.collect(Collectors.groupingBy(row -> row.getString("task_group_id")));
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getHandle_class, TwoOutTask.class.getName())
.eq(SchBaseTask::getIs_delete, "0")
.lt(SchBaseTask::getTask_status,TaskStatusEnum.FINISHED.getCode())
.orderByDesc(SchBaseTask::getCreate_time);
List<SchBaseTask> arr2 = schBaseTaskMapper.selectList(lam);
Map<String, List<SchBaseTask>> taskGroup = arr2.stream()
.collect(Collectors.groupingBy(row -> row.getTask_group_id()));
if (taskGroup.size() >= 3) {
throw new BadRequestException("当前有三种不同规格的木箱正在出库,请稍后在试!");
}
/*
* 下发任务
* 1.根据木箱 订单号物料分组
@ -695,9 +692,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
return arr;
}, new JSONArray());
// 下发任务:判断当前单据是否有正在执行的的任务
JSONArray disArr = taskService.query("table_fk = '" + mstDao.getIostorinv_id().toString() + "' and is_delete = '0' and task_status = '" + TaskStatusEnum.EXECUTING.getCode() + "'")
.getResultJSONArray(0);
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getTable_fk,mstDao.getIostorinv_id().toString())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getTask_status,TaskStatusEnum.EXECUTING.getCode())
.orderByDesc(SchBaseTask::getCreate_time);
List<SchBaseTask> disArr = schBaseTaskMapper.selectList(lam);
if (ObjectUtil.isEmpty(disArr)) {
TwoOutTask twoOutTask = new TwoOutTask();
twoOutTask.immediateNotifyAcs(null);
@ -711,8 +711,6 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation");
// 包装关系出入库记录表
WQLObject subRecordTab = WQLObject.getWQLObject("pdm_bi_subpackagerelationrecord");
// 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
StIvtIostorinv mstDao = this.getById(whereJson.getLongValue("iostorinv_id"));
@ -758,16 +756,20 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
}
// 判断是否有未完成的任务
String task_in = disDaoList.stream()
List<String> task_in = disDaoList.stream()
.filter(row -> ObjectUtil.isNotEmpty(row.getTask_id()))
.map(row -> row.getTask_id().toString())
.distinct()
.collect(Collectors.joining("','"));
.collect(Collectors.toList());
JSONArray taskArr = taskService.query("task_id IN ('" + task_in + "') AND task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "' AND is_delete = '0'")
.getResultJSONArray(0);
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.in(SchBaseTask::getTask_id,task_in)
.eq(SchBaseTask::getIs_delete, "0")
.ne(SchBaseTask::getTask_status,TaskStatusEnum.FINISHED.getCode())
.orderByDesc(SchBaseTask::getCreate_time);
Integer taskArr = schBaseTaskMapper.selectCount(lam);
if (ObjectUtil.isNotEmpty(taskArr)) {
if (taskArr>0) {
throw new BadRequestException("有任务未完成,不允许强制确认!");
}
@ -905,7 +907,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
JSONObject jsonTaskParam = new JSONObject();
jsonTaskParam.put("task_status", TaskStatusEnum.FINISHED.getCode());
taskService.update(jsonTaskParam,"task_id IN ('"+String.join("','", needUpdateTaskList)+"')");
LambdaUpdateWrapper<SchBaseTask> up_lam = new LambdaUpdateWrapper<>();
up_lam.in(SchBaseTask::getTask_id,needUpdateTaskList);
up_lam.set(SchBaseTask::getTask_status,TaskStatusEnum.FINISHED.getCode());
schBaseTaskMapper.update(null,up_lam);
/*
* 如果是调拨出库则生成调拨入库单
@ -950,12 +955,14 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
@Override
@Transactional
public void finishTask(JSONObject whereJson) {
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
// 查询任务
JSONObject jsonTask = wo_Task.query("task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "' and task_id = '" + whereJson.getString("task_id") + "'")
.uniqueResult(0);
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getTask_id,whereJson.getString("task_id"))
.eq(SchBaseTask::getIs_delete, "0")
.ne(SchBaseTask::getTask_status,TaskStatusEnum.FINISHED.getCode())
.orderByDesc(SchBaseTask::getCreate_time);
SchBaseTask jsonTask = schBaseTaskMapper.selectOne(lam);
if (jsonTask == null) {
throw new BadRequestException("查询不到操作的任务记录!"+whereJson.getString("task_id"));
@ -1010,9 +1017,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
HashMap<String, String> map = new HashMap<>();
map.put("need_delete", IOSEnum.IS_NOTANDYES.code("是"));
WQLObject.getWQLObject("pdm_bi_subpackagerelation").update(map, "package_box_sn = '" + jsonTask.getString("vehicle_code") + "'");
WQLObject.getWQLObject("pdm_bi_subpackagerelation").update(map, "package_box_sn = '" + jsonTask.getVehicle_code() + "'");
JSONArray rows = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + jsonTask.getString("vehicle_code") + "'").getResultJSONArray(0);
JSONArray rows = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + jsonTask.getVehicle_code() + "'").getResultJSONArray(0);
for (int i = 0; i < rows.size(); i++) {
JSONObject row = rows.getJSONObject(i);
//插入包装关系出入库记录表
@ -1027,13 +1034,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
}
//更新任务为完成
HashMap<String, String> map = new HashMap<>();
map.put("task_status", TaskStatusEnum.FINISHED.getCode());
map.put("update_optid", SecurityUtils.getCurrentUserId());
map.put("update_optname", SecurityUtils.getCurrentNickName());
map.put("update_time", DateUtil.now());
jsonTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
jsonTask.setUpdate_id(SecurityUtils.getCurrentUserId());
jsonTask.setUpdate_name(SecurityUtils.getCurrentNickName());
jsonTask.setUpdate_time(DateUtil.now());
wo_Task.update(map, "task_id='" + whereJson.getString("task_id") + "'");
schBaseTaskMapper.updateById(jsonTask);
// 查询此任务下所有的分配明细
disDaoList.forEach(row -> {
@ -1282,8 +1288,6 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
* @return JSONObject 需要移库的仓位
*/
private Structattr ifBoxStop(Structattr jsonAttr,List<Structattr> attrRowList, String iostorinv_id) {
// 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
Structattr result = new Structattr();
@ -1323,9 +1327,14 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
flag = false;
} else {
// 为空:判断此木箱是否有任务
JSONObject jsonTask = taskService.query("vehicle_code = '" + jsonLow.getStoragevehicle_code() + "' and task_status <> '07' and is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonTask)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getVehicle_code,jsonLow.getStoragevehicle_code())
.eq(SchBaseTask::getIs_delete, "0")
.ne(SchBaseTask::getTask_status,TaskStatusEnum.FINISHED.getCode())
.orderByDesc(SchBaseTask::getCreate_time);
Integer jsonTask = schBaseTaskMapper.selectCount(lam);
if (jsonTask>0) {
flag = false;
}
@ -1418,8 +1427,6 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
* @return JSONObject 需要移库的仓位
*/
private Structattr ifBoxStop2(Structattr jsonAttr, List<Structattr> attrRowList, String iostorinv_id, Consumer<String> allTransactionConsumer) {
// 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
Structattr result = new Structattr();
@ -1461,9 +1468,15 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
flag = false;
} else {
// 为空:判断此木箱是否有任务
JSONObject jsonTask = taskService.query("vehicle_code = '" + jsonLow.getStoragevehicle_code() + "' and task_status <> '07' and is_delete = '0'").uniqueResult(0);
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getVehicle_code,jsonLow.getStoragevehicle_code())
.eq(SchBaseTask::getIs_delete, "0")
.ne(SchBaseTask::getTask_status,TaskStatusEnum.FINISHED.getCode())
.orderByDesc(SchBaseTask::getCreate_time);
if (ObjectUtil.isNotEmpty(jsonTask)) {
Integer jsonTask = schBaseTaskMapper.selectCount(lam);
if (jsonTask>0) {
flag = false;
}
@ -1554,19 +1567,21 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
* @param point_code 终点
*/
private void createTask(List<JSONObject> taskMangeList,List<JSONObject> disLikeList, String point_code) {
// 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
// 点位表
WQLObject schBasePointService = WQLObject.getWQLObject("sch_base_point");
// 查询异常货位任务集合
String TaskCodeIn = taskMangeList.stream()
List<String> TaskCodeIn = taskMangeList.stream()
.filter(row -> row.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库异常锁")))
.map(row -> row.getString("task_code"))
.distinct().collect(Collectors.joining("','"));
.distinct().collect(Collectors.toList());
List<JSONObject> taskList = taskService.query("task_id IN ('" + TaskCodeIn + "') and is_delete = '0'")
.getResultJSONArray(0).toJavaList(JSONObject.class);
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.in(SchBaseTask::getTask_id,TaskCodeIn)
.eq(SchBaseTask::getIs_delete, "0")
.orderByDesc(SchBaseTask::getCreate_time);
List<SchBaseTask> taskList = schBaseTaskMapper.selectList(lam);
// 任务组标识
String task_group_id = IdUtil.getStringId();
@ -1598,14 +1613,14 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
* 完成生成完成任务的point_code2 当做起点的任务
* 未完成只更新分配明细状态为生成
*/
JSONObject jsonTask = taskList.stream()
.filter(row -> row.getString("task_id").equals(json.getString("task_code")))
SchBaseTask jsonTask = taskList.stream()
.filter(row -> row.getTask_id().equals(json.getString("task_code")))
.collect(Collectors.toList()).get(0);
// 完成
if (jsonTask.getString("task_status").equals(TaskStatusEnum.FINISHED.getCode())) {
start_device_code = jsonTask.getString("point_code2");
if (jsonTask.getTask_status().equals(TaskStatusEnum.FINISHED.getCode())) {
start_device_code = jsonTask.getPoint_code2();
is_auto_issue = IOSEnum.IS_SEND.code("否");
} else {
// 未完成:只更新分配明细状态不更新任务id
@ -1616,16 +1631,16 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
iStIvtIostorinvdisService.updateBatchById(disDaoList);
// 标记任务
jsonTask.put("is_auto_issue",IOSEnum.IS_SEND.code("否"));
taskService.update(jsonTask);
jsonTask.setIs_auto_issue(IOSEnum.IS_SEND.code("否"));
schBaseTaskMapper.updateById(jsonTask);
continue;
}
}
// 查询木箱对应的载具
LambdaQueryWrapper<Storagevehicleex> lam = new LambdaQueryWrapper<Storagevehicleex>();
lam.eq(Storagevehicleex::getPcsn,json.getString("storagevehicle_code"));
List<Storagevehicleex> jsonVeExts = storagevehicleexMapper.selectList(lam);
LambdaQueryWrapper<Storagevehicleex> lam2 = new LambdaQueryWrapper<Storagevehicleex>();
lam2.eq(Storagevehicleex::getPcsn,json.getString("storagevehicle_code"));
List<Storagevehicleex> jsonVeExts = storagevehicleexMapper.selectList(lam2);
if (jsonVeExts.size() ==0) {
throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code"));
}
@ -1683,8 +1698,6 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
* @param point_code 终点
*/
private void createTask2(List<JSONObject> taskMangeList,List<JSONObject> disLikeList, String point_code, Consumer<String> allTransactionConsumer) {
// 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
// 点位表
WQLObject schBasePointService = WQLObject.getWQLObject("sch_base_point");
@ -1694,8 +1707,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
.map(row -> row.getString("task_code"))
.distinct().collect(Collectors.joining("','"));
List<JSONObject> taskList = taskService.query("task_id IN ('" + TaskCodeIn + "') and is_delete = '0'")
.getResultJSONArray(0).toJavaList(JSONObject.class);
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.in(SchBaseTask::getTask_id,TaskCodeIn)
.eq(SchBaseTask::getIs_delete, "0")
.orderByDesc(SchBaseTask::getCreate_time);
List<SchBaseTask> taskList = schBaseTaskMapper.selectList(lam);
// 任务组标识
String task_group_id = IdUtil.getStringId();
@ -1729,14 +1746,14 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
* 完成生成完成任务的point_code2 当做起点的任务
* 未完成只更新分配明细状态为生成
*/
JSONObject jsonTask = taskList.stream()
.filter(row -> row.getString("task_id").equals(json.getString("task_code")))
SchBaseTask jsonTask = taskList.stream()
.filter(row -> row.getTask_id().equals(json.getString("task_code")))
.collect(Collectors.toList()).get(0);
// 完成
if (jsonTask.getString("task_status").equals(TaskStatusEnum.FINISHED.getCode())) {
start_device_code = jsonTask.getString("point_code2");
if (jsonTask.getTask_status().equals(TaskStatusEnum.FINISHED.getCode())) {
start_device_code = jsonTask.getPoint_code2();
is_auto_issue = IOSEnum.IS_SEND.code("否");
} else {
// 未完成:只更新分配明细状态不更新任务id
@ -1747,16 +1764,16 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
iStIvtIostorinvdisService.updateBatchById(disDaoList);
// 标记任务
jsonTask.put("is_auto_issue",IOSEnum.IS_SEND.code("否"));
taskService.update(jsonTask);
jsonTask.setIs_auto_issue(IOSEnum.IS_SEND.code("否"));
schBaseTaskMapper.updateById(jsonTask);
continue;
}
}
// 查询木箱对应的载具
LambdaQueryWrapper<Storagevehicleex> lam = new LambdaQueryWrapper<Storagevehicleex>();
lam.eq(Storagevehicleex::getPcsn,json.getString("storagevehicle_code"));
List<Storagevehicleex> jsonVeExts = storagevehicleexMapper.selectList(lam);
LambdaQueryWrapper<Storagevehicleex> lam2 = new LambdaQueryWrapper<Storagevehicleex>();
lam2.eq(Storagevehicleex::getPcsn,json.getString("storagevehicle_code"));
List<Storagevehicleex> jsonVeExts = storagevehicleexMapper.selectList(lam2);
if (jsonVeExts.size() == 0) {
throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code"));
}
@ -1821,8 +1838,6 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
* @param disDaoList所有分配明细集合
*/
private void UpdateExceptional(List<StIvtIostorinvdis> disDaoList) {
// 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
// 获取仓位集合
List<String> structCodeIn = disDaoList.stream()
@ -1843,20 +1858,23 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
.map(row -> row.getTask_code())
.distinct().collect(Collectors.joining("','"));
List<JSONObject> taskList = taskService.query("task_id IN ('" + taskCodeIn + "')")
.getResultJSONArray(0).toJavaList(JSONObject.class);
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.in(SchBaseTask::getTask_id,taskCodeIn)
.eq(SchBaseTask::getIs_delete, "0")
.orderByDesc(SchBaseTask::getCreate_time);
List<SchBaseTask> taskList = schBaseTaskMapper.selectList(lam);
// 更新异常货位
List<String> structCodeInList = new ArrayList<>();
for (int i = 0; i < taskList.size(); i++) {
JSONObject json = taskList.get(0);
SchBaseTask json = taskList.get(0);
structCodeInList.add(json.getString("point_code1"));
structCodeInList.add(json.getString("point_code2"));
structCodeInList.add(json.getPoint_code1());
structCodeInList.add(json.getPoint_code2());
}
JSONObject jsonUpdate = new JSONObject();
LambdaUpdateWrapper<Structattr> Wrapper = new LambdaUpdateWrapper<>();
Wrapper.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"));
Wrapper.set(Structattr::getTask_code, "");
@ -2002,7 +2020,6 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
* @return 仓位
*/
private String exceptionPointCode(List<JSONObject> disDaoList) {
WQLObject TaskTab = WQLObject.getWQLObject("sch_base_task");
String result = "";
// 查找库内是否有异常货位
@ -2061,12 +2078,15 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
}
// 查询对应的异常任务
JSONObject jsonTask = TaskTab
.query("handle_class = '" + TwoOutExceptionalTask.class.getName() + "' AND is_delete = '0' and point_code2 = '" + expJson.getStruct_code() + "' ORDER BY create_time DESC")
.uniqueResult(0);
result = "请先下发木箱号为【"+jsonTask.getString("vehicle_code")+"】的出库任务!";
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getHandle_class, TwoOutExceptionalTask.class.getName())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getPoint_code2,expJson.getStruct_code())
.orderByDesc(SchBaseTask::getCreate_time);
List<SchBaseTask> tasks = schBaseTaskMapper.selectList(lam);
if(tasks.size()>0){
result = "请先下发木箱号为【"+tasks.get(0).getVehicle_code()+"】的出库任务!";
}
}
return result;
}

26
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java

@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.Page;
@ -20,6 +21,7 @@ import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationServi
import org.nl.b_lms.pdm_manage.enums.SUBEnum;
import org.nl.b_lms.sch.point.dao.SchBasePoint;
import org.nl.b_lms.sch.point.service.IschBasePointService;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.b_lms.sch.tasks.TwoInTask;
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
@ -598,13 +600,13 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
String task_id = MapUtil.getStr(whereJson, "task_id");
//判断指令状态,只能下发生成、执行中状态的任务
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("task_id = '" + task_id + "'").uniqueResult(0);
SchBaseTask task_jo = schBaseTaskMapper.selectById(task_id);
if (ObjectUtil.isEmpty(task_jo)) {
throw new BadRequestException("请输入正确的任务号!");
}
if (!TaskStatusEnum.START_AND_POINT.getCode().equals(task_jo.getString("task_status"))) {
if (!TaskStatusEnum.START_AND_POINT.getCode().equals(task_jo.getTask_status())) {
throw new BadRequestException("只能修改任务状态为未下发的任务!");
}
@ -856,9 +858,6 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
*/
private void confirmMst(StIvtIostorinv mstDao) {
// 仓位表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
// 子卷包装关系表
WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation");
@ -933,14 +932,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
mstDao.setConfirm_time(DateUtil.now());
// 更新任务为完成
JSONObject jsonTaskParam = new JSONObject();
jsonTaskParam.put("task_status", TaskStatusEnum.FINISHED.getCode());
jsonTaskParam.put("update_optid", SecurityUtils.getCurrentUserId());
jsonTaskParam.put("update_optname", SecurityUtils.getCurrentNickName());
jsonTaskParam.put("update_time", DateUtil.now());
List<String> needUpdateTaskList = new ArrayList<>();
for (int i = 0; i < disDaoList.size(); i++) {
StIvtIostorinvdis disDao = disDaoList.get(i);
if (disDao.getTask_id() != null) {
@ -948,8 +940,14 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
needUpdateTaskList.add(disDao.getTask_id().toString());
}
}
taskService.update(jsonTaskParam, "task_id IN ('" + String.join("','", needUpdateTaskList) + "') AND task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'");
LambdaUpdateWrapper<SchBaseTask> lam = new LambdaUpdateWrapper<>();
lam.in(SchBaseTask::getTask_id,needUpdateTaskList);
lam.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
lam.set(SchBaseTask::getUpdate_id, SecurityUtils.getCurrentUserId());
lam.set(SchBaseTask::getUpdate_name, SecurityUtils.getCurrentNickName());
lam.set(SchBaseTask::getUpdate_time, DateUtil.now());
schBaseTaskMapper.update(null,lam);
// 更新子卷包装关系
String pcsn_in = disDaoList.stream()

14
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java

@ -11,6 +11,7 @@ import lombok.RequiredArgsConstructor;
import org.nl.b_lms.sch.point.dao.SchBasePoint;
import org.nl.b_lms.sch.point.service.IschBasePointService;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.b_lms.sch.task.service.TaskService;
import org.nl.b_lms.sch.tasks.TwoInBoxTask;
import org.nl.b_lms.sch.tasks.TwoInBoxTrussTask;
@ -90,6 +91,8 @@ public class InBoxManageServiceImpl implements InBoxManageService {
@Autowired
private LmsToMesService lmsToMesService;
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
@Autowired
private InBussManageService inBussManageService;
@ -372,10 +375,13 @@ public class InBoxManageServiceImpl implements InBoxManageService {
lmsToMesService.momGetPackingInfo(whereJson);
//判断当前点位是否存在任务,如果存在则不生成任务
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
JSONObject jsonObject = wo_Task.query("point_code1 = '" + whereJson.getString("point_code") + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonObject)) {
throw new BadRequestException("点位【" + jsonObject.getString("point_code1") + "】存在未完成的任务!");
LambdaQueryWrapper<SchBaseTask> lam2 = new LambdaQueryWrapper<>();
lam2.eq(SchBaseTask::getPoint_code1, whereJson.getString("point_code"))
.eq(SchBaseTask::getIs_delete, "0")
.lt(SchBaseTask::getTask_status,"07");
Integer jsonObjects = schBaseTaskMapper.selectCount(lam2);
if (jsonObjects>0) {
throw new BadRequestException("点位【" + whereJson.getString("point_code") + "】存在未完成的任务!");
}

22
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java

@ -11,6 +11,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.RequiredArgsConstructor;
import org.nl.b_lms.sch.point.dao.SchBasePoint;
import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.b_lms.sch.tasks.TwoLashTask;
import org.nl.b_lms.sch.tasks.TwoOutHeapTask;
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
@ -71,7 +73,8 @@ public class LashManageServiceImpl implements LashManageService {
* 捆扎任务创建
*/
private final TwoLashTask twoLashTask;
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
/**
* 木箱类型信息服务
*/
@ -233,13 +236,16 @@ public class LashManageServiceImpl implements LashManageService {
public void createHeapTask(JSONObject whereJson) {
// 比较两行架点位的任务个数
List<JSONObject> executeArr = WQLObject.getWQLObject("SCH_BASE_Task")
.query("handle_class = '" + TwoOutHeapTask.class.getName() + "' and task_status IN ('04','05','06') and is_delete = '0' ")
.getResultJSONArray(0).toJavaList(JSONObject.class);
LambdaQueryWrapper<SchBaseTask> lam2 = new LambdaQueryWrapper<>();
lam2.eq(SchBaseTask::getHandle_class, TwoOutHeapTask.class.getName())
.eq(SchBaseTask::getIs_delete, "0")
.in(SchBaseTask::getTask_status, "04","05","06");
List<SchBaseTask> executeArr = schBaseTaskMapper.selectList(lam2);
// 根据终点点位进行分组
Map<String, List<JSONObject>> groupPointMap = executeArr.stream()
.collect(Collectors.groupingBy(row -> row.getString("point_code2")));
Map<String, List<SchBaseTask>> groupPointMap = executeArr.stream()
.collect(Collectors.groupingBy(row -> row.getPoint_code2()));
// 终点: 如果是异常口则直接生成到异常口的任务
String next_device_code = IOSEnum.OUT_HANGER.code("行架位1");
@ -248,8 +254,8 @@ public class LashManageServiceImpl implements LashManageService {
if (TWO_EXCEP.equals(IOSEnum.IS_NOTANDYES.code("是"))) {
next_device_code = IOSEnum.EXCEP_OUT.code("异常出库口");
} else {
List<JSONObject> heapOne = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位1"))).orElse(new ArrayList<>());
List<JSONObject> heapTwo = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位2"))).orElse(new ArrayList<>());
List<SchBaseTask> heapOne = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位1"))).orElse(new ArrayList<>());
List<SchBaseTask> heapTwo = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位2"))).orElse(new ArrayList<>());
if (heapOne.size() > heapTwo.size()) {

10
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java

@ -58,6 +58,8 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
private List<String> notOutBlockList = new ArrayList<>();
@Autowired
private StructattrMapper structattrMapper;
@Autowired
private TaskService taskService;
/**
* 木箱信息服务
*/
@ -175,13 +177,11 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
@Override
@Transactional
public String taskExceptionalOut(JSONObject jsonObject) {
// 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
JSONObject jsonTask = taskService.query("task_code = '" + jsonObject.getString("task_code") + "'").uniqueResult(0);
SchBaseTask jsonTask =taskService.findByCode(jsonObject.getString("task_code"));
// 找出对应的浅货位
Structattr jsonAttrOrder = structattrService.findByCode(jsonTask.getString("point_code1"));
Structattr jsonAttrOrder = structattrService.findByCode(jsonTask.getPoint_code1());
LambdaQueryWrapper<Structattr> queryWrapper = new LambdaQueryWrapper();
queryWrapper.eq(Structattr::getRow_num,jsonAttrOrder.getRow_num())
.eq(Structattr::getLayer_num,jsonAttrOrder.getLayer_num())
@ -193,7 +193,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
List<Structattr> jsonAttrNows = structattrMapper.selectList(queryWrapper);
if (jsonAttrNows.size() == 0) {
throw new BadRequestException("对应浅货位不存在或未启用!" + jsonTask.getString("point_code1"));
throw new BadRequestException("对应浅货位不存在或未启用!" + jsonTask.getPoint_code1());
}
Structattr jsonAttrNow = jsonAttrNows.get(0);
// 锁住仓位

33
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.b_lms.sch.task.service.TaskService;
import org.nl.b_lms.sch.tasks.TwoExcepionalMoveTask;
import org.nl.b_lms.sch.tasks.TwoOutEmpTask;
@ -18,6 +19,7 @@ import org.nl.wms.basedata.st.structattr.service.StructattrService;
import org.nl.wms.basedata.st.structattr.service.dao.Structattr;
import org.nl.wms.basedata.st.structattr.service.dao.mapper.StructattrMapper;
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -42,7 +44,8 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
* 出库不需要查询的排集合
*/
private List<String> notOutRowList = new ArrayList<>();
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
/**
* 出库不需要查询的巷道集合
*/
@ -55,7 +58,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
* 任务服务
*/
@Autowired
private TaskService ischBaseTaskService;
private TaskService taskService;
@Override
@Transactional(rollbackFor = Exception.class)
@ -71,10 +74,14 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
whereJson.put("storagevehicle_type", whereJson.getString("vehicle_type"));
//判断当前点位是否存在任务,如果存在则不生成任务
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
JSONObject jsonObject = wo_Task.query("point_code2 = '" + whereJson.getString("device_code") + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonObject)){
throw new BadRequestException("点位【"+jsonObject.getString("point_code2")+"】正在出空托盘任务!");
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getPoint_code2,whereJson.getString("device_code"))
;
int tasks = schBaseTaskMapper.selectCount(lam);
if (tasks>0){
throw new BadRequestException("点位【"+whereJson.getString("device_code")+"】正在出空托盘任务!");
}
JSONObject jsonAttr = getStruct(whereJson);
@ -117,10 +124,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
public JSONObject taskExceptional(JSONObject jsonObject) {
// 查询任务
SchBaseTask taskDao = ischBaseTaskService.getOne(
new QueryWrapper<SchBaseTask>().lambda()
.eq(SchBaseTask::getTask_code, jsonObject.getString("task_code"))
);
SchBaseTask taskDao =taskService.findByCode(jsonObject.getString("task_code"));
// 标记原货位为满入异常锁
@ -151,7 +155,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
// 更新任务起点
taskDao.setPoint_code1(jsonAttrNow.getString("struct_code"));
taskDao.setVehicle_code(jsonAttrNow.getString("storagevehicle_code"));
ischBaseTaskService.updateById(taskDao);
taskService.updateById(taskDao);
return jsonAttrNow;
}
@ -160,12 +164,11 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
@Transactional
public String taskExceptionalOut(JSONObject jsonObject) {
// 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
JSONObject jsonTask = taskService.query("task_code = '" + jsonObject.getString("task_code") + "'").uniqueResult(0);
SchBaseTask jsonTask = taskService.findByCode(jsonObject.getString("task_code"));
// 找出对应的浅货位
Structattr jsonAttrOrder = structattrService.findByCode(jsonTask.getString("point_code1"));
Structattr jsonAttrOrder = structattrService.findByCode(jsonTask.getPoint_code1());
LambdaQueryWrapper<Structattr> queryWrapper = new LambdaQueryWrapper();
queryWrapper.eq(Structattr::getRow_num, jsonAttrOrder.getRow_num())
@ -178,7 +181,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
List<Structattr> jsonAttrNows = structattrMapper.selectList(queryWrapper);
if (jsonAttrNows.size() == 0) {
throw new BadRequestException("对应浅货位不存在或未启用!" + jsonTask.getString("point_code1"));
throw new BadRequestException("对应浅货位不存在或未启用!" + jsonTask.getPoint_code1());
}
Structattr jsonAttrNow = jsonAttrNows.get(0);
// 锁住仓位

26
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/SendOutManageServiceImpl.java

@ -10,6 +10,9 @@ import org.apache.log4j.Logger;
import org.nl.b_lms.sch.point.dao.SchBasePoint;
import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper;
import org.nl.b_lms.sch.point.service.IschBasePointService;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.b_lms.sch.task.service.TaskService;
import org.nl.b_lms.sch.tasks.TwoSendOutTask;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.SendOutManageService;
@ -17,6 +20,7 @@ import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
import org.nl.wms.sch.tasks.CutConveyorTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -43,7 +47,8 @@ public class SendOutManageServiceImpl implements SendOutManageService {
* 点位服务
*/
private final IschBasePointService ischBasePointService;
@Autowired
private TaskService taskService;
/**
* 点位mapper服务
*/
@ -383,11 +388,10 @@ public class SendOutManageServiceImpl implements SendOutManageService {
@Override
public String createSendOutTaskTwo(JSONObject whereJson) {
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
// 根据任务号找到第一次申请时的任务
JSONObject taskJson = taskTab.query("task_code = '" + whereJson.getString("task_code") + "' AND is_delete = '0'").uniqueResult(0);
SchBaseTask taskJson = taskService.findByCode(whereJson.getString("task_code"));
if (ObjectUtil.isEmpty(taskJson)) {
throw new BadRequestException("任务号为:"+ whereJson.getString("task_code")+ "的任务不存在!");
}
@ -395,8 +399,8 @@ public class SendOutManageServiceImpl implements SendOutManageService {
String point_code4 = "";
// 判断是否已经分配过一次(防止acs多次申请)
if (ObjectUtil.isEmpty(taskJson.getString("point_code4"))) {
return taskJson.getString("point_code2");
if (ObjectUtil.isEmpty(taskJson.getPoint_code4())) {
return taskJson.getPoint_code2();
}
// 所有发货区点位
@ -408,7 +412,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
);
SchBasePoint pointDao = pointDaoList.stream()
.filter(row -> row.getPoint_code().equals(taskJson.getString("point_code4")))
.filter(row -> row.getPoint_code().equals(taskJson.getPoint_code4()))
.findFirst().orElse(null);
// 找出这一排所有空位
@ -442,7 +446,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
}
// 判断货位是否是第一次申请的货位
if (!point_code4.equals(taskJson.getString("point_code4"))) {
if (!point_code4.equals(taskJson.getPoint_code4())) {
// 更新现仓位
JSONObject jsonUpdate = new JSONObject();
jsonUpdate.put("lock_type", IOSEnum.LOCK_TYPE.code("其它"));
@ -452,14 +456,14 @@ public class SendOutManageServiceImpl implements SendOutManageService {
if ("5,9".contains(pointDao.getIn_order_seq().toString())) {
// 更新原仓位
jsonUpdate.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"));
pointTab.update(jsonUpdate,"point_code = '"+taskJson.getString("point_code4")+"'");
pointTab.update(jsonUpdate,"point_code = '"+taskJson.getPoint_code4()+"'");
}
}
// 更新当前点位终点
taskJson.put("point_code2", point_code4);
taskJson.put("point_code4", "");
taskTab.update(taskJson);
taskJson.setPoint_code2(point_code4);
taskJson.setPoint_code4("");
taskService.update(taskJson);
// 返回点位
return point_code4;

2
lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java

@ -343,7 +343,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
throw new BadRequestException("该生箔工单对应的状态不为准备就绪,不允许确认下卷!");
}
// 下发ACS更改任务状态
JSONObject task_jo = WQLObject.getWQLObject("SCH_BASE_Task").query("material_code = '" + containerName + "' and task_status <> '07' AND is_delete = '0'").uniqueResult(0);
JSONObject task_jo = .query("material_code = '" + containerName + "' and task_status <> '07' AND is_delete = '0'").uniqueResult(0);
JSONArray paramArr = new JSONArray();
JSONObject json = new JSONObject();
json.put("device_code", jsonSb.getString("point_code"));

25
lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java

@ -7,8 +7,11 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.common.utils.RedisUtils;
@ -38,6 +41,8 @@ public class BakingServiceImpl implements BakingService {
private RedisUtils redisUtils;
@Autowired
IUserAreaPermissionService userAreaPermissionService;
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
/*
* 业务流程
* 入烤箱
@ -60,8 +65,6 @@ public class BakingServiceImpl implements BakingService {
String option = whereJson.getString("option"); // 1-入箱 2-出箱
// 点位表
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point");
// 任务表
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
// 冷却区点位库存表
WQLObject coolIvtTab = WQLObject.getWQLObject("ST_IVT_CoolPointIvt");
// 冷却区出入表
@ -523,11 +526,19 @@ public class BakingServiceImpl implements BakingService {
JSONObject jsonPoint = pointArr.getJSONObject(i);
String point_code = jsonPoint.getString("point_code");
JSONObject json_point_code1 = taskTab.query("point_code1 = '" + point_code + "' and task_status != '07' and is_delete = '0'").uniqueResult(0);
JSONObject json_point_code2 = taskTab.query("point_code2 = '" + point_code + "' and task_status != '07' and is_delete = '0'").uniqueResult(0);
JSONObject json_point_code3 = taskTab.query("point_code3 = '" + point_code + "' and task_status != '07' and is_delete = '0'").uniqueResult(0);
JSONObject json_point_code4 = taskTab.query("point_code4 = '" + point_code + "' and task_status != '07' and is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isEmpty(json_point_code1) && ObjectUtil.isEmpty(json_point_code2) && ObjectUtil.isEmpty(json_point_code3) && ObjectUtil.isEmpty(json_point_code4)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.ne(SchBaseTask::getTask_status, "07")
.eq(SchBaseTask::getIs_delete, "0")
.and(la->la.eq(SchBaseTask::getPoint_code1,point_code)
.or()
.eq(SchBaseTask::getPoint_code2,point_code)
.or()
.eq(SchBaseTask::getPoint_code3,point_code)
.or()
.eq(SchBaseTask::getPoint_code4,point_code))
;
int tasks = schBaseTaskMapper.selectCount(lam);
if (tasks == 0) {
point_code2 = point_code;
break;
}

17
lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java

@ -9,6 +9,8 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
@ -25,6 +27,7 @@ import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
import org.nl.wms.pda.mps.service.FeedingService;
import org.nl.wms.sch.manage.AbstractAcsTask;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wms.sch.tasks.CoolCutTask;
import org.nl.wms.sch.tasks.OutHotTask;
import org.nl.wms.st.inbill.service.CheckOutBillService;
@ -46,6 +49,8 @@ public class FeedingServiceImpl implements FeedingService {
@Autowired
private StructattrMapper structattrMapper;
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
@Autowired
IUserAreaPermissionService userAreaPermissionService;
@Override
public JSONObject queryMaterialInfo(JSONObject whereJson, HttpContext ctx) {
@ -589,15 +594,21 @@ public class FeedingServiceImpl implements FeedingService {
JSONObject cut_jo = WQLObject.getWQLObject("st_ivt_cutpointivt").query("full_point_code = '" + point_code + "'").uniqueResult(0);
//查询该母卷号对应的任务
JSONObject task_jo = WQLObject.getWQLObject("SCH_BASE_Task").query("(point_code2 = '" + point_code + "' OR point_code1 = '" + point_code + "') and task_status <> '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isEmpty(task_jo)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.ne(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.and(la->la.eq(SchBaseTask::getPoint_code1,point_code)
.or().eq(SchBaseTask::getPoint_code2,point_code)
);
List<SchBaseTask> tasks = schBaseTaskMapper.selectList(lam);
if (tasks.size() ==0) {
throw new BadRequestException("未查询到点位[" + point_code + "]对应的任务!");
}
//下发ACS,执行取满放空的AGV动作
JSONArray paramArr = new JSONArray();
JSONObject param = new JSONObject();
param.put("device_code", cut_jo.getString("point_code"));
param.put("task_code", task_jo.getString("task_code"));
param.put("task_code", tasks.get(0).getTask_code());
param.put("product_area", cut_jo.getString("product_area"));
param.put("option", "1");
paramArr.add(param);

16
lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/InServiceImpl.java

@ -4,8 +4,11 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
@ -24,6 +27,8 @@ import java.util.HashMap;
@RequiredArgsConstructor
@Slf4j
public class InServiceImpl implements InService {
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
private final CutTrussTask cutTrussTask;
@Autowired
@ -129,8 +134,15 @@ public class InServiceImpl implements InService {
throw new BadRequestException("起点不能为空!");
}
JSONObject task1 = WQLObject.getWQLObject("SCH_BASE_Task").query("(point_code2 = '" + point_code + "' OR point_code1 = '" + point_code + "' ) AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task1)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.and(la->la.eq(SchBaseTask::getPoint_code1,point_code)
.or().eq(SchBaseTask::getPoint_code2,point_code)
);
Integer task1 = schBaseTaskMapper.selectCount(lam);
if (task1>0) {
throw new BadRequestException("点位:" + point_code + "存在未完成的任务!");
}

18
lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/OutServiceImpl.java

@ -4,8 +4,11 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
@ -27,6 +30,8 @@ public class OutServiceImpl implements OutService {
private final CutTrussTask cutTrussTask;
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
@Autowired
IUserAreaPermissionService userAreaPermissionService;
@Override
public JSONObject queryMaterialInfo(JSONObject whereJson) {
@ -277,10 +282,15 @@ public class OutServiceImpl implements OutService {
if (StrUtil.isEmpty(point_code)) {
throw new BadRequestException("起点不能为空!");
}
JSONObject task1 = WQLObject.getWQLObject("SCH_BASE_Task").query("(point_code2 = '" + point_code + "' OR point_code1 = '" + point_code + "' ) AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task1)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.and(la->la.eq(SchBaseTask::getPoint_code1,point_code)
.or().eq(SchBaseTask::getPoint_code2,point_code)
);
int task1s = schBaseTaskMapper.selectCount(lam);
if (task1s>0) {
throw new BadRequestException("点位:" + point_code + "存在未完成的任务!");
}
//如果查询到给ACS下发一个输送线任务

36
lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java

@ -8,8 +8,11 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
@ -18,12 +21,14 @@ import org.nl.wms.basedata.st.userarea.service.IUserAreaPermissionService;
import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl;
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
import org.nl.wms.pda.mps.service.RawFoilService;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wms.sch.tasks.CallEmpReelTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
@Service
@RequiredArgsConstructor
@ -31,6 +36,8 @@ import java.util.Date;
public class RawFoilServiceImpl implements RawFoilService {
@Autowired
IUserAreaPermissionService userAreaPermissionService;
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
@Override
public JSONObject queryProductArea() {
JSONObject map = new JSONObject();
@ -466,7 +473,12 @@ public class RawFoilServiceImpl implements RawFoilService {
//查询该母卷号对应的任务
String container_name = jsonRaw.getString("container_name");
JSONObject task_jo = WQLObject.getWQLObject("SCH_BASE_Task").query("material_code = '" + container_name + "' and task_status <> '07' AND is_delete = '0'").uniqueResult(0);
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.ne(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getMaterial_code,container_name)
;
List<SchBaseTask> task_jos = schBaseTaskMapper.selectList(lam);
// 查询生箔点位库存表
JSONObject jsonSb = stIvtSbpointivtService.query("ext_code = '" + jsonRaw.getString("resource_name") + "'").uniqueResult(0);
@ -478,7 +490,7 @@ public class RawFoilServiceImpl implements RawFoilService {
JSONArray paramArr = new JSONArray();
JSONObject param = new JSONObject();
param.put("device_code", jsonSb.getString("point_code"));
param.put("task_code", task_jo.getString("task_code"));
param.put("task_code", task_jos.get(0).getTask_code());
param.put("product_area", jsonSb.getString("product_area"));
param.put("option", "1");
paramArr.add(param);
@ -513,7 +525,12 @@ public class RawFoilServiceImpl implements RawFoilService {
//查询该母卷号对应的任务
String container_name = jsonRaw.getString("container_name");
JSONObject task_jo = WQLObject.getWQLObject("SCH_BASE_Task").query("material_code = '" + container_name + "' and task_status <> '07' AND is_delete = '0'").uniqueResult(0);
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.ne(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getMaterial_code,container_name)
;
List<SchBaseTask> task_jos = schBaseTaskMapper.selectList(lam);
// 查询生箔点位库存表
JSONObject jsonSb = WQLObject.getWQLObject("st_ivt_sbpointivt").query("ext_code = '" + jsonRaw.getString("resource_name") + "'").uniqueResult(0);
@ -525,7 +542,7 @@ public class RawFoilServiceImpl implements RawFoilService {
JSONArray paramArr = new JSONArray();
JSONObject param = new JSONObject();
param.put("device_code", jsonSb.getString("point_code"));
param.put("task_code", task_jo.getString("task_code"));
param.put("task_code", task_jos.get(0).getTask_code());
param.put("option", "2");
paramArr.add(param);
@ -555,9 +572,14 @@ public class RawFoilServiceImpl implements RawFoilService {
//查询该生箔工单是否存在未完成的任务
String container_name = raw_jo.getString("container_name");
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("material_code = '" + container_name + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.ne(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getMaterial_code,container_name)
;
Integer task_jos = schBaseTaskMapper.selectCount(lam);
if (task_jos>0) {
throw new BadRequestException("该生箔工单存在未完成的任务,请先完成任务!");
}

31
lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/SerfaceServiceImpl.java

@ -4,24 +4,31 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.ext.mes.service.MesToLmsService;
import org.nl.wms.pda.mps.service.SerfaceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@RequiredArgsConstructor
@Slf4j
public class SerfaceServiceImpl implements SerfaceService {
private final MesToLmsService mesToLmsService;
@Autowired
private MesToLmsService mesToLmsService;
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public JSONObject operate(JSONObject whereJson) {
@ -44,8 +51,7 @@ public class SerfaceServiceImpl implements SerfaceService {
param.put("ContainerName", container_name);
param.put("ResourceName", device_jo.getString("ext_code"));
param.put("Type", option);
MesToLmsService bean = SpringContextHolder.getBean(MesToLmsService.class);
JSONObject jsonObject = bean.sendProcessInfo(param);
JSONObject jsonObject = mesToLmsService.sendProcessInfo(param);
if (jsonObject.getString("RTYPE").equals("E")) {
throw new BadRequestException(jsonObject.getString("RTMSG"));
}
@ -62,8 +68,15 @@ public class SerfaceServiceImpl implements SerfaceService {
throw new BadRequestException("未查询到对应的表处设备!");
}
//查询该点位对应的任务
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("(point_code1 like '%" + point_code + "%' OR point_code2 like '%" + point_code + "%') AND is_delete = '0' AND task_status < '07'").uniqueResult(0);
if (ObjectUtil.isEmpty(task_jo)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.lt(SchBaseTask::getTask_status, "07")
.eq(SchBaseTask::getIs_delete, "0")
.and(la->la.like(SchBaseTask::getPoint_code1,point_code)
.or()
.like(SchBaseTask::getPoint_code2,point_code)
);
List<SchBaseTask> task_jos = schBaseTaskMapper.selectList(lam);
if (task_jos.size() == 0) {
throw new BadRequestException("未查询到该点位对应的任务!");
}
@ -71,8 +84,8 @@ public class SerfaceServiceImpl implements SerfaceService {
JSONArray paramArr = new JSONArray();
JSONObject param = new JSONObject();
param.put("device_code", st_jo.getString("up_point_code"));
param.put("task_code", task_jo.getString("task_code"));
param.put("product_area", task_jo.getString("product_area"));
param.put("task_code", task_jos.get(0).getTask_code());
param.put("product_area", task_jos.get(0).getProduct_area());
param.put("option", "1");
paramArr.add(param);

81
lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/ShippingServiceImpl.java

@ -7,6 +7,8 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
@ -14,18 +16,22 @@ import org.nl.wms.basedata.master.interfaceback.service.dao.InterfaceBack;
import org.nl.wms.basedata.master.interfaceback.service.dao.mapper.InterfaceBackMapper;
import org.nl.wms.basedata.st.userarea.service.IUserAreaPermissionService;
import org.nl.wms.pda.mps.service.ShippingService;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wms.sch.tasks.CutConveyorTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
@Service
@RequiredArgsConstructor
@Slf4j
public class ShippingServiceImpl implements ShippingService {
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
private final CutConveyorTask cutConveyorTask;
@Autowired
private InterfaceBackMapper interfaceBackMapper;
@ -102,8 +108,12 @@ public class ShippingServiceImpl implements ShippingService {
if (StrUtil.isEmpty(vehicle_code)) {
throw new BadRequestException("输入的载具号不能为空!");
}
JSONObject vehicle_task = WQLObject.getWQLObject("sch_base_task").query("vehicle_code2 = '" + vehicle_code + "' AND is_delete = '0' AND task_status < '07'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(vehicle_task)) {
LambdaQueryWrapper<SchBaseTask> lam2 = new LambdaQueryWrapper<>();
lam2.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getVehicle_code2,vehicle_code);
Integer vehicle_tasks = schBaseTaskMapper.selectCount(lam2);
if (vehicle_tasks >0) {
throw new BadRequestException("载具码:" + vehicle_code + "存在未完成的输送线任务!");
}
JSONObject del_jo = WQLObject.getWQLObject("st_ivt_deliverypointivt").query("vehicle_code = '" + vehicle_code + "'").uniqueResult(0);
@ -227,24 +237,24 @@ public class ShippingServiceImpl implements ShippingService {
//如果为左边点位判断右边是否存在未完成的任务,如果有则提示不能下发
//判断输送出来的任务起点是否靠近分切机,如果靠近分切机且远离分切机的点位上存在载具且不存在任务进行载具横移
char dtl_type = empty_point.getString("point_code").charAt(empty_point.getString("point_code").length() - 1);
/*if (Integer.valueOf(String.valueOf(dtl_type)) % 2 != 0) {
JSONObject right_point = WQLObject.getWQLObject("st_ivt_deliverypointivt").query("point_location = '" + empty_point.getString("point_location") + "' AND product_area = '" + empty_point.getString("product_area") + "' AND sort_seq = '" + empty_point.getString("sort_seq") + "' order by point_code desc").uniqueResult(0);
//判断是否存在任务
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("(point_code1 = '" + right_point.getString("point_code") + "' OR point_code2 = '" + right_point.getString("point_code") + "') AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo)) {
throw new BadRequestException(empty_point.getString("point_code") + "所在一截输送线存在未完成的任务,请稍等几分钟后进行下发!");
}
}*/
//如果终点为靠近分切机的点位,则判断远离分切机的点位是否存在架子且不存在任务。如果为true,则提醒工人进行载具横移
if (Integer.valueOf(String.valueOf(dtl_type)) % 2 != 0) {
JSONObject right_point = WQLObject.getWQLObject("st_ivt_deliverypointivt").query("point_location = '" + empty_point.getString("point_location") + "' AND product_area = '" + empty_point.getString("product_area") + "' AND sort_seq = '" + empty_point.getString("sort_seq") + "' order by point_code desc").uniqueResult(0);
//判断是否存在任务
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("(point_code1 = '" + right_point.getString("point_code") + "' OR point_code2 = '" + right_point.getString("point_code") + "') AND task_status < '07' AND is_delete = '0' AND task_type = '010402'").uniqueResult(0);
LambdaQueryWrapper<SchBaseTask> lam3 = new LambdaQueryWrapper<>();
lam3.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getTask_type,"010402")
.and(la->la.eq(SchBaseTask::getPoint_code1,right_point.getString("point_code"))
.or().eq(SchBaseTask::getPoint_code2,right_point.getString("point_code"))
);
int tasks = schBaseTaskMapper.selectCount(lam3);
if (!"01".equals(right_point.getString("point_status"))) {
throw new BadRequestException(empty_point.getString("point_code") + "所在一截输送线缓存位存在货物,请使用【载具横移】功能将货物横移!");
}
if (ObjectUtil.isNotEmpty(task_jo)) {
if (tasks>0) {
throw new BadRequestException(empty_point.getString("point_code") + "所在一截输送线存在未完成的任务,请稍等几分钟后进行下发!");
}
}
@ -271,8 +281,16 @@ public class ShippingServiceImpl implements ShippingService {
if (Integer.valueOf(String.valueOf(dtl_type)) % 2 == 0) {
//如果是右边的任务,判断左边是否存在空载具且没任务,如果存在则把左边的空载具送出
JSONObject left_point = WQLObject.getWQLObject("st_ivt_deliverypointivt").query("point_location = '" + empty_point.getString("point_location") + "' AND product_area = '" + empty_point.getString("product_area") + "' AND sort_seq = '" + empty_point.getString("sort_seq") + "' order by point_code").uniqueResult(0);
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("(point_code1 = '" + left_point.getString("point_code") + "' OR point_code2 = '" + left_point.getString("point_code") + "') AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isEmpty(task_jo) && "02".equals(left_point.getString("point_status"))) {
LambdaQueryWrapper<SchBaseTask> lam3 = new LambdaQueryWrapper<>();
lam3.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.and(la->la.eq(SchBaseTask::getPoint_code1,left_point.getString("point_code"))
.or().eq(SchBaseTask::getPoint_code2,left_point.getString("point_code"))
);
int tasks = schBaseTaskMapper.selectCount(lam3);
if ((tasks==0) && "02".equals(left_point.getString("point_status"))) {
//如果查询到给ACS下发一个输送线任务
JSONObject form2 = new JSONObject();
form2.put("point_code1", left_point.getString("point_code"));
@ -305,8 +323,13 @@ public class ShippingServiceImpl implements ShippingService {
if (StrUtil.isEmpty(vehicle_code)) {
throw new BadRequestException("载具码不能为空!");
}
JSONObject vehicle_task = WQLObject.getWQLObject("sch_base_task").query("vehicle_code2 = '" + vehicle_code + "' AND is_delete = '0' AND task_status < '07'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(vehicle_task)) {
LambdaQueryWrapper<SchBaseTask> lam2 = new LambdaQueryWrapper<>();
lam2.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getVehicle_code2,vehicle_code);
Integer vehicle_tasks = schBaseTaskMapper.selectCount(lam2);
if (vehicle_tasks > 0 ) {
throw new BadRequestException("载具码:" + vehicle_code + "存在未完成的输送线任务!");
}
JSONObject del_jo = WQLObject.getWQLObject("st_ivt_deliverypointivt").query("vehicle_code = '" + vehicle_code + "'").uniqueResult(0);
@ -344,8 +367,18 @@ public class ShippingServiceImpl implements ShippingService {
if (Integer.valueOf(String.valueOf(dtl_type)) % 2 != 0) {
JSONObject right_point = WQLObject.getWQLObject("st_ivt_deliverypointivt").query("point_location = '" + point_jo.getString("point_location") + "' AND product_area = '" + point_jo.getString("product_area") + "' AND sort_seq = '" + point_jo.getString("sort_seq") + "' order by point_code desc").uniqueResult(0);
//判断是否存在任务
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("(point_code1 = '" + right_point.getString("point_code") + "' OR point_code2 = '" + right_point.getString("point_code") + "') AND task_status < '07' AND is_delete = '0' AND task_type = '010402'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo)) {
LambdaQueryWrapper<SchBaseTask> lam4 = new LambdaQueryWrapper<>();
lam4.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getTask_type,"010402")
.and(la->la.eq(SchBaseTask::getPoint_code1,right_point.getString("point_code"))
.or()
.eq(SchBaseTask::getPoint_code2,right_point.getString("point_code"))
);
Integer task_jo = schBaseTaskMapper.selectCount(lam4);
if (task_jo>0) {
throw new BadRequestException(point_jo.getString("point_code") + "所在一截输送线存在未完成的任务,请稍等几分钟后进行下发!");
}
if (!"01".equals(right_point.getString("point_status"))) {
@ -380,8 +413,16 @@ public class ShippingServiceImpl implements ShippingService {
if (ObjectUtil.isEmpty(del_jo)) {
throw new BadRequestException("未查询到相关的输送线点位!");
}
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("(point_code1 = '" + point_code + "' OR point_code2 = '" + point_code + "') AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo)) {
LambdaQueryWrapper<SchBaseTask> lam4 = new LambdaQueryWrapper<>();
lam4.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.and(la->la.eq(SchBaseTask::getPoint_code1,point_code)
.or()
.eq(SchBaseTask::getPoint_code2,point_code)
);
Integer task_jo = schBaseTaskMapper.selectCount(lam4);
if (task_jo>0) {
throw new BadRequestException("点位" + point_code + "存在未完成的任务,请先完成任务!");
}

17
lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/CoolInServiceImpl.java

@ -5,8 +5,11 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
@ -18,6 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @author liuxy
* @description 服务实现
@ -29,6 +34,8 @@ import org.springframework.transaction.annotation.Transactional;
public class CoolInServiceImpl implements CoolInService {
@Autowired
IUserAreaPermissionService userAreaPermissionService;
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
@Override
public JSONObject coolIOQuery(JSONObject whereJson, HttpContext ctx) {
String container_name = whereJson.getString("container_name");
@ -74,8 +81,14 @@ public class CoolInServiceImpl implements CoolInService {
}
//查询该点位是否存在任务
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("(point_code1 like '%" + jsonCoolIvt.getString("point_code") + "%' OR point_code2 like '%" + jsonCoolIvt.getString("point_code") + "%') AND is_delete = '0' AND task_status < '07'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getIs_delete, "0")
.lt(SchBaseTask::getTask_status, "07")
.and(la->la.like(SchBaseTask::getPoint_code1, jsonCoolIvt.getString("point_code"))
.or()
.like(SchBaseTask::getPoint_code2,jsonCoolIvt.getString("point_code")));
Integer tasks = schBaseTaskMapper.selectCount(lam);
if (tasks>0) {
throw new BadRequestException("该点位存在未完成的任务,不允许绑定!");
}
// 校验母卷号是否已存在

28
lms/nladmin-system/src/main/java/org/nl/wms/pda/task/service/impl/PdaTaskServiceImpl.java

@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
@ -31,6 +32,8 @@ public class PdaTaskServiceImpl implements PdaTaskService {
@Autowired
private WmsToAcsService wmsToAcsService;
@Autowired
private TaskService taskService;
@Autowired
IUserAreaPermissionService userAreaPermissionService;
@Override
public JSONObject taskQuery(JSONObject whereJson) {
@ -58,20 +61,17 @@ public class PdaTaskServiceImpl implements PdaTaskService {
@Override
@Transactional(rollbackFor = Exception.class)
public JSONObject againLssued(JSONObject whereJson) {
WQLObject tab = WQLObject.getWQLObject("SCH_BASE_Task");
JSONObject task_rows = whereJson.getJSONObject("task_rows");
JSONObject jsonTask = tab.query("task_code = '" + task_rows.getString("task_code") + "'").uniqueResult(0);
jsonTask.put("method_name", "immediateNotifyAcs");
SchBaseTask jsonTask = taskService.findByCode(task_rows.getString("task_code"));
jsonTask.setMethod_name("immediateNotifyAcs");
if (StrUtil.equals(jsonTask.getString("task_status"), "07") || StrUtil.equals(jsonTask.getString("task_status"), "06")) {
if (StrUtil.equals(jsonTask.getTask_status(), "07") || StrUtil.equals(jsonTask.getTask_status(), "06")) {
throw new BadRequestException("任务已完成或正在执行中");
}
SpringContextHolder.getBean(TaskService.class).operation(jsonTask);
jsonTask.put("task_status", "05");
tab.update(jsonTask);
taskService.operation(jsonTask);
jsonTask.setTask_status("05");
taskService.update(jsonTask);
JSONObject result = new JSONObject();
result.put("message", "下发成功");
return result;
@ -79,16 +79,14 @@ public class PdaTaskServiceImpl implements PdaTaskService {
@Override
public JSONObject confirm(JSONObject whereJson) {
WQLObject tab = WQLObject.getWQLObject("SCH_BASE_Task");
JSONObject task_rows = whereJson.getJSONObject("task_rows");
JSONObject jsonTask = tab.query("task_code = '" + task_rows.getString("task_code") + "'").uniqueResult(0);
jsonTask.put("method_name", "forceFinish");
if (StrUtil.equals(jsonTask.getString("task_status"), "07")) {
SchBaseTask jsonTask = taskService.findByCode(task_rows.getString("task_code"));
jsonTask.setMethod_name("forceFinish");
if (StrUtil.equals(jsonTask.getTask_status(), "07")) {
throw new BadRequestException("任务已完成");
}
SpringContextHolder.getBean(TaskService.class).operation(jsonTask);
taskService.operation(jsonTask);
JSONObject result = new JSONObject();
result.put("message", "操作完成");
return result;

14
lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/RawfoilworkorderServiceImpl.java

@ -8,8 +8,11 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
@ -18,6 +21,7 @@ import org.nl.modules.wql.util.WqlUtil;
import org.nl.wms.basedata.st.userarea.service.IUserAreaPermissionService;
import org.nl.wms.pdm.service.RawfoilworkorderService;
import org.nl.wms.pdm.service.dto.RawfoilworkorderDto;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
@ -37,6 +41,8 @@ import java.util.Map;
public class RawfoilworkorderServiceImpl implements RawfoilworkorderService {
@Autowired
IUserAreaPermissionService userAreaPermissionService;
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
@Override
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
String product_area = MapUtil.getStr(whereJson, "product_area");
@ -216,8 +222,12 @@ public class RawfoilworkorderServiceImpl implements RawfoilworkorderService {
//查询该生箔工单是否存在未完成的任务
String container_name = whereJson.getString("container_name");
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("material_code = '" + container_name + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getMaterial_code,container_name);
int task_jos = schBaseTaskMapper.selectCount(lam);
if (task_jos>0) {
throw new BadRequestException("该生箔工单存在未完成的任务,请先完成任务!");
}

30
lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsUtil.java

@ -4,18 +4,23 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.b_lms.sch.task.service.TaskService;
import org.nl.b_lms.sch.task.service.impl.TaskServiceImpl;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.logging.annotation.InterfaceLog;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.system.service.param.impl.SysParamServiceImpl;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wms.sch.tasks.URLEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.List;
/**
* ACS连接工具类:
@ -23,6 +28,7 @@ import java.util.HashMap;
@Slf4j
@Component
public class AcsUtil {
public static JSONObject notifyAcs(String api, JSONArray list) {
AcsUtil bean = SpringContextHolder.getBean(AcsUtil.class);
JSONObject jsonObject = bean.notifyAcs3(api, list);
@ -83,12 +89,15 @@ public class AcsUtil {
} else {
//如果向ACS下发任务,变更任务状态为下发
if ("api/wms/task".equals(api)) {
List<String> lists = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
JSONObject task_jo = list.getJSONObject(i);
HashMap<String, String> map = new HashMap<>();
map.put("task_status", TaskStatusEnum.ISSUE.getCode());
WQLObject.getWQLObject("SCH_BASE_Task").update(map, "task_id = '" + task_jo.getString("ext_task_id") + "'");
lists.add(task_jo.getString("ext_task_id"));
}
LambdaUpdateWrapper<SchBaseTask> lam = new LambdaUpdateWrapper<>();
lam.in(SchBaseTask::getTask_id,lists);
lam.set(SchBaseTask::getTask_status,TaskStatusEnum.ISSUE.getCode());
SpringContextHolder.getBean(TaskServiceImpl.class).update(lam);
}
}
@ -147,12 +156,15 @@ public class AcsUtil {
} else {
//如果向ACS下发任务,变更任务状态为下发
if ("api/wms/task".equals(api)) {
List<String> lists = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
JSONObject task_jo = list.getJSONObject(i);
HashMap<String, String> map = new HashMap<>();
map.put("task_status", TaskStatusEnum.ISSUE.getCode());
WQLObject.getWQLObject("SCH_BASE_Task").update(map, "task_id = '" + task_jo.getString("ext_task_id") + "'");
lists.add(task_jo.getString("ext_task_id"));
}
LambdaUpdateWrapper<SchBaseTask> lam = new LambdaUpdateWrapper<>();
lam.in(SchBaseTask::getTask_id,lists);
lam.set(SchBaseTask::getTask_status,TaskStatusEnum.ISSUE.getCode());
SpringContextHolder.getBean(TaskServiceImpl.class).update(lam);
}
}
return result;

17
lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java

@ -494,12 +494,17 @@ public class CoolCutTask extends AbstractAcsTask {
//判断该点位是否存在未完成的任务
public boolean isSingleTask(String point_code) {
JSONObject task1 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code1 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
JSONObject task2 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code2 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
JSONObject task3 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code3 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
JSONObject task4 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code4 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task1) || ObjectUtil.isNotEmpty(task2) || ObjectUtil.isNotEmpty(task3) || ObjectUtil.isNotEmpty(task4)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.and(la->la.eq(SchBaseTask::getPoint_code1,point_code)
.or().eq(SchBaseTask::getPoint_code2,point_code)
.or().eq(SchBaseTask::getPoint_code3,point_code)
.or().eq(SchBaseTask::getPoint_code4,point_code)
);
int tasks = schBaseTaskMapper.selectCount(lam);
if (tasks > 0) {
return true;
} else {
return false;

69
lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java

@ -102,10 +102,10 @@ public class CutConveyorTask extends AbstractAcsTask {
jsonTask.setUpdate_id(SecurityUtils.getCurrentUserId());
jsonTask.setUpdate_name(SecurityUtils.getCurrentNickName());
jsonTask.setUpdate_time(DateUtil.now());
schBaseTaskMapper.updateById(jsonTask);
//初始化任务开始前分切计划的状态
if ("010402".equals(jsonTask.getTask_type()) && StrUtil.isNotEmpty(jsonTask.getVehicle_code())) {
schBaseTaskMapper.updateById(jsonTask);
//更新该气涨轴对应的分切计划状态
HashMap map = new HashMap();
map.put("flag", "601");
@ -358,33 +358,50 @@ public class CutConveyorTask extends AbstractAcsTask {
//如果载具横移完成时,判断该气涨轴对应的分切机是否存在出站中的,且终点为空,状态为02的任务,则把该分切机的终点补上,状态改为04并下发
if (StrUtil.isNotEmpty(jsonTask.getVehicle_code())) {
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("vehicle_code = '" + jsonTask.getVehicle_code() + "' AND is_delete = '0' AND task_status < '07'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo)) {
if ("010405".equals(task_jo.getString("task_type"))) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getVehicle_code, jsonTask.getVehicle_code()
);
List<SchBaseTask> task_jos = schBaseTaskMapper.selectList(lam);
if (task_jos.size() >0) {
SchBaseTask task_jo = task_jos.get(0);
if ("010405".equals(task_jo.getTask_type())) {
//入站
task_jo.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
task_jo.put("point_code1", point_code2);
task_jo.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
task_jo.setPoint_code1(point_code2);
}
if ("010403".equals(task_jo.getString("task_type"))) {
if ("010403".equals(task_jo.getTask_type())) {
//出站
task_jo.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
task_jo.put("point_code1", point_code2);
task_jo.put("point_code4", point_code2);
task_jo.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
task_jo.setPoint_code1(point_code2);
task_jo.setPoint_code4(point_code2);
}
WQLObject.getWQLObject("sch_base_task").update(task_jo);
schBaseTaskMapper.updateById(task_jo);
new CutTrussTask().immediateNotifyAcs(null);
}
} else {
if (StrUtil.isNotEmpty(jsonTask.getVehicle_code2())) {
//如果载具横移完成时,判断该空载具是否存在对应终点为空的末次下卷或者废箔下卷任务
JSONObject task_jo2 = WQLObject.getWQLObject("sch_base_task").query("vehicle_code2 = '" + jsonTask.getVehicle_code2() + "' AND is_delete = '0' AND task_status = '02'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo2)) {
if ("010404".equals(task_jo2.getString("task_type"))) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getVehicle_code2, jsonTask.getVehicle_code2()
);
List<SchBaseTask> task_jo2s = schBaseTaskMapper.selectList(lam);
if (task_jo2s.size()>0) {
SchBaseTask task_jo2 = task_jo2s.get(0);
if ("010404".equals(task_jo2.getTask_type())) {
//出站
task_jo2.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
task_jo2.put("point_code2", point_code2);
WQLObject.getWQLObject("sch_base_task").update(task_jo2);
task_jo2.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
task_jo2.setPoint_code2(point_code2);
schBaseTaskMapper.updateById(task_jo2);
new CutTrussTask().immediateNotifyAcs(null);
}
}
@ -468,12 +485,18 @@ public class CutConveyorTask extends AbstractAcsTask {
//判断该点位是否存在未完成的任务
public boolean isSingleTask(String point_code) {
JSONObject task1 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code1 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
JSONObject task2 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code2 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
JSONObject task3 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code3 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
JSONObject task4 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code4 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task1) || ObjectUtil.isNotEmpty(task2) || ObjectUtil.isNotEmpty(task3) || ObjectUtil.isNotEmpty(task4)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getIs_delete, "0")
.and(la->la.eq(SchBaseTask::getPoint_code1,point_code)
.or().eq(SchBaseTask::getPoint_code2,point_code)
.or().eq(SchBaseTask::getPoint_code3,point_code)
.or().eq(SchBaseTask::getPoint_code4,point_code)
);
int tasks = schBaseTaskMapper.selectCount(lam);
if (tasks > 0) {
return true;
} else {
return false;

20
lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutTrussTask.java

@ -340,14 +340,20 @@ public class CutTrussTask extends AbstractAcsTask {
.addParam("flag", "18").process().uniqueResult(0);
if (ObjectUtil.isNotEmpty(right_point)) {
//判断对应缓存位是否存在需要末次下卷或者废箔下卷的任务
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("vehicle_code2 = '" + right_point.getString("vehicle_code") + "' AND is_delete = '0' AND task_status = '02'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo)) {
if ("010404".equals(task_jo.getString("task_type"))) {
LambdaQueryWrapper<SchBaseTask> lam2 = new LambdaQueryWrapper<>();
lam2.eq(SchBaseTask::getVehicle_code2, right_point.getString("vehicle_code") )
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getTask_status,"02");
List<SchBaseTask> task_jos = schBaseTaskMapper.selectList(lam2);
if (task_jos.size()>0) {
SchBaseTask task_jo = task_jos.get(0);
if ("010404".equals(task_jo.getTask_type())) {
//出站
task_jo.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
task_jo.put("point_code2", jsonTask.getPoint_code1());
task_jo.put("vehicle_code2", delivery_point.getString("vehicle_code"));
WQLObject.getWQLObject("sch_base_task").update(task_jo);
task_jo.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
task_jo.setPoint_code2(jsonTask.getPoint_code1());
task_jo.setVehicle_code2(delivery_point.getString("vehicle_code"));
schBaseTaskMapper.updateById(task_jo);
new CutTrussTask().immediateNotifyAcs(null);
}
}

18
lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java

@ -83,10 +83,12 @@ public class InTask extends AbstractAcsTask {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
HashMap map = new HashMap();
String task_id = taskObj.getTask_id();
SchBaseTask jsonTask = schBaseTaskMapper.selectById(task_id);
//1:执行中,2:完成 ,0:acs取消
if (status.equals(TaskStatusEnum.EXECUTING.getCode())) {
map.put("task_status", TaskStatusEnum.EXECUTING.getCode());
jsonTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
//更新入库单分配任务状态
HashMap dis_map = new HashMap();
dis_map.put("work_status", "02");
@ -94,7 +96,7 @@ public class InTask extends AbstractAcsTask {
WQLObject.getWQLObject("ST_IVT_IOStorInvDis").update(dis_map, "task_id = '" + taskObj.getTask_id() + "'");
}
if (status.equals(TaskStatusEnum.FINISHED.getCode())) {
map.put("task_status", TaskStatusEnum.FINISHED.getCode());
jsonTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
//调用入库分配确认方法
InbillServiceImpl inbillService = SpringContextHolder.getBean(InbillServiceImpl.class);
JSONObject dis_form = new JSONObject();
@ -109,7 +111,7 @@ public class InTask extends AbstractAcsTask {
}
// 更新任务表删除字段
map.put("is_delete", "1");
jsonTask.setIs_delete("1");
JSONObject jsonDis = disTab.query("task_id ='" +taskObj.getTask_id() + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonDis)) {
@ -189,10 +191,10 @@ public class InTask extends AbstractAcsTask {
disMap.put("struct_name", "");
disTab.update(disMap, "task_id = '" + taskObj.getTask_id() + "'");
}
map.put("update_optid", currentUserId);
map.put("update_optname", nickName);
map.put("update_time", now);
WQLObject.getWQLObject("SCH_BASE_Task").update(map, "task_id = '" + taskObj.getTask_id() + "'");
jsonTask.setUpdate_id(SecurityUtils.getCurrentUserId());
jsonTask.setUpdate_name(SecurityUtils.getCurrentNickName());
jsonTask.setUpdate_time(DateUtil.now());
schBaseTaskMapper.updateById(jsonTask);
}
@Override

1
lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java

@ -76,7 +76,6 @@ public class OutHotTask extends AbstractAcsTask {
@Override
@Transactional(rollbackFor = Exception.class)
public void updateTaskStatus(SchBaseTask taskObj, String status) {
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); // 点位表
WQLObject hotIvtTab = WQLObject.getWQLObject("ST_IVT_HotPointIvt"); // 烘箱区库存表
WQLObject hotMstTab = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst"); // 烘箱区出入主表

19
lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/PaperTubeTask.java

@ -129,8 +129,14 @@ public class PaperTubeTask extends AbstractAcsTask {
//判断当前RGV上是否存在未拔轴的成品卷
JSONObject rgv_jo = WQLObject.getWQLObject("st_ivt_shaftivt").query("point_type = '5' AND product_area = '" + product_area + "'").uniqueResult(0);
//判断是否存在未完成的成品下卷任务
JSONObject container_jo = WQLObject.getWQLObject("sch_base_task").query("task_type = '010605' AND product_area = '"+product_area+"' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if ("0".equals(have_qzz) && "0".equals(rgv_jo.getString("have_qzz")) && ObjectUtil.isEmpty(container_jo)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getTask_type, "010605")
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getProduct_area,product_area)
.lt(SchBaseTask::getTask_status,TaskStatusEnum.FINISHED.getCode());
Integer container_jos = schBaseTaskMapper.selectCount(lam);
if ("0".equals(have_qzz) && "0".equals(rgv_jo.getString("have_qzz")) && (container_jos ==0)) {
PaperTrussTask paperTrussTask = SpringContextHolder.getBean(PaperTrussTask.class);
//todo:创建桁架任务搬运一个符合的气涨轴
JSONObject jo = new JSONObject();
@ -151,8 +157,13 @@ public class PaperTubeTask extends AbstractAcsTask {
if ("1".equals(have_qzz)) {
String device_code = cbz_jo.getString("point_code");
//判断是否存在任务
JSONObject paper_jo = WQLObject.getWQLObject("sch_base_task").query("point_code1 = '" + device_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isEmpty(paper_jo)) {
LambdaQueryWrapper<SchBaseTask> lam2 = new LambdaQueryWrapper<>();
lam2.lt(SchBaseTask::getTask_status, "07")
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getPoint_code1, device_code);
List<SchBaseTask> paper_jos = schBaseTaskMapper.selectList(lam2);
if (paper_jos.size()==0) {
//给穿拔轴机下发套轴
WmsToAcsService wmsToAcsService = SpringContextHolder.getBean(WmsToAcsService.class);
JSONArray action_rows = new JSONArray();

21
lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java

@ -2440,7 +2440,6 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
@Transactional(rollbackFor = Exception.class)
public void delTask(Map whereJson) {
WQLObject dis_wql = WQLObject.getWQLObject("ST_IVT_IOStorInvDis");
WQLObject task_wql = WQLObject.getWQLObject("SCH_BASE_Task");
WQLObject point_table = WQLObject.getWQLObject("SCH_BASE_Point");
String currentUserId = SecurityUtils.getCurrentUserId();
@ -2448,13 +2447,15 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
String now = DateUtil.now();
//更新任务表状态为删除
HashMap task_map = new HashMap<>();
task_map.put("is_delete", "1");
task_map.put("update_optid", currentUserId);
task_map.put("update_optname", nickName);
task_map.put("update_time", now);
LambdaUpdateWrapper<SchBaseTask> lam = new LambdaUpdateWrapper<>();
lam.eq(SchBaseTask::getTask_id, whereJson.get("task_id"));
lam.set(SchBaseTask::getIs_delete, "1");
lam.set(SchBaseTask::getUpdate_id, currentUserId);
lam.set(SchBaseTask::getUpdate_name, nickName);
lam.set(SchBaseTask::getUpdate_time, now);
//修改分配表起点,任务表起点
task_wql.update(task_map, "task_id = '" + whereJson.get("task_id") + "'");
schBaseTaskMapper.update(null,lam);
//解锁原货位点位
HashMap unlock_map = new HashMap();
@ -2517,7 +2518,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
//修改明细状态
HashMap<String, String> dtl_map = new HashMap<>();
map.put("bill_status", "10");
dtl_map.put("bill_status", "10");
WQLObject.getWQLObject("ST_IVT_IOStorInvDtl").update(map, "iostorinv_id = '" + mst_jo.get("iostorinv_id") + "' AND box_no = '" + whereJson.get("box_no") + "'");
//更新主表状态
@ -2535,11 +2536,11 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
public void reIssueTask(Map whereJson) {
String task_id = (String) whereJson.get("task_id");
//判断指令状态,只能下发生成、执行中状态的任务
JSONObject task_jo = WQLObject.getWQLObject("sch_base_task").query("task_id = '" + task_id + "'").uniqueResult(0);
SchBaseTask task_jo = schBaseTaskMapper.selectById(task_id);
if (ObjectUtil.isEmpty(task_jo)) {
throw new BadRequestException("请输入正确的任务号!");
}
if (!"04".equals(task_jo.getString("task_status"))) {
if (!"04".equals(task_jo.getTask_status())) {
throw new BadRequestException("只能修改任务状态为未下发的任务!");
}
AbstractAcsTask task = new InTask();

79
lms/nladmin-system/src/main/java/org/nl/wms/st/instor/movestor/service/impl/HandMoveStorServiceImpl.java

@ -719,8 +719,6 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
@Transactional(rollbackFor = Exception.class)
JSONObject insertDtlByRows2(MoveStor jo_mst, JSONArray rows) {
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
//点位表
WQLObject wo_Point = WQLObject.getWQLObject("SCH_BASE_Point");
//定义返回数据
@ -781,11 +779,17 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
}
//判断是否已生成过了任务,无未生成则插入任务
JSONObject task = wo_Task.query("is_delete = '0' and task_status='04' and point_code1 ='" + jodtl.getTurnout_struct_code() + "'").uniqueResult(0);
if (task != null || "0".equals(is_task)) {
jodtl.setTask_id(task.getString("task_id"));
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getPoint_code1, jodtl.getTurnout_struct_code())
.eq(SchBaseTask::getIs_delete, "0")
.eq(SchBaseTask::getTask_status,"04");
List<SchBaseTask> tasks = schBaseTaskMapper.selectList(lam);
SchBaseTask tasknow = new SchBaseTask();
if (tasks.size()>0) {
tasknow = tasks.get(0);
jodtl.setTask_id(tasknow.getTask_id());
} else {
task = new JSONObject();
JSONObject task = new JSONObject();
String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
String task_code = IdUtil.getSnowflake(1, 1).nextId() + "";
@ -819,7 +823,9 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
task.put("create_name", nickName);
task.put("create_time", now);
task.put("priority", "1");
wo_Task.insert(task);
tasknow = new SchBaseTask();
tasknow.copyFrom(task);
schBaseTaskMapper.insert(tasknow);
jodtl.setTask_id(task_id);
}
//插入明细表
@ -849,9 +855,9 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
from_start.put("inv_type", jo_mst.getBill_type());
from_start.put("inv_id", jo_mst.getMoveinv_id());
from_start.put("inv_code", jo_mst.getBill_code());
from_start.put("taskdtl_type", task.getString("taskdtl_type"));
from_start.put("taskdtl_id", task.getString("taskdtl_id"));
from_start.put("task_code", task.getString("task_code"));
from_start.put("taskdtl_type", tasknow.getTask_type());
from_start.put("taskdtl_id", tasknow.getTask_id());
from_start.put("task_code", tasknow.getTask_code());
if((jo_mst.getStor_id()).equals(IOSEnum.STOR_ID.code("二期"))) {
storPublicService.updateStructAndPointTwo(from_start);
@ -1014,8 +1020,6 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
@Override
@Transactional(rollbackFor = Exception.class)
public void confirm(JSONObject form) {
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
String moveinv_id = form.getString("moveinv_id");
@ -1046,12 +1050,13 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
for (int i = 0; i < ja.size(); i++) {
MoveStorDtl jodtl = ja.get(i);
//更新任务
HashMap<String, String> task_map = new HashMap<>();
task_map.put("task_status", TaskStatusEnum.FINISHED.getCode());
task_map.put("update_optid", currentUserId + "");
task_map.put("update_optname", nickName);
task_map.put("update_time", now);
wo_Task.update(task_map, "task_id='" + jodtl.getTask_id() + "'");
SchBaseTask taskmap = schBaseTaskMapper.selectById(jodtl.getTask_id());
taskmap.setTask_status(TaskStatusEnum.FINISHED.getCode());
taskmap.setUpdate_id(currentUserId + "");
taskmap.setUpdate_name(nickName);
taskmap.setUpdate_time(now);
schBaseTaskMapper.updateById(taskmap);
//解锁起点点位、仓位,清除载具
JSONObject from_start = new JSONObject();
from_start.put("lock_type", "1");
@ -1156,8 +1161,6 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
@Override
@Transactional(rollbackFor = Exception.class)
public void handdown(JSONObject whereJson) {
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
HandMoveStorAcsTask handMoveStorAcsTask = new HandMoveStorAcsTask();
@ -1181,9 +1184,9 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
if (!StrUtil.equals(bill_type, "30")) {
// 判断起点是否被挡
JSONObject jsonTask = wo_Task.query("task_id = '" + task_id + "'").uniqueResult(0);
SchBaseTask jsonTask = schBaseTaskMapper.selectById(task_id);
LambdaQueryWrapper<Structattr> queryWrapper = new LambdaQueryWrapper<Structattr>();
queryWrapper.eq(Structattr::getStruct_code, jsonTask.getString("point_code1"))
queryWrapper.eq(Structattr::getStruct_code, jsonTask.getPoint_code1())
.eq(Structattr::getIs_delete, "0");
Structattr jsonAttr = structattrMapper.selectOne(queryWrapper);
@ -1192,9 +1195,9 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
this.isBlock(jsonAttr);
}
JSONObject task = wo_Task.query("task_id='" + task_id + "'").uniqueResult(0);
task.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
wo_Task.update(task);
SchBaseTask task = schBaseTaskMapper.selectById(task_id);
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
schBaseTaskMapper.updateById(task);
JSONObject result = handMoveStorAcsTask.immediateNotifyAcs(task_id);
if (ObjectUtil.isNotEmpty(result)) {
@ -1203,18 +1206,18 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
//更新明细为提交
LambdaUpdateWrapper<MoveStorDtl> lamdtl = new LambdaUpdateWrapper<MoveStorDtl>();
lamdtl.eq(MoveStorDtl::getIs_issued,"0");
lamdtl.eq(MoveStorDtl::getTask_id,task.getString("task_id"));
lamdtl.eq(MoveStorDtl::getTask_id,task.getTask_id());
//更新
lamdtl.set(MoveStorDtl::getIs_issued,"1");
lamdtl.set(MoveStorDtl::getWork_status,"02");
moveStorDtlMapper.update(null,lamdtl);
//更新任务为已下发
HashMap<String, String> map = new HashMap<>();
map.put("task_status", TaskStatusEnum.ISSUE.getCode());
map.put("update_optid", currentUserId + "");
map.put("update_optname", nickName);
map.put("update_time", now);
wo_Task.update(map, "is_delete ='0' and task_id='" + task_id + "'");
SchBaseTask tasks = schBaseTaskMapper.selectById(task_id);
tasks.setTask_status(TaskStatusEnum.ISSUE.getCode());
tasks.setUpdate_id(currentUserId + "");
tasks.setUpdate_name(nickName);
tasks.setUpdate_time(now);
schBaseTaskMapper.updateById(tasks);
} else {
throw new BadRequestException("任务下发失败,请稍后重试!");
}
@ -1558,8 +1561,6 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
* @param whereJson /
*/
public void createMoveExpansion(JSONObject whereJson) {
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
List<Structattr> needMoveList = (List<Structattr>) whereJson.get("needMoveList");
@ -1627,11 +1628,11 @@ public class HandMoveStorServiceImpl extends ServiceImpl<MoveStorMapper, MoveSto
jsonMoveDtl.put("task_id", move_task_id);
table.add(jsonMoveDtl);
// 更新任务处理类
JSONObject jsonTaskMove = wo_Task.query("task_id = '" + move_task_id + "'").uniqueResult(0);
jsonTaskMove.put("task_type", "010505");
jsonTaskMove.put("handle_class", HandMoveStorAcsTask.class.getName());
jsonTaskMove.put("remark", "1层空托盘扩容移库");
wo_Task.update(jsonTaskMove);
SchBaseTask jsonTaskMove = schBaseTaskMapper.selectById(move_task_id);
jsonTaskMove.setTask_type("010505");
jsonTaskMove.setHandle_class(HandMoveStorAcsTask.class.getName());
jsonTaskMove.setRemark("1层空托盘扩容移库");
schBaseTaskMapper.updateById(jsonTaskMove);
mapParam.put("tableData", table);
// 调用移库单新增方法

231
lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java

@ -16,8 +16,11 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
@ -90,6 +93,8 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
@Autowired
private SectattrMapper sectattrMapper;
@Autowired
private SchBaseTaskMapper schBaseTaskMapper;
@Autowired
private CustomerbaseMapper customerbaseMapper;
@Autowired
private StorattrMapper storattrMapper;
@ -888,14 +893,13 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
@Transactional(rollbackFor = Exception.class)
public void cancelTask(JSONObject whereJson) {
WQLObject disTab = WQLObject.getWQLObject("st_ivt_iostorinvdis"); // 分配表
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); // 任务表
String task_id = whereJson.getString("task_id");
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
SchBaseTask jsonTask = schBaseTaskMapper.selectById(task_id);
// 任务为下发之后就不允许取消
if (jsonTask.getIntValue("task_status") > Integer.valueOf(TaskStatusEnum.START_AND_POINT.getCode())) {
throw new BadRequestException("任务:" + jsonTask.getString("task_code") + "已下发,不可取消");
if (Integer.valueOf(jsonTask.getTask_status()) > Integer.valueOf(TaskStatusEnum.START_AND_POINT.getCode())) {
throw new BadRequestException("任务:" + jsonTask.getTask_code() + "已下发,不可取消");
}
// 更新分配明细 任务状态、清空任务id
@ -906,9 +910,9 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
disTab.update(paramMap, "task_id = '" + task_id + "'");
// 删除此任务
JSONObject paramMap2 = new JSONObject();
paramMap2.put("is_delete", "1");
taskTab.update(paramMap2, "task_id = '" + task_id + "'");
SchBaseTask task = schBaseTaskMapper.selectById(task_id);
task.setIs_delete("1");
schBaseTaskMapper.updateById(task);
}
@Override
@ -1920,7 +1924,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
}
// 放在插入分配明细的集合当中
instDisList.add(dtl);
// wo_dis.insert(dtl);
}
//记录需锁定的仓位
Struct_map.put(ivt.getString("struct_id"), ivt);
@ -2369,8 +2372,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_IOStorInvDtl");
//出库主表
WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_IOStorInv");
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
String iostorinv_id = whereJson.getString("iostorinv_id");
//查询主表信息
@ -2391,7 +2392,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
}
for (int i = 0; i < diss.size(); i++) {
JSONObject dis = diss.getJSONObject(i);
HashMap<String, String> map = new HashMap<>();
String iostorinvdtl_id = dis.getString("iostorinvdtl_id");
//统计【出入库单分配表】执行状态大于等于执行中,或【任务指令表】任务状态大于等于下发时的记录和
@ -2450,15 +2450,20 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
//任务号不为空
if (ObjectUtil.isNotEmpty(dis.getString("task_id"))) {
// 判断是否有移库的任务:有就取消掉
JSONObject jsonTask = wo_Task.query("task_id = '" + dis.getString("task_id") + "'").uniqueResult(0);
SchBaseTask jsonTask = schBaseTaskMapper.selectById( dis.getString("task_id"));
if (ObjectUtil.isNotEmpty(jsonTask)) {
JSONArray moveArrTask = wo_Task.query("task_group_id = '" + jsonTask.getString("task_group_id") + "' and task_type = '010505'").getResultJSONArray(0);
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getTask_group_id, jsonTask.getTask_group_id())
.eq(SchBaseTask::getTask_type,"010505")
.eq(SchBaseTask::getIs_delete, "0");
List<SchBaseTask> moveArrTask = schBaseTaskMapper.selectList(lam);
for (int j = 0; j < moveArrTask.size(); j++) {
JSONObject jsonMoveTask = moveArrTask.getJSONObject(j);
SchBaseTask jsonMoveTask = moveArrTask.get(j);
// 调用删除移库单
List<MoveStorDtl> jsonMoveDtl = moveStorDtlMapper.selectList(new LambdaQueryWrapper<MoveStorDtl>()
.eq(MoveStorDtl::getTask_id, jsonMoveTask.getString("task_id")));
.eq(MoveStorDtl::getTask_id, jsonMoveTask.getTask_id()));
if (jsonMoveDtl.size()>0) {
MoveStor jsonMoveMst = moveStorMapper.selectOne(new LambdaQueryWrapper<MoveStor>()
@ -2474,8 +2479,9 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
}
//更新对应任务为删除
map.put("is_delete", "1");
wo_Task.update(map, "task_id='" + dis.getString("task_id") + "'");
SchBaseTask dtltask = schBaseTaskMapper.selectById(dis.getString("task_id"));
dtltask.setIs_delete("1");
schBaseTaskMapper.updateById(dtltask);
}
//解锁起点仓位点位
@ -2504,8 +2510,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_IOStorInvDtl");
//出库主表
WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_IOStorInv");
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
String iostorinv_id = whereJson.getString("iostorinv_id");
//查询主表信息
@ -2586,8 +2590,9 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
//任务号不为空
if (ObjectUtil.isNotEmpty(dis.getString("task_id"))) {
//更新对应任务为删除
map.put("is_delete", "1");
wo_Task.update(map, "task_id='" + dis.getString("task_id") + "'");
SchBaseTask dtltask = schBaseTaskMapper.selectById(dis.getString("task_id"));
dtltask.setIs_delete("1");
schBaseTaskMapper.updateById(dtltask);
}
//解锁起点仓位点位: 判断此仓位是否还有库存
List<JSONObject> ivtList = WQLObject.getWQLObject("st_ivt_structivt")
@ -2623,8 +2628,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
WQLObject wo_dis = WQLObject.getWQLObject("ST_IVT_IOStorInvDis");
//点位表
WQLObject wo_Point = WQLObject.getWQLObject("SCH_BASE_Point");
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
//出库主表
WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_IOStorInv");
//仓位表
@ -2723,9 +2726,10 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
new HandMoveStorAcsTask().immediateNotifyAcs(null);
// 更新任务为下发
JSONObject param = new JSONObject();
param.put("task_status", TaskStatusEnum.ISSUE.getCode());
wo_Task.update(param, "task_group_id = '" + moveParam.getString("task_group_id") + "'");
LambdaUpdateWrapper<SchBaseTask> lam2 = new LambdaUpdateWrapper<>();
lam2.eq(SchBaseTask::getTask_group_id, moveParam.getString("task_group_id"));
lam2.set(SchBaseTask::getTask_status,TaskStatusEnum.ISSUE.getCode());
schBaseTaskMapper.update(null, lam2);
}
}
}
@ -2752,8 +2756,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
public void rowDispose(JSONObject jsonRow, Consumer<String> allTransactionConsumer) {
//出库分配表
WQLObject wo_dis = WQLObject.getWQLObject("ST_IVT_IOStorInvDis");
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
// 仓位表
WQLObject attr_tab = WQLObject.getWQLObject("st_ivt_structattr");
// 点位表
@ -3073,10 +3075,10 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
String create_task_id = outTask.createTask(param);
// 更新分配状态、任务标识、出库点位
JSONObject jsonTask = wo_Task.query("task_id = '" + create_task_id + "'").uniqueResult(0);
SchBaseTask jsonTask = schBaseTaskMapper.selectById(create_task_id);
JSONObject jsonUpdateMap = new JSONObject();
jsonUpdateMap.put("work_status", "01");
jsonUpdateMap.put("task_id", jsonTask.getLong("task_id"));
jsonUpdateMap.put("task_id", jsonTask.getTask_id());
jsonUpdateMap.put("point_id", point_id);
wo_dis.update(jsonUpdateMap, "iostorinvdis_id = '" + jsonObject.getString("iostorinvdis_id") + "'");
@ -3090,20 +3092,20 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
for (int n = 0; n < disArr.size(); n++) {
JSONObject jsonObject2 = disArr.getJSONObject(n);
jsonObject2.put("work_status", "01");
jsonObject2.put("task_id", jsonTask.getLong("task_id"));
jsonObject2.put("task_id",jsonTask.getTask_id());
jsonObject2.put("point_id", point_id);
wo_dis.update(jsonObject2);
}
// 更新出库任务:任务组和顺序号
JSONObject jsonTaskLast1 = WQL.getWO("QST_IVT_CHECKOUTBILL").addParam("flag", "13").addParam("task_group_id", task_group_id + "").process().uniqueResult(0);
jsonTask.put("task_group_id", task_group_id);
jsonTask.setTask_group_id(String.valueOf(task_group_id));
if (ObjectUtil.isEmpty(jsonTaskLast1)) {
jsonTask.put("sort_seq", 1);
jsonTask.setSort_seq(1);
} else {
jsonTask.put("sort_seq", jsonTaskLast1.getIntValue("sort_seq") + 1);
jsonTask.setSort_seq(jsonTaskLast1.getIntValue("sort_seq") + 1);
}
wo_Task.update(jsonTask);
schBaseTaskMapper.updateById(jsonTask);
outTask.immediateNotifyAcs(null);
/*
@ -3146,10 +3148,10 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
outTask.immediateNotifyAcs(null);
// 更新分配状态、任务标识、出库点位
JSONObject jsonTask2 = wo_Task.query("task_id = '" + create_task_id2 + "'").uniqueResult(0);
SchBaseTask jsonTask2 = schBaseTaskMapper.selectById(create_task_id2);
JSONObject jsonUpdateMap2 = new JSONObject();
jsonUpdateMap2.put("work_status", "01");
jsonUpdateMap2.put("task_id", jsonTask2.getLong("task_id"));
jsonUpdateMap2.put("task_id", jsonTask2.getTask_id());
jsonUpdateMap2.put("point_id", point_id);
wo_dis.update(jsonUpdateMap2, "iostorinvdis_id = '" + jsonNext.getString("iostorinvdis_id") + "'");
@ -3163,7 +3165,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
for (int m = 0; m < disArr2.size(); m++) {
JSONObject jsonObject3 = disArr2.getJSONObject(m);
jsonObject3.put("work_status", "01");
jsonObject3.put("task_id", jsonTask2.getLong("task_id"));
jsonObject3.put("task_id", jsonTask2.getTask_id());
jsonObject3.put("point_id", point_id);
wo_dis.update(jsonObject3);
}
@ -3199,8 +3201,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
WQLObject wo_dis = WQLObject.getWQLObject("ST_IVT_IOStorInvDis");
//点位表
WQLObject wo_Point = WQLObject.getWQLObject("SCH_BASE_Point");
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
//出库主表
WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_IOStorInv");
//仓位表
@ -3513,10 +3513,10 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
String create_task_id = outTask.createTask(param);
// 更新分配状态、任务标识、出库点位
JSONObject jsonTask = wo_Task.query("task_id = '" + create_task_id + "'").uniqueResult(0);
SchBaseTask jsonTask = schBaseTaskMapper.selectById(create_task_id);
JSONObject jsonUpdateMap = new JSONObject();
jsonUpdateMap.put("work_status", "01");
jsonUpdateMap.put("task_id", jsonTask.getLong("task_id"));
jsonUpdateMap.put("task_id", jsonTask.getTask_id());
jsonUpdateMap.put("point_id", point_id);
wo_dis.update(jsonUpdateMap, "iostorinvdis_id = '" + jsonObject.getString("iostorinvdis_id") + "'");
@ -3530,20 +3530,24 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
for (int n = 0; n < disArr.size(); n++) {
JSONObject jsonObject2 = disArr.getJSONObject(n);
jsonObject2.put("work_status", "01");
jsonObject2.put("task_id", jsonTask.getLong("task_id"));
jsonObject2.put("task_id", jsonTask.getTask_id());
jsonObject2.put("point_id", point_id);
wo_dis.update(jsonObject2);
}
// 更新出库任务:任务组和顺序号
JSONObject jsonTaskLast1 = wo_Task.query("task_group_id = '" + task_group_id + "' order by sort_seq DESC").uniqueResult(0);
jsonTask.put("task_group_id", task_group_id);
if (ObjectUtil.isEmpty(jsonTaskLast1)) {
jsonTask.put("sort_seq", 1);
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getTask_group_id, task_group_id)
.eq(SchBaseTask::getIs_delete, "0")
.orderByDesc(SchBaseTask::getSort_seq);
List<SchBaseTask> jsonTaskLasts = schBaseTaskMapper.selectList(lam);
jsonTask.setTask_group_id(String.valueOf(task_group_id));
if (jsonTaskLasts.size() == 0) {
jsonTask.setSort_seq(1);
} else {
jsonTask.put("sort_seq", jsonTaskLast1.getIntValue("sort_seq") + 1);
jsonTask.setSort_seq(jsonTaskLasts.get(0).getSort_seq() + 1);
}
wo_Task.update(jsonTask);
schBaseTaskMapper.updateById(jsonTask);
/*
* 判断下一个出库仓位是否相邻
@ -3566,7 +3570,12 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
} else {
// 查询此任务组最后一个生成的任务
JSONObject jsonTaskLast = wo_Task.query("task_group_id = '" + task_group_id + "' order by sort_seq DESC").uniqueResult(0);
LambdaQueryWrapper<SchBaseTask> lam2 = new LambdaQueryWrapper<>();
lam2.eq(SchBaseTask::getTask_group_id, task_group_id)
.eq(SchBaseTask::getIs_delete, "0")
.orderByDesc(SchBaseTask::getSort_seq);
List<SchBaseTask> jsonTaskLasts2 = schBaseTaskMapper.selectList(lam2);
// 创建任务并添加到任务组
allTransactionConsumer.accept(jsonNext.getString("struct_code"));
JSONObject param2 = new JSONObject();
@ -3577,17 +3586,17 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
param2.put("point_code2", point_code);
param2.put("material_id", jsonNext.getString("material_id"));
param2.put("task_group_id", task_group_id); // 任务组
param2.put("sort_seq", jsonTaskLast.getIntValue("sort_seq") + 1); // 任务组顺序号
param2.put("sort_seq", jsonTaskLasts2.get(0).getSort_seq() + 1); // 任务组顺序号
String create_task_id2 = outTask.createTask(param2);
outTask.immediateNotifyAcs(null);
// 更新分配状态、任务标识、出库点位
JSONObject jsonTask2 = wo_Task.query("task_id = '" + create_task_id2 + "'").uniqueResult(0);
SchBaseTask jsonTask2 = schBaseTaskMapper.selectById(create_task_id2);
JSONObject jsonUpdateMap2 = new JSONObject();
jsonUpdateMap2.put("work_status", "01");
jsonUpdateMap2.put("task_id", jsonTask2.getLong("task_id"));
jsonUpdateMap2.put("task_id", jsonTask2.getTask_id());
jsonUpdateMap2.put("point_id", point_id);
wo_dis.update(jsonUpdateMap2, "iostorinvdis_id = '" + jsonNext.getString("iostorinvdis_id") + "'");
@ -3601,7 +3610,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
for (int m = 0; m < disArr2.size(); m++) {
JSONObject jsonObject3 = disArr2.getJSONObject(m);
jsonObject3.put("work_status", "01");
jsonObject3.put("task_id", jsonTask2.getLong("task_id"));
jsonObject3.put("task_id", jsonTask2.getTask_id());
jsonObject3.put("point_id", point_id);
wo_dis.update(jsonObject3);
}
@ -3630,8 +3639,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
@Override
@Transactional(rollbackFor = Exception.class)
public void createMove(JSONObject whereJson, Consumer<String> allTransactionConsumer) {
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
JSONArray jsonAllBlockPoint = whereJson.getJSONArray("jsonAllBlockPoint");
@ -3713,10 +3720,10 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
jsonMoveDtl.put("task_id", move_task_id);
table.add(jsonMoveDtl);
// 更新任务处理类
JSONObject jsonTaskMove = wo_Task.query("task_id = '" + move_task_id + "'").uniqueResult(0);
jsonTaskMove.put("task_type", "010505");
jsonTaskMove.put("handle_class", HandMoveStorAcsTask.class.getName());
wo_Task.update(jsonTaskMove);
SchBaseTask jsonTaskMove = schBaseTaskMapper.selectById(move_task_id);
jsonTaskMove.setTask_type("010505");
jsonTaskMove.setHandle_class(HandMoveStorAcsTask.class.getName());
schBaseTaskMapper.updateById(jsonTaskMove);
mapParam.put("tableData", table);
// 调用移库单新增方法
@ -3768,7 +3775,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
* 2锁住判断是否生成任务生成则不用生成移库单 = false未生成则报错
*/
WQLObject disTab = WQLObject.getWQLObject("st_ivt_iostorinvdis"); // 出入库分配明细表
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); // 任务表
if (ObjectUtil.isEmpty(json)) {
// 如果为空说明未堵住
@ -3803,10 +3809,16 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
param = true;
} else {
// 锁住:判断是否生成任务,生成:则不用生成移库单 = false;未生成则报错
JSONObject jsonTask1 = taskTab.query("point_code1 = '" + struct_code + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
JSONObject jsonTask2 = taskTab.query("point_code2 = '" + struct_code + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonTask1) && ObjectUtil.isEmpty(jsonTask2)) {
// 锁住:判断是否生成任务,生成:则不用生成移库单 = false;未生成则报错
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getIs_delete, "0")
.ne(SchBaseTask::getIs_delete, TaskStatusEnum.FINISHED.getCode())
.and(la->la.eq(SchBaseTask::getPoint_code1,struct_code)
.or()
.eq(SchBaseTask::getPoint_code2,struct_code)
);
int tasks = schBaseTaskMapper.selectCount(lam);
if (tasks == 0) {
// 未生成任务
throw new BadRequestException("挡住仓位" + struct_code + "已锁定但未生成任务,请按照顺序选择");
} else {
@ -3829,10 +3841,15 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
param = true;
} else {
// 锁住:判断是否生成任务,生成:则不用生成移库单 = false;未生成则报错
JSONObject jsonTask1 = taskTab.query("point_code1 = '" + struct_code + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
JSONObject jsonTask2 = taskTab.query("point_code2 = '" + struct_code + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonTask1) && ObjectUtil.isEmpty(jsonTask2)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getIs_delete, "0")
.ne(SchBaseTask::getIs_delete, TaskStatusEnum.FINISHED.getCode())
.and(la->la.eq(SchBaseTask::getPoint_code1,struct_code)
.or()
.eq(SchBaseTask::getPoint_code2,struct_code)
);
int tasks = schBaseTaskMapper.selectCount(lam);
if (tasks == 0) {
// 未生成任务
param = true;
} else {
@ -3859,10 +3876,16 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
param = false;
} else {
// 锁住:判断是否生成任务,生成:则不用生成移库单 = false;未生成则报错
JSONObject jsonTask1 = taskTab.query("point_code1 = '" + struct_code + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
JSONObject jsonTask2 = taskTab.query("point_code2 = '" + struct_code + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonTask1) && ObjectUtil.isEmpty(jsonTask2)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getIs_delete, "0")
.ne(SchBaseTask::getIs_delete, TaskStatusEnum.FINISHED.getCode())
.and(la->la.eq(SchBaseTask::getPoint_code1,struct_code)
.or()
.eq(SchBaseTask::getPoint_code2,struct_code)
);
int tasks = schBaseTaskMapper.selectCount(lam);
if (tasks == 0) {
// 未生成任务
param = false;
} else {
@ -3877,10 +3900,16 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
param = true;
} else {
// 锁住:判断是否生成任务,生成:则不用生成移库单 = false;未生成则报错
JSONObject jsonTask1 = taskTab.query("point_code1 = '" + struct_code + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
JSONObject jsonTask2 = taskTab.query("point_code2 = '" + struct_code + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonTask1) && ObjectUtil.isEmpty(jsonTask2)) {
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.eq(SchBaseTask::getIs_delete, "0")
.ne(SchBaseTask::getIs_delete, TaskStatusEnum.FINISHED.getCode())
.and(la->la.eq(SchBaseTask::getPoint_code1,struct_code)
.or()
.eq(SchBaseTask::getPoint_code2,struct_code)
);
int tasks = schBaseTaskMapper.selectCount(lam);
if (tasks == 0) {
// 未生成任务
param = true;
} else {
@ -4159,8 +4188,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_IOStorInvDtl");
//出库主表
WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_IOStorInv");
// 任务表
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
// 子卷包装关系表
WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation");
//包装关系出入库记录表
@ -4341,10 +4368,10 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
sub_record.insert(jsonSub);
// 更新对应任务为完成
JSONObject jsonTask = taskTab.query("task_id = '" + jsonDis.getString("task_id") + "' and task_status < '07'").uniqueResult(0);
SchBaseTask jsonTask = schBaseTaskMapper.selectById(jsonDis.getString("task_id"));
if (ObjectUtil.isNotEmpty(jsonTask)) {
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
taskTab.update(jsonTask);
jsonTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
schBaseTaskMapper.updateById(jsonTask);
}
}
@ -4757,8 +4784,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_IOStorInvDtl");
//出库主表
WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_IOStorInv");
// 任务表
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
// 子卷包装关系表
WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation");
//包装关系出入库记录表
@ -4971,10 +4996,10 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
sub_record.insert(jsonSub);
// 更新对应任务为完成
JSONObject jsonTask = taskTab.query("task_id = '" + jsonDis.getString("task_id") + "' and task_status < '07'").uniqueResult(0);
SchBaseTask jsonTask = schBaseTaskMapper.selectById(jsonDis.getString("task_id"));
if (ObjectUtil.isNotEmpty(jsonTask)) {
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
taskTab.update(jsonTask);
jsonTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
schBaseTaskMapper.updateById(jsonTask);
}
}
@ -5118,24 +5143,22 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
@Override
@Transactional(rollbackFor = Exception.class)
public void issueTask(JSONObject whereJson) {
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
JSONObject jsonTask = wo_Task.query("task_id = '" + whereJson.getString("task_id") + "'").uniqueResult(0);
SchBaseTask jsonTask = schBaseTaskMapper.selectById(whereJson.getString("task_id"));
// 调用出库任务类下发任务
new OutTask().immediateNotifyAcs(jsonTask.getString("task_id"));
new OutTask().immediateNotifyAcs(jsonTask.getTask_id());
// 更新任务状态为下发
jsonTask.put("task_status", TaskStatusEnum.ISSUE.getCode());
jsonTask.put("update_optid", currentUserId);
jsonTask.put("update_optname", nickName);
jsonTask.put("update_time", now);
wo_Task.update(jsonTask);
jsonTask.setTask_status(TaskStatusEnum.ISSUE.getCode());
jsonTask.setUpdate_id(currentUserId);
jsonTask.setUpdate_name(nickName);
jsonTask.setUpdate_time(now);
schBaseTaskMapper.updateById(jsonTask);
}
@ -5148,8 +5171,6 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
WQLObject wo_dtl = WQLObject.getWQLObject("st_ivt_iostorinvdtl");
//出库主表
WQLObject wo_mst = WQLObject.getWQLObject("st_ivt_iostorinv");
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
//子卷包装关系表
WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation");
//包装关系出入库记录表
@ -5319,14 +5340,14 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
}
HashMap<String, String> map = new HashMap<>();
map.put("task_status", TaskStatusEnum.FINISHED.getCode());
map.put("finished_type", "01");
map.put("update_optid", SecurityUtils.getCurrentUserId() + "");
map.put("update_optname", SecurityUtils.getCurrentNickName());
map.put("update_time", DateUtil.now());
SchBaseTask taskmap = schBaseTaskMapper.selectById( whereJson.getString("task_id"));
taskmap.setTask_status(TaskStatusEnum.FINISHED.getCode());
taskmap.setFinished_type("01");
taskmap.setUpdate_id(SecurityUtils.getCurrentUserId() + "");
taskmap.setUpdate_name(SecurityUtils.getCurrentNickName());
taskmap.setUpdate_time(DateUtil.now());
//更新任务为完成
wo_Task.update(map, "task_id='" + whereJson.getString("task_id") + "'");
schBaseTaskMapper.updateById(taskmap);
// 查询此任务下所有的分配明细
JSONArray disArr = wo_dis.query("task_id='" + whereJson.getString("task_id") + "'").getResultJSONArray(0);

6
lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java

@ -163,12 +163,6 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
{
//出库分配表
WQLObject wo_dis = WQLObject.getWQLObject("ST_IVT_IOStorInvDis");
//出库明细表
WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_IOStorInvDtl");
//出库主表
WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_IOStorInv");
// 物料表
WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase");
//根据出入单类型判断回传业务
//1、生产入库:回传MES;手工入库:回传SAP

Loading…
Cancel
Save