diff --git a/lms/hd/nladmin-system/src/main/java/org/nl/wms/pda/sendmaterial/service/impl/SendMaterialServiceImpl.java b/lms/hd/nladmin-system/src/main/java/org/nl/wms/pda/sendmaterial/service/impl/SendMaterialServiceImpl.java index c8e63da..9765056 100644 --- a/lms/hd/nladmin-system/src/main/java/org/nl/wms/pda/sendmaterial/service/impl/SendMaterialServiceImpl.java +++ b/lms/hd/nladmin-system/src/main/java/org/nl/wms/pda/sendmaterial/service/impl/SendMaterialServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.wms.pda.sendmaterial.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -80,6 +81,32 @@ public class SendMaterialServiceImpl implements SendMaterialService { public JSONObject confirm(JSONObject param) { // 返回值 JSONObject resultJSON = new JSONObject(); + + // 参数校验 + String startRegionId = param.getString("start_region_id"); + if (StrUtil.isEmpty(startRegionId)) { + resultJSON.put("code", "0"); + resultJSON.put("desc", "起点区域不能为空"); + return resultJSON; + } + String startPointCode = param.getString("start_point_code"); + if (StrUtil.isEmpty(startPointCode)) { + resultJSON.put("code", "0"); + resultJSON.put("desc", "起点不能为空"); + return resultJSON; + } + String nextRegionId = param.getString("next_region_id"); + if (StrUtil.isEmpty(nextRegionId)) { + resultJSON.put("code", "0"); + resultJSON.put("desc", "终点区域不能为空"); + return resultJSON; + } + String nextPointCode = param.getString("next_point_code"); + if (StrUtil.isEmpty(nextPointCode)) { + resultJSON.put("code", "0"); + resultJSON.put("desc", "终点不能为空"); + return resultJSON; + } String point_id=param.getString("point_id"); int type=param.getIntValue("type"); String quality_scode=param.getString("quality_scode"); @@ -90,7 +117,52 @@ public class SendMaterialServiceImpl implements SendMaterialService { }else if (type==2){ ivt_json.put("quality_scode",null); } - ivtTab.update(ivt_json); + + WQLObject regionIOTable = WQLObject.getWQLObject("st_ivt_regionio"); + long id = IdUtil.getSnowflake(1, 1).nextId(); + try { + // 创建搬运记录 + RegionioDto dto = new RegionioDto(); + Long currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getNickName(); + String now = DateUtil.now(); + dto.setIostorinv_id(id); + dto.setBill_code(CodeUtil.getNewCode("IN_STORE_CODE")); + dto.setIo_type("0"); + dto.setBill_status("10"); + dto.setStart_region_id(startRegionId); + dto.setStart_point_code(startPointCode); + dto.setEnd_region_id(nextRegionId); + dto.setEnd_point_code(nextPointCode); + dto.setCreate_mode("02"); + dto.setCreate_id(currentUserId); + dto.setCreate_name(nickName); + dto.setUpdate_optid(currentUserId); + dto.setUpdate_optname(nickName); + dto.setUpdate_time(now); + dto.setCreate_time(now); + regionIOTable.insert(JSONObject.parseObject(JSON.toJSONString(dto))); + + // 创建任务并自动下发 + String taskId = sendMaterialTask.createTask(param); + + // 创建并下发成功后更新搬运记录 + JSONObject json = new JSONObject(); + json.put("task_id", taskId); + json.put("bill_status", "20"); + regionIOTable.update(json, "iostorinv_id = " + id); + if(ObjectUtil.isNotEmpty(ivt_json)) { + ivtTab.update(ivt_json); + } + } catch (Exception e) { + log.error("异常{}",e,e.getMessage()); + // 手动回滚事务 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + + resultJSON.put("code", "0"); + resultJSON.put("desc", e.getMessage()); + return resultJSON; + } // 返回 resultJSON.put("code", "1");