# Conflicts:
#	lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/PdmBiSlittingproductionplan.java
This commit is contained in:
zhouz
2024-05-23 17:25:13 +08:00
4 changed files with 30 additions and 58 deletions

View File

@@ -155,9 +155,10 @@ public class PdmBiSlittingproductionplan implements Serializable {
/** 子卷等级*/
private String level;
/** 子卷重量 */
private String weight;
/** 管件重量 */
/** 分切重量 */
private String paper_weight;
}

View File

@@ -95,56 +95,9 @@ public class TrussCallAirShaftTask extends AbstractAcsTask {
// 更改任务状态为完成
task.setTask_status(TaskStatusEnum.FINISHED.getCode());
String startPoint = task.getPoint_code1();
String endPoint = task.getPoint_code2();
BstIvtCutpointivt startPointObj = bcutpointivtService.getOne(new LambdaQueryWrapper<BstIvtCutpointivt>()
.eq(BstIvtCutpointivt::getTruss_point_code1, startPoint).or()
.eq(BstIvtCutpointivt::getTruss_point_code2, startPoint));
BstIvtShafttubeivt endPointObj = shafttubeivtService.getOne(new LambdaQueryWrapper<BstIvtShafttubeivt>()
.eq(BstIvtShafttubeivt::getPoint_code, endPoint));
String requestParam = task.getRequest_param();
JSONObject extGroupData = JSONObject.parseObject(requestParam);
// 需要套轴就要把纸管信息进行维护
if ("1".equals(extGroupData.getString("is_bushing"))) {
// 获取分切计划(最多两个)需要获取子卷的纸管设置到点位上 获取分切计划dto中对应的需要套轴的分切计划 最多两个计划
String needPlan = extGroupData.getString("needPlan");
SlitterPlanDistinctDto planDistinctDto = JSONObject.parseObject(needPlan, SlitterPlanDistinctDto.class);
List<PdmBiSlittingproductionplan> needPlans = slittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
.eq(PdmBiSlittingproductionplan::getResource_name, planDistinctDto.getResource_name())
.eq(PdmBiSlittingproductionplan::getParent_container_name, planDistinctDto.getParent_container_name())
.eq(PdmBiSlittingproductionplan::getUp_or_down, planDistinctDto.getUp_or_down())
.eq(PdmBiSlittingproductionplan::getSplit_group, planDistinctDto.getSplit_group())
.eq(PdmBiSlittingproductionplan::getIs_paper_ok, "2"));
if (needPlans.size() == 0) {
throw new BadRequestException("找不到气涨轴编码【" + task.getVehicle_code() + "】对应的气涨轴");
}
for (PdmBiSlittingproductionplan plan : needPlans) {
if (SlitterConstant.SLITTER_SUB_VOLUME_LEFT.equals(plan.getLeft_or_right())) {
// 左卷
if (SlitterConstant.SLITTER_TYPE_PAPER.equals(plan.getPaper_tube_or_FRP())) {
endPointObj.setTube_code1(plan.getPaper_tube_material());
endPointObj.setTube_name1(plan.getPaper_tube_model());
} else {
endPointObj.setTube_code1(plan.getFRP_material());
endPointObj.setTube_name1(plan.getFRP_model());
}
endPointObj.setContainer_name1(plan.getContainer_name());
} else {
// 右卷
if (SlitterConstant.SLITTER_TYPE_PAPER.equals(plan.getPaper_tube_or_FRP())) {
endPointObj.setTube_code2(plan.getPaper_tube_material());
endPointObj.setTube_name2(plan.getPaper_tube_model());
} else {
endPointObj.setTube_code2(plan.getFRP_material());
endPointObj.setTube_name2(plan.getFRP_model());
}
endPointObj.setContainer_name2(plan.getContainer_name());
}
}
}
endPointObj.setHave_qzz("1");
endPointObj.setQzz_size(extGroupData.getString("qzz_size"));
TaskUtils.updateOptMessageByBShaftPoint(endPointObj);
shafttubeivtService.updateById(endPointObj);
// 起点清空
if (startPoint.equals(startPointObj.getTruss_point_code1())) {
startPointObj.setQzz_no1("");
@@ -156,7 +109,6 @@ public class TrussCallAirShaftTask extends AbstractAcsTask {
}
TaskUtils.updateOptMessageByBCutPoint(startPointObj);
bcutpointivtService.updateById(startPointObj);
}
// 取消
if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) {

View File

@@ -149,6 +149,8 @@ public class AutoCallAirShaftTask {
if (oldQzzNo == null) {
throw new BadRequestException("当前气胀轴的编码为空!");
}
// 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划
saveCutPlanMessage(empty, needPlans, qzzSize);
// 最多两条
List<PdmBiSlittingproductionplan> oldPlans = slittingproductionplanService.getByQzzNo(oldQzzNo);
SlitterTaskUtil.putCurrentPaperSpec(param, oldPlans);
@@ -225,9 +227,7 @@ public class AutoCallAirShaftTask {
private void saveCutPlanMessage(BstIvtShafttubeivt empty, List<PdmBiSlittingproductionplan> needPlans, String qzzSize) {
empty.setHave_qzz(SlitterConstant.SLITTER_YES);
empty.setQzz_size(qzzSize);
empty.setUpdate_optid(SecurityUtils.getCurrentUserId());
empty.setUpdate_optname(SecurityUtils.getCurrentUsername());
empty.setUpdate_time(DateUtil.now());
TaskUtils.updateOptMessageByBShaftPoint(empty);
for (PdmBiSlittingproductionplan plan : needPlans) {
if (SlitterConstant.SLITTER_SUB_VOLUME_LEFT.equals(plan.getLeft_or_right())) {
// 左卷

View File

@@ -173,10 +173,11 @@ public class SlitterServiceImpl implements SlitterService {
@Override
@Transactional(rollbackFor = Exception.class)
public JSONObject acsFinishLoadShaft(JSONObject param) {
log.info("ACS申请套管完成参数: {}", param);
JSONObject res = new JSONObject();
// 穿拔轴位
String deviceCode = param.getString("device_code");
// todo: 纸管
// 纸管
String weight1 = param.getString("weight1");
String material1 = param.getString("material1");
String weight2 = param.getString("weight2");
@@ -205,6 +206,18 @@ public class SlitterServiceImpl implements SlitterService {
log.error("找不到[{}]对应的分切计划!", collect);
throw new BadRequestException("找不到[" + collect + "]对应的分切计划!");
}
// 分切计划设置纸卷重量
for (PdmBiSlittingproductionplan plan : plans) {
if (ObjectUtil.isNotEmpty(material1) && material1.equals(plan.getContainer_name())) {
plan.setPaper_weight(weight1);
}
if (ObjectUtil.isNotEmpty(material2) && material2.equals(plan.getContainer_name())) {
plan.setPaper_weight(weight2);
}
TaskUtils.updateOptMessageBySlitterPlan(plan);
}
slittingproductionplanService.updateBatchById(plans);
// 当前套轴的分切计划
PdmBiSlittingproductionplan demoPlan = plans.get(0);
// 查找是否有同组的气胀轴位置
@@ -555,6 +568,7 @@ public class SlitterServiceImpl implements SlitterService {
public JSONObject acsSendSubVolume(JSONObject param) {
JSONObject res = new JSONObject();
String deviceCode = param.getString("device_code");
BstIvtShafttubeivt device = shafttubeivtService.getByPointCode(deviceCode, false);
// 气涨轴编码
String qzzNo = param.getString("qzz_no");
String direction = param.getString("direction");
@@ -572,12 +586,17 @@ public class SlitterServiceImpl implements SlitterService {
log.error("设备{}, 找不到气胀轴编码{}对应的分切计划!参数:{}", deviceCode, qzzNo, param);
throw new BadRequestException("找不到气胀轴编码{ " + qzzNo + " }的分切计划!");
}
// 查找终点 todo: 如何确认是废箔还是成品
// todo: 暂时写死去成品称重
// BstIvtShafttubeivt one = shafttubeivtService.getOne(new LambdaQueryWrapper<BstIvtShafttubeivt>()
// .eq(BstIvtShafttubeivt::getPoint_type, "4").eq(BstIvtShafttubeivt::getPoint_location, "0"));
if (ObjectUtil.isEmpty(plan.getLevel())) {
throw new BadRequestException("子卷[" + plan.getContainer_name() + "]对应的级别不能为空");
}
String point_type = "5".equals(plan.getLevel()) ? "5" : "4";
// 查找终点 确认是废箔还是成品: 根据分切计划的子卷等级来区分5为报废
BstIvtShafttubeivt one = shafttubeivtService.getOne(new LambdaQueryWrapper<BstIvtShafttubeivt>()
.eq(BstIvtShafttubeivt::getPoint_type, point_type)
.eq(BstIvtShafttubeivt::getPoint_location, device.getPoint_location())
.eq(BstIvtShafttubeivt::getIs_used, SlitterConstant.SLITTER_YES));
JSONObject taskParam = new JSONObject();
taskParam.put("point_code2", "B_CZW01");
taskParam.put("point_code2", one.getPoint_code());
taskParam.put("material_code", plan.getContainer_name());
res.put("code", HttpStatus.HTTP_OK);
res.put("message", "请求成功!");