|
@@ -3,6 +3,8 @@ package com.rongwei.bscommon.sys.service.impl;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.rongwei.bscommon.sys.dao.*;
|
|
|
import com.rongwei.bscommon.sys.service.*;
|
|
@@ -131,17 +133,16 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
|
* 如果已开工卷数>0,并且完工状态=未完工,则=加工中;(先更新完工状态)
|
|
|
* 如果未完工卷数=0,并且完工状态=已完工,则=已完工(先更新完工状态)
|
|
|
*/
|
|
|
- ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = new ApsProcessOperationProcessEquDo();
|
|
|
- apsProcessOperationProcessEquDo.setId(equDo.getId());
|
|
|
+ LambdaUpdateWrapper<ApsProcessOperationProcessEquDo> set = new UpdateWrapper<ApsProcessOperationProcessEquDo>().lambda();
|
|
|
if (equDo.getStartingroll() == 0) {
|
|
|
- apsProcessOperationProcessEquDo.setWorkstatus("待开工");
|
|
|
- apsProcessOperationProcessEquDo.setActualstartdate(null);
|
|
|
+ set.set(ApsProcessOperationProcessEquDo::getWorkstatus, "待开工");
|
|
|
+ set.set(ApsProcessOperationProcessEquDo::getActualstartdate, null);
|
|
|
}
|
|
|
if (equDo.getStartingroll() > 0 && equDo.getClosestatus().equals("未完工")) {
|
|
|
- apsProcessOperationProcessEquDo.setWorkstatus("加工中");
|
|
|
+ set.set(ApsProcessOperationProcessEquDo::getWorkstatus, "加工中");
|
|
|
}
|
|
|
if (ObjectUtil.isNotEmpty(equDo.getUnfinishroll()) && equDo.getUnfinishroll() == 0) {
|
|
|
- apsProcessOperationProcessEquDo.setWorkstatus("已完工");
|
|
|
+ set.set(ApsProcessOperationProcessEquDo::getWorkstatus, "已完工");
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -172,18 +173,29 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
|
apsProcessOperationDao.updateBatchNumberByPrevious(recordsDo.getBatchnumber(), equDo.getPreviousprocessesids());
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- apsProcessOperationProcessEquDao.updateById(apsProcessOperationProcessEquDo);
|
|
|
+ set.eq(ApsProcessOperationProcessEquDo::getId, equDo.getId());
|
|
|
+ apsProcessOperationProcessEquService.update(set);
|
|
|
|
|
|
//如果没有输入批次号,取消开工需要还原
|
|
|
if (ObjectUtil.isEmpty(recordsDo.getBatchnumber())) {
|
|
|
//如果开工时间是当前月,需要取消流水号
|
|
|
if (DateUtil.month(recordsDo.getStartworktime()) == DateUtil.month(DateUtil.date())) {
|
|
|
- //轧机/熔炉 对应炉号 流水号配置表中的值-1, 如果是铸轧,需要减去 输出物料的单卷数合计
|
|
|
+ //如果是铸轧,需要减去 输出物料的单卷数合计
|
|
|
this.cancelNumber(equDo);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //如果当前工序作业明细 不存在(其他合并工序作业明细,并且其他合并作业明细的 待报工记录ID 不为空) 则炉号-1
|
|
|
+ List<ApsProcessOperationProcessEquDo> equDoMergeStartingList = this.baseMapper.selectOtherMergeProcessStarting(equDo.getId(), equDo.getProcessdeviceid(), equDo.getPlanstartdate());
|
|
|
+ if (equDoMergeStartingList.size() <= 0) {
|
|
|
+ //炉号-1
|
|
|
+ //加工设备ID
|
|
|
+ String processdeviceid = equDo.getProcessdeviceid();
|
|
|
+ //在流水表中的 标识
|
|
|
+ String moduleCode = "aps_report_output_heat_" + processdeviceid;
|
|
|
+ apsProcessOperationProcessEquDao.updateSerialNumber(moduleCode, 1);
|
|
|
+ }
|
|
|
+
|
|
|
//更新其余信息
|
|
|
CommonUpdateProductionStatusReq commonUpdateProductionStatusReq = new CommonUpdateProductionStatusReq();
|
|
|
commonUpdateProductionStatusReq.setProcessOperationEquId(equDo.getId());
|
|
@@ -193,12 +205,8 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
|
}
|
|
|
|
|
|
private void cancelNumber(ApsProcessOperationProcessEquDo equDo) {
|
|
|
- //炉号-1
|
|
|
//加工设备ID
|
|
|
String processdeviceid = equDo.getProcessdeviceid();
|
|
|
- //在流水表中的 标识
|
|
|
- String moduleCode = "aps_report_output_heat_" + processdeviceid;
|
|
|
- apsProcessOperationProcessEquDao.updateSerialNumber(moduleCode, 1);
|
|
|
|
|
|
//查询坯料计划
|
|
|
ApsBlankOrderDo apsBlankOrderDo = apsBlankOrderService.getById(equDo.getBlankid());
|
|
@@ -401,15 +409,28 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
|
//============保存(报工)时,生成炉号和批次号=============
|
|
|
//获取设备/炉 的炉号(每月、每个设备/炉 更新)
|
|
|
String heatNumber;//初始化炉号
|
|
|
- //调用通用接口生成炉号
|
|
|
- SysSerialVo vo = new SysSerialVo();
|
|
|
- vo.setModulecode("aps_report_output_heat_" + apsProcessOperationProcessEquDo.getProcessdeviceid());
|
|
|
- vo.setRuleTemplateStr("@{serialNumber:#000}");
|
|
|
- vo.setResetrule("date:yyyyMM");
|
|
|
- vo.setIfautomaticreset("y");
|
|
|
- vo.setInitValue(1L);
|
|
|
- Map<String, Object> codeData = cxAdminFeginClient.getSerialNumberCode(vo).getData();
|
|
|
- heatNumber = codeData.get("code").toString();
|
|
|
+ //如果存在其他合并工序,并且其他合并工序已开工,则不去生成新的 炉次号 使用其他合并工序的 开工记录的 炉次号
|
|
|
+ List<ApsProcessOperationProcessEquDo> apsProcessEquMergeStartingList = this.baseMapper.selectOtherMergeProcessStarting(apsProcessOperationProcessEquDo.getId(), apsProcessOperationProcessEquDo.getProcessdeviceid(), apsProcessOperationProcessEquDo.getPlanstartdate());
|
|
|
+
|
|
|
+ if (apsProcessEquMergeStartingList.size() > 0) {
|
|
|
+ //合并工序作业明细
|
|
|
+ ApsProcessOperationProcessEquDo equDo = apsProcessEquMergeStartingList.get(0);
|
|
|
+ //查询该合并工序作业明细的待报工记录ID
|
|
|
+ String waitreportid = equDo.getWaitreportid();
|
|
|
+ //待报工记录详情
|
|
|
+ ApsReportRecordsDo aDo = this.getById(waitreportid);
|
|
|
+ heatNumber = aDo.getHeatnumber();
|
|
|
+ } else {
|
|
|
+ //调用通用接口生成炉号
|
|
|
+ SysSerialVo vo = new SysSerialVo();
|
|
|
+ vo.setModulecode("aps_report_output_heat_" + apsProcessOperationProcessEquDo.getProcessdeviceid());
|
|
|
+ vo.setRuleTemplateStr("@{serialNumber:#000}");
|
|
|
+ vo.setResetrule("date:yyyyMM");
|
|
|
+ vo.setIfautomaticreset("y");
|
|
|
+ vo.setInitValue(1L);
|
|
|
+ Map<String, Object> codeData = cxAdminFeginClient.getSerialNumberCode(vo).getData();
|
|
|
+ heatNumber = codeData.get("code").toString();
|
|
|
+ }
|
|
|
|
|
|
apsReportRecordsDo.setHeatnumber(heatNumber);
|
|
|
//保存主表
|