fix:修复前端子卷规格无法显示问题,装箱对接位子卷装箱数量问题
This commit is contained in:
@@ -354,6 +354,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
private void updateBoxGroup(Integer maxBoxGroup, List<String> entityList, String boxType) {
|
||||
// code:终点,material_code:木箱规格,num: 子卷数
|
||||
UpdateWrapper<PdmBiSubpackagerelation> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.set("quanlity_in_box", entityList.size());
|
||||
updateWrapper.set("box_type", boxType);
|
||||
updateWrapper.set("box_group", maxBoxGroup);
|
||||
updateWrapper.set("status", "0");
|
||||
|
||||
@@ -120,23 +120,27 @@ public class ZxDjwTask extends AbstractAcsTask {
|
||||
schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||
//2.改变起点点位状态
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
|
||||
//更新库存记录
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
//3.更改子卷信息状态为包装1,创建装箱区->装箱位桁架任务的时候判断是否最后一个子卷:相同木箱号如果生成状态0个数等于1且子卷号等于当前载具号,就是最后一个子卷
|
||||
//3.判断是否最后一个子卷:相同木箱号的子卷包装关系如果生成状态:0,且个数等于1且子卷号等于当前载具号,就是最后一个子卷
|
||||
List<PdmBiSubpackagerelation> packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getPackage_box_sn, schBaseTask.getVehicle_code2()).eq(PdmBiSubpackagerelation::getStatus, "0"));
|
||||
//所有木箱已装箱
|
||||
if (CollectionUtils.isEmpty(packagerelationList)) {
|
||||
BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper<BstIvtBoxinfo>().eq(BstIvtBoxinfo::getBox_no, schBaseTask.getVehicle_code2()).ne(BstIvtBoxinfo::getIs_packing, "1"));
|
||||
if (bstIvtBoxinfo == null) {
|
||||
throw new BadRequestException("子卷包装关系为已装箱或找该任务的木箱号不存在!");
|
||||
}
|
||||
//4.更改木箱信息为已装箱:1
|
||||
bstIvtBoxinfo.setIs_packing("1");
|
||||
bstIvtBoxinfoMapper.updateById(bstIvtBoxinfo);
|
||||
}
|
||||
if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(schBaseTask.getVehicle_code())) {
|
||||
//5.最后一个子卷,清除装箱位木箱信息
|
||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>().set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
}
|
||||
//6.改变子卷包装状态为已装箱:1
|
||||
PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService
|
||||
.getOne(new LambdaUpdateWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false);
|
||||
pdmBiSubpackagerelation.setStatus("1");
|
||||
subpackageRelationService.updateById(pdmBiSubpackagerelation);
|
||||
//4.查询同一个木箱号如果生成状态0个数等于0,更新该木箱信息表为包装1
|
||||
List<PdmBiSubpackagerelation> packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getPackage_box_sn, schBaseTask.getVehicle_code2()).eq(PdmBiSubpackagerelation::getStatus, "0"));
|
||||
if (CollectionUtils.isEmpty(packagerelationList)) {
|
||||
BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper<BstIvtBoxinfo>().eq(BstIvtBoxinfo::getBox_no, schBaseTask.getVehicle_code2()).ne(BstIvtBoxinfo::getIs_packing, "1"));
|
||||
if (bstIvtBoxinfo == null) {
|
||||
throw new BadRequestException("找不到该木箱信息!");
|
||||
}
|
||||
bstIvtBoxinfo.setIs_packing("1");
|
||||
bstIvtBoxinfoMapper.updateById(bstIvtBoxinfo);
|
||||
}
|
||||
//创建装箱区->空载具缓存位补空任务
|
||||
//kzjhcwTask.toKzjHcw(schBaseTask.getPoint_code1());
|
||||
}
|
||||
|
||||
@@ -56,84 +56,86 @@ public class AutoSendZxToDjw {
|
||||
}
|
||||
|
||||
void sendZxToDjw() {
|
||||
//装箱位有木箱
|
||||
List<BstIvtPackageinfoivt> zxwPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位"));
|
||||
if (CollectionUtils.isEmpty(zxwPackageinfoivtList)) {
|
||||
return;
|
||||
}
|
||||
//装箱区有子卷且没有正在进行的装箱任务
|
||||
List<BstIvtPackageinfoivt> zxqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", "");
|
||||
if (CollectionUtils.isEmpty(zxqPackageinfoivtList)) {
|
||||
return;
|
||||
}
|
||||
//装箱位有木箱
|
||||
List<BstIvtPackageinfoivt> zxwPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位"));
|
||||
if (CollectionUtils.isNotEmpty(zxwPackageinfoivtList)) {
|
||||
//装箱位上的木箱号
|
||||
String boxNo = zxwPackageinfoivtList.get(0).getContainer_name();
|
||||
//获取木箱信息,未包装的木箱
|
||||
BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper<BstIvtBoxinfo>().eq(BstIvtBoxinfo::getBox_no, boxNo).ne(BstIvtBoxinfo::getIs_packing, "1"));
|
||||
if (bstIvtBoxinfo == null) {
|
||||
throw new BadRequestException("请检查木箱号:"+ boxNo +"是否存在或者状态为已装箱!");
|
||||
}
|
||||
//检查木箱信息
|
||||
checkBoxParams(boxNo, bstIvtBoxinfo);
|
||||
//3.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱对接位位桁架任务
|
||||
List<PdmBiSubpackagerelation> relationList = subpackageRelationService
|
||||
.list(new LambdaUpdateWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getPackage_box_sn, boxNo).eq(PdmBiSubpackagerelation::getStatus, "0"));
|
||||
if (CollectionUtils.isEmpty(relationList)) {
|
||||
throw new BadRequestException("装箱位的木箱号"+boxNo+"对应的子卷包装关系异常,请检查子卷包装关系状态是否为0!");
|
||||
}
|
||||
//获取与该木箱号匹配的子卷号
|
||||
String containerName = relationList.get(0).getContainer_name();
|
||||
List<BstIvtPackageinfoivt> zxqPoint = zxqPackageinfoivtList.stream().filter(r -> r.getContainer_name().equals(containerName)).collect(Collectors.toList());
|
||||
//装箱区点位上有与该木箱号匹配的子卷
|
||||
if (CollectionUtils.isNotEmpty(zxqPoint)) {
|
||||
List<PdmBiSlittingproductionplan> productionPlanList = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper<PdmBiSlittingproductionplan>().eq(PdmBiSlittingproductionplan::getContainer_name, containerName));
|
||||
if (productionPlanList.isEmpty()) {
|
||||
throw new BadRequestException("装箱区的子卷号为"+containerName+"无对应的分切计划信息,请检查!");
|
||||
}
|
||||
//创建搬运任务到装箱位
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位"));
|
||||
jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
|
||||
jo.put("point_code1", zxqPoint.get(0).getPoint_code());
|
||||
jo.put("point_code2", zxwPackageinfoivtList.get(0).getPoint_code());
|
||||
jo.put("vehicle_code", containerName);
|
||||
jo.put("vehicle_code2", boxNo);
|
||||
jo.put("is_send", "1");
|
||||
//扩展参数
|
||||
JSONObject param = new JSONObject();
|
||||
//查询是否为最后一个子卷,相同木箱号且子卷包装状态为生成
|
||||
List<PdmBiSubpackagerelation> packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getPackage_box_sn, boxNo).eq(PdmBiSubpackagerelation::getStatus, "0"));
|
||||
if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(containerName)) {
|
||||
//最后子卷
|
||||
param.put("lastOne", "1");
|
||||
} else {
|
||||
param.put("lastOne", "0");
|
||||
}
|
||||
//获取木箱高度等级
|
||||
param.put("heightLevel", getHeightLevel(bstIvtBoxinfo));
|
||||
//获取子卷长度
|
||||
param.put("len", getMaxNum(productionPlanList));
|
||||
//木箱最大数量
|
||||
param.put("maxNo", bstIvtBoxinfo.getNum());
|
||||
//托盘类型 1小托盘 2大托盘
|
||||
param.put("containerType", bstIvtBoxinfo.getVehicle_type());
|
||||
//木箱需放入子卷数量
|
||||
param.put("boxNo", relationList.get(0).getQuanlity_in_box());
|
||||
//子卷号
|
||||
param.put("barcode", containerName);
|
||||
jo.put("request_param", param.toString());
|
||||
zxDjwTask.createTask(jo);
|
||||
}
|
||||
//装箱位上的木箱号
|
||||
String boxNo = zxwPackageinfoivtList.get(0).getContainer_name();
|
||||
//获取木箱信息,未包装的木箱
|
||||
BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper<BstIvtBoxinfo>().eq(BstIvtBoxinfo::getBox_no, boxNo).ne(BstIvtBoxinfo::getIs_packing, "1"));
|
||||
if (bstIvtBoxinfo == null) {
|
||||
throw new BadRequestException("请检查木箱号:" + boxNo + "是否存在或者状态为已装箱!");
|
||||
}
|
||||
//检查木箱信息
|
||||
checkBoxParams(boxNo, bstIvtBoxinfo);
|
||||
//3.查询子卷对应的包装关系表,判断装箱位的木箱号是否为子卷对应的木箱号,是,创建搬运任务到装箱对接位位桁架任务
|
||||
List<PdmBiSubpackagerelation> relationList = subpackageRelationService
|
||||
.list(new LambdaUpdateWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getPackage_box_sn, boxNo).eq(PdmBiSubpackagerelation::getStatus, "0"));
|
||||
if (CollectionUtils.isEmpty(relationList)) {
|
||||
throw new BadRequestException("装箱位的木箱号" + boxNo + "对应的子卷包装关系异常,请检查子卷包装关系状态是否为0!");
|
||||
}
|
||||
//获取与该木箱号匹配的子卷号
|
||||
String containerName = relationList.get(0).getContainer_name();
|
||||
List<BstIvtPackageinfoivt> zxqPoint = zxqPackageinfoivtList.stream().filter(r -> r.getContainer_name().equals(containerName)).collect(Collectors.toList());
|
||||
//装箱区点位上有与该木箱号匹配的子卷
|
||||
if (CollectionUtils.isNotEmpty(zxqPoint)) {
|
||||
List<PdmBiSlittingproductionplan> productionPlanList = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper<PdmBiSlittingproductionplan>().eq(PdmBiSlittingproductionplan::getContainer_name, containerName));
|
||||
if (productionPlanList.isEmpty()) {
|
||||
throw new BadRequestException("装箱区的子卷号为" + containerName + "无对应的分切计划信息,请检查!");
|
||||
}
|
||||
//创建搬运任务到装箱位
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位"));
|
||||
jo.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
|
||||
jo.put("point_code1", zxqPoint.get(0).getPoint_code());
|
||||
jo.put("point_code2", zxwPackageinfoivtList.get(0).getPoint_code());
|
||||
jo.put("vehicle_code", containerName);
|
||||
jo.put("vehicle_code2", boxNo);
|
||||
jo.put("is_send", "1");
|
||||
//扩展参数
|
||||
JSONObject param = new JSONObject();
|
||||
//查询是否为最后一个子卷,相同木箱号且子卷包装状态为生成
|
||||
List<PdmBiSubpackagerelation> packagerelationList = subpackageRelationService.list(new LambdaQueryWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getPackage_box_sn, boxNo).eq(PdmBiSubpackagerelation::getStatus, "0"));
|
||||
if (packagerelationList.size() == 1 && packagerelationList.get(0).getContainer_name().equals(containerName)) {
|
||||
//最后子卷
|
||||
param.put("lastOne", "1");
|
||||
} else {
|
||||
param.put("lastOne", "0");
|
||||
}
|
||||
//获取木箱高度等级
|
||||
param.put("heightLevel", getHeightLevel(bstIvtBoxinfo));
|
||||
//获取子卷长度
|
||||
param.put("len", getMaxNum(productionPlanList));
|
||||
//木箱最大数量
|
||||
param.put("maxNo", bstIvtBoxinfo.getNum());
|
||||
//托盘类型 1小托盘 2大托盘
|
||||
param.put("containerType", bstIvtBoxinfo.getVehicle_type());
|
||||
//木箱需放入子卷数量
|
||||
param.put("boxNo", relationList.get(0).getQuanlity_in_box());
|
||||
//子卷号
|
||||
param.put("barcode", containerName);
|
||||
jo.put("request_param", param.toString());
|
||||
zxDjwTask.createTask(jo);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void checkBoxParams(String boxNo, BstIvtBoxinfo bstIvtBoxinfo) {
|
||||
if (StringUtils.isBlank(bstIvtBoxinfo.getBox_high())) {
|
||||
throw new BadRequestException("请检查木箱号:"+ boxNo +"木箱高度不能为空!");
|
||||
throw new BadRequestException("请检查木箱号:" + boxNo + "木箱高度不能为空!");
|
||||
}
|
||||
if (StringUtils.isBlank(bstIvtBoxinfo.getNum())) {
|
||||
throw new BadRequestException("请检查木箱号:"+ boxNo +"能装的最大子卷数不能为空!");
|
||||
throw new BadRequestException("请检查木箱号:" + boxNo + "能装的最大子卷数不能为空!");
|
||||
}
|
||||
if (StringUtils.isBlank(bstIvtBoxinfo.getVehicle_type())) {
|
||||
throw new BadRequestException("请检查木箱号:"+ boxNo +"托盘类型不能为空!");
|
||||
throw new BadRequestException("请检查木箱号:" + boxNo + "托盘类型不能为空!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user