|
@@ -23,6 +23,7 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.util.Date;
|
|
import java.util.LinkedList;
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -121,8 +122,8 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
//查询作业明细详情
|
|
//查询作业明细详情
|
|
ApsProcessOperationProcessEquDo equDo = apsProcessOperationProcessEquDao.selectById(processequid);
|
|
ApsProcessOperationProcessEquDo equDo = apsProcessOperationProcessEquDao.selectById(processequid);
|
|
|
|
|
|
- //更新设备的待报工记录ID
|
|
|
|
- apsProcessOperationProcessEquDao.updateEquByCancelRecord(recordId, equDo.getProcessdeviceid());
|
|
|
|
|
|
+// //更新设备的待报工记录ID
|
|
|
|
+// apsProcessOperationProcessEquDao.updateEquByCancelRecord(recordId, equDo.getProcessdeviceid());
|
|
|
|
|
|
//作业明细的作业状态
|
|
//作业明细的作业状态
|
|
/**
|
|
/**
|
|
@@ -201,21 +202,49 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
if (ObjectUtil.isEmpty(organizationCodeAndDeviceCodeVo) || ObjectUtil.isEmpty(organizationCodeAndDeviceCodeVo.getDeviceCode()) || ObjectUtil.isEmpty(organizationCodeAndDeviceCodeVo.getOrganizationCode())) {
|
|
if (ObjectUtil.isEmpty(organizationCodeAndDeviceCodeVo) || ObjectUtil.isEmpty(organizationCodeAndDeviceCodeVo.getDeviceCode()) || ObjectUtil.isEmpty(organizationCodeAndDeviceCodeVo.getOrganizationCode())) {
|
|
return R.error("未找到对应的车间代号和设备代号");
|
|
return R.error("未找到对应的车间代号和设备代号");
|
|
}
|
|
}
|
|
- //设备的待加工ID
|
|
|
|
- String waitReportId = organizationCodeAndDeviceCodeVo.getWaitReportId();
|
|
|
|
- //如果工序作业加工设备已有其他作业状态为已开工,错误提示:该设备当前加工中的作业还未报工,不能开工新的作业
|
|
|
|
- if (ObjectUtil.isNotEmpty(waitReportId)) {
|
|
|
|
- //查询当前报工的工序作业明细详情
|
|
|
|
- ApsReportRecordsDo apsReportRecordsDo = this.getById(waitReportId);
|
|
|
|
- String processequid = apsReportRecordsDo.getProcessequid();
|
|
|
|
- ApsProcessOperationProcessEquDo doingProcessEqu = apsProcessOperationProcessEquService.getById(processequid);
|
|
|
|
- //计划开工时间不相等,表示不是合并工序
|
|
|
|
- if (doingProcessEqu.getPlanstartdate().compareTo(apsProcessOperationProcessEquDo.getPlanstartdate()) != 0) {
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 如果工序作业明细加工设备已有其他作业明细正在加工(待报工记录ID不为空),
|
|
|
|
+ * 并且(不是排程合并作业,或者与工序作业明细不是同一排程合并作业),
|
|
|
|
+ * 则错误提示:该设备当前加工中的作业还未报工,不能开工新的作业
|
|
|
|
+ */
|
|
|
|
+ //当前工序作业明细的加工设备ID
|
|
|
|
+ String processdeviceid = apsProcessOperationProcessEquDo.getProcessdeviceid();
|
|
|
|
+ //当前工序作业明细的ID
|
|
|
|
+ String apsProcessOperationProcessEquDoId = apsProcessOperationProcessEquDo.getId();
|
|
|
|
+ //查询当前工序作业的作业明细的 加工设备 对应的其他工序作业的作业明细 并且待报工记录ID不为空
|
|
|
|
+ List<ApsProcessOperationProcessEquDo> list = apsProcessOperationProcessEquService.list(
|
|
|
|
+ new QueryWrapper<ApsProcessOperationProcessEquDo>().lambda()
|
|
|
|
+ .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, processdeviceid)//当前工序作业的作业明细的 加工设备
|
|
|
|
+ .ne(ApsProcessOperationProcessEquDo::getId, apsProcessOperationProcessEquDoId)//对应的其他工序作业的作业明细
|
|
|
|
+ .isNotNull(ApsProcessOperationProcessEquDo::getWaitreportid)//待报工记录ID不为空
|
|
|
|
+ );
|
|
|
|
+ //存在已使用,判断是否是合并作业 (计划开工时间相同)
|
|
|
|
+ if(ObjectUtil.isNotEmpty(list)){
|
|
|
|
+ //已开工的作业明细的计划开工时间
|
|
|
|
+ Date planstartdate = list.get(0).getPlanstartdate();
|
|
|
|
+ //开工时间不用
|
|
|
|
+ if(planstartdate.compareTo(apsProcessOperationProcessEquDo.getPlanstartdate()) != 0){
|
|
return R.error("该设备当前加工中的作业还未报工,不能开工新的作业");
|
|
return R.error("该设备当前加工中的作业还未报工,不能开工新的作业");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+// //设备的待加工ID
|
|
|
|
+// String waitReportId = organizationCodeAndDeviceCodeVo.getWaitReportId();
|
|
|
|
+// //如果工序作业加工设备已有其他作业状态为已开工,错误提示:该设备当前加工中的作业还未报工,不能开工新的作业
|
|
|
|
+// if (ObjectUtil.isNotEmpty(waitReportId)) {
|
|
|
|
+// String oldWaitReportId = waitReportId.split(",")[0];
|
|
|
|
+// //查询当前报工的工序作业明细详情
|
|
|
|
+// ApsReportRecordsDo apsReportRecordsDo = this.getById(oldWaitReportId);
|
|
|
|
+// String processequid = apsReportRecordsDo.getProcessequid();
|
|
|
|
+// ApsProcessOperationProcessEquDo doingProcessEqu = apsProcessOperationProcessEquService.getById(processequid);
|
|
|
|
+// //计划开工时间不相等,表示不是合并工序
|
|
|
|
+// if (doingProcessEqu.getPlanstartdate().compareTo(apsProcessOperationProcessEquDo.getPlanstartdate()) != 0) {
|
|
|
|
+// return R.error("该设备当前加工中的作业还未报工,不能开工新的作业");
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+
|
|
//获取当前用户相关信息
|
|
//获取当前用户相关信息
|
|
SysUserVo currentUser = CXCommonUtils.getCurrentUser();
|
|
SysUserVo currentUser = CXCommonUtils.getCurrentUser();
|
|
String tenantId = currentUser.getOrganizationDoList().get(0).getFullpid().split(",")[1];
|
|
String tenantId = currentUser.getOrganizationDoList().get(0).getFullpid().split(",")[1];
|
|
@@ -293,12 +322,12 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
//===============更新工序作业==================
|
|
//===============更新工序作业==================
|
|
this.baseMapper.updateProcessActualStartDate(apsProcessOperationDo.getId());
|
|
this.baseMapper.updateProcessActualStartDate(apsProcessOperationDo.getId());
|
|
|
|
|
|
- //=============更新设备的报工记录ID=============
|
|
|
|
- String newWaitReportId = "";
|
|
|
|
- if (ObjectUtil.isNotEmpty(waitReportId)) {
|
|
|
|
- newWaitReportId = waitReportId + "," + apsReportRecordsDo.getId();
|
|
|
|
- }
|
|
|
|
- this.baseMapper.updateDeviceWaitReportId(newWaitReportId, apsProcessOperationProcessEquDo.getProcessdeviceid());
|
|
|
|
|
|
+// //=============更新设备的报工记录ID=============
|
|
|
|
+// String newWaitReportId = "";
|
|
|
|
+// if (ObjectUtil.isNotEmpty(waitReportId)) {
|
|
|
|
+// newWaitReportId = waitReportId + "," + apsReportRecordsDo.getId();
|
|
|
|
+// }
|
|
|
|
+// this.baseMapper.updateDeviceWaitReportId(newWaitReportId, apsProcessOperationProcessEquDo.getProcessdeviceid());
|
|
|
|
|
|
//==========输入物料有批次号==============
|
|
//==========输入物料有批次号==============
|
|
if (ObjectUtil.isNotEmpty(req.getInputBatchNumber())) {
|
|
if (ObjectUtil.isNotEmpty(req.getInputBatchNumber())) {
|
|
@@ -533,8 +562,8 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
//==============更新工序作业信息==============
|
|
//==============更新工序作业信息==============
|
|
this.baseMapper.updateProcessReportRoll(apsProcessOperationDo.getId());
|
|
this.baseMapper.updateProcessReportRoll(apsProcessOperationDo.getId());
|
|
|
|
|
|
- //=============更新设备的报工记录ID===========
|
|
|
|
- apsProcessOperationProcessEquDao.updateEquByCancelRecord(apsReportRecordsDo.getId(), apsProcessOperationProcessEquDo.getProcessdeviceid());
|
|
|
|
|
|
+// //=============更新设备的报工记录ID===========
|
|
|
|
+// apsProcessOperationProcessEquDao.updateEquByCancelRecord(apsReportRecordsDo.getId(), apsProcessOperationProcessEquDo.getProcessdeviceid());
|
|
|
|
|
|
//============保存(报工)时,生成炉号和批次号=============
|
|
//============保存(报工)时,生成炉号和批次号=============
|
|
//获取设备/炉 的炉号(每月、每个设备/炉 更新)
|
|
//获取设备/炉 的炉号(每月、每个设备/炉 更新)
|