|
@@ -1,11 +1,20 @@
|
|
|
package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.rongwei.bscommon.sys.dao.ApsReportRecordsDao;
|
|
|
-import com.rongwei.bscommon.sys.service.ApsReportRecordsService;
|
|
|
-import com.rongwei.bsentity.domain.ApsReportRecordsDo;
|
|
|
+import com.rongwei.bscommon.sys.dao.*;
|
|
|
+import com.rongwei.bscommon.sys.service.*;
|
|
|
+import com.rongwei.bsentity.domain.*;
|
|
|
|
|
|
+import com.rongwei.bsentity.vo.CommonUpdateProductionStatusReq;
|
|
|
+import com.rongwei.rwcommon.base.R;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
*
|
|
@@ -13,7 +22,98 @@ import org.springframework.stereotype.Service;
|
|
|
@Service
|
|
|
public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao, ApsReportRecordsDo>
|
|
|
implements ApsReportRecordsService {
|
|
|
+ @Autowired
|
|
|
+ private ApsReportOutputService apsReportOutputService;
|
|
|
+ @Autowired
|
|
|
+ private ApsReportCheckoutService apsReportCheckoutService;
|
|
|
+ @Autowired
|
|
|
+ private ApsReportMachiningService apsReportMachiningService;
|
|
|
+ @Autowired
|
|
|
+ private ApsWorkInProgressInventoryService apsWorkInProgressInventoryService;
|
|
|
+ @Autowired
|
|
|
+ private ApsProcessOperationProcessEquService apsProcessOperationProcessEquService;
|
|
|
+ @Resource
|
|
|
+ private ApsProcessOperationProcessEquDao apsProcessOperationProcessEquDao;
|
|
|
+ @Resource
|
|
|
+ private ApsProcessOperationDao apsProcessOperationDao;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public R cancelRecord(Map<String, String> req) {
|
|
|
+ String recordId;
|
|
|
+ try {
|
|
|
+ recordId = req.get("ID");
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return R.error("报工记录ID错误");
|
|
|
+ }
|
|
|
+ //查询报工详情
|
|
|
+ ApsReportRecordsDo recordsDo = this.getById(recordId);
|
|
|
+ if(ObjectUtil.isEmpty(recordsDo)){
|
|
|
+ return R.error("报工记录未找到");
|
|
|
+ }
|
|
|
+ //删除报工记录
|
|
|
+ this.removeById(recordId);
|
|
|
+ //删除报工输出物料
|
|
|
+ apsReportOutputService.remove(new QueryWrapper<ApsReportOutputDo>().lambda().eq(ApsReportOutputDo::getMainid,recordId));
|
|
|
+ //删除报工加工参数
|
|
|
+ apsReportMachiningService.remove(new QueryWrapper<ApsReportMachiningDo>().lambda().eq(ApsReportMachiningDo::getMainid,recordId));
|
|
|
+ //删除报工检查项
|
|
|
+ apsReportCheckoutService.remove(new QueryWrapper<ApsReportCheckoutDo>().lambda().eq(ApsReportCheckoutDo::getMainid,recordId));
|
|
|
+
|
|
|
+ //更新输入物料在制品:如果输入物料有批次号,并且在制品库存中有输入物料批次号的在制品,则更新该在制品的在制品状态=待加工
|
|
|
+ if(ObjectUtil.isNotEmpty(recordsDo.getBatchnumber())){
|
|
|
+ ApsWorkInProgressInventoryDo apsWorkInProgressInventoryDo = new ApsWorkInProgressInventoryDo();
|
|
|
+ apsWorkInProgressInventoryDo.setWorkinprocessstatus("待加工");
|
|
|
+ apsWorkInProgressInventoryService.update(apsWorkInProgressInventoryDo,new QueryWrapper<ApsWorkInProgressInventoryDo>().lambda().eq(ApsWorkInProgressInventoryDo::getBatchnumber,recordsDo.getBatchnumber()));
|
|
|
+ }
|
|
|
+
|
|
|
+ //更新工序作业和作业明细
|
|
|
+ //明细的已开工卷数=已开工卷数-1 ;明细的待报工记录ID=(空),设备的带报工记录ID=(空);工序作业的已开工卷数-1
|
|
|
+
|
|
|
+ //工序作业ID
|
|
|
+ String processoperationid = recordsDo.getProcessoperationid();
|
|
|
+ //工序作业明细ID
|
|
|
+ String processequid = recordsDo.getProcessequid();
|
|
|
+
|
|
|
+ //更新该工序作业的作业明细的作业状态字段、已开工卷数、明细的待报工记录ID=(空)
|
|
|
+ apsProcessOperationProcessEquDao.updateByCancelRecord(processequid);
|
|
|
+
|
|
|
+ //更新该工序作业的已开工卷数-1
|
|
|
+ apsProcessOperationDao.updateByCancelRecord(processoperationid);
|
|
|
+
|
|
|
+ //查询作业明细详情
|
|
|
+ ApsProcessOperationProcessEquDo equDo = apsProcessOperationProcessEquDao.selectById(processequid);
|
|
|
+
|
|
|
+ //更新设备的待报工记录ID
|
|
|
+ apsProcessOperationProcessEquDao.updateEquByCancelRecord(equDo.getProcessdeviceid());
|
|
|
+
|
|
|
+ //作业明细的作业状态
|
|
|
+ /**
|
|
|
+ * 如果已开工卷数=0,则=待开工;
|
|
|
+ * 如果已开工卷数>0,并且完工状态=未完工,则=加工中;(先更新完工状态)
|
|
|
+ * 如果未完工卷数=0,并且完工状态=已完工,则=已完工(先更新完工状态)
|
|
|
+ */
|
|
|
+ ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = new ApsProcessOperationProcessEquDo();
|
|
|
+ apsProcessOperationProcessEquDo.setId(equDo.getId());
|
|
|
+ if(equDo.getStartingroll() == 0){
|
|
|
+ apsProcessOperationProcessEquDo.setWorkstatus("待开工");
|
|
|
+ }
|
|
|
+ if(equDo.getStartingroll() > 0 && equDo.getClosestatus().equals("未完工")){
|
|
|
+ apsProcessOperationProcessEquDo.setWorkstatus("加工中");
|
|
|
+ }
|
|
|
+ if(ObjectUtil.isNotEmpty(equDo.getUnfinishroll()) && equDo.getUnfinishroll() == 0){
|
|
|
+ apsProcessOperationProcessEquDo.setWorkstatus("已完工");
|
|
|
+ }
|
|
|
+ apsProcessOperationProcessEquDao.updateById(apsProcessOperationProcessEquDo);
|
|
|
+
|
|
|
+ //更新其余信息
|
|
|
+ CommonUpdateProductionStatusReq commonUpdateProductionStatusReq = new CommonUpdateProductionStatusReq();
|
|
|
+ commonUpdateProductionStatusReq.setProcessOperationEquId(equDo.getId());
|
|
|
+ apsProcessOperationProcessEquService.updateProductionStatus(commonUpdateProductionStatusReq);
|
|
|
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|