add 出库联调
This commit is contained in:
@@ -341,7 +341,8 @@ public class PdmBiSubpackagerelation extends Model<PdmBiSubpackagerelation> {
|
||||
private String weight;
|
||||
|
||||
|
||||
|
||||
@TableField(exist = false)
|
||||
private String plan_qty;
|
||||
/**
|
||||
* 获取主键值
|
||||
*
|
||||
|
||||
@@ -422,6 +422,16 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
if (subList.get(0).getQuanlity_in_box().intValue() != split.length) {
|
||||
throw new BadRequestException("当前木箱" + subList.get(0).getQuanlity_in_box() + "要装箱的子卷" + split.length + "未装完");
|
||||
}
|
||||
String boxSn = subList.get(0).getPackage_box_sn();
|
||||
PdmBiContainerinbound pdmBiContainerinbound = new PdmBiContainerinbound();
|
||||
pdmBiContainerinbound.setId(org.nl.common.utils.IdUtil.getStringId());
|
||||
pdmBiContainerinbound.setContainer_name(containerName);
|
||||
pdmBiContainerinbound.setBox(boxSn);
|
||||
Boolean inbound = param.getBoolean("inbound");
|
||||
if (inbound != null) {
|
||||
pdmBiContainerinbound.setInbound(inbound);
|
||||
}
|
||||
iPdmBiContainerinboundService.save(pdmBiContainerinbound);
|
||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.ZXRK, null, Boolean.TRUE, null, containerList);
|
||||
|
||||
}
|
||||
|
||||
@@ -273,7 +273,6 @@ public class SchBasePoint extends Model<SchBasePoint> {
|
||||
*/
|
||||
private String material_code;
|
||||
|
||||
private String num;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSON;
|
||||
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.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import org.nl.b_lms.sch.point.dao.SchBasePoint;
|
||||
import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper;
|
||||
@@ -16,6 +17,8 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl.LashManageServiceImpl;
|
||||
import org.nl.b_lms.storage_manage.md.dao.MdPdStoragevehicleext;
|
||||
import org.nl.b_lms.storage_manage.md.dao.mapper.MdPdStoragevehicleextMapper;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
@@ -31,6 +34,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -49,7 +53,8 @@ public class TwoOutHeapTask extends AbstractAcsTask {
|
||||
|
||||
@Autowired
|
||||
private SchBasePointMapper schPointMapper;
|
||||
|
||||
@Autowired
|
||||
private MdPdStoragevehicleextMapper mdPdStoragevehicleextMapper;
|
||||
|
||||
|
||||
private List<SchBaseTask> sendTask(List<SchBaseTask> taskArrAll) {
|
||||
@@ -159,46 +164,51 @@ public class TwoOutHeapTask extends AbstractAcsTask {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
|
||||
|
||||
String task_id = taskObj.getString("task_id");
|
||||
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "' and task_status < '07'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonTask)) {
|
||||
// JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "' and task_status < '07'").uniqueResult(0);
|
||||
|
||||
|
||||
SchBaseTask schBaseTask = schBaseTaskMapper.selectOne(new LambdaQueryWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id,task_id).lt(SchBaseTask::getTask_status, "07"));
|
||||
|
||||
|
||||
if (ObjectUtil.isNotEmpty(schBaseTask)) {
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
// 任务为执行之后就不允许取消
|
||||
if (jsonTask.getIntValue("task_status") > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
|
||||
throw new BadRequestException("任务:" + jsonTask.getString("task_code") + "已执行,不可取消");
|
||||
if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
|
||||
throw new BadRequestException("任务:" + schBaseTask.getTask_code() + "已执行,不可取消");
|
||||
}
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("is_delete", "1");
|
||||
param.put("update_time", DateUtil.now());
|
||||
taskTab.update(param, "task_id = '" + task_id + "'");
|
||||
schBaseTask.setIs_delete("1");
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTaskMapper.updateById(schBaseTask);
|
||||
}
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
param.put("update_time", DateUtil.now());
|
||||
taskTab.update(param, "task_id = '" + task_id + "'");
|
||||
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTaskMapper.updateById(schBaseTask);
|
||||
|
||||
|
||||
}
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
// 更新任务完成
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
param.put("update_time", DateUtil.now());
|
||||
taskTab.update(param, "task_id = '" + task_id + "'");
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
schBaseTask.setUpdate_time(DateUtil.now());
|
||||
schBaseTaskMapper.updateById(schBaseTask);
|
||||
// 如果是异常出库口则不需要下发行架任务
|
||||
if (jsonTask.getString("point_code2").equals(IOSEnum.EXCEP_OUT.code("异常出库口"))) {
|
||||
WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
||||
JSONObject ext_jo = veExtTab.query("pcsn = '" + jsonTask.getString("vehicle_code") + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(ext_jo)) {
|
||||
ext_jo.put("pcsn", "");
|
||||
veExtTab.update(ext_jo);
|
||||
if (schBaseTask.getPoint_code2().equals(IOSEnum.EXCEP_OUT.code("异常出库口"))) {
|
||||
|
||||
|
||||
MdPdStoragevehicleext mdPdStoragevehicleext = mdPdStoragevehicleextMapper.selectOne(new QueryWrapper<MdPdStoragevehicleext>().eq("storagevehicle_code",schBaseTask.getVehicle_code() ));
|
||||
if (ObjectUtil.isNotEmpty(mdPdStoragevehicleext)) {
|
||||
mdPdStoragevehicleext.setPcsn("");
|
||||
mdPdStoragevehicleextMapper.updateById(mdPdStoragevehicleext);
|
||||
}
|
||||
} else {
|
||||
// 下发桁架任务:捆扎
|
||||
JSONObject jsonParam = new JSONObject();
|
||||
jsonParam.put("device_code", jsonTask.getString("point_code2"));
|
||||
jsonParam.put("vehicle_code", jsonTask.getString("vehicle_code"));
|
||||
jsonParam.put("task_group_id", jsonTask.getString("task_group_id"));
|
||||
jsonParam.put("device_code", schBaseTask.getPoint_code2());
|
||||
jsonParam.put("vehicle_code", schBaseTask.getVehicle_code());
|
||||
jsonParam.put("task_group_id", schBaseTask.getTask_group_id());
|
||||
LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class);
|
||||
bean1.createLashTask(jsonParam);
|
||||
}
|
||||
@@ -219,36 +229,41 @@ public class TwoOutHeapTask extends AbstractAcsTask {
|
||||
|
||||
@Override
|
||||
public String createTask(JSONObject form) {
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String currentUsername = SecurityUtils.getCurrentUsername();
|
||||
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
|
||||
|
||||
json.put("task_type", form.getString("task_type"));
|
||||
json.put("vehicle_code", form.getString("vehicle_code"));
|
||||
json.put("vehicle_code2", form.getString("vehicle_code2"));
|
||||
json.put("vehicle_type", form.getString("vehicle_type"));
|
||||
json.put("task_name", form.getString("task_name"));
|
||||
json.put("point_code1", form.getString("point_code1"));
|
||||
json.put("point_code2", form.getString("point_code2"));
|
||||
json.put("material_id", form.getString("material_id"));
|
||||
json.put("task_group_id", form.getString("task_group_id"));
|
||||
json.put("is_auto_issue", form.getString("is_auto_issue"));
|
||||
json.put("table_fk", form.getString("table_fk"));
|
||||
json.put("request_param", form.getString("request_param"));
|
||||
json.put("sort_seq", form.getIntValue("sort_seq"));
|
||||
|
||||
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
json.put("handle_class", THIS_CLASS);
|
||||
json.put("create_id", currentUserId);
|
||||
json.put("create_name", currentUsername);
|
||||
json.put("create_time", DateUtil.now());
|
||||
json.put("acs_task_type", "7");
|
||||
WQLObject.getWQLObject("SCH_BASE_Task").insert(json);
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + "");
|
||||
task.setTask_code(IdUtil.getSnowflake(1, 1).nextId() + "");
|
||||
task.setTask_type(form.getString("task_type"));
|
||||
task.setVehicle_code(form.getString("vehicle_code"));
|
||||
task.setVehicle_code2(form.getString("vehicle_code2"));
|
||||
task.setVehicle_type(form.getString("vehicle_type"));
|
||||
task.setTask_name(form.getString("task_name"));
|
||||
task.setMaterial_id(form.getString("material_id"));
|
||||
task.setTask_group_id(form.getString("task_group_id"));
|
||||
task.setIs_auto_issue(form.getString("is_auto_issue"));
|
||||
task.setTable_fk(form.getString("table_fk"));
|
||||
task.setRequest_param(form.getString("request_param"));
|
||||
if (form.getString("sort_seq")!= null) {
|
||||
BigDecimal decimal = new BigDecimal(form.getString("sort_seq"));
|
||||
task.setSort_seq(decimal);
|
||||
}
|
||||
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
|
||||
task.setPoint_code1(form.getString("point_code1"));
|
||||
task.setPoint_code2(form.getString("point_code2"));
|
||||
task.setHandle_class(THIS_CLASS);
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentUsername());
|
||||
task.setCreate_time(DateUtil.now());
|
||||
task.setAcs_task_type("7");
|
||||
|
||||
|
||||
|
||||
schBaseTaskMapper.insert(task);
|
||||
|
||||
return task.getTask_id();
|
||||
|
||||
return json.getString("task_id");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -277,8 +277,7 @@ public class TwoOutTask extends AbstractAcsTask {
|
||||
|
||||
@Override
|
||||
public String createTask(JSONObject form) {
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String currentUsername = SecurityUtils.getCurrentUsername();
|
||||
|
||||
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + "");
|
||||
@@ -298,8 +297,8 @@ public class TwoOutTask extends AbstractAcsTask {
|
||||
task.setSort_seq(decimal);
|
||||
}
|
||||
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
|
||||
task.setPoint_code1(form.getString("start_device_code"));
|
||||
task.setPoint_code2(form.getString("next_device_code"));
|
||||
task.setPoint_code1(form.getString("point_code1"));
|
||||
task.setPoint_code2(form.getString("point_code2"));
|
||||
task.setHandle_class(this.getClass().getName());
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentUsername());
|
||||
|
||||
@@ -43,7 +43,7 @@ public enum IOSEnum {
|
||||
//出库单据类型
|
||||
OUT_TYPE(MapOf.of("发货出库", "1001", "改切出库", "1003", "调拨出库", "1004", "拆箱出库", "1005",
|
||||
"返检出库", "1006", "超期报废", "1007", "退货报废", "1008", "质量问题报废", "1010", "其他报废", "1002",
|
||||
"手工出库", "1009","转单出库", "1020","贴标出库", "1021","管控出库", "1099"
|
||||
"手工出库", "1009","转单出库", "1020","贴标出库", "1021","管控出库", "1099","换标出库", "1022"
|
||||
)),
|
||||
|
||||
//移库单据类型
|
||||
|
||||
@@ -145,4 +145,7 @@ public interface IStIvtIostorinvOutService extends IService<StIvtIostorinv> {
|
||||
* @return String 任务标识
|
||||
*/
|
||||
String taskExceptionalOut(JSONObject whereJson);
|
||||
|
||||
|
||||
public void createForTask(JSONObject json, JSONObject where) ;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.b_lms.storage_manage.ios.service.iostorInv.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
@@ -27,6 +28,7 @@ import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.sch.tasks.TwoExcepionalMoveTask;
|
||||
import org.nl.b_lms.sch.tasks.TwoOutExceptionalTask;
|
||||
import org.nl.b_lms.sch.tasks.TwoOutTask;
|
||||
import org.nl.b_lms.sch.tasks.slitter.TrussCallAirShaftTask;
|
||||
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
|
||||
import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService;
|
||||
import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo;
|
||||
@@ -58,6 +60,7 @@ import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.system.service.param.ISysParamService;
|
||||
import org.nl.system.service.param.dao.Param;
|
||||
import org.nl.wms.basedata.st.service.StorattrService;
|
||||
@@ -149,6 +152,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
@Autowired
|
||||
private IMdpbBoxtypeService iMdpbBoxtypeService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private TwoOutTask twoOutTask;
|
||||
|
||||
/**
|
||||
* 二期入库业务处理接口
|
||||
*/
|
||||
@@ -159,7 +166,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
private RedissonClient redissonClient;
|
||||
@Autowired
|
||||
private StIvtStructivtService structivtService;
|
||||
/** 仓位 */
|
||||
/**
|
||||
* 仓位
|
||||
*/
|
||||
@Autowired
|
||||
private StIvtStructattrService structattrService;
|
||||
@Autowired
|
||||
@@ -172,14 +181,18 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
private StIvtSectattrService sectattrService;
|
||||
@Autowired
|
||||
private ISysParamService paramService;
|
||||
/** 载具扩展属性表 */
|
||||
/**
|
||||
* 载具扩展属性表
|
||||
*/
|
||||
@Autowired
|
||||
private IMdPbStoragevehicleextService mdPbStoragevehicleextService;
|
||||
@Autowired
|
||||
private IschBasePointService ischBasePointService;
|
||||
@Autowired
|
||||
private TwoOutExceptionalTask twoOutExceptionalTask;
|
||||
/** 事物库区 */
|
||||
/**
|
||||
* 事物库区
|
||||
*/
|
||||
@Autowired
|
||||
private StIvtBsrealstorattrService bsrealstorattrService;
|
||||
@Autowired
|
||||
@@ -188,6 +201,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
@Autowired
|
||||
private StIvtStructattrMapper stIvtStructattrMapper;
|
||||
private TrussCallAirShaftTask trussCallAirShaftTask;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@@ -652,17 +666,57 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
@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("当前有出库任务正在执行,请稍后在试!");
|
||||
// }
|
||||
Map<List<String>, List<JSONObject>> groupingDisMap = this.basicCheck(whereJson);
|
||||
|
||||
// 所有分配明细集合
|
||||
List<JSONObject> disTaskMangeList = new ArrayList<>();
|
||||
// 需移库集合
|
||||
List<JSONObject> moveTaskMangeList = new ArrayList<>();
|
||||
// 需出库集合
|
||||
Map<String, List<JSONObject>> outTaskMangeMap = new HashMap<>();
|
||||
|
||||
for (List<JSONObject> disLikeList : groupingDisMap.values()) {
|
||||
// 调用任务生成处理
|
||||
JSONObject taskMange = createTaskMange(disLikeList, mstDao.getIostorinv_id().toString());
|
||||
moveTaskMangeList.addAll(taskMange.getJSONArray("move").toJavaList(JSONObject.class));
|
||||
// TODO --
|
||||
outTaskMangeMap.put(IdUtil.getStringId(), taskMange.getJSONArray("out").toJavaList(JSONObject.class));
|
||||
disTaskMangeList.addAll(disLikeList);
|
||||
// TODO --
|
||||
// 创建任务
|
||||
// createTask(taskMange.getJSONArray("out").toJavaList(JSONObject.class),disLikeList,whereJson.getString("point_code"));
|
||||
}
|
||||
|
||||
// 下发移库任务
|
||||
if (ObjectUtil.isNotEmpty(moveTaskMangeList)) {
|
||||
outBussManageService.createMove2(moveTaskMangeList);
|
||||
}
|
||||
|
||||
// TODO --
|
||||
// 创建出库任务
|
||||
try {
|
||||
for (List<JSONObject> outTaskMangeList : outTaskMangeMap.values()) {
|
||||
createTask(outTaskMangeList, disTaskMangeList, whereJson.getString("point_code"));
|
||||
}
|
||||
} finally {
|
||||
// 下发出库任务:判断当前单据是否有正在执行的的任务
|
||||
List<SchBaseTask> taskList = schBaseTaskMapper.selectList(new LambdaQueryWrapper<SchBaseTask>().eq(SchBaseTask::getTable_fk, mstDao.getIostorinv_id().toString()).eq(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()).eq(SchBaseTask::getIs_delete, "0"));
|
||||
|
||||
if (CollUtil.isEmpty(taskList)) {
|
||||
// twoOutTask.immediateNotifyAcs(null);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public Map<List<String>, List<JSONObject>> basicCheck(JSONObject whereJson) {
|
||||
// 任务表
|
||||
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
|
||||
|
||||
// 查询此明细所有未生成的分配明细
|
||||
List<JSONObject> disDaoList = stIvtIostorinvdisMapper.getNotCreateDis(whereJson);
|
||||
|
||||
@@ -670,6 +724,20 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
throw new BadRequestException("当前没有可设置的分配明细!");
|
||||
}
|
||||
|
||||
// 校验是否有木箱规格没有维护
|
||||
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")));
|
||||
|
||||
if (taskGroup.size() >= 3) {
|
||||
throw new BadRequestException("当前有三种不同规格的木箱正在出库,请稍后在试!");
|
||||
}
|
||||
|
||||
/*
|
||||
* 下发任务
|
||||
* 1.根据木箱 长、宽、高、订单号、物料分组
|
||||
@@ -685,25 +753,15 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
Map<List<String>, List<JSONObject>> groupingDisMap =
|
||||
disDaoList.stream().collect(Collectors.groupingBy(compositeKey, Collectors.toList()));
|
||||
|
||||
for (List<JSONObject> disLikeList : groupingDisMap.values()) {
|
||||
// 调用任务生成处理
|
||||
List<JSONObject> taskMangeList = createTaskMange(disLikeList, mstDao.getIostorinv_id().toString());
|
||||
|
||||
// 创建任务并下发一组任务
|
||||
createTask(taskMangeList, disLikeList, whereJson.getString("point_code"));
|
||||
// 判断是否有异常任务
|
||||
String exceptionPointCode = exceptionPointCode(disDaoList);
|
||||
if (ObjectUtil.isNotEmpty(exceptionPointCode)) {
|
||||
throw new BadRequestException(exceptionPointCode);
|
||||
}
|
||||
|
||||
// 下发任务:判断当前单据是否有正在执行的的任务
|
||||
JSONArray disArr = taskService.query("table_fk = '" + mstDao.getIostorinv_id().toString() + "' and is_delete = '0' and task_status = '" + TaskStatusEnum.EXECUTING.getCode() + "'")
|
||||
.getResultJSONArray(0);
|
||||
|
||||
if (ObjectUtil.isEmpty(disArr)) {
|
||||
TwoOutTask twoOutTask = new TwoOutTask();
|
||||
twoOutTask.immediateNotifyAcs(null);
|
||||
}
|
||||
|
||||
return groupingDisMap;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void allSetPoint(JSONObject whereJson) {
|
||||
|
||||
@@ -825,7 +883,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (taskIds.size() > 0) {
|
||||
List<SchBaseTask> tasks = ischBaseTaskService.list(new LambdaQueryWrapper<SchBaseTask>().in(SchBaseTask::getTask_id, taskIds));
|
||||
List<SchBaseTask> tasks = ischBaseTaskService.list(new LambdaQueryWrapper<SchBaseTask>().in(SchBaseTask::getTask_id, taskIds).ne(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()));
|
||||
if (ObjectUtil.isNotEmpty(tasks)) {
|
||||
throw new BadRequestException("有任务未完成,不允许强制确认!");
|
||||
}
|
||||
@@ -1011,7 +1069,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
|
||||
// 查询任务
|
||||
SchBaseTask schBaseTask = schBaseTaskMapper.selectOne(new QueryWrapper<SchBaseTask>().eq("task_id", whereJson.getString("task_id")).eq("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||
SchBaseTask schBaseTask = schBaseTaskMapper.selectOne(new QueryWrapper<SchBaseTask>().eq("task_id", whereJson.getString("task_id")).ne("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||
|
||||
|
||||
if (schBaseTask == null) {
|
||||
@@ -1165,6 +1223,134 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
return task_id;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 事务处理方法
|
||||
*
|
||||
* @param json 任务单体
|
||||
* @param where {
|
||||
* flag:用来确定终点
|
||||
* is_auto_issue:是否下发
|
||||
* task_group_id:任务组id
|
||||
* disLikeList: 所有分配明细集合
|
||||
* taskList: 异常货位任务集合
|
||||
* }
|
||||
*/
|
||||
@Transactional
|
||||
public void createForTask(JSONObject json, JSONObject where) {
|
||||
|
||||
|
||||
String flag = where.getString("flag");
|
||||
String is_auto_issue = where.getString("is_auto_issue");
|
||||
String task_group_id = where.getString("task_group_id");
|
||||
List<JSONObject> disLikeList = where.getJSONArray("disLikeList").toJavaList(JSONObject.class);
|
||||
List<JSONObject> taskList = where.getJSONArray("taskList").toJavaList(JSONObject.class);
|
||||
|
||||
// 确定起点
|
||||
String start_device_code = json.getString("struct_code");
|
||||
|
||||
// 确定终点: 根据仓位所在排确定终点
|
||||
String end_device_code = "";
|
||||
if ("1".equals(flag)) {
|
||||
end_device_code = IsEndCode2(json);
|
||||
} else {
|
||||
end_device_code = IsEndCode(json);
|
||||
}
|
||||
|
||||
// 过滤此仓位的分配明细
|
||||
List<StIvtIostorinvdis> disDaoList = disLikeList.stream()
|
||||
.filter(row -> row.getString("struct_code").equals(json.getString("struct_code")))
|
||||
.map(row -> JSONObject.parseObject(JSONObject.toJSONString(row), StIvtIostorinvdis.class))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 判断是否是异常货位
|
||||
String remark = "";
|
||||
if (json.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库异常锁"))) {
|
||||
/*
|
||||
* 判断异常货位上的任务是否完成
|
||||
* 完成:生成完成任务的point_code2 当做起点的任务
|
||||
* 未完成:只更新分配明细状态为生成
|
||||
*/
|
||||
JSONObject jsonTask = taskList.stream()
|
||||
.filter(row -> row.getString("task_id").equals(json.getString("task_code")))
|
||||
.collect(Collectors.toList()).get(0);
|
||||
SchBaseTask javaObject = jsonTask.toJavaObject(SchBaseTask.class);
|
||||
|
||||
// 完成
|
||||
if (javaObject.getTask_status().equals(TaskStatusEnum.FINISHED.getCode())) {
|
||||
start_device_code = javaObject.getPoint_code2();
|
||||
is_auto_issue = IOSEnum.IS_SEND.code("否");
|
||||
remark = "异常货位出库!";
|
||||
} else {
|
||||
// 未完成:只更新分配明细状态不更新任务id
|
||||
disDaoList.forEach(row -> {
|
||||
row.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||
row.setTask_id(task_group_id);
|
||||
});
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
|
||||
// 标记任务
|
||||
javaObject.setIs_auto_issue(IOSEnum.IS_SEND.code("否"));
|
||||
javaObject.setRemark("下发单据时【异常移库任务】未完成,请等待任务完成自动创建出库任务!");
|
||||
javaObject.setCar_no(disDaoList.get(0).getIostorinv_id());
|
||||
schBaseTaskMapper.updateById(javaObject);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// 查询木箱对应的载具
|
||||
JSONObject jsonVeExt = mdPbStoragevehicleextService.getOneByPcsnToObject(json.getString("storagevehicle_code"));
|
||||
if (ObjectUtil.isEmpty(jsonVeExt)) {
|
||||
throw new BadRequestException("此木箱没有绑定托盘号!" + json.getString("storagevehicle_code"));
|
||||
}
|
||||
|
||||
|
||||
// 生成任务
|
||||
JSONObject jsonTaskParam = new JSONObject();
|
||||
jsonTaskParam.put("task_type", "010711");
|
||||
jsonTaskParam.put("point_code1", start_device_code);
|
||||
jsonTaskParam.put("point_code2", end_device_code);
|
||||
jsonTaskParam.put("vehicle_code", json.getString("storagevehicle_code"));
|
||||
jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code"));
|
||||
jsonTaskParam.put("containerType", json.getString("storagevehicle_type"));
|
||||
jsonTaskParam.put("task_group_id", task_group_id);
|
||||
jsonTaskParam.put("is_auto_issue", is_auto_issue);
|
||||
jsonTaskParam.put("remark", remark);
|
||||
JSONObject request_param = new JSONObject();
|
||||
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
|
||||
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
||||
.eq(BstIvtBoxinfo::getBox_no, json.getString("storagevehicle_code"))
|
||||
);
|
||||
request_param.put("containerType", boxDao.getVehicle_type());
|
||||
jsonTaskParam.put("request_param", request_param);
|
||||
jsonTaskParam.put("table_fk", disDaoList.get(0).getIostorinv_id().toString());
|
||||
|
||||
if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅")) ||
|
||||
json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) {
|
||||
jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("浅")));
|
||||
} else {
|
||||
jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("深")));
|
||||
}
|
||||
jsonTaskParam.put("request_param", jsonTaskParam);
|
||||
|
||||
|
||||
String task_id = twoOutTask.createTask(jsonTaskParam);
|
||||
|
||||
// 更新分配明细
|
||||
SchBasePoint basePointServiceOne = ischBasePointService.getOne(new QueryWrapper<SchBasePoint>().lambda().eq(SchBasePoint::getPoint_code, end_device_code));
|
||||
if (ObjectUtil.isEmpty(basePointServiceOne)) {
|
||||
throw new BadRequestException("出库点位不存在:" + end_device_code);
|
||||
}
|
||||
|
||||
disDaoList.forEach(row -> {
|
||||
row.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||
row.setTask_id(task_id);
|
||||
row.setPoint_id(basePointServiceOne.getPoint_id());
|
||||
});
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 创建调拨入库单
|
||||
*
|
||||
@@ -1256,6 +1442,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
subpackagerelationService.update(subLam);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 生成任务前处理
|
||||
*
|
||||
@@ -1263,7 +1450,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
* @param iostorinv_id: 单据标识
|
||||
* @return List<JSONObject> 生成任务的集合
|
||||
*/
|
||||
private List<JSONObject> createTaskMange(List<JSONObject> disLikeList, String iostorinv_id) {
|
||||
private JSONObject createTaskMange(List<JSONObject> disLikeList, String iostorinv_id) {
|
||||
// 仓位表
|
||||
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
|
||||
|
||||
@@ -1311,11 +1498,16 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
}
|
||||
|
||||
// 创建移库单下发移库任务
|
||||
outBussManageService.createMove(needMoveAttrList);
|
||||
// outBussManageService.createMove(needMoveAttrList);
|
||||
|
||||
return needCreateAttrList;
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("move", needMoveAttrList);
|
||||
jsonObject.put("out", needCreateAttrList);
|
||||
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 生成任务前处理
|
||||
*
|
||||
@@ -1366,7 +1558,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
}
|
||||
|
||||
// 创建移库单下发移库任务
|
||||
outBussManageService.createMove2(needMoveAttrList, allTransactionConsumer);
|
||||
outBussManageService.createMove2(needMoveAttrList);
|
||||
|
||||
return needCreateAttrList;
|
||||
}
|
||||
@@ -1653,21 +1845,17 @@ 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");
|
||||
// 载具扩展属性表
|
||||
WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
|
||||
|
||||
|
||||
// 查询异常货位任务集合
|
||||
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("','"));
|
||||
|
||||
List<JSONObject> taskList = taskService.query("task_id IN ('" + TaskCodeIn + "') and is_delete = '0'")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
.distinct().collect(Collectors.toList());
|
||||
List<SchBaseTask> taskList = new ArrayList<>();
|
||||
if (!TaskCodeIn.isEmpty()) {
|
||||
taskList = schBaseTaskMapper.selectList(new QueryWrapper<SchBaseTask>().lambda().in(SchBaseTask::getTask_id, TaskCodeIn).eq(SchBaseTask::getIs_delete, "0"));
|
||||
}
|
||||
|
||||
// 任务组标识
|
||||
String task_group_id = IdUtil.getStringId();
|
||||
@@ -1683,118 +1871,29 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
if (ObjectUtil.isNotEmpty(jsonParam)) {
|
||||
flag = jsonParam.getString("value");
|
||||
}
|
||||
IStIvtIostorinvOutService aopService = SpringContextHolder.getBean(IStIvtIostorinvOutService.class);
|
||||
for (int i = 0; i < taskMangeList.size(); i++) {
|
||||
JSONObject json = taskMangeList.get(i);
|
||||
|
||||
// 确定起点
|
||||
start_device_code = json.getString("struct_code");
|
||||
|
||||
// 确定终点: 根据仓位所在排确定终点
|
||||
|
||||
String end_device_code = "";
|
||||
if ("1".equals(flag)) {
|
||||
end_device_code = IsEndCode2(json);
|
||||
} else {
|
||||
end_device_code = IsEndCode(json);
|
||||
}
|
||||
|
||||
// 过滤此仓位的分配明细
|
||||
List<StIvtIostorinvdis> disDaoList = disLikeList.stream()
|
||||
.filter(row -> row.getString("struct_code").equals(json.getString("struct_code")))
|
||||
.map(row -> JSONObject.parseObject(JSONObject.toJSONString(row), StIvtIostorinvdis.class))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 判断是否是异常货位
|
||||
if (json.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库异常锁"))) {
|
||||
/*
|
||||
* 判断异常货位上的任务是否完成
|
||||
* 完成:生成完成任务的point_code2 当做起点的任务
|
||||
* 未完成:只更新分配明细状态为生成
|
||||
*/
|
||||
JSONObject jsonTask = taskList.stream()
|
||||
.filter(row -> row.getString("task_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");
|
||||
is_auto_issue = IOSEnum.IS_SEND.code("否");
|
||||
} else {
|
||||
// 未完成:只更新分配明细状态不更新任务id
|
||||
disDaoList.forEach(row -> {
|
||||
row.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||
row.setTask_id(task_group_id);
|
||||
});
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
|
||||
// 标记任务
|
||||
jsonTask.put("is_auto_issue", IOSEnum.IS_SEND.code("否"));
|
||||
taskService.update(jsonTask);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// 查询木箱对应的载具
|
||||
JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'")
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonVeExt)) {
|
||||
throw new BadRequestException("此木箱没有绑定托盘号!" + json.getString("storagevehicle_code"));
|
||||
}
|
||||
|
||||
// 生成任务
|
||||
JSONObject jsonTaskParam = new JSONObject();
|
||||
jsonTaskParam.put("task_type", "010711");
|
||||
jsonTaskParam.put("point_code1", start_device_code);
|
||||
jsonTaskParam.put("point_code2", end_device_code);
|
||||
jsonTaskParam.put("vehicle_code", json.getString("storagevehicle_code"));
|
||||
jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code"));
|
||||
jsonTaskParam.put("containerType", json.getString("storagevehicle_type"));
|
||||
jsonTaskParam.put("task_group_id", task_group_id);
|
||||
jsonTaskParam.put("is_auto_issue", is_auto_issue);
|
||||
JSONObject request_param = new JSONObject();
|
||||
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
|
||||
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
||||
.eq(BstIvtBoxinfo::getBox_no, json.getString("storagevehicle_code"))
|
||||
);
|
||||
request_param.put("containerType", boxDao.getVehicle_type());
|
||||
jsonTaskParam.put("request_param", request_param);
|
||||
jsonTaskParam.put("table_fk", disDaoList.get(0).getIostorinv_id().toString());
|
||||
|
||||
if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅")) ||
|
||||
json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) {
|
||||
jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("浅")));
|
||||
} else {
|
||||
jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("深")));
|
||||
}
|
||||
jsonTaskParam.put("request_param", jsonTaskParam);
|
||||
|
||||
TwoOutTask twoOutTask = new TwoOutTask();
|
||||
String task_id = twoOutTask.createTask(jsonTaskParam);
|
||||
|
||||
// 更新分配明细
|
||||
JSONObject jsonPoint = schBasePointService.query("point_code = '" + end_device_code + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonPoint)) {
|
||||
throw new BadRequestException("出库点位不存在:" + end_device_code);
|
||||
}
|
||||
|
||||
disDaoList.forEach(row -> {
|
||||
row.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||
row.setTask_id(task_id);
|
||||
row.setPoint_id(jsonPoint.getString("point_id"));
|
||||
});
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
// TODO ---
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("flag", flag);
|
||||
jsonObject.put("disLikeList", disLikeList);
|
||||
jsonObject.put("taskList", taskList);
|
||||
jsonObject.put("is_auto_issue", is_auto_issue);
|
||||
jsonObject.put("task_group_id", task_group_id);
|
||||
aopService.createForTask(json, jsonObject);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建任务(通过仓位集合创建)
|
||||
* <p>出库口:IOSEnum#OUT_POINT/2</p>
|
||||
* @see IOSEnum#OUT_POINT2
|
||||
* @see IOSEnum#OUT_POINT
|
||||
*
|
||||
* @param taskMangeList:仓位集合
|
||||
* @param disLikeList:分配明细集合
|
||||
* @param point_code : 终点
|
||||
* @see IOSEnum#OUT_POINT2
|
||||
* @see IOSEnum#OUT_POINT
|
||||
*/
|
||||
private void createTask2(List<JSONObject> taskMangeList, List<JSONObject> disLikeList, String point_code, Consumer<String> allTransactionConsumer) {
|
||||
// 查询异常货位任务集合
|
||||
@@ -1966,17 +2065,19 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 更新异常货位
|
||||
List<String> structCodeInList = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < taskList.size(); i++) {
|
||||
SchBaseTask task = taskList.get(i);
|
||||
structCodeInList.add(task.getPoint_code1());
|
||||
structCodeInList.add(task.getPoint_code2());
|
||||
}
|
||||
if (CollectionUtil.isNotEmpty(taskList)) {
|
||||
for (int i = 0; i < taskList.size(); i++) {
|
||||
SchBaseTask task = taskList.get(i);
|
||||
structCodeInList.add(task.getPoint_code1());
|
||||
structCodeInList.add(task.getPoint_code2());
|
||||
}
|
||||
|
||||
LambdaUpdateWrapper<StIvtStructattr> strattLam = new LambdaUpdateWrapper<>();
|
||||
strattLam.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.set(StIvtStructattr::getTask_code, "")
|
||||
.in(StIvtStructattr::getStruct_code, structCodeInList);
|
||||
structattrService.update(strattLam);
|
||||
LambdaUpdateWrapper<StIvtStructattr> strattLam = new LambdaUpdateWrapper<>();
|
||||
strattLam.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.set(StIvtStructattr::getTask_code, "")
|
||||
.in(StIvtStructattr::getStruct_code, structCodeInList);
|
||||
structattrService.update(strattLam);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -340,8 +340,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
if (boxDao == null) {
|
||||
throw new BadRequestException("未找到该木箱信息!");
|
||||
}
|
||||
jsonObject.put("box_no",boxDao.getBox_no());
|
||||
jsonObject.put("vehicle_type",boxDao.getVehicle_type());
|
||||
jsonObject.put("box_no", boxDao.getBox_no());
|
||||
jsonObject.put("vehicle_type", boxDao.getVehicle_type());
|
||||
attrParam.put("vehicle_type", boxDao.getVehicle_type());
|
||||
//根据木箱高度,判断入库仓位的高度
|
||||
String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue();
|
||||
@@ -355,7 +355,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
height = "'3'";
|
||||
}
|
||||
attrParam.put("height", height);
|
||||
StIvtSectattr stIvtSectattr = stIvtSectattrMapper.selectOne(new QueryWrapper<StIvtSectattr>().eq("sect_id",jsonObject.getString("sect_id")));
|
||||
StIvtSectattr stIvtSectattr = stIvtSectattrMapper.selectOne(new QueryWrapper<StIvtSectattr>().eq("sect_id", jsonObject.getString("sect_id")));
|
||||
// 判断是否是虚拟区
|
||||
if (stIvtSectattr.getSect_type_attr().equals(IOSEnum.SECT_TYPE.code("虚拟区"))) {
|
||||
|
||||
@@ -368,7 +368,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
attrParam.put("move_block_num", MapUtil.getStr(whereJson, "move_block_num"));
|
||||
}
|
||||
JSONObject oneStruct = twoInBussManageService.getOneStruct(attrParam);
|
||||
if (!ObjectUtil.isEmpty(oneStruct)){
|
||||
if (!ObjectUtil.isEmpty(oneStruct)) {
|
||||
stIvtStructattr = oneStruct.toJavaObject(StIvtStructattr.class);
|
||||
}
|
||||
|
||||
@@ -392,7 +392,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
// 判断是否虚拟区
|
||||
String work_status;
|
||||
Long task_id = null;
|
||||
StIvtSectattr stIvtSectattr = stIvtSectattrMapper.selectOne(new QueryWrapper<StIvtSectattr>().eq("sect_id",stIvtStructattr.getSect_id()));
|
||||
StIvtSectattr stIvtSectattr = stIvtSectattrMapper.selectOne(new QueryWrapper<StIvtSectattr>().eq("sect_id", stIvtStructattr.getSect_id()));
|
||||
if (stIvtSectattr.getSect_type_attr().equals(IOSEnum.SECT_TYPE.code("虚拟区"))) {
|
||||
// 虚拟区:执行状态为完成
|
||||
work_status = IOSEnum.WORK_STATUS.code("完成");
|
||||
@@ -437,9 +437,9 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
.eq(StIvtIostorinvdtl::getIostorinv_id, mst.getIostorinv_id())
|
||||
).get(0);
|
||||
List<LinkedHashMap> disList = iStIvtIostorinvdisService.list(
|
||||
new QueryWrapper<StIvtIostorinvdis>().lambda()
|
||||
.eq(StIvtIostorinvdis::getIostorinv_id, mst.getIostorinv_id())
|
||||
).stream().map(row -> JSONObject.parseObject(JSON.toJSONString(row), LinkedHashMap.class))
|
||||
new QueryWrapper<StIvtIostorinvdis>().lambda()
|
||||
.eq(StIvtIostorinvdis::getIostorinv_id, mst.getIostorinv_id())
|
||||
).stream().map(row -> JSONObject.parseObject(JSON.toJSONString(row), LinkedHashMap.class))
|
||||
.collect(Collectors.toList());
|
||||
jsonSend.put("dtl_row", JSONObject.parseObject(JSON.toJSONString(dtlDao)));
|
||||
jsonSend.put("tableMater", disList);
|
||||
@@ -591,8 +591,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
List<MdPbStoragevehicleext> mdPbStoragevehicleexts = mdPbStoragevehicleextMapper.selectList(new QueryWrapper<MdPbStoragevehicleext>()
|
||||
.eq("pcsn", jsonDis.get("storagevehicle_code"))
|
||||
.orderByDesc("UPDATE_TIME"));
|
||||
if (CollUtil.isEmpty(mdPbStoragevehicleexts)){
|
||||
throw new BadRequestException("此木箱没有绑定托盘号!"+whereJson.get("vehicle_code"));
|
||||
if (CollUtil.isEmpty(mdPbStoragevehicleexts)) {
|
||||
throw new BadRequestException("此木箱没有绑定托盘号!" + whereJson.get("vehicle_code"));
|
||||
}
|
||||
MdPbStoragevehicleext mdPbStoragevehicleext = mdPbStoragevehicleexts.get(0);
|
||||
// 创建任务
|
||||
@@ -737,9 +737,12 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
throw new BadRequestException("出入库明细不能为空!");
|
||||
}
|
||||
|
||||
JSONObject jsonSub = WQLObject.getWQLObject("pdm_bi_subpackagerelation")
|
||||
.query("package_box_sn = '" + rows.get(0).getString("package_box_sn") + "'")
|
||||
.uniqueResult(0);
|
||||
// JSONObject jsonSub = WQLObject.getWQLObject("pdm_bi_subpackagerelation")
|
||||
// .query("package_box_sn = '" + rows.get(0).getString("package_box_sn") + "'")
|
||||
// .uniqueResult(0);
|
||||
|
||||
|
||||
PdmBiSubpackagerelation packageBoxSn = pdmBiSubpackagerelationMapper.selectOne(new LambdaQueryWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getPackage_box_sn, rows.get(0).getString("package_box_sn")));
|
||||
|
||||
// 仓库信息
|
||||
StorattrDto storattrDto = storattrService.findById((String) whereJson.get("stor_id"));
|
||||
@@ -749,12 +752,12 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
String currentNickName = SecurityUtils.getCurrentNickName();
|
||||
if (currentUserId.equals(IOSEnum.EXT_ACS.code("acs"))) {
|
||||
// 如果是外部系统创建人全部写系统参数: 如果包装关系上有创建人就用包装关系上的,如果没有就用默认的
|
||||
if (ObjectUtil.isEmpty(jsonSub) || ObjectUtil.isEmpty(jsonSub.getString("create_id"))) {
|
||||
if (ObjectUtil.isEmpty(packageBoxSn) || ObjectUtil.isEmpty(packageBoxSn.getCreate_id())) {
|
||||
currentUserId = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("IOS_CONFIRM_USER").getValue();
|
||||
currentNickName = IOSEnum.EXT_ACS.code("kc");
|
||||
} else {
|
||||
currentUserId = jsonSub.getString("create_id");
|
||||
currentNickName = jsonSub.getString("create_name");
|
||||
currentUserId = String.valueOf(packageBoxSn.getCreate_id());
|
||||
currentNickName = packageBoxSn.getCreate_name();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -772,7 +775,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
.detail_count(BigDecimal.valueOf(((ArrayList<HashMap>) whereJson.get("tableData")).size()))
|
||||
.remark(whereJson.get("remark").toString())
|
||||
.bill_status(whereJson.get("bill_status").toString())
|
||||
.total_qty(BigDecimal.valueOf(Double.parseDouble(whereJson.get("total_qty").toString())))
|
||||
.total_qty(whereJson.get("total_qty") == null ? null : BigDecimal.valueOf(Double.parseDouble(whereJson.get("total_qty").toString())))
|
||||
.create_mode(IOSEnum.CREATE_MODE.code("PC产生"))
|
||||
.input_optid(currentUserId)
|
||||
.input_optname(currentNickName)
|
||||
@@ -1072,7 +1075,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
||||
mstDao.setUpload_time(DateUtil.now());
|
||||
this.updateById(mstDao);
|
||||
} catch (Exception e) {
|
||||
log.info("回传mes失败:"+e.getMessage());
|
||||
log.info("回传mes失败:" + e.getMessage());
|
||||
this.updateById(mstDao);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ public class StIvtIostorinvdtlServiceImpl extends ServiceImpl<StIvtIostorinvdtlM
|
||||
.bill_status(IOSEnum.BILL_STATUS.code("生成"))
|
||||
.qty_unit_id(unitDao.getString("measure_unit_id"))
|
||||
.qty_unit_name(unitDao.getString("unit_name"))
|
||||
.plan_qty(row.getBigDecimal("plan_qty"))
|
||||
.plan_qty(row.getBigDecimal("net_weight"))
|
||||
.source_bill_type(row.getString("source_bill_type"))
|
||||
.source_bill_code(row.getString("source_bill_code"))
|
||||
.source_bill_table(row.getString("source_bill_table"))
|
||||
@@ -134,7 +134,7 @@ public class StIvtIostorinvdtlServiceImpl extends ServiceImpl<StIvtIostorinvdtlM
|
||||
.base_bill_table(row.getString("base_bill_table"))
|
||||
.remark(row.getString("remark"))
|
||||
.assign_qty(BigDecimal.valueOf(0))
|
||||
.unassign_qty(row.getBigDecimal("plan_qty"))
|
||||
.unassign_qty(row.getBigDecimal("net_weight"))
|
||||
.box_no(row.getString("package_box_sn"))
|
||||
.vbeln(row.getString("vbeln"))
|
||||
.posnr(row.getString("posnr"))
|
||||
@@ -165,7 +165,6 @@ public class StIvtIostorinvdtlServiceImpl extends ServiceImpl<StIvtIostorinvdtlM
|
||||
map.put(dtlDao.getIostorinvdtl_id().toString(),disDaoList);
|
||||
|
||||
}
|
||||
|
||||
this.saveBatch(dtlDaoList);
|
||||
|
||||
return map;
|
||||
|
||||
@@ -933,7 +933,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
* 查询所属排的所有木箱
|
||||
*/
|
||||
String row_in = rowList.stream()
|
||||
.map(row -> row.getRow_num())
|
||||
.map(row ->String.valueOf( row.getRow_num()))
|
||||
.collect(Collectors.joining("','"));
|
||||
|
||||
jsonParam.put("row_in", "('" + row_in + "')");
|
||||
@@ -954,7 +954,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
StructattrQuerry jsonRow = rowList.get(i);
|
||||
|
||||
List<StIvtStructattr> box_num = boxAllList.stream()
|
||||
.filter(row -> row.getRow_num().equals(jsonRow.getRow_num()))
|
||||
.filter(row ->String.valueOf( row.getRow_num()).equals(jsonRow.getRow_num()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
jsonRow.setBox_num(String.valueOf(box_num.size()));
|
||||
@@ -1051,10 +1051,10 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
|
||||
// 获取此货位对应的浅货位
|
||||
List<StIvtStructattr> lowAttr = structAllList.stream()
|
||||
.filter(row -> row.getCol_num().equals(json.getCol_num()) &&
|
||||
row.getLayer_num().equals(json.getLayer_num()) &&
|
||||
row.getRow_num().equals(json.getRow_num()) &&
|
||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||
.filter(row ->String.valueOf(row.getCol_num()).equals(json.getCol_num()) &&
|
||||
String.valueOf(row.getLayer_num()).equals(json.getLayer_num()) &&
|
||||
String.valueOf( row.getRow_num()).equals(json.getRow_num()) &&
|
||||
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
||||
@@ -1080,10 +1080,10 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
*/
|
||||
// 获取此货位对应的深货位
|
||||
List<StIvtStructattr> darkAttr = structAllList.stream()
|
||||
.filter(row -> row.getCol_num().equals(json.getCol_num()) &&
|
||||
row.getLayer_num().equals(json.getLayer_num()) &&
|
||||
row.getRow_num().equals(json.getRow_num()) &&
|
||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深")))
|
||||
.filter(row ->String.valueOf(row.getCol_num()).equals(json.getCol_num()) &&
|
||||
String.valueOf(row.getLayer_num()).equals(json.getLayer_num()) &&
|
||||
String.valueOf( row.getRow_num()).equals(json.getRow_num()) &&
|
||||
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("深")))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) {
|
||||
|
||||
@@ -333,7 +333,7 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
|
||||
for (int i = 0; i < vehicleStructRow.size(); i++) {
|
||||
String vehicleStr = vehicleStructRow.get(i);
|
||||
List<StIvtStructattr> stIvtStructattrList = boxAllList.stream()
|
||||
.filter(row -> row.getRow_num().equals(vehicleStr))
|
||||
.filter(row ->String.valueOf( row.getRow_num()).equals(vehicleStr))
|
||||
.collect(Collectors.toList());
|
||||
StructattrQuerry structattrQuerry = new StructattrQuerry();
|
||||
structattrQuerry.setBox_num(String.valueOf(stIvtStructattrList.size()));
|
||||
@@ -426,9 +426,9 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
|
||||
|
||||
// 获取此货位对应的浅货位
|
||||
List<StIvtStructattr> lowAttr = allVehicleStruct.stream()
|
||||
.filter(row -> row.getCol_num().equals(stIvtStructattr.getCol_num()) &&
|
||||
row.getLayer_num().equals(stIvtStructattr.getLayer_num()) &&
|
||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||
.filter(row ->String.valueOf(row.getCol_num()).equals(stIvtStructattr.getCol_num()) &&
|
||||
String.valueOf(row.getLayer_num()).equals(stIvtStructattr.getLayer_num()) &&
|
||||
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (CollUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
||||
@@ -454,9 +454,9 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
|
||||
*/
|
||||
// 获取此货位对应的深货位
|
||||
List<StIvtStructattr> darkAttr = allVehicleStruct.stream()
|
||||
.filter(row -> row.getCol_num().equals(stIvtStructattr.getCol_num()) &&
|
||||
row.getLayer_num().equals(stIvtStructattr.getLayer_num()) &&
|
||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深")))
|
||||
.filter(row ->String.valueOf(row.getCol_num()).equals(stIvtStructattr.getCol_num()) &&
|
||||
String.valueOf(row.getLayer_num()).equals(stIvtStructattr.getLayer_num()) &&
|
||||
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("深")))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) {
|
||||
|
||||
@@ -294,9 +294,9 @@ public class LashManageServiceImpl implements LashManageService {
|
||||
|
||||
String bill_type = whereJson.getString("bill_type");
|
||||
//换标出库或转单出库的rgv任务目的点需要特殊处理
|
||||
if (bill_type.equals(IOSEnum.OUT_TYPE.code("转单出库")) || bill_type.equals(IOSEnum.OUT_TYPE.code("换标出库"))) {
|
||||
next_device_code = IOSEnum.CHANGE_OUT.code("换标出库口");
|
||||
} else {
|
||||
// if (bill_type.equals(IOSEnum.OUT_TYPE.code("转单出库")) || bill_type.equals(IOSEnum.OUT_TYPE.code("换标出库"))) {
|
||||
// next_device_code = IOSEnum.CHANGE_OUT.code("换标出库口");
|
||||
// } else {
|
||||
// 判断是否是启用状态
|
||||
// List<JSONObject> jsonList = pointTab.query("region_code = 'BLKCK' AND is_used = '1'")
|
||||
// .getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
@@ -319,7 +319,7 @@ public class LashManageServiceImpl implements LashManageService {
|
||||
next_device_code = schBasePoints.get(0).getPoint_code();
|
||||
}
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
// 查询木箱对应的载具
|
||||
// JSONObject jsonVeExt = extTab.query("pcsn = '" + whereJson.getString("vehicle_code") + "'")
|
||||
|
||||
@@ -509,7 +509,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
|
||||
|
||||
// 查询某一巷道所有相同规格木箱排的仓位
|
||||
String row_num_in = allRowList.stream()
|
||||
.map(row -> row.getRow_num())
|
||||
.map(row ->String.valueOf( row.getRow_num()))
|
||||
.collect(Collectors.joining("','"));
|
||||
|
||||
whereJson.put("flag", "2");
|
||||
@@ -526,7 +526,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
|
||||
StructattrQuerry jsonRow = allRowList.get(i);
|
||||
|
||||
List<StIvtStructattr> blockAttrNum = likeAttrList.stream()
|
||||
.filter(row -> row.getRow_num().equals(jsonRow.getRow_num()))
|
||||
.filter(row ->String.valueOf( row.getRow_num()).equals(jsonRow.getRow_num()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
jsonRow.setBlock_num(jsonRow.getBlock_num());
|
||||
@@ -621,9 +621,9 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
|
||||
*/
|
||||
// 获取此货位对应的浅货位
|
||||
List<StIvtStructattr> lowAttr = structAllList.stream()
|
||||
.filter(row -> row.getCol_num().equals(json.getCol_num()) &&
|
||||
row.getLayer_num().equals(json.getLayer_num()) &&
|
||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||
.filter(row ->String.valueOf(row.getCol_num()).equals(json.getCol_num()) &&
|
||||
String.valueOf(row.getLayer_num()).equals(json.getLayer_num()) &&
|
||||
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
||||
|
||||
@@ -38,6 +38,7 @@ import org.nl.common.utils.IdUtil;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.system.service.param.ISysParamService;
|
||||
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
|
||||
import org.nl.wms.st.inbill.service.StorPublicService;
|
||||
@@ -543,140 +544,32 @@ public class OutBussManageServiceImpl implements OutBussManageService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createMove2(List<JSONObject> list, Consumer<String> allTransactionConsumer) {
|
||||
public void createMove2(List<JSONObject> list) {
|
||||
|
||||
// 获取子卷包装集合
|
||||
List<String> boxs = list.stream()
|
||||
.map(row -> row.getString("storagevehicle_code"))
|
||||
.collect(Collectors.toList());
|
||||
List<JSONObject> subList = subpackagerelationService.getSubInfoByBoxNosToObject(boxs);
|
||||
|
||||
|
||||
// 查询物料集合
|
||||
List<String> materialCodes = subList.stream()
|
||||
.map(row -> row.getString("product_name"))
|
||||
.collect(Collectors.toList());
|
||||
List<JSONObject> materList = materialbaseService.getMaterialAllByCodes(materialCodes);
|
||||
|
||||
OutBussManageService myService = SpringContextHolder.getBean(OutBussManageService.class);
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
JSONObject json = list.get(i);
|
||||
|
||||
allTransactionConsumer.accept(json.getString("struct_code"));
|
||||
|
||||
// 生成移库单传入参数
|
||||
JSONObject mapParam = new JSONObject();
|
||||
// 明细参数
|
||||
JSONArray table = new JSONArray();
|
||||
|
||||
mapParam.put("bill_type", IOSEnum.MOVE_TYPE.code("出库移库"));
|
||||
mapParam.put("buss_type", IOSEnum.MOVE_TYPE.code("出库移库"));
|
||||
mapParam.put("bill_status", IOSEnum.MOVE_STATUS.code("提交"));
|
||||
mapParam.put("biz_date", DateUtil.today());
|
||||
mapParam.put("stor_code", json.getString("stor_code"));
|
||||
mapParam.put("stor_id", json.getString("stor_id"));
|
||||
mapParam.put("stor_name", json.getString("stor_name"));
|
||||
mapParam.put("is_task", IOSEnum.IS_NOTANDYES.code("是"));
|
||||
|
||||
// 过滤对应物料
|
||||
JSONObject jsonSub = subList.stream()
|
||||
.filter(row -> row.getString("package_box_sn").equals(json.getString("storagevehicle_code")))
|
||||
.collect(Collectors.toList()).get(0);
|
||||
|
||||
JSONObject jsonMater = materList.stream()
|
||||
.filter(row -> row.getString("material_code").equals(jsonSub.getString("product_name")))
|
||||
.collect(Collectors.toList()).get(0);
|
||||
|
||||
// 查询移入货位
|
||||
JSONObject moveParam = new JSONObject();
|
||||
moveParam.put("stor_id", json.getString("stor_id"));
|
||||
moveParam.put("sect_id", RegionTypeEnum.TWO_BZC01.getId());
|
||||
moveParam.put("box_no", json.getString("storagevehicle_code"));
|
||||
moveParam.put("material_id", jsonMater.getString("material_id"));
|
||||
//根据木箱高度,判断入库仓位的高度、
|
||||
String height = "";
|
||||
String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue();
|
||||
String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue();
|
||||
// 查询木箱信息
|
||||
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
|
||||
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
||||
.eq(BstIvtBoxinfo::getBox_no, json.getString("storagevehicle_code"))
|
||||
);
|
||||
|
||||
String box_high = boxDao.getBox_high();
|
||||
if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) {
|
||||
height = "'1','2','3'";
|
||||
} else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) {
|
||||
height = "'2','3'";
|
||||
} else {
|
||||
height = "'3'";
|
||||
}
|
||||
moveParam.put("height", height);
|
||||
moveParam.put("vehicle_type", boxDao.getVehicle_type());
|
||||
// 移库巷道
|
||||
moveParam.put("move_block_num",json.getString("block_num"));
|
||||
|
||||
// TODO JSONObject jsonMove = inBussManageService.getOneStruct(moveParam);
|
||||
JSONObject jsonMove = twoInBussManageService.getOneStruct(moveParam);
|
||||
|
||||
// 查询移出货位的库存物料
|
||||
JSONObject jsonMoveIvt = WQL.getWO("ST_OUTIVT03")
|
||||
.addParam("flag", "6")
|
||||
.addParam("struct_id", json.getString("struct_id"))
|
||||
.process().uniqueResult(0);
|
||||
|
||||
// 移库单明细
|
||||
JSONObject jsonMoveDtl = new JSONObject();
|
||||
jsonMoveDtl.put("is_task", "2");
|
||||
jsonMoveDtl.put("turnout_sect_id", json.getLongValue("sect_id"));
|
||||
jsonMoveDtl.put("turnout_sect_code", json.getString("sect_code"));
|
||||
jsonMoveDtl.put("turnout_sect_name", json.getString("sect_name"));
|
||||
jsonMoveDtl.put("turnout_struct_id", json.getLongValue("struct_id"));
|
||||
jsonMoveDtl.put("turnout_struct_code", json.getString("struct_code"));
|
||||
jsonMoveDtl.put("turnout_struct_name", json.getString("struct_name"));
|
||||
jsonMoveDtl.put("material_id", jsonMoveIvt.getLongValue("material_id"));
|
||||
jsonMoveDtl.put("pcsn", jsonMoveIvt.getString("pcsn"));
|
||||
jsonMoveDtl.put("quality_scode", IOSEnum.QUALITY_SCODE.code("合格品"));
|
||||
jsonMoveDtl.put("qty_unit_id", jsonMoveIvt.getLongValue("qty_unit_id"));
|
||||
jsonMoveDtl.put("qty_unit_name", jsonMoveIvt.getString("unit_name"));
|
||||
jsonMoveDtl.put("qty", jsonMoveIvt.getDoubleValue("canuse_qty"));
|
||||
jsonMoveDtl.put("storagevehicle_code", json.getString("storagevehicle_code"));
|
||||
jsonMoveDtl.put("turnin_sect_id", jsonMove.getLongValue("sect_id"));
|
||||
jsonMoveDtl.put("turnin_sect_code", jsonMove.getString("sect_code"));
|
||||
jsonMoveDtl.put("turnin_sect_name", jsonMove.getString("sect_name"));
|
||||
jsonMoveDtl.put("turnin_struct_id", jsonMove.getLongValue("struct_id"));
|
||||
jsonMoveDtl.put("turnin_struct_code", jsonMove.getString("struct_code"));
|
||||
jsonMoveDtl.put("turnin_struct_name", jsonMove.getString("struct_name"));
|
||||
|
||||
// 查询木箱对应的载具
|
||||
JSONObject jsonVeExt = mdPbStoragevehicleextService.getOneByPcsnToObject(json.getString("storagevehicle_code"));
|
||||
|
||||
if (ObjectUtil.isEmpty(jsonVeExt)) {
|
||||
throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code"));
|
||||
}
|
||||
|
||||
// 生成任务
|
||||
JSONObject param2 = new JSONObject();
|
||||
param2.put("task_type", "010709");
|
||||
param2.put("vehicle_code", json.getString("storagevehicle_code"));
|
||||
param2.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code"));
|
||||
param2.put("point_code1", json.getString("struct_code"));
|
||||
param2.put("point_code2", jsonMove.getString("struct_code"));
|
||||
|
||||
HandMoveStorAcsTask handMoveStorAcsTask = new HandMoveStorAcsTask();
|
||||
String move_task_id = handMoveStorAcsTask.createTask(param2);
|
||||
|
||||
// 回显移库明细任务id
|
||||
jsonMoveDtl.put("task_id", move_task_id);
|
||||
table.add(jsonMoveDtl);
|
||||
|
||||
mapParam.put("tableData", table);
|
||||
// 调用移库单新增方法
|
||||
handMoveStorService.insertDtl2(mapParam);
|
||||
|
||||
// 下发任务
|
||||
handMoveStorAcsTask.immediateNotifyAcs(null);
|
||||
myService.createForMove(json,subList,materList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public JSONObject taskExceptional(JSONObject jsonObject) {
|
||||
@@ -705,6 +598,130 @@ public class OutBussManageServiceImpl implements OutBussManageService {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 移库事务处理
|
||||
* @param json 移库仓位个体
|
||||
* @param subList 子卷包装关系集合
|
||||
* @param materList 物料集合
|
||||
*/
|
||||
@Transactional
|
||||
public void createForMove(JSONObject json, List<JSONObject> subList, List<JSONObject> materList) {
|
||||
|
||||
// 生成移库单传入参数
|
||||
JSONObject mapParam = new JSONObject();
|
||||
// 明细参数
|
||||
JSONArray table = new JSONArray();
|
||||
|
||||
mapParam.put("bill_type", IOSEnum.MOVE_TYPE.code("出库移库"));
|
||||
mapParam.put("buss_type", IOSEnum.MOVE_TYPE.code("出库移库"));
|
||||
mapParam.put("bill_status", IOSEnum.MOVE_STATUS.code("提交"));
|
||||
mapParam.put("biz_date", DateUtil.today());
|
||||
mapParam.put("stor_code", json.getString("stor_code"));
|
||||
mapParam.put("stor_id", json.getString("stor_id"));
|
||||
mapParam.put("stor_name", json.getString("stor_name"));
|
||||
mapParam.put("is_task", IOSEnum.IS_NOTANDYES.code("是"));
|
||||
|
||||
// 过滤对应物料
|
||||
JSONObject jsonSub = subList.stream()
|
||||
.filter(row -> row.getString("package_box_sn").equals(json.getString("storagevehicle_code")))
|
||||
.collect(Collectors.toList()).get(0);
|
||||
|
||||
JSONObject jsonMater = materList.stream()
|
||||
.filter(row -> row.getString("material_code").equals(jsonSub.getString("product_name")))
|
||||
.collect(Collectors.toList()).get(0);
|
||||
|
||||
// 查询移入货位
|
||||
JSONObject moveParam = new JSONObject();
|
||||
moveParam.put("stor_id", json.getString("stor_id"));
|
||||
moveParam.put("sect_id", RegionTypeEnum.TWO_BZC01.getId());
|
||||
moveParam.put("box_no", json.getString("storagevehicle_code"));
|
||||
moveParam.put("material_id", jsonMater.getString("material_id"));
|
||||
//根据木箱高度,判断入库仓位的高度、
|
||||
String height = "";
|
||||
String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue();
|
||||
String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue();
|
||||
// 查询木箱信息
|
||||
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
|
||||
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
||||
.eq(BstIvtBoxinfo::getBox_no, json.getString("storagevehicle_code"))
|
||||
);
|
||||
|
||||
String box_high = boxDao.getBox_high();
|
||||
if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) {
|
||||
height = "'1','2','3'";
|
||||
} else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) {
|
||||
height = "'2','3'";
|
||||
} else {
|
||||
height = "'3'";
|
||||
}
|
||||
moveParam.put("height", height);
|
||||
moveParam.put("vehicle_type", boxDao.getVehicle_type());
|
||||
// 移库巷道
|
||||
moveParam.put("move_block_num",json.getString("block_num"));
|
||||
|
||||
// TODO JSONObject jsonMove = inBussManageService.getOneStruct(moveParam);
|
||||
JSONObject jsonMove = twoInBussManageService.getOneStruct(moveParam);
|
||||
|
||||
// 查询移出货位的库存物料
|
||||
JSONObject jsonMoveIvt = WQL.getWO("ST_OUTIVT03")
|
||||
.addParam("flag", "6")
|
||||
.addParam("struct_id", json.getString("struct_id"))
|
||||
.process().uniqueResult(0);
|
||||
|
||||
// 移库单明细
|
||||
JSONObject jsonMoveDtl = new JSONObject();
|
||||
jsonMoveDtl.put("is_task", "2");
|
||||
jsonMoveDtl.put("turnout_sect_id", json.getLongValue("sect_id"));
|
||||
jsonMoveDtl.put("turnout_sect_code", json.getString("sect_code"));
|
||||
jsonMoveDtl.put("turnout_sect_name", json.getString("sect_name"));
|
||||
jsonMoveDtl.put("turnout_struct_id", json.getLongValue("struct_id"));
|
||||
jsonMoveDtl.put("turnout_struct_code", json.getString("struct_code"));
|
||||
jsonMoveDtl.put("turnout_struct_name", json.getString("struct_name"));
|
||||
jsonMoveDtl.put("material_id", jsonMoveIvt.getLongValue("material_id"));
|
||||
jsonMoveDtl.put("pcsn", jsonMoveIvt.getString("pcsn"));
|
||||
jsonMoveDtl.put("quality_scode", IOSEnum.QUALITY_SCODE.code("合格品"));
|
||||
jsonMoveDtl.put("qty_unit_id", jsonMoveIvt.getLongValue("qty_unit_id"));
|
||||
jsonMoveDtl.put("qty_unit_name", jsonMoveIvt.getString("unit_name"));
|
||||
jsonMoveDtl.put("qty", jsonMoveIvt.getDoubleValue("canuse_qty"));
|
||||
jsonMoveDtl.put("storagevehicle_code", json.getString("storagevehicle_code"));
|
||||
jsonMoveDtl.put("turnin_sect_id", jsonMove.getLongValue("sect_id"));
|
||||
jsonMoveDtl.put("turnin_sect_code", jsonMove.getString("sect_code"));
|
||||
jsonMoveDtl.put("turnin_sect_name", jsonMove.getString("sect_name"));
|
||||
jsonMoveDtl.put("turnin_struct_id", jsonMove.getLongValue("struct_id"));
|
||||
jsonMoveDtl.put("turnin_struct_code", jsonMove.getString("struct_code"));
|
||||
jsonMoveDtl.put("turnin_struct_name", jsonMove.getString("struct_name"));
|
||||
|
||||
// 查询木箱对应的载具
|
||||
JSONObject jsonVeExt = mdPbStoragevehicleextService.getOneByPcsnToObject(json.getString("storagevehicle_code"));
|
||||
if (ObjectUtil.isEmpty(jsonVeExt)) {
|
||||
throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code"));
|
||||
}
|
||||
|
||||
// 生成任务
|
||||
JSONObject param2 = new JSONObject();
|
||||
param2.put("task_type", "010709");
|
||||
param2.put("vehicle_code", json.getString("storagevehicle_code"));
|
||||
param2.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code"));
|
||||
param2.put("point_code1", json.getString("struct_code"));
|
||||
param2.put("point_code2", jsonMove.getString("struct_code"));
|
||||
|
||||
HandMoveStorAcsTask handMoveStorAcsTask = new HandMoveStorAcsTask();
|
||||
String move_task_id = handMoveStorAcsTask.createTask(param2);
|
||||
|
||||
// 回显移库明细任务id
|
||||
jsonMoveDtl.put("task_id", move_task_id);
|
||||
table.add(jsonMoveDtl);
|
||||
|
||||
mapParam.put("tableData", table);
|
||||
// 调用移库单新增方法
|
||||
handMoveStorService.insertDtl2(mapParam);
|
||||
|
||||
// 下发任务
|
||||
handMoveStorAcsTask.immediateNotifyAcs(null);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 异常出库转库任务
|
||||
* @param jsonObject {task_code : 任务编码}
|
||||
|
||||
@@ -428,7 +428,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
|
||||
String structRow = outVehicleStructRow.get(i);
|
||||
|
||||
List<StIvtStructattr> stIvtStructattrs = boxAllList.stream()
|
||||
.filter(row -> row.getRow_num().equals(structRow))
|
||||
.filter(row ->String.valueOf( row.getRow_num()).equals(structRow))
|
||||
.collect(Collectors.toList());
|
||||
StructattrQuerry structattrQuerry = new StructattrQuerry();
|
||||
structattrQuerry.setRow_num(structRow);
|
||||
@@ -486,9 +486,9 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
|
||||
*/
|
||||
// 获取此货位对应的浅货位
|
||||
List<StIvtStructattr> lowAttr = allVehicleStruct.stream()
|
||||
.filter(row -> row.getCol_num().equals(stIvtStructattr.getCol_num()) &&
|
||||
row.getLayer_num().equals(stIvtStructattr.getLayer_num()) &&
|
||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||
.filter(row ->String.valueOf(row.getCol_num()).equals(stIvtStructattr.getCol_num()) &&
|
||||
String.valueOf(row.getLayer_num()).equals(stIvtStructattr.getLayer_num()) &&
|
||||
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
||||
|
||||
@@ -99,7 +99,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
||||
|
||||
// 过滤此排的空位
|
||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
||||
.filter(row -> row.getRow_num().toString().equals(json.getString("row_num")) &&
|
||||
.filter(row ->String.valueOf( row.getRow_num()).toString().equals(json.getString("row_num")) &&
|
||||
ObjectUtil.isEmpty(row.getVehicle_code()) &&
|
||||
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
)
|
||||
@@ -122,7 +122,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
||||
|
||||
// 找出这一排的所有空位
|
||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
||||
.filter(row -> row.getRow_num().toString().equals(json.getString("row_num")) &&
|
||||
.filter(row ->String.valueOf( row.getRow_num()).toString().equals(json.getString("row_num")) &&
|
||||
ObjectUtil.isEmpty(row.getVehicle_code()) &&
|
||||
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
)
|
||||
@@ -176,7 +176,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
||||
|
||||
// 找出这一排的所有空位
|
||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
||||
.filter(row -> row.getRow_num().toString().equals(json.getString("row_num")) &&
|
||||
.filter(row ->String.valueOf( row.getRow_num()).toString().equals(json.getString("row_num")) &&
|
||||
ObjectUtil.isEmpty(row.getVehicle_code()) &&
|
||||
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
)
|
||||
@@ -259,7 +259,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
||||
|
||||
// 过滤此排的空位
|
||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
||||
.filter(row -> row.getRow_num().toString().equals(json.getString("row_num")) &&
|
||||
.filter(row ->String.valueOf( row.getRow_num()).toString().equals(json.getString("row_num")) &&
|
||||
ObjectUtil.isEmpty(row.getVehicle_code()) &&
|
||||
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
)
|
||||
@@ -282,7 +282,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
||||
|
||||
// 找出这一排的所有空位
|
||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
||||
.filter(row -> row.getRow_num().toString().equals(json.getString("row_num")) &&
|
||||
.filter(row ->String.valueOf( row.getRow_num()).toString().equals(json.getString("row_num")) &&
|
||||
ObjectUtil.isEmpty(row.getVehicle_code()) &&
|
||||
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
)
|
||||
@@ -340,7 +340,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
||||
|
||||
// 找出这一排的所有空位
|
||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
||||
.filter(row -> row.getRow_num().toString().equals(json.getString("row_num")) &&
|
||||
.filter(row ->String.valueOf( row.getRow_num()).toString().equals(json.getString("row_num")) &&
|
||||
ObjectUtil.isEmpty(row.getVehicle_code()) &&
|
||||
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
)
|
||||
@@ -419,7 +419,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
||||
|
||||
// 找出这一排所有空位
|
||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
||||
.filter(row -> row.getRow_num().toString().equals(pointDao.getRow_num().toString()) &&
|
||||
.filter(row ->String.valueOf( row.getRow_num()).toString().equals(pointDao.getRow_num().toString()) &&
|
||||
ObjectUtil.isEmpty(row.getVehicle_code())
|
||||
)
|
||||
.sorted(Comparator.comparing(SchBasePoint::getIn_order_seq))
|
||||
|
||||
@@ -255,20 +255,20 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService {
|
||||
for (int i = 0; i < stIvtStructattrs.size(); i++) {
|
||||
StIvtStructattr stIvtStructattr = stIvtStructattrs.get(i);
|
||||
// 判断伸位
|
||||
if (stIvtStructattr.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) {
|
||||
if (String.valueOf(stIvtStructattr.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) {
|
||||
// 无需深度
|
||||
stIvtStructattrReturn = stIvtStructattr;
|
||||
break;
|
||||
} else if (stIvtStructattr.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) {
|
||||
} else if (String.valueOf(stIvtStructattr.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) {
|
||||
/*
|
||||
* 深货位:判断浅是否阻挡
|
||||
*/
|
||||
// 获取此货位对应的浅货位
|
||||
List<StIvtStructattr> lowAttr = allStruct.stream()
|
||||
.filter(row -> row.getCol_num().equals(String.valueOf(stIvtStructattr.getCol_num())) &&
|
||||
row.getLayer_num().equals(String.valueOf(stIvtStructattr.getLayer_num())) &&
|
||||
row.getRow_num().equals(String.valueOf(stIvtStructattr.getRow_num())) &&
|
||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))).collect(Collectors.toList());
|
||||
.filter(row ->String.valueOf(row.getCol_num()).equals(String.valueOf(stIvtStructattr.getCol_num())) &&
|
||||
String.valueOf(row.getLayer_num()).equals(String.valueOf(stIvtStructattr.getLayer_num())) &&
|
||||
String.valueOf( row.getRow_num()).equals(String.valueOf(stIvtStructattr.getRow_num())) &&
|
||||
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))).collect(Collectors.toList());
|
||||
|
||||
if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
||||
notInBlockList.clear();
|
||||
@@ -284,16 +284,16 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService {
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
} else if (stIvtStructattr.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) {
|
||||
} else if (String.valueOf(stIvtStructattr.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) {
|
||||
/*
|
||||
* 浅货位:判断深货位是否空洞
|
||||
*/
|
||||
// 获取此货位对应的深货位
|
||||
List<StIvtStructattr> darkAttr = allStruct.stream()
|
||||
.filter(row -> row.getCol_num().equals(String.valueOf(stIvtStructattr.getCol_num())) &&
|
||||
row.getLayer_num().equals(String.valueOf(stIvtStructattr.getLayer_num())) &&
|
||||
row.getRow_num().equals(String.valueOf(stIvtStructattr.getRow_num())) &&
|
||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深"))).collect(Collectors.toList());
|
||||
.filter(row ->String.valueOf(row.getCol_num()).equals(String.valueOf(stIvtStructattr.getCol_num())) &&
|
||||
String.valueOf(row.getLayer_num()).equals(String.valueOf(stIvtStructattr.getLayer_num())) &&
|
||||
String.valueOf( row.getRow_num()).equals(String.valueOf(stIvtStructattr.getRow_num())) &&
|
||||
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("深"))).collect(Collectors.toList());
|
||||
|
||||
if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) {
|
||||
notInBlockList.clear();
|
||||
@@ -367,10 +367,10 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService {
|
||||
|
||||
// 找对应的浅货位
|
||||
StIvtStructattr darkJson = stIvtStructattrs.stream()
|
||||
.filter(row -> row.getCol_num().equals(json.getCol_num()) &&
|
||||
row.getLayer_num().equals(json.getLayer_num()) &&
|
||||
row.getRow_num().equals(json.getRow_num()) &&
|
||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||
.filter(row ->String.valueOf(row.getCol_num()).equals(json.getCol_num()) &&
|
||||
String.valueOf(row.getLayer_num()).equals(json.getLayer_num()) &&
|
||||
String.valueOf( row.getRow_num()).equals(json.getRow_num()) &&
|
||||
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||
.findFirst().orElse(null);
|
||||
|
||||
if (ObjectUtil.isEmpty(darkJson)) {
|
||||
|
||||
@@ -51,7 +51,7 @@ public interface OutBussManageService {
|
||||
* @return List<StIvtIostorinvdis>: 分配明细集合
|
||||
*/
|
||||
List<StIvtIostorinvdis> manualDivIvt(StIvtIostorinvdtl dtlDao, List<JSONObject> ivtList);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 更新库存
|
||||
@@ -71,7 +71,7 @@ public interface OutBussManageService {
|
||||
* 创建移库单
|
||||
* @param list 需要创建移库单的仓位
|
||||
*/
|
||||
void createMove2(List<JSONObject> list, Consumer<String> allTransactionConsumer);
|
||||
void createMove2(List<JSONObject> list);
|
||||
|
||||
/**
|
||||
* 任务异常处理(1.满入 2.浅货位有货-放货时)
|
||||
@@ -81,4 +81,6 @@ public interface OutBussManageService {
|
||||
* @return point_code: 货位编码
|
||||
*/
|
||||
JSONObject taskExceptional(JSONObject whereJson);
|
||||
|
||||
void createForMove(JSONObject json, List<JSONObject> subList, List<JSONObject> materList);
|
||||
}
|
||||
|
||||
@@ -56,15 +56,15 @@
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<if test="param.row_in != null ">
|
||||
AND attr.row_num in
|
||||
<foreach collection="param.row_in" open="(" close=")" separator="," index="row_num">
|
||||
#{row_num}
|
||||
</foreach>
|
||||
</if>
|
||||
<!-- <if test="param.row_in != null ">-->
|
||||
<!-- AND attr.row_num in-->
|
||||
<!-- <foreach collection="param.row_in" open="(" close=")" separator="," index="row_num">-->
|
||||
<!-- #{row_num}-->
|
||||
<!-- </foreach>-->
|
||||
<!-- </if>-->
|
||||
|
||||
<if test="param.block_num != '' || param.block_num != null ">
|
||||
AND attr.block_num == #{param.block_num}
|
||||
AND attr.block_num = #{param.block_num}
|
||||
</if>
|
||||
<if test="param.row_num != '' || param.row_num != null ">
|
||||
AND attr.row_num != #{param.row_num}
|
||||
@@ -90,29 +90,29 @@
|
||||
AND box.is_packing = '1'
|
||||
|
||||
<if test="param.material_id != '' || param.material_id != null ">
|
||||
AND mater.material_id == #{param.material_id}
|
||||
AND mater.material_id = #{param.material_id}
|
||||
</if>
|
||||
|
||||
<if test="param.customer_name != '' || param.customer_name != null ">
|
||||
AND sub.customer_name == #{param.customer_name}
|
||||
AND sub.customer_name = #{param.customer_name}
|
||||
</if>
|
||||
|
||||
<if test="param.customer_name != '' || param.customer_name != null ">
|
||||
AND sub.customer_name == #{param.customer_name}
|
||||
AND sub.customer_name = #{param.customer_name}
|
||||
</if>
|
||||
|
||||
<if test="param.sale_order_name != '' || param.sale_order_name != null ">
|
||||
AND sub.sale_order_name == #{param.sale_order_name}
|
||||
AND sub.sale_order_name = #{param.sale_order_name}
|
||||
</if>
|
||||
|
||||
<if test="param.box_length != '' || param.box_length != null ">
|
||||
AND sub.box_length == #{param.box_length}
|
||||
AND sub.box_length = #{param.box_length}
|
||||
</if>
|
||||
<if test="param.box_width != '' || param.box_width != null ">
|
||||
AND sub.box_width == #{param.box_width}
|
||||
AND sub.box_width = #{param.box_width}
|
||||
</if>
|
||||
<if test="param.box_high != '' || param.box_high != null ">
|
||||
AND sub.box_high == #{param.box_high}
|
||||
AND sub.box_high = #{param.box_high}
|
||||
</if>
|
||||
|
||||
|
||||
@@ -156,23 +156,23 @@
|
||||
</foreach>
|
||||
|
||||
<if test="param.block_num != '' || param.block_num != null ">
|
||||
AND attr.block_num == #{param.block_num}
|
||||
AND attr.block_num = #{param.block_num}
|
||||
</if>
|
||||
|
||||
<if test="param.product_name != '' || param.product_name != null ">
|
||||
AND sub.product_name == #{param.product_name}
|
||||
AND sub.product_name = #{param.product_name}
|
||||
</if>
|
||||
<if test="param.sale_order_name != '' || param.sale_order_name != null ">
|
||||
AND sub.sale_order_name == #{param.sale_order_name}
|
||||
AND sub.sale_order_name = #{param.sale_order_name}
|
||||
</if>
|
||||
<if test="param.box_length != '' || param.box_length != null ">
|
||||
AND sub.box_length == #{param.box_length}
|
||||
AND sub.box_length = #{param.box_length}
|
||||
</if>
|
||||
<if test="param.box_width != '' || param.box_width != null ">
|
||||
AND sub.box_width == #{param.box_width}
|
||||
AND sub.box_width = #{param.box_width}
|
||||
</if>
|
||||
<if test="param.box_high != '' || param.box_high != null ">
|
||||
AND sub.box_high == #{param.box_high}
|
||||
AND sub.box_high = #{param.box_high}
|
||||
</if>
|
||||
|
||||
order by attr.col_num,attr.layer_num ASC
|
||||
@@ -189,7 +189,7 @@
|
||||
AND attr.sect_id = #{param.sect_id}
|
||||
|
||||
<if test="param.block_num != '' || param.block_num != null ">
|
||||
AND attr.block_num == #{param.block_num}
|
||||
AND attr.block_num = #{param.block_num}
|
||||
</if>
|
||||
|
||||
</select>
|
||||
@@ -212,7 +212,7 @@
|
||||
#{height}
|
||||
</foreach>
|
||||
<if test="param.block_num != '' || param.block_num != null ">
|
||||
AND attr.block_num == #{param.block_num}
|
||||
AND attr.block_num = #{param.block_num}
|
||||
</if>
|
||||
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
#{height}
|
||||
</foreach>
|
||||
<if test="param.block_num != '' || param.block_num != null ">
|
||||
AND attr.block_num == #{param.block_num}
|
||||
AND attr.block_num = #{param.block_num}
|
||||
</if>
|
||||
|
||||
</select>
|
||||
@@ -875,7 +875,7 @@
|
||||
AND box.material_code = #{param.material_code}
|
||||
</if>
|
||||
<if test="param.num != null and param.num != ''">
|
||||
AND box.num = #{输入.num}
|
||||
AND box.num = #{param.num}
|
||||
</if>
|
||||
</select>
|
||||
<select id="getStructsByBlockNum" resultType="org.nl.b_lms.storage_manage.st.dao.StIvtStructattr">
|
||||
|
||||
@@ -1283,7 +1283,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
} else {
|
||||
String pcsn = mdPdStoragevehicleext.getPcsn();
|
||||
if (StringUtils.isNotEmpty(pcsn)) {
|
||||
|
||||
List<StIvtStructattr> storagevehicleCode = stIvtStructattrMapper.selectList(new QueryWrapper<StIvtStructattr>().eq("storagevehicle_code", pcsn));
|
||||
if (storagevehicleCode != null && storagevehicleCode.size() > 0) {
|
||||
errorMsg.add("载具" + whereJson.getString("vehicle_code") + "已绑定" + pcsn);
|
||||
|
||||
@@ -115,7 +115,7 @@ public class CheckOutBillController {
|
||||
@PostMapping("/allSetPoint")
|
||||
@Log("一键设置")
|
||||
public ResponseEntity<Object> allSetPoint(@RequestBody JSONObject whereJson) {
|
||||
iStIvtIostorinvOutService.allSetPoint(whereJson);
|
||||
iStIvtIostorinvOutService.allSetPoint2(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
@PostMapping("/confirm")
|
||||
@@ -172,4 +172,25 @@ public class CheckOutBillController {
|
||||
checkOutBillService.issueTask(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Log("删除出库单")
|
||||
|
||||
//@PreAuthorize("@el.check('checkoutbill:del')")
|
||||
@DeleteMapping
|
||||
public ResponseEntity<Object> delete(@RequestBody Long[] ids) {
|
||||
iStIvtIostorinvOutService.deleteAll(ids);
|
||||
// checkOutBillService.deleteAll(ids);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Log("修改出库单")
|
||||
|
||||
public ResponseEntity<Object> update(@RequestBody JSONObject whereJson) {
|
||||
iStIvtIostorinvOutService.update(whereJson);
|
||||
// checkOutBillService.update(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user