add 出库联调
This commit is contained in:
@@ -341,7 +341,8 @@ public class PdmBiSubpackagerelation extends Model<PdmBiSubpackagerelation> {
|
|||||||
private String weight;
|
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) {
|
if (subList.get(0).getQuanlity_in_box().intValue() != split.length) {
|
||||||
throw new BadRequestException("当前木箱" + subList.get(0).getQuanlity_in_box() + "要装箱的子卷" + 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);
|
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 material_code;
|
||||||
|
|
||||||
private String num;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSON;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
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 com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||||
import org.nl.b_lms.sch.point.dao.SchBasePoint;
|
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.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.sch.task.dao.mapper.SchBaseTaskMapper;
|
||||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
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.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.RedissonUtils;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
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.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -49,7 +53,8 @@ public class TwoOutHeapTask extends AbstractAcsTask {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SchBasePointMapper schPointMapper;
|
private SchBasePointMapper schPointMapper;
|
||||||
|
@Autowired
|
||||||
|
private MdPdStoragevehicleextMapper mdPdStoragevehicleextMapper;
|
||||||
|
|
||||||
|
|
||||||
private List<SchBaseTask> sendTask(List<SchBaseTask> taskArrAll) {
|
private List<SchBaseTask> sendTask(List<SchBaseTask> taskArrAll) {
|
||||||
@@ -159,46 +164,51 @@ public class TwoOutHeapTask extends AbstractAcsTask {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
|
|
||||||
String task_id = taskObj.getString("task_id");
|
String task_id = taskObj.getString("task_id");
|
||||||
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "' and task_status < '07'").uniqueResult(0);
|
// JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "' and task_status < '07'").uniqueResult(0);
|
||||||
if (ObjectUtil.isNotEmpty(jsonTask)) {
|
|
||||||
|
|
||||||
|
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 (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||||
// 任务为执行之后就不允许取消
|
// 任务为执行之后就不允许取消
|
||||||
if (jsonTask.getIntValue("task_status") > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
|
if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
|
||||||
throw new BadRequestException("任务:" + jsonTask.getString("task_code") + "已执行,不可取消");
|
throw new BadRequestException("任务:" + schBaseTask.getTask_code() + "已执行,不可取消");
|
||||||
}
|
}
|
||||||
JSONObject param = new JSONObject();
|
schBaseTask.setIs_delete("1");
|
||||||
param.put("is_delete", "1");
|
schBaseTask.setUpdate_time(DateUtil.now());
|
||||||
param.put("update_time", DateUtil.now());
|
schBaseTaskMapper.updateById(schBaseTask);
|
||||||
taskTab.update(param, "task_id = '" + task_id + "'");
|
|
||||||
}
|
}
|
||||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||||
JSONObject param = new JSONObject();
|
schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||||
param.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
schBaseTask.setUpdate_time(DateUtil.now());
|
||||||
param.put("update_time", DateUtil.now());
|
schBaseTaskMapper.updateById(schBaseTask);
|
||||||
taskTab.update(param, "task_id = '" + task_id + "'");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||||
// 更新任务完成
|
// 更新任务完成
|
||||||
JSONObject param = new JSONObject();
|
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||||
param.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
schBaseTask.setUpdate_time(DateUtil.now());
|
||||||
param.put("update_time", DateUtil.now());
|
schBaseTaskMapper.updateById(schBaseTask);
|
||||||
taskTab.update(param, "task_id = '" + task_id + "'");
|
|
||||||
// 如果是异常出库口则不需要下发行架任务
|
// 如果是异常出库口则不需要下发行架任务
|
||||||
if (jsonTask.getString("point_code2").equals(IOSEnum.EXCEP_OUT.code("异常出库口"))) {
|
if (schBaseTask.getPoint_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)) {
|
MdPdStoragevehicleext mdPdStoragevehicleext = mdPdStoragevehicleextMapper.selectOne(new QueryWrapper<MdPdStoragevehicleext>().eq("storagevehicle_code",schBaseTask.getVehicle_code() ));
|
||||||
ext_jo.put("pcsn", "");
|
if (ObjectUtil.isNotEmpty(mdPdStoragevehicleext)) {
|
||||||
veExtTab.update(ext_jo);
|
mdPdStoragevehicleext.setPcsn("");
|
||||||
|
mdPdStoragevehicleextMapper.updateById(mdPdStoragevehicleext);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 下发桁架任务:捆扎
|
// 下发桁架任务:捆扎
|
||||||
JSONObject jsonParam = new JSONObject();
|
JSONObject jsonParam = new JSONObject();
|
||||||
jsonParam.put("device_code", jsonTask.getString("point_code2"));
|
jsonParam.put("device_code", schBaseTask.getPoint_code2());
|
||||||
jsonParam.put("vehicle_code", jsonTask.getString("vehicle_code"));
|
jsonParam.put("vehicle_code", schBaseTask.getVehicle_code());
|
||||||
jsonParam.put("task_group_id", jsonTask.getString("task_group_id"));
|
jsonParam.put("task_group_id", schBaseTask.getTask_group_id());
|
||||||
LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class);
|
LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class);
|
||||||
bean1.createLashTask(jsonParam);
|
bean1.createLashTask(jsonParam);
|
||||||
}
|
}
|
||||||
@@ -219,36 +229,41 @@ public class TwoOutHeapTask extends AbstractAcsTask {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String createTask(JSONObject form) {
|
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());
|
SchBaseTask task = new SchBaseTask();
|
||||||
json.put("handle_class", THIS_CLASS);
|
task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + "");
|
||||||
json.put("create_id", currentUserId);
|
task.setTask_code(IdUtil.getSnowflake(1, 1).nextId() + "");
|
||||||
json.put("create_name", currentUsername);
|
task.setTask_type(form.getString("task_type"));
|
||||||
json.put("create_time", DateUtil.now());
|
task.setVehicle_code(form.getString("vehicle_code"));
|
||||||
json.put("acs_task_type", "7");
|
task.setVehicle_code2(form.getString("vehicle_code2"));
|
||||||
WQLObject.getWQLObject("SCH_BASE_Task").insert(json);
|
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
|
@Override
|
||||||
|
|||||||
@@ -277,8 +277,7 @@ public class TwoOutTask extends AbstractAcsTask {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String createTask(JSONObject form) {
|
public String createTask(JSONObject form) {
|
||||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
|
||||||
String currentUsername = SecurityUtils.getCurrentUsername();
|
|
||||||
|
|
||||||
SchBaseTask task = new SchBaseTask();
|
SchBaseTask task = new SchBaseTask();
|
||||||
task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + "");
|
task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + "");
|
||||||
@@ -298,8 +297,8 @@ public class TwoOutTask extends AbstractAcsTask {
|
|||||||
task.setSort_seq(decimal);
|
task.setSort_seq(decimal);
|
||||||
}
|
}
|
||||||
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
|
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
|
||||||
task.setPoint_code1(form.getString("start_device_code"));
|
task.setPoint_code1(form.getString("point_code1"));
|
||||||
task.setPoint_code2(form.getString("next_device_code"));
|
task.setPoint_code2(form.getString("point_code2"));
|
||||||
task.setHandle_class(this.getClass().getName());
|
task.setHandle_class(this.getClass().getName());
|
||||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||||
task.setCreate_name(SecurityUtils.getCurrentUsername());
|
task.setCreate_name(SecurityUtils.getCurrentUsername());
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public enum IOSEnum {
|
|||||||
//出库单据类型
|
//出库单据类型
|
||||||
OUT_TYPE(MapOf.of("发货出库", "1001", "改切出库", "1003", "调拨出库", "1004", "拆箱出库", "1005",
|
OUT_TYPE(MapOf.of("发货出库", "1001", "改切出库", "1003", "调拨出库", "1004", "拆箱出库", "1005",
|
||||||
"返检出库", "1006", "超期报废", "1007", "退货报废", "1008", "质量问题报废", "1010", "其他报废", "1002",
|
"返检出库", "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 任务标识
|
* @return String 任务标识
|
||||||
*/
|
*/
|
||||||
String taskExceptionalOut(JSONObject whereJson);
|
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;
|
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.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
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.TwoExcepionalMoveTask;
|
||||||
import org.nl.b_lms.sch.tasks.TwoOutExceptionalTask;
|
import org.nl.b_lms.sch.tasks.TwoOutExceptionalTask;
|
||||||
import org.nl.b_lms.sch.tasks.TwoOutTask;
|
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.IBstIvtBoxinfoService;
|
||||||
import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService;
|
import org.nl.b_lms.storage_manage.database.service.IMdpbBoxtypeService;
|
||||||
import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo;
|
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.common.exception.BadRequestException;
|
||||||
import org.nl.modules.wql.WQL;
|
import org.nl.modules.wql.WQL;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
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.ISysParamService;
|
||||||
import org.nl.system.service.param.dao.Param;
|
import org.nl.system.service.param.dao.Param;
|
||||||
import org.nl.wms.basedata.st.service.StorattrService;
|
import org.nl.wms.basedata.st.service.StorattrService;
|
||||||
@@ -149,6 +152,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IMdpbBoxtypeService iMdpbBoxtypeService;
|
private IMdpbBoxtypeService iMdpbBoxtypeService;
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TwoOutTask twoOutTask;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 二期入库业务处理接口
|
* 二期入库业务处理接口
|
||||||
*/
|
*/
|
||||||
@@ -159,7 +166,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
|||||||
private RedissonClient redissonClient;
|
private RedissonClient redissonClient;
|
||||||
@Autowired
|
@Autowired
|
||||||
private StIvtStructivtService structivtService;
|
private StIvtStructivtService structivtService;
|
||||||
/** 仓位 */
|
/**
|
||||||
|
* 仓位
|
||||||
|
*/
|
||||||
@Autowired
|
@Autowired
|
||||||
private StIvtStructattrService structattrService;
|
private StIvtStructattrService structattrService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -172,14 +181,18 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
|||||||
private StIvtSectattrService sectattrService;
|
private StIvtSectattrService sectattrService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysParamService paramService;
|
private ISysParamService paramService;
|
||||||
/** 载具扩展属性表 */
|
/**
|
||||||
|
* 载具扩展属性表
|
||||||
|
*/
|
||||||
@Autowired
|
@Autowired
|
||||||
private IMdPbStoragevehicleextService mdPbStoragevehicleextService;
|
private IMdPbStoragevehicleextService mdPbStoragevehicleextService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IschBasePointService ischBasePointService;
|
private IschBasePointService ischBasePointService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private TwoOutExceptionalTask twoOutExceptionalTask;
|
private TwoOutExceptionalTask twoOutExceptionalTask;
|
||||||
/** 事物库区 */
|
/**
|
||||||
|
* 事物库区
|
||||||
|
*/
|
||||||
@Autowired
|
@Autowired
|
||||||
private StIvtBsrealstorattrService bsrealstorattrService;
|
private StIvtBsrealstorattrService bsrealstorattrService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -188,6 +201,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private StIvtStructattrMapper stIvtStructattrMapper;
|
private StIvtStructattrMapper stIvtStructattrMapper;
|
||||||
|
private TrussCallAirShaftTask trussCallAirShaftTask;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
@@ -652,17 +666,57 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
|||||||
@Transactional
|
@Transactional
|
||||||
public void allSetPoint2(JSONObject whereJson) {
|
public void allSetPoint2(JSONObject whereJson) {
|
||||||
// 任务表
|
// 任务表
|
||||||
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
|
|
||||||
|
|
||||||
StIvtIostorinv mstDao = this.getById(whereJson.getLongValue("iostorinv_id"));
|
StIvtIostorinv mstDao = this.getById(whereJson.getLongValue("iostorinv_id"));
|
||||||
|
|
||||||
//判断是否有正在执行中的任务
|
Map<List<String>, List<JSONObject>> groupingDisMap = this.basicCheck(whereJson);
|
||||||
// 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);
|
// 所有分配明细集合
|
||||||
//
|
List<JSONObject> disTaskMangeList = new ArrayList<>();
|
||||||
// if (ObjectUtil.isNotEmpty(arr)) {
|
// 需移库集合
|
||||||
// throw new BadRequestException("当前有出库任务正在执行,请稍后在试!");
|
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);
|
List<JSONObject> disDaoList = stIvtIostorinvdisMapper.getNotCreateDis(whereJson);
|
||||||
|
|
||||||
@@ -670,6 +724,20 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
|||||||
throw new BadRequestException("当前没有可设置的分配明细!");
|
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.根据木箱 长、宽、高、订单号、物料分组
|
* 1.根据木箱 长、宽、高、订单号、物料分组
|
||||||
@@ -685,25 +753,15 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
|||||||
Map<List<String>, List<JSONObject>> groupingDisMap =
|
Map<List<String>, List<JSONObject>> groupingDisMap =
|
||||||
disDaoList.stream().collect(Collectors.groupingBy(compositeKey, Collectors.toList()));
|
disDaoList.stream().collect(Collectors.groupingBy(compositeKey, Collectors.toList()));
|
||||||
|
|
||||||
for (List<JSONObject> disLikeList : groupingDisMap.values()) {
|
// 判断是否有异常任务
|
||||||
// 调用任务生成处理
|
String exceptionPointCode = exceptionPointCode(disDaoList);
|
||||||
List<JSONObject> taskMangeList = createTaskMange(disLikeList, mstDao.getIostorinv_id().toString());
|
if (ObjectUtil.isNotEmpty(exceptionPointCode)) {
|
||||||
|
throw new BadRequestException(exceptionPointCode);
|
||||||
// 创建任务并下发一组任务
|
|
||||||
createTask(taskMangeList, disLikeList, whereJson.getString("point_code"));
|
|
||||||
}
|
}
|
||||||
|
return groupingDisMap;
|
||||||
// 下发任务:判断当前单据是否有正在执行的的任务
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void allSetPoint(JSONObject whereJson) {
|
public void allSetPoint(JSONObject whereJson) {
|
||||||
|
|
||||||
@@ -825,7 +883,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
|||||||
.distinct()
|
.distinct()
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if (taskIds.size() > 0) {
|
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)) {
|
if (ObjectUtil.isNotEmpty(tasks)) {
|
||||||
throw new BadRequestException("有任务未完成,不允许强制确认!");
|
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) {
|
if (schBaseTask == null) {
|
||||||
@@ -1165,6 +1223,134 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
|||||||
return task_id;
|
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);
|
subpackagerelationService.update(subLam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成任务前处理
|
* 生成任务前处理
|
||||||
*
|
*
|
||||||
@@ -1263,7 +1450,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
|||||||
* @param iostorinv_id: 单据标识
|
* @param iostorinv_id: 单据标识
|
||||||
* @return List<JSONObject> 生成任务的集合
|
* @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");
|
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;
|
return needCreateAttrList;
|
||||||
}
|
}
|
||||||
@@ -1653,21 +1845,17 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
|||||||
* @param point_code : 终点
|
* @param point_code : 终点
|
||||||
*/
|
*/
|
||||||
private void createTask(List<JSONObject> taskMangeList, List<JSONObject> disLikeList, String 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("出库异常锁")))
|
.filter(row -> row.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库异常锁")))
|
||||||
.map(row -> row.getString("task_code"))
|
.map(row -> row.getString("task_code"))
|
||||||
.distinct().collect(Collectors.joining("','"));
|
.distinct().collect(Collectors.toList());
|
||||||
|
List<SchBaseTask> taskList = new ArrayList<>();
|
||||||
List<JSONObject> taskList = taskService.query("task_id IN ('" + TaskCodeIn + "') and is_delete = '0'")
|
if (!TaskCodeIn.isEmpty()) {
|
||||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
taskList = schBaseTaskMapper.selectList(new QueryWrapper<SchBaseTask>().lambda().in(SchBaseTask::getTask_id, TaskCodeIn).eq(SchBaseTask::getIs_delete, "0"));
|
||||||
|
}
|
||||||
|
|
||||||
// 任务组标识
|
// 任务组标识
|
||||||
String task_group_id = IdUtil.getStringId();
|
String task_group_id = IdUtil.getStringId();
|
||||||
@@ -1683,118 +1871,29 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
|||||||
if (ObjectUtil.isNotEmpty(jsonParam)) {
|
if (ObjectUtil.isNotEmpty(jsonParam)) {
|
||||||
flag = jsonParam.getString("value");
|
flag = jsonParam.getString("value");
|
||||||
}
|
}
|
||||||
|
IStIvtIostorinvOutService aopService = SpringContextHolder.getBean(IStIvtIostorinvOutService.class);
|
||||||
for (int i = 0; i < taskMangeList.size(); i++) {
|
for (int i = 0; i < taskMangeList.size(); i++) {
|
||||||
JSONObject json = taskMangeList.get(i);
|
JSONObject json = taskMangeList.get(i);
|
||||||
|
// TODO ---
|
||||||
// 确定起点
|
JSONObject jsonObject = new JSONObject();
|
||||||
start_device_code = json.getString("struct_code");
|
jsonObject.put("flag", flag);
|
||||||
|
jsonObject.put("disLikeList", disLikeList);
|
||||||
// 确定终点: 根据仓位所在排确定终点
|
jsonObject.put("taskList", taskList);
|
||||||
|
jsonObject.put("is_auto_issue", is_auto_issue);
|
||||||
String end_device_code = "";
|
jsonObject.put("task_group_id", task_group_id);
|
||||||
if ("1".equals(flag)) {
|
aopService.createForTask(json, jsonObject);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建任务(通过仓位集合创建)
|
* 创建任务(通过仓位集合创建)
|
||||||
* <p>出库口:IOSEnum#OUT_POINT/2</p>
|
* <p>出库口:IOSEnum#OUT_POINT/2</p>
|
||||||
* @see IOSEnum#OUT_POINT2
|
*
|
||||||
* @see IOSEnum#OUT_POINT
|
|
||||||
* @param taskMangeList:仓位集合
|
* @param taskMangeList:仓位集合
|
||||||
* @param disLikeList:分配明细集合
|
* @param disLikeList:分配明细集合
|
||||||
* @param point_code : 终点
|
* @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) {
|
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<>();
|
List<String> structCodeInList = new ArrayList<>();
|
||||||
|
|
||||||
for (int i = 0; i < taskList.size(); i++) {
|
if (CollectionUtil.isNotEmpty(taskList)) {
|
||||||
SchBaseTask task = taskList.get(i);
|
for (int i = 0; i < taskList.size(); i++) {
|
||||||
structCodeInList.add(task.getPoint_code1());
|
SchBaseTask task = taskList.get(i);
|
||||||
structCodeInList.add(task.getPoint_code2());
|
structCodeInList.add(task.getPoint_code1());
|
||||||
}
|
structCodeInList.add(task.getPoint_code2());
|
||||||
|
}
|
||||||
|
|
||||||
LambdaUpdateWrapper<StIvtStructattr> strattLam = new LambdaUpdateWrapper<>();
|
LambdaUpdateWrapper<StIvtStructattr> strattLam = new LambdaUpdateWrapper<>();
|
||||||
strattLam.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
strattLam.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
.set(StIvtStructattr::getTask_code, "")
|
.set(StIvtStructattr::getTask_code, "")
|
||||||
.in(StIvtStructattr::getStruct_code, structCodeInList);
|
.in(StIvtStructattr::getStruct_code, structCodeInList);
|
||||||
structattrService.update(strattLam);
|
structattrService.update(strattLam);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -340,8 +340,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
|||||||
if (boxDao == null) {
|
if (boxDao == null) {
|
||||||
throw new BadRequestException("未找到该木箱信息!");
|
throw new BadRequestException("未找到该木箱信息!");
|
||||||
}
|
}
|
||||||
jsonObject.put("box_no",boxDao.getBox_no());
|
jsonObject.put("box_no", boxDao.getBox_no());
|
||||||
jsonObject.put("vehicle_type",boxDao.getVehicle_type());
|
jsonObject.put("vehicle_type", boxDao.getVehicle_type());
|
||||||
attrParam.put("vehicle_type", boxDao.getVehicle_type());
|
attrParam.put("vehicle_type", boxDao.getVehicle_type());
|
||||||
//根据木箱高度,判断入库仓位的高度
|
//根据木箱高度,判断入库仓位的高度
|
||||||
String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue();
|
String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue();
|
||||||
@@ -355,7 +355,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
|||||||
height = "'3'";
|
height = "'3'";
|
||||||
}
|
}
|
||||||
attrParam.put("height", height);
|
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("虚拟区"))) {
|
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"));
|
attrParam.put("move_block_num", MapUtil.getStr(whereJson, "move_block_num"));
|
||||||
}
|
}
|
||||||
JSONObject oneStruct = twoInBussManageService.getOneStruct(attrParam);
|
JSONObject oneStruct = twoInBussManageService.getOneStruct(attrParam);
|
||||||
if (!ObjectUtil.isEmpty(oneStruct)){
|
if (!ObjectUtil.isEmpty(oneStruct)) {
|
||||||
stIvtStructattr = oneStruct.toJavaObject(StIvtStructattr.class);
|
stIvtStructattr = oneStruct.toJavaObject(StIvtStructattr.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -392,7 +392,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
|||||||
// 判断是否虚拟区
|
// 判断是否虚拟区
|
||||||
String work_status;
|
String work_status;
|
||||||
Long task_id = null;
|
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("虚拟区"))) {
|
if (stIvtSectattr.getSect_type_attr().equals(IOSEnum.SECT_TYPE.code("虚拟区"))) {
|
||||||
// 虚拟区:执行状态为完成
|
// 虚拟区:执行状态为完成
|
||||||
work_status = IOSEnum.WORK_STATUS.code("完成");
|
work_status = IOSEnum.WORK_STATUS.code("完成");
|
||||||
@@ -437,9 +437,9 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
|||||||
.eq(StIvtIostorinvdtl::getIostorinv_id, mst.getIostorinv_id())
|
.eq(StIvtIostorinvdtl::getIostorinv_id, mst.getIostorinv_id())
|
||||||
).get(0);
|
).get(0);
|
||||||
List<LinkedHashMap> disList = iStIvtIostorinvdisService.list(
|
List<LinkedHashMap> disList = iStIvtIostorinvdisService.list(
|
||||||
new QueryWrapper<StIvtIostorinvdis>().lambda()
|
new QueryWrapper<StIvtIostorinvdis>().lambda()
|
||||||
.eq(StIvtIostorinvdis::getIostorinv_id, mst.getIostorinv_id())
|
.eq(StIvtIostorinvdis::getIostorinv_id, mst.getIostorinv_id())
|
||||||
).stream().map(row -> JSONObject.parseObject(JSON.toJSONString(row), LinkedHashMap.class))
|
).stream().map(row -> JSONObject.parseObject(JSON.toJSONString(row), LinkedHashMap.class))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
jsonSend.put("dtl_row", JSONObject.parseObject(JSON.toJSONString(dtlDao)));
|
jsonSend.put("dtl_row", JSONObject.parseObject(JSON.toJSONString(dtlDao)));
|
||||||
jsonSend.put("tableMater", disList);
|
jsonSend.put("tableMater", disList);
|
||||||
@@ -591,8 +591,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
|||||||
List<MdPbStoragevehicleext> mdPbStoragevehicleexts = mdPbStoragevehicleextMapper.selectList(new QueryWrapper<MdPbStoragevehicleext>()
|
List<MdPbStoragevehicleext> mdPbStoragevehicleexts = mdPbStoragevehicleextMapper.selectList(new QueryWrapper<MdPbStoragevehicleext>()
|
||||||
.eq("pcsn", jsonDis.get("storagevehicle_code"))
|
.eq("pcsn", jsonDis.get("storagevehicle_code"))
|
||||||
.orderByDesc("UPDATE_TIME"));
|
.orderByDesc("UPDATE_TIME"));
|
||||||
if (CollUtil.isEmpty(mdPbStoragevehicleexts)){
|
if (CollUtil.isEmpty(mdPbStoragevehicleexts)) {
|
||||||
throw new BadRequestException("此木箱没有绑定托盘号!"+whereJson.get("vehicle_code"));
|
throw new BadRequestException("此木箱没有绑定托盘号!" + whereJson.get("vehicle_code"));
|
||||||
}
|
}
|
||||||
MdPbStoragevehicleext mdPbStoragevehicleext = mdPbStoragevehicleexts.get(0);
|
MdPbStoragevehicleext mdPbStoragevehicleext = mdPbStoragevehicleexts.get(0);
|
||||||
// 创建任务
|
// 创建任务
|
||||||
@@ -737,9 +737,12 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
|||||||
throw new BadRequestException("出入库明细不能为空!");
|
throw new BadRequestException("出入库明细不能为空!");
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONObject jsonSub = WQLObject.getWQLObject("pdm_bi_subpackagerelation")
|
// JSONObject jsonSub = WQLObject.getWQLObject("pdm_bi_subpackagerelation")
|
||||||
.query("package_box_sn = '" + rows.get(0).getString("package_box_sn") + "'")
|
// .query("package_box_sn = '" + rows.get(0).getString("package_box_sn") + "'")
|
||||||
.uniqueResult(0);
|
// .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"));
|
StorattrDto storattrDto = storattrService.findById((String) whereJson.get("stor_id"));
|
||||||
@@ -749,12 +752,12 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
|||||||
String currentNickName = SecurityUtils.getCurrentNickName();
|
String currentNickName = SecurityUtils.getCurrentNickName();
|
||||||
if (currentUserId.equals(IOSEnum.EXT_ACS.code("acs"))) {
|
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();
|
currentUserId = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("IOS_CONFIRM_USER").getValue();
|
||||||
currentNickName = IOSEnum.EXT_ACS.code("kc");
|
currentNickName = IOSEnum.EXT_ACS.code("kc");
|
||||||
} else {
|
} else {
|
||||||
currentUserId = jsonSub.getString("create_id");
|
currentUserId = String.valueOf(packageBoxSn.getCreate_id());
|
||||||
currentNickName = jsonSub.getString("create_name");
|
currentNickName = packageBoxSn.getCreate_name();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -772,7 +775,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
|||||||
.detail_count(BigDecimal.valueOf(((ArrayList<HashMap>) whereJson.get("tableData")).size()))
|
.detail_count(BigDecimal.valueOf(((ArrayList<HashMap>) whereJson.get("tableData")).size()))
|
||||||
.remark(whereJson.get("remark").toString())
|
.remark(whereJson.get("remark").toString())
|
||||||
.bill_status(whereJson.get("bill_status").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产生"))
|
.create_mode(IOSEnum.CREATE_MODE.code("PC产生"))
|
||||||
.input_optid(currentUserId)
|
.input_optid(currentUserId)
|
||||||
.input_optname(currentNickName)
|
.input_optname(currentNickName)
|
||||||
@@ -1072,7 +1075,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
|
|||||||
mstDao.setUpload_time(DateUtil.now());
|
mstDao.setUpload_time(DateUtil.now());
|
||||||
this.updateById(mstDao);
|
this.updateById(mstDao);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("回传mes失败:"+e.getMessage());
|
log.info("回传mes失败:" + e.getMessage());
|
||||||
this.updateById(mstDao);
|
this.updateById(mstDao);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ public class StIvtIostorinvdtlServiceImpl extends ServiceImpl<StIvtIostorinvdtlM
|
|||||||
.bill_status(IOSEnum.BILL_STATUS.code("生成"))
|
.bill_status(IOSEnum.BILL_STATUS.code("生成"))
|
||||||
.qty_unit_id(unitDao.getString("measure_unit_id"))
|
.qty_unit_id(unitDao.getString("measure_unit_id"))
|
||||||
.qty_unit_name(unitDao.getString("unit_name"))
|
.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_type(row.getString("source_bill_type"))
|
||||||
.source_bill_code(row.getString("source_bill_code"))
|
.source_bill_code(row.getString("source_bill_code"))
|
||||||
.source_bill_table(row.getString("source_bill_table"))
|
.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"))
|
.base_bill_table(row.getString("base_bill_table"))
|
||||||
.remark(row.getString("remark"))
|
.remark(row.getString("remark"))
|
||||||
.assign_qty(BigDecimal.valueOf(0))
|
.assign_qty(BigDecimal.valueOf(0))
|
||||||
.unassign_qty(row.getBigDecimal("plan_qty"))
|
.unassign_qty(row.getBigDecimal("net_weight"))
|
||||||
.box_no(row.getString("package_box_sn"))
|
.box_no(row.getString("package_box_sn"))
|
||||||
.vbeln(row.getString("vbeln"))
|
.vbeln(row.getString("vbeln"))
|
||||||
.posnr(row.getString("posnr"))
|
.posnr(row.getString("posnr"))
|
||||||
@@ -165,7 +165,6 @@ public class StIvtIostorinvdtlServiceImpl extends ServiceImpl<StIvtIostorinvdtlM
|
|||||||
map.put(dtlDao.getIostorinvdtl_id().toString(),disDaoList);
|
map.put(dtlDao.getIostorinvdtl_id().toString(),disDaoList);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.saveBatch(dtlDaoList);
|
this.saveBatch(dtlDaoList);
|
||||||
|
|
||||||
return map;
|
return map;
|
||||||
|
|||||||
@@ -933,7 +933,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
|||||||
* 查询所属排的所有木箱
|
* 查询所属排的所有木箱
|
||||||
*/
|
*/
|
||||||
String row_in = rowList.stream()
|
String row_in = rowList.stream()
|
||||||
.map(row -> row.getRow_num())
|
.map(row ->String.valueOf( row.getRow_num()))
|
||||||
.collect(Collectors.joining("','"));
|
.collect(Collectors.joining("','"));
|
||||||
|
|
||||||
jsonParam.put("row_in", "('" + row_in + "')");
|
jsonParam.put("row_in", "('" + row_in + "')");
|
||||||
@@ -954,7 +954,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
|||||||
StructattrQuerry jsonRow = rowList.get(i);
|
StructattrQuerry jsonRow = rowList.get(i);
|
||||||
|
|
||||||
List<StIvtStructattr> box_num = boxAllList.stream()
|
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());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
jsonRow.setBox_num(String.valueOf(box_num.size()));
|
jsonRow.setBox_num(String.valueOf(box_num.size()));
|
||||||
@@ -1051,10 +1051,10 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
|||||||
|
|
||||||
// 获取此货位对应的浅货位
|
// 获取此货位对应的浅货位
|
||||||
List<StIvtStructattr> lowAttr = structAllList.stream()
|
List<StIvtStructattr> lowAttr = structAllList.stream()
|
||||||
.filter(row -> row.getCol_num().equals(json.getCol_num()) &&
|
.filter(row ->String.valueOf(row.getCol_num()).equals(json.getCol_num()) &&
|
||||||
row.getLayer_num().equals(json.getLayer_num()) &&
|
String.valueOf(row.getLayer_num()).equals(json.getLayer_num()) &&
|
||||||
row.getRow_num().equals(json.getRow_num()) &&
|
String.valueOf( row.getRow_num()).equals(json.getRow_num()) &&
|
||||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
||||||
@@ -1080,10 +1080,10 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
|||||||
*/
|
*/
|
||||||
// 获取此货位对应的深货位
|
// 获取此货位对应的深货位
|
||||||
List<StIvtStructattr> darkAttr = structAllList.stream()
|
List<StIvtStructattr> darkAttr = structAllList.stream()
|
||||||
.filter(row -> row.getCol_num().equals(json.getCol_num()) &&
|
.filter(row ->String.valueOf(row.getCol_num()).equals(json.getCol_num()) &&
|
||||||
row.getLayer_num().equals(json.getLayer_num()) &&
|
String.valueOf(row.getLayer_num()).equals(json.getLayer_num()) &&
|
||||||
row.getRow_num().equals(json.getRow_num()) &&
|
String.valueOf( row.getRow_num()).equals(json.getRow_num()) &&
|
||||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深")))
|
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("深")))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) {
|
if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) {
|
||||||
|
|||||||
@@ -333,7 +333,7 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
|
|||||||
for (int i = 0; i < vehicleStructRow.size(); i++) {
|
for (int i = 0; i < vehicleStructRow.size(); i++) {
|
||||||
String vehicleStr = vehicleStructRow.get(i);
|
String vehicleStr = vehicleStructRow.get(i);
|
||||||
List<StIvtStructattr> stIvtStructattrList = boxAllList.stream()
|
List<StIvtStructattr> stIvtStructattrList = boxAllList.stream()
|
||||||
.filter(row -> row.getRow_num().equals(vehicleStr))
|
.filter(row ->String.valueOf( row.getRow_num()).equals(vehicleStr))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
StructattrQuerry structattrQuerry = new StructattrQuerry();
|
StructattrQuerry structattrQuerry = new StructattrQuerry();
|
||||||
structattrQuerry.setBox_num(String.valueOf(stIvtStructattrList.size()));
|
structattrQuerry.setBox_num(String.valueOf(stIvtStructattrList.size()));
|
||||||
@@ -426,9 +426,9 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
|
|||||||
|
|
||||||
// 获取此货位对应的浅货位
|
// 获取此货位对应的浅货位
|
||||||
List<StIvtStructattr> lowAttr = allVehicleStruct.stream()
|
List<StIvtStructattr> lowAttr = allVehicleStruct.stream()
|
||||||
.filter(row -> row.getCol_num().equals(stIvtStructattr.getCol_num()) &&
|
.filter(row ->String.valueOf(row.getCol_num()).equals(stIvtStructattr.getCol_num()) &&
|
||||||
row.getLayer_num().equals(stIvtStructattr.getLayer_num()) &&
|
String.valueOf(row.getLayer_num()).equals(stIvtStructattr.getLayer_num()) &&
|
||||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
if (CollUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
if (CollUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
||||||
@@ -454,9 +454,9 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
|
|||||||
*/
|
*/
|
||||||
// 获取此货位对应的深货位
|
// 获取此货位对应的深货位
|
||||||
List<StIvtStructattr> darkAttr = allVehicleStruct.stream()
|
List<StIvtStructattr> darkAttr = allVehicleStruct.stream()
|
||||||
.filter(row -> row.getCol_num().equals(stIvtStructattr.getCol_num()) &&
|
.filter(row ->String.valueOf(row.getCol_num()).equals(stIvtStructattr.getCol_num()) &&
|
||||||
row.getLayer_num().equals(stIvtStructattr.getLayer_num()) &&
|
String.valueOf(row.getLayer_num()).equals(stIvtStructattr.getLayer_num()) &&
|
||||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深")))
|
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("深")))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) {
|
if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) {
|
||||||
|
|||||||
@@ -294,9 +294,9 @@ public class LashManageServiceImpl implements LashManageService {
|
|||||||
|
|
||||||
String bill_type = whereJson.getString("bill_type");
|
String bill_type = whereJson.getString("bill_type");
|
||||||
//换标出库或转单出库的rgv任务目的点需要特殊处理
|
//换标出库或转单出库的rgv任务目的点需要特殊处理
|
||||||
if (bill_type.equals(IOSEnum.OUT_TYPE.code("转单出库")) || bill_type.equals(IOSEnum.OUT_TYPE.code("换标出库"))) {
|
// if (bill_type.equals(IOSEnum.OUT_TYPE.code("转单出库")) || bill_type.equals(IOSEnum.OUT_TYPE.code("换标出库"))) {
|
||||||
next_device_code = IOSEnum.CHANGE_OUT.code("换标出库口");
|
// next_device_code = IOSEnum.CHANGE_OUT.code("换标出库口");
|
||||||
} else {
|
// } else {
|
||||||
// 判断是否是启用状态
|
// 判断是否是启用状态
|
||||||
// List<JSONObject> jsonList = pointTab.query("region_code = 'BLKCK' AND is_used = '1'")
|
// List<JSONObject> jsonList = pointTab.query("region_code = 'BLKCK' AND is_used = '1'")
|
||||||
// .getResultJSONArray(0).toJavaList(JSONObject.class);
|
// .getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||||
@@ -319,7 +319,7 @@ public class LashManageServiceImpl implements LashManageService {
|
|||||||
next_device_code = schBasePoints.get(0).getPoint_code();
|
next_device_code = schBasePoints.get(0).getPoint_code();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 查询木箱对应的载具
|
// 查询木箱对应的载具
|
||||||
// JSONObject jsonVeExt = extTab.query("pcsn = '" + whereJson.getString("vehicle_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()
|
String row_num_in = allRowList.stream()
|
||||||
.map(row -> row.getRow_num())
|
.map(row ->String.valueOf( row.getRow_num()))
|
||||||
.collect(Collectors.joining("','"));
|
.collect(Collectors.joining("','"));
|
||||||
|
|
||||||
whereJson.put("flag", "2");
|
whereJson.put("flag", "2");
|
||||||
@@ -526,7 +526,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
|
|||||||
StructattrQuerry jsonRow = allRowList.get(i);
|
StructattrQuerry jsonRow = allRowList.get(i);
|
||||||
|
|
||||||
List<StIvtStructattr> blockAttrNum = likeAttrList.stream()
|
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());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
jsonRow.setBlock_num(jsonRow.getBlock_num());
|
jsonRow.setBlock_num(jsonRow.getBlock_num());
|
||||||
@@ -621,9 +621,9 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
|
|||||||
*/
|
*/
|
||||||
// 获取此货位对应的浅货位
|
// 获取此货位对应的浅货位
|
||||||
List<StIvtStructattr> lowAttr = structAllList.stream()
|
List<StIvtStructattr> lowAttr = structAllList.stream()
|
||||||
.filter(row -> row.getCol_num().equals(json.getCol_num()) &&
|
.filter(row ->String.valueOf(row.getCol_num()).equals(json.getCol_num()) &&
|
||||||
row.getLayer_num().equals(json.getLayer_num()) &&
|
String.valueOf(row.getLayer_num()).equals(json.getLayer_num()) &&
|
||||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
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.common.exception.BadRequestException;
|
||||||
import org.nl.modules.wql.WQL;
|
import org.nl.modules.wql.WQL;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
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.ISysParamService;
|
||||||
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
|
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
|
||||||
import org.nl.wms.st.inbill.service.StorPublicService;
|
import org.nl.wms.st.inbill.service.StorPublicService;
|
||||||
@@ -543,140 +544,32 @@ public class OutBussManageServiceImpl implements OutBussManageService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createMove2(List<JSONObject> list, Consumer<String> allTransactionConsumer) {
|
public void createMove2(List<JSONObject> list) {
|
||||||
|
|
||||||
// 获取子卷包装集合
|
// 获取子卷包装集合
|
||||||
List<String> boxs = list.stream()
|
List<String> boxs = list.stream()
|
||||||
.map(row -> row.getString("storagevehicle_code"))
|
.map(row -> row.getString("storagevehicle_code"))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
List<JSONObject> subList = subpackagerelationService.getSubInfoByBoxNosToObject(boxs);
|
List<JSONObject> subList = subpackagerelationService.getSubInfoByBoxNosToObject(boxs);
|
||||||
|
|
||||||
|
|
||||||
// 查询物料集合
|
// 查询物料集合
|
||||||
List<String> materialCodes = subList.stream()
|
List<String> materialCodes = subList.stream()
|
||||||
.map(row -> row.getString("product_name"))
|
.map(row -> row.getString("product_name"))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
List<JSONObject> materList = materialbaseService.getMaterialAllByCodes(materialCodes);
|
List<JSONObject> materList = materialbaseService.getMaterialAllByCodes(materialCodes);
|
||||||
|
OutBussManageService myService = SpringContextHolder.getBean(OutBussManageService.class);
|
||||||
for (int i = 0; i < list.size(); i++) {
|
for (int i = 0; i < list.size(); i++) {
|
||||||
JSONObject json = list.get(i);
|
JSONObject json = list.get(i);
|
||||||
|
myService.createForMove(json,subList,materList);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public JSONObject taskExceptional(JSONObject jsonObject) {
|
public JSONObject taskExceptional(JSONObject jsonObject) {
|
||||||
@@ -705,6 +598,130 @@ public class OutBussManageServiceImpl implements OutBussManageService {
|
|||||||
return result;
|
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 : 任务编码}
|
* @param jsonObject {task_code : 任务编码}
|
||||||
|
|||||||
@@ -428,7 +428,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
|
|||||||
String structRow = outVehicleStructRow.get(i);
|
String structRow = outVehicleStructRow.get(i);
|
||||||
|
|
||||||
List<StIvtStructattr> stIvtStructattrs = boxAllList.stream()
|
List<StIvtStructattr> stIvtStructattrs = boxAllList.stream()
|
||||||
.filter(row -> row.getRow_num().equals(structRow))
|
.filter(row ->String.valueOf( row.getRow_num()).equals(structRow))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
StructattrQuerry structattrQuerry = new StructattrQuerry();
|
StructattrQuerry structattrQuerry = new StructattrQuerry();
|
||||||
structattrQuerry.setRow_num(structRow);
|
structattrQuerry.setRow_num(structRow);
|
||||||
@@ -486,9 +486,9 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
|
|||||||
*/
|
*/
|
||||||
// 获取此货位对应的浅货位
|
// 获取此货位对应的浅货位
|
||||||
List<StIvtStructattr> lowAttr = allVehicleStruct.stream()
|
List<StIvtStructattr> lowAttr = allVehicleStruct.stream()
|
||||||
.filter(row -> row.getCol_num().equals(stIvtStructattr.getCol_num()) &&
|
.filter(row ->String.valueOf(row.getCol_num()).equals(stIvtStructattr.getCol_num()) &&
|
||||||
row.getLayer_num().equals(stIvtStructattr.getLayer_num()) &&
|
String.valueOf(row.getLayer_num()).equals(stIvtStructattr.getLayer_num()) &&
|
||||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
|||||||
|
|
||||||
// 过滤此排的空位
|
// 过滤此排的空位
|
||||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
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()) &&
|
ObjectUtil.isEmpty(row.getVehicle_code()) &&
|
||||||
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
)
|
)
|
||||||
@@ -122,7 +122,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
|||||||
|
|
||||||
// 找出这一排的所有空位
|
// 找出这一排的所有空位
|
||||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
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()) &&
|
ObjectUtil.isEmpty(row.getVehicle_code()) &&
|
||||||
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
)
|
)
|
||||||
@@ -176,7 +176,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
|||||||
|
|
||||||
// 找出这一排的所有空位
|
// 找出这一排的所有空位
|
||||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
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()) &&
|
ObjectUtil.isEmpty(row.getVehicle_code()) &&
|
||||||
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
)
|
)
|
||||||
@@ -259,7 +259,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
|||||||
|
|
||||||
// 过滤此排的空位
|
// 过滤此排的空位
|
||||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
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()) &&
|
ObjectUtil.isEmpty(row.getVehicle_code()) &&
|
||||||
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
)
|
)
|
||||||
@@ -282,7 +282,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
|||||||
|
|
||||||
// 找出这一排的所有空位
|
// 找出这一排的所有空位
|
||||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
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()) &&
|
ObjectUtil.isEmpty(row.getVehicle_code()) &&
|
||||||
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
)
|
)
|
||||||
@@ -340,7 +340,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
|||||||
|
|
||||||
// 找出这一排的所有空位
|
// 找出这一排的所有空位
|
||||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
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()) &&
|
ObjectUtil.isEmpty(row.getVehicle_code()) &&
|
||||||
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
row.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
)
|
)
|
||||||
@@ -419,7 +419,7 @@ public class SendOutManageServiceImpl implements SendOutManageService {
|
|||||||
|
|
||||||
// 找出这一排所有空位
|
// 找出这一排所有空位
|
||||||
List<SchBasePoint> rowPointList = pointDaoList.stream()
|
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())
|
ObjectUtil.isEmpty(row.getVehicle_code())
|
||||||
)
|
)
|
||||||
.sorted(Comparator.comparing(SchBasePoint::getIn_order_seq))
|
.sorted(Comparator.comparing(SchBasePoint::getIn_order_seq))
|
||||||
|
|||||||
@@ -255,20 +255,20 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService {
|
|||||||
for (int i = 0; i < stIvtStructattrs.size(); i++) {
|
for (int i = 0; i < stIvtStructattrs.size(); i++) {
|
||||||
StIvtStructattr stIvtStructattr = stIvtStructattrs.get(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;
|
stIvtStructattrReturn = stIvtStructattr;
|
||||||
break;
|
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()
|
List<StIvtStructattr> lowAttr = allStruct.stream()
|
||||||
.filter(row -> row.getCol_num().equals(String.valueOf(stIvtStructattr.getCol_num())) &&
|
.filter(row ->String.valueOf(row.getCol_num()).equals(String.valueOf(stIvtStructattr.getCol_num())) &&
|
||||||
row.getLayer_num().equals(String.valueOf(stIvtStructattr.getLayer_num())) &&
|
String.valueOf(row.getLayer_num()).equals(String.valueOf(stIvtStructattr.getLayer_num())) &&
|
||||||
row.getRow_num().equals(String.valueOf(stIvtStructattr.getRow_num())) &&
|
String.valueOf( row.getRow_num()).equals(String.valueOf(stIvtStructattr.getRow_num())) &&
|
||||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))).collect(Collectors.toList());
|
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))).collect(Collectors.toList());
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) {
|
||||||
notInBlockList.clear();
|
notInBlockList.clear();
|
||||||
@@ -284,16 +284,16 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService {
|
|||||||
} else {
|
} else {
|
||||||
continue;
|
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()
|
List<StIvtStructattr> darkAttr = allStruct.stream()
|
||||||
.filter(row -> row.getCol_num().equals(String.valueOf(stIvtStructattr.getCol_num())) &&
|
.filter(row ->String.valueOf(row.getCol_num()).equals(String.valueOf(stIvtStructattr.getCol_num())) &&
|
||||||
row.getLayer_num().equals(String.valueOf(stIvtStructattr.getLayer_num())) &&
|
String.valueOf(row.getLayer_num()).equals(String.valueOf(stIvtStructattr.getLayer_num())) &&
|
||||||
row.getRow_num().equals(String.valueOf(stIvtStructattr.getRow_num())) &&
|
String.valueOf( row.getRow_num()).equals(String.valueOf(stIvtStructattr.getRow_num())) &&
|
||||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深"))).collect(Collectors.toList());
|
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("深"))).collect(Collectors.toList());
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) {
|
if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) {
|
||||||
notInBlockList.clear();
|
notInBlockList.clear();
|
||||||
@@ -367,10 +367,10 @@ public class TwoInBussManageServiceImpl implements TwoInBussManageService {
|
|||||||
|
|
||||||
// 找对应的浅货位
|
// 找对应的浅货位
|
||||||
StIvtStructattr darkJson = stIvtStructattrs.stream()
|
StIvtStructattr darkJson = stIvtStructattrs.stream()
|
||||||
.filter(row -> row.getCol_num().equals(json.getCol_num()) &&
|
.filter(row ->String.valueOf(row.getCol_num()).equals(json.getCol_num()) &&
|
||||||
row.getLayer_num().equals(json.getLayer_num()) &&
|
String.valueOf(row.getLayer_num()).equals(json.getLayer_num()) &&
|
||||||
row.getRow_num().equals(json.getRow_num()) &&
|
String.valueOf( row.getRow_num()).equals(json.getRow_num()) &&
|
||||||
row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
String.valueOf(row.getZdepth()).equals(IOSEnum.ZDEPTH_STRUCT.code("浅")))
|
||||||
.findFirst().orElse(null);
|
.findFirst().orElse(null);
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(darkJson)) {
|
if (ObjectUtil.isEmpty(darkJson)) {
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ public interface OutBussManageService {
|
|||||||
* 创建移库单
|
* 创建移库单
|
||||||
* @param list 需要创建移库单的仓位
|
* @param list 需要创建移库单的仓位
|
||||||
*/
|
*/
|
||||||
void createMove2(List<JSONObject> list, Consumer<String> allTransactionConsumer);
|
void createMove2(List<JSONObject> list);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务异常处理(1.满入 2.浅货位有货-放货时)
|
* 任务异常处理(1.满入 2.浅货位有货-放货时)
|
||||||
@@ -81,4 +81,6 @@ public interface OutBussManageService {
|
|||||||
* @return point_code: 货位编码
|
* @return point_code: 货位编码
|
||||||
*/
|
*/
|
||||||
JSONObject taskExceptional(JSONObject whereJson);
|
JSONObject taskExceptional(JSONObject whereJson);
|
||||||
|
|
||||||
|
void createForMove(JSONObject json, List<JSONObject> subList, List<JSONObject> materList);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,15 +56,15 @@
|
|||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
<if test="param.row_in != null ">
|
<!-- <if test="param.row_in != null ">-->
|
||||||
AND attr.row_num in
|
<!-- AND attr.row_num in-->
|
||||||
<foreach collection="param.row_in" open="(" close=")" separator="," index="row_num">
|
<!-- <foreach collection="param.row_in" open="(" close=")" separator="," index="row_num">-->
|
||||||
#{row_num}
|
<!-- #{row_num}-->
|
||||||
</foreach>
|
<!-- </foreach>-->
|
||||||
</if>
|
<!-- </if>-->
|
||||||
|
|
||||||
<if test="param.block_num != '' || param.block_num != null ">
|
<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>
|
||||||
<if test="param.row_num != '' || param.row_num != null ">
|
<if test="param.row_num != '' || param.row_num != null ">
|
||||||
AND attr.row_num != #{param.row_num}
|
AND attr.row_num != #{param.row_num}
|
||||||
@@ -90,29 +90,29 @@
|
|||||||
AND box.is_packing = '1'
|
AND box.is_packing = '1'
|
||||||
|
|
||||||
<if test="param.material_id != '' || param.material_id != null ">
|
<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>
|
||||||
|
|
||||||
<if test="param.customer_name != '' || param.customer_name != null ">
|
<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>
|
||||||
|
|
||||||
<if test="param.customer_name != '' || param.customer_name != null ">
|
<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>
|
||||||
|
|
||||||
<if test="param.sale_order_name != '' || param.sale_order_name != null ">
|
<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>
|
||||||
|
|
||||||
<if test="param.box_length != '' || param.box_length != null ">
|
<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>
|
||||||
<if test="param.box_width != '' || param.box_width != null ">
|
<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>
|
||||||
<if test="param.box_high != '' || param.box_high != null ">
|
<if test="param.box_high != '' || param.box_high != null ">
|
||||||
AND sub.box_high == #{param.box_high}
|
AND sub.box_high = #{param.box_high}
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
|
|
||||||
@@ -156,23 +156,23 @@
|
|||||||
</foreach>
|
</foreach>
|
||||||
|
|
||||||
<if test="param.block_num != '' || param.block_num != null ">
|
<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>
|
||||||
|
|
||||||
<if test="param.product_name != '' || param.product_name != null ">
|
<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>
|
||||||
<if test="param.sale_order_name != '' || param.sale_order_name != null ">
|
<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>
|
||||||
<if test="param.box_length != '' || param.box_length != null ">
|
<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>
|
||||||
<if test="param.box_width != '' || param.box_width != null ">
|
<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>
|
||||||
<if test="param.box_high != '' || param.box_high != null ">
|
<if test="param.box_high != '' || param.box_high != null ">
|
||||||
AND sub.box_high == #{param.box_high}
|
AND sub.box_high = #{param.box_high}
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
order by attr.col_num,attr.layer_num ASC
|
order by attr.col_num,attr.layer_num ASC
|
||||||
@@ -189,7 +189,7 @@
|
|||||||
AND attr.sect_id = #{param.sect_id}
|
AND attr.sect_id = #{param.sect_id}
|
||||||
|
|
||||||
<if test="param.block_num != '' || param.block_num != null ">
|
<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>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
@@ -212,7 +212,7 @@
|
|||||||
#{height}
|
#{height}
|
||||||
</foreach>
|
</foreach>
|
||||||
<if test="param.block_num != '' || param.block_num != null ">
|
<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>
|
||||||
|
|
||||||
|
|
||||||
@@ -247,7 +247,7 @@
|
|||||||
#{height}
|
#{height}
|
||||||
</foreach>
|
</foreach>
|
||||||
<if test="param.block_num != '' || param.block_num != null ">
|
<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>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
@@ -875,7 +875,7 @@
|
|||||||
AND box.material_code = #{param.material_code}
|
AND box.material_code = #{param.material_code}
|
||||||
</if>
|
</if>
|
||||||
<if test="param.num != null and param.num != ''">
|
<if test="param.num != null and param.num != ''">
|
||||||
AND box.num = #{输入.num}
|
AND box.num = #{param.num}
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
<select id="getStructsByBlockNum" resultType="org.nl.b_lms.storage_manage.st.dao.StIvtStructattr">
|
<select id="getStructsByBlockNum" resultType="org.nl.b_lms.storage_manage.st.dao.StIvtStructattr">
|
||||||
|
|||||||
@@ -1283,7 +1283,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
} else {
|
} else {
|
||||||
String pcsn = mdPdStoragevehicleext.getPcsn();
|
String pcsn = mdPdStoragevehicleext.getPcsn();
|
||||||
if (StringUtils.isNotEmpty(pcsn)) {
|
if (StringUtils.isNotEmpty(pcsn)) {
|
||||||
|
|
||||||
List<StIvtStructattr> storagevehicleCode = stIvtStructattrMapper.selectList(new QueryWrapper<StIvtStructattr>().eq("storagevehicle_code", pcsn));
|
List<StIvtStructattr> storagevehicleCode = stIvtStructattrMapper.selectList(new QueryWrapper<StIvtStructattr>().eq("storagevehicle_code", pcsn));
|
||||||
if (storagevehicleCode != null && storagevehicleCode.size() > 0) {
|
if (storagevehicleCode != null && storagevehicleCode.size() > 0) {
|
||||||
errorMsg.add("载具" + whereJson.getString("vehicle_code") + "已绑定" + pcsn);
|
errorMsg.add("载具" + whereJson.getString("vehicle_code") + "已绑定" + pcsn);
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ public class CheckOutBillController {
|
|||||||
@PostMapping("/allSetPoint")
|
@PostMapping("/allSetPoint")
|
||||||
@Log("一键设置")
|
@Log("一键设置")
|
||||||
public ResponseEntity<Object> allSetPoint(@RequestBody JSONObject whereJson) {
|
public ResponseEntity<Object> allSetPoint(@RequestBody JSONObject whereJson) {
|
||||||
iStIvtIostorinvOutService.allSetPoint(whereJson);
|
iStIvtIostorinvOutService.allSetPoint2(whereJson);
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||||
}
|
}
|
||||||
@PostMapping("/confirm")
|
@PostMapping("/confirm")
|
||||||
@@ -172,4 +172,25 @@ public class CheckOutBillController {
|
|||||||
checkOutBillService.issueTask(whereJson);
|
checkOutBillService.issueTask(whereJson);
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
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