Merge remote-tracking branch 'origin/master_merge' into master_merge

This commit is contained in:
2024-07-15 00:06:27 +08:00
6 changed files with 58 additions and 38 deletions

View File

@@ -16,6 +16,7 @@ import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingprodu
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper;
import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto;
import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.common.utils.TaskUtils; import org.nl.common.utils.TaskUtils;
@@ -113,7 +114,7 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl<PdmBiSli
@Override @Override
public PdmBiSlittingproductionplan getByContainerName(String containerName) { public PdmBiSlittingproductionplan getByContainerName(String containerName) {
LambdaQueryWrapper<PdmBiSlittingproductionplan> lam = new QueryWrapper<PdmBiSlittingproductionplan>().lambda(); LambdaQueryWrapper<PdmBiSlittingproductionplan> lam = new QueryWrapper<PdmBiSlittingproductionplan>().lambda();
lam.eq(PdmBiSlittingproductionplan::getContainer_name, containerName); lam.eq(PdmBiSlittingproductionplan::getContainer_name, containerName).eq(PdmBiSlittingproductionplan::getIs_delete, IOSEnum.IS_NOTANDYES.code(""));
return pdmBiSlittingproductionplanMapper.selectOne(lam); return pdmBiSlittingproductionplanMapper.selectOne(lam);
} }

View File

@@ -84,6 +84,7 @@
WHERE b.point_status = '3' WHERE b.point_status = '3'
AND b.ivt_status = '3' AND b.ivt_status = '3'
AND a.sale_order_name = #{sale_order_name} AND a.sale_order_name = #{sale_order_name}
AND c.is_delete = '0'
ORDER BY box_group ORDER BY box_group
</select> </select>

View File

@@ -755,10 +755,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
} }
List<PdmBiSubpackagerelation> subList = this.list(new LambdaQueryWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getContainer_name, jo.getString("container_name"))); List<PdmBiSubpackagerelation> subList = this.list(new LambdaQueryWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getContainer_name, jo.getString("container_name")));
if (CollectionUtils.isEmpty(subList)) { if (CollectionUtils.isEmpty(subList)) {
PdmBiSlittingproductionplan plan = iPdmBiSlittingproductionplanService.getOne(new LambdaQueryWrapper<PdmBiSlittingproductionplan>().eq(PdmBiSlittingproductionplan::getContainer_name, containerName)); List<PdmBiSlittingproductionplan> planList = iPdmBiSlittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>().eq(PdmBiSlittingproductionplan::getContainer_name, containerName).eq(PdmBiSlittingproductionplan::getIs_delete, IOSEnum.IS_NOTANDYES.code("")));
if (ObjectUtil.isEmpty(plan)) { if (CollectionUtils.isEmpty(planList)) {
throw new BadRequestException("未查询到可用的分切计划!"); throw new BadRequestException("未查询到可用的分切计划!");
} }
PdmBiSlittingproductionplan plan = planList.get(0);
PdmBiSubpackagerelation sub = new PdmBiSubpackagerelation(); PdmBiSubpackagerelation sub = new PdmBiSubpackagerelation();
sub.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextId() + ""); sub.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextId() + "");
sub.setContainer_name(plan.getContainer_name()); sub.setContainer_name(plan.getContainer_name());

View File

@@ -128,7 +128,7 @@ public class AutoSendZxToDjw {
List<BstIvtPackageinfoivt> zxqPoint = zxqPackageinfoivtList.stream().filter(r -> r.getContainer_name().equals(containerName)).collect(Collectors.toList()); List<BstIvtPackageinfoivt> zxqPoint = zxqPackageinfoivtList.stream().filter(r -> r.getContainer_name().equals(containerName)).collect(Collectors.toList());
//装箱区点位上有与该木箱号匹配的子卷 //装箱区点位上有与该木箱号匹配的子卷
if (CollectionUtils.isNotEmpty(zxqPoint)) { if (CollectionUtils.isNotEmpty(zxqPoint)) {
List<PdmBiSlittingproductionplan> productionPlanList = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper<PdmBiSlittingproductionplan>().eq(PdmBiSlittingproductionplan::getContainer_name, containerName)); List<PdmBiSlittingproductionplan> productionPlanList = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper<PdmBiSlittingproductionplan>().eq(PdmBiSlittingproductionplan::getContainer_name, containerName).eq(PdmBiSlittingproductionplan::getIs_delete, IOSEnum.IS_NOTANDYES.code("")));
if (productionPlanList.isEmpty()) { if (productionPlanList.isEmpty()) {
log.info("装箱区的子卷号为" + containerName + "无对应的分切计划信息,请检查!"); log.info("装箱区的子卷号为" + containerName + "无对应的分切计划信息,请检查!");
throw new BadRequestException("装箱区的子卷号为" + containerName + "无对应的分切计划信息,请检查!"); throw new BadRequestException("装箱区的子卷号为" + containerName + "无对应的分切计划信息,请检查!");

View File

@@ -60,8 +60,8 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
// 判断起点点位是否存在 // 判断起点点位是否存在
JSONObject jsonPoint = schBasePointService.query("point_code = '" + whereJson.getString("device_code") + "' AND is_delete = '" + JSONObject jsonPoint = schBasePointService.query("point_code = '" + whereJson.getString("device_code") + "' AND is_delete = '" +
IOSEnum.IS_NOTANDYES.code("") + "' AND is_used = '" + IOSEnum.IS_NOTANDYES.code("") + "' AND is_used = '" +
IOSEnum.IS_NOTANDYES.code("") + "'") IOSEnum.IS_NOTANDYES.code("") + "'")
.uniqueResult(0); .uniqueResult(0);
if (ObjectUtil.isEmpty(jsonPoint)) { if (ObjectUtil.isEmpty(jsonPoint)) {
@@ -150,11 +150,12 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
/** /**
* 找一个空仓位(空托盘区) * 找一个空仓位(空托盘区)
*
* @param jsonParam { * @param jsonParam {
* stor_id: 仓库标识 * stor_id: 仓库标识
* sect_id: 库区标识 * sect_id: 库区标识
* vehicle_type: 载具类型 * vehicle_type: 载具类型
* } * }
* @return JSONObject 仓位对象 * @return JSONObject 仓位对象
*/ */
private JSONObject getStruct(JSONObject jsonParam) { private JSONObject getStruct(JSONObject jsonParam) {
@@ -167,10 +168,10 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
*/ */
JSONArray structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + JSONArray structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " +
"AND is_used = '" + IOSEnum.IS_NOTANDYES.code("") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("") + "' " + "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("") + "' " +
"AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '"+jsonParam.getString("stor_id")+"' " + "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " +
"AND storagevehicle_type = '" +jsonParam.getString("vehicle_type")+"'"+ "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" +
"AND height = '2'" + "AND height = '2'" +
"AND sect_id = '"+jsonParam.getString("sect_id")+"'").getResultJSONArray(0); "AND sect_id = '" + jsonParam.getString("sect_id") + "'").getResultJSONArray(0);
if (ObjectUtil.isEmpty(structArray)) { if (ObjectUtil.isEmpty(structArray)) {
notInRowList.clear(); notInRowList.clear();
@@ -182,11 +183,11 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
String block_num = getMinBlock(jsonParam); String block_num = getMinBlock(jsonParam);
// 确定排:查看每排的载具数量,找到数量最小的那排 // 确定排:查看每排的载具数量,找到数量最小的那排
jsonParam.put("block_num",block_num); jsonParam.put("block_num", block_num);
String row_num = getMinRow(jsonParam); String row_num = getMinRow(jsonParam);
// 确定仓位: 找到相同托盘类型的伸位 // 确定仓位: 找到相同托盘类型的伸位
jsonParam.put("row_num",row_num); jsonParam.put("row_num", row_num);
JSONObject jsonAttr = queryStruct(jsonParam); JSONObject jsonAttr = queryStruct(jsonParam);
// 为空则新找巷道 // 为空则新找巷道
@@ -209,7 +210,7 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
json.put("vehicle_type", jsonParam.getString("vehicle_type")); json.put("vehicle_type", jsonParam.getString("vehicle_type"));
String row_num_2 = getMinRow(json); String row_num_2 = getMinRow(json);
json.put("row_num",row_num_2); json.put("row_num", row_num_2);
JSONObject jsonAttr_2 = queryStruct(json); JSONObject jsonAttr_2 = queryStruct(json);
if (ObjectUtil.isNotEmpty(jsonAttr_2)) { if (ObjectUtil.isNotEmpty(jsonAttr_2)) {
@@ -225,10 +226,11 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
/** /**
* 确定巷道 * 确定巷道
*
* @param jsonParam { * @param jsonParam {
* stor_id: 仓库标识 * stor_id: 仓库标识
* sect_id: 库区标识 * sect_id: 库区标识
* } * }
* @return String 巷道 * @return String 巷道
*/ */
private String getMinBlock(JSONObject jsonParam) { private String getMinBlock(JSONObject jsonParam) {
@@ -247,7 +249,7 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
.collect(Collectors.joining("','")); .collect(Collectors.joining("','"));
jsonParam.put("flag", "2"); jsonParam.put("flag", "2");
jsonParam.put("block_in", "('"+block_in+"')"); jsonParam.put("block_in", "('" + block_in + "')");
List<JSONObject> boxAllList = WQL.getWO("BST_INVEHICLE").addParamMap(jsonParam) List<JSONObject> boxAllList = WQL.getWO("BST_INVEHICLE").addParamMap(jsonParam)
.process().getResultJSONArray(0).toJavaList(JSONObject.class); .process().getResultJSONArray(0).toJavaList(JSONObject.class);
@@ -282,11 +284,12 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
/** /**
* 获取最小排 * 获取最小排
*
* @param jsonParam { * @param jsonParam {
* stor_id: 仓库标识 * stor_id: 仓库标识
* sect_id: 库区标识 * sect_id: 库区标识
* block_num 巷道 * block_num 巷道
* } * }
* @return String * @return String
*/ */
private String getMinRow(JSONObject jsonParam) { private String getMinRow(JSONObject jsonParam) {
@@ -305,7 +308,7 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
.collect(Collectors.joining("','")); .collect(Collectors.joining("','"));
jsonParam.put("flag", "2"); jsonParam.put("flag", "2");
jsonParam.put("row_in", "('"+row_in+"')"); jsonParam.put("row_in", "('" + row_in + "')");
List<JSONObject> boxAllList = WQL.getWO("BST_INVEHICLE").addParamMap(jsonParam) List<JSONObject> boxAllList = WQL.getWO("BST_INVEHICLE").addParamMap(jsonParam)
.process().getResultJSONArray(0).toJavaList(JSONObject.class); .process().getResultJSONArray(0).toJavaList(JSONObject.class);
@@ -346,12 +349,13 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
/** /**
* 确定仓位 * 确定仓位
*
* @param jsonParam { * @param jsonParam {
* stor_id: 仓库标识 * stor_id: 仓库标识
* sect_id: 库区标识 * sect_id: 库区标识
* block_num 巷道 * block_num 巷道
* row_num: 排 * row_num: 排
* } * }
* @return JSONObject 仓位 * @return JSONObject 仓位
*/ */
private JSONObject queryStruct(JSONObject jsonParam) { private JSONObject queryStruct(JSONObject jsonParam) {
@@ -371,7 +375,7 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
// 新的一排 // 新的一排
String row_num_new = this.getMinRow(jsonParam); String row_num_new = this.getMinRow(jsonParam);
jsonParam.put("row_num",row_num_new); jsonParam.put("row_num", row_num_new);
jsonAttr = this.getStructOne(jsonParam); jsonAttr = this.getStructOne(jsonParam);
} }
@@ -380,12 +384,13 @@ public class InVehicleManageServiceImpl implements InVehicleManageService {
/** /**
* 获取一个货位公共方法 * 获取一个货位公共方法
*
* @param jsonParam { * @param jsonParam {
* sect_id库区 * sect_id库区
* stor_id仓库 * stor_id仓库
* block_num 巷道 * block_num 巷道
* row_num :排 * row_num :排
* } * }
* @return JSONObject 仓位 * @return JSONObject 仓位
*/ */
private JSONObject getStructOne(JSONObject jsonParam) { private JSONObject getStructOne(JSONObject jsonParam) {

View File

@@ -1921,7 +1921,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 创建前先判断是否有已创建相同任务 // 创建前先判断是否有已创建相同任务
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)"))); List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")));
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(taskTypes); List<SchBaseTask> existTaskList1 = taskService.getExistTasks(taskTypes);
existTaskList1 = existTaskList1.stream().filter(r->StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList()); existTaskList1 = existTaskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(existTaskList1)) { if (CollectionUtils.isEmpty(existTaskList1)) {
jo.put("point_code3", pointCode3); jo.put("point_code3", pointCode3);
//终点为输送线点位 //终点为输送线点位
@@ -2360,7 +2360,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
String material_barcode = param.getString("material_barcode"); String material_barcode = param.getString("material_barcode");
String vehicle_code = param.getString("vehicle_code"); String vehicle_code = param.getString("vehicle_code");
//干燥剂模板 //干燥剂模板
String desiccantTemplate = "4"; String desiccantTemplate = "6";
//是否开盖 //是否开盖
String isUncap = "1"; String isUncap = "1";
JSONObject vehicle_info = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + material_barcode + "'").uniqueResult(0); JSONObject vehicle_info = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + material_barcode + "'").uniqueResult(0);
@@ -2373,6 +2373,18 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
new QueryWrapper<BstIvtBoxinfo>().lambda() new QueryWrapper<BstIvtBoxinfo>().lambda()
.eq(BstIvtBoxinfo::getBox_no, material_barcode) .eq(BstIvtBoxinfo::getBox_no, material_barcode)
); );
//获取包装关系
JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + material_barcode + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(sub_jo)) {
String material_type = sub_jo.getString("material_type");
if (material_type.equals("FG1")) {
desiccantTemplate = "6";
}
if (material_type.equals("FG2")) {
desiccantTemplate = "4";
}
}
//根据木箱高度,判断入库仓位的高度 //根据木箱高度,判断入库仓位的高度
String height = ""; String height = "";
String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue(); String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue();