|
@@ -1,5 +1,6 @@
|
|
|
package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
@@ -992,7 +993,7 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
|
ApsProductionOrderDo apsProductionOrderDo = apsProductionOrderService.getById(apsBlankOrderDo.getProductionorderid());
|
|
|
//合并加工作业开工之后进行报工,同步更新一起开工的其他作业的加工参数//需求变更:前面条件成立的前提下增加查找与当前工序作业炉次号相同的数据
|
|
|
if (ObjectUtil.isNotEmpty(apsReportMachiningDoList)) {
|
|
|
- syncOtherEquRecords(apsProcessOperationDo, apsProcessOperationProcessEquDo, nowReportRecordsDo.getProcessequid(), apsReportMachiningDoList, currentUser, nowReportRecordsDo.getHeatnumber());
|
|
|
+ syncOtherEquRecords(apsProcessOperationDo, apsProcessOperationProcessEquDo, nowReportRecordsDo, apsReportMachiningDoList, currentUser, nowReportRecordsDo.getHeatnumber());
|
|
|
}
|
|
|
|
|
|
//如果工序作业是否坯料工序=是,检查每个报工输出物料批次号
|
|
@@ -1978,18 +1979,16 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
|
*
|
|
|
* @param apsProcessOperationDo
|
|
|
* @param apsProcessOperationProcessEquDo
|
|
|
- * @param processEquId
|
|
|
+ * @param apsReportRecordsDo
|
|
|
* @param apsReportMachiningDoList
|
|
|
*/
|
|
|
- private void syncOtherEquRecords(ApsProcessOperationDo apsProcessOperationDo, ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo, String processEquId, List<ApsReportMachiningDo> apsReportMachiningDoList, SysUserVo currentUser, String heatnumber) {
|
|
|
- List<ApsReportMachiningDo> machList = apsReportMachiningService.list();
|
|
|
- List<String> mainRecordIds = machList.stream().map(ApsReportMachiningDo::getMainid).distinct().collect(Collectors.toList());
|
|
|
+ private void syncOtherEquRecords(ApsProcessOperationDo apsProcessOperationDo, ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo, ApsReportRecordsDo apsReportRecordsDo, List<ApsReportMachiningDo> apsReportMachiningDoList, SysUserVo currentUser, String heatnumber) {
|
|
|
if ("合并加工".equals(apsProcessOperationDo.getProcessway())) {
|
|
|
List<ApsProcessOperationProcessEquDo> list = apsProcessOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
.eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, apsProcessOperationProcessEquDo.getProcessdeviceid())
|
|
|
.eq(ApsProcessOperationProcessEquDo::getPlanstartdate, apsProcessOperationProcessEquDo.getPlanstartdate())
|
|
|
.eq(ApsProcessOperationProcessEquDo::getProcessid, apsProcessOperationDo.getId())
|
|
|
- .notIn(ApsProcessOperationProcessEquDo::getId, processEquId)
|
|
|
+ .notIn(ApsProcessOperationProcessEquDo::getId, apsReportRecordsDo.getProcessequid())
|
|
|
.and(qw -> qw.gt(ApsProcessOperationProcessEquDo::getActualfinishdate, apsProcessOperationProcessEquDo.getActualstartdate()).or().isNull(ApsProcessOperationProcessEquDo::getActualfinishdate)));
|
|
|
List<String> equIds = list.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList());
|
|
|
log.info("待同步工序作业明细主键数据:{}", equIds);
|
|
@@ -1998,13 +1997,17 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
|
.eq(ApsReportRecordsDo::getDeleted, "0")
|
|
|
.eq(ApsReportRecordsDo::getHeatnumber, heatnumber)
|
|
|
.in(ApsReportRecordsDo::getProcessequid, equIds)
|
|
|
- .in(ApsReportRecordsDo::getReportworkstatus, "已开工", "已报工"));
|
|
|
+ .in(ApsReportRecordsDo::getReportworkstatus, "已开工", "已报工")
|
|
|
+ .ne(ApsReportRecordsDo::getId, apsReportRecordsDo.getId()));
|
|
|
+ List<String> recordIds = recordsDos.stream().map(ApsReportRecordsDo::getId).collect(Collectors.toList());
|
|
|
+ if (!recordIds.isEmpty()) {
|
|
|
+ apsReportMachiningService.remove(new LambdaUpdateWrapper<ApsReportMachiningDo>()
|
|
|
+ .in(ApsReportMachiningDo::getMainid, recordIds));
|
|
|
+ }
|
|
|
+ List<ApsReportMachiningDo> needInsertList = new LinkedList<>();
|
|
|
recordsDos.forEach(info -> {
|
|
|
- if (mainRecordIds.contains(info.getId())) {
|
|
|
- apsReportMachiningService.remove(new LambdaUpdateWrapper<ApsReportMachiningDo>()
|
|
|
- .eq(ApsReportMachiningDo::getMainid, info.getId()));
|
|
|
- }
|
|
|
- apsReportMachiningDoList.forEach(mach -> {
|
|
|
+ for (ApsReportMachiningDo apsReportMachiningDo : apsReportMachiningDoList) {
|
|
|
+ ApsReportMachiningDo mach = BeanUtil.copyProperties(apsReportMachiningDo, ApsReportMachiningDo.class);
|
|
|
mach.setId(SecurityUtil.getUUID());
|
|
|
mach.setMainid(info.getId());
|
|
|
mach.setCreatedate(new Date());
|
|
@@ -2013,11 +2016,10 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
|
mach.setModifydate(new Date());
|
|
|
mach.setModifyuserid(currentUser.getId());
|
|
|
mach.setModifyusername(currentUser.getName());
|
|
|
- });
|
|
|
- if (!apsReportMachiningDoList.isEmpty()) {
|
|
|
- apsReportMachiningService.saveBatch(apsReportMachiningDoList);
|
|
|
+ needInsertList.add(mach);
|
|
|
}
|
|
|
});
|
|
|
+ apsReportMachiningService.saveBatch(needInsertList);
|
|
|
}
|
|
|
}
|
|
|
}
|