|
@@ -37,6 +37,7 @@ import java.math.BigDecimal;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -159,13 +160,23 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
*/
|
|
|
@Override
|
|
|
public void circulation(ProductionTaskDetailDto productionTaskDetailDto) {
|
|
|
+ ProductionTaskDetail productionTaskDetail = this.getById(productionTaskDetailDto.getId());
|
|
|
+
|
|
|
|
|
|
- productionTaskDetailDto.setCirculationStatus(1);
|
|
|
-
|
|
|
- productionTaskDetailDto.setReceivedUserId(productionTaskDetailDto.getReceivedUserId());
|
|
|
+ productionTaskDetail.setCirculationStatus(1);
|
|
|
|
|
|
- productionTaskDetailDto.setCirculationUserId(SecurityUtils.getUserId());
|
|
|
- this.updateById(productionTaskDetailDto);
|
|
|
+ productionTaskDetail.setCirculationUserId(SecurityUtils.getUserId());
|
|
|
+
|
|
|
+
|
|
|
+ this.updateById(productionTaskDetail);
|
|
|
+
|
|
|
+
|
|
|
+ ProductionTaskDetailRecord productionTaskDetailRecord = new ProductionTaskDetailRecord();
|
|
|
+ productionTaskDetailRecord.setProductionTaskDetailId(productionTaskDetail.getId());
|
|
|
+ productionTaskDetailRecord.setProductionProcessesId(productionTaskDetail.getProductionProcessesId());
|
|
|
+ productionTaskDetailRecord.setPersonLiableId(SecurityUtils.getUserId());
|
|
|
+ productionTaskDetailRecord.setReceivedTime(productionTaskDetail.getReceivedTime());
|
|
|
+ productionTaskDetailRecordService.save(productionTaskDetailRecord);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -181,6 +192,14 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
productionTaskDetail.setFinishTime(new Date());
|
|
|
this.updateById(productionTaskDetail);
|
|
|
|
|
|
+
|
|
|
+ ProductionTaskDetailRecord productionTaskDetailRecord = new ProductionTaskDetailRecord();
|
|
|
+ productionTaskDetailRecord.setProductionTaskDetailId(productionTaskDetail.getId());
|
|
|
+ productionTaskDetailRecord.setProductionProcessesId(productionTaskDetail.getProductionProcessesId());
|
|
|
+ productionTaskDetailRecord.setPersonLiableId(SecurityUtils.getUserId());
|
|
|
+ productionTaskDetailRecord.setReceivedTime(productionTaskDetail.getReceivedTime());
|
|
|
+ productionTaskDetailRecordService.save(productionTaskDetailRecord);
|
|
|
+
|
|
|
StockWait stockWait = new StockWait();
|
|
|
stockWait.setType(1);
|
|
|
stockWait.setStatus(0);
|
|
@@ -201,8 +220,14 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
@Override
|
|
|
public Page<ProductionTaskDetailVo> receivePage(ProductionTaskDetailSelectDto dto) {
|
|
|
IWrapper<ProductionTaskDetail> wrapper = getWrapper();
|
|
|
-
|
|
|
- wrapper.eq(ProductionTaskDetail::getReceivedUserId, SecurityUtils.getUserId());
|
|
|
+
|
|
|
+
|
|
|
+ wrapper.eq("ptpd.user_id",SecurityUtils.getUserId());
|
|
|
+
|
|
|
+ wrapper.eq("ptd",ProductionTaskDetail::getCirculationStatus,1);
|
|
|
+
|
|
|
+ wrapper.eq("ptd",ProductionTaskDetail::getFinishStatus,0);
|
|
|
+
|
|
|
return pageCom(wrapper, dto);
|
|
|
}
|
|
|
|
|
@@ -213,78 +238,42 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
public void receive(ProductionTaskDetailDto productionTaskDetailDto) {
|
|
|
ProductionTaskDetail productionTaskDetail = getById(productionTaskDetailDto.getId());
|
|
|
|
|
|
+ if(Objects.equals(0,productionTaskDetail.getCirculationStatus())){
|
|
|
+ throw new ServiceException("该任务已被他人接收,接收失败");
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
productionTaskDetail.setCirculationStatus(0);
|
|
|
-
|
|
|
- productionTaskDetail.setProductionProcessesId(productionTaskDetail.getNextProductionProcessesId());
|
|
|
-
|
|
|
+
|
|
|
productionTaskDetail.setPersonLiableId(SecurityUtils.getUserId());
|
|
|
-
|
|
|
- productionTaskDetail.setReceivedUserId(-1l);
|
|
|
+
|
|
|
+ productionTaskDetail.setReceivedTime(new Date());
|
|
|
+
|
|
|
|
|
|
+
|
|
|
+ productionTaskDetail.setProductionProcessesId(productionTaskDetail.getNextProductionProcessesId());
|
|
|
|
|
|
productionTaskDetail.setNextProductionProcessesId(-1l);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
|
|
|
ProductionTask productionTask = productionTaskService.getById(productionTaskDetail.getProductionTaskId());
|
|
|
ProductionPlan productionPlan = productionPlanService.getById(productionTask.getProductionPlanId());
|
|
|
WorkOrder workOrder = workOrderService.getById(productionPlan.getWorkOrderId());
|
|
|
- if ("1".equals(workOrder.getIsCustomized())) {
|
|
|
- List<WorkOrderProductionProcesses> workOrderProductionProcesses = workOrderProductionProcessesService.list(q -> q
|
|
|
- .eq(WorkOrderProductionProcesses::getWorkOrderId, workOrder.getId())
|
|
|
- .orderByAsc(WorkOrderProductionProcesses::getSort));
|
|
|
- if (ObjectUtil.isEmpty(workOrderProductionProcesses)) {
|
|
|
- throw new ServiceException("定制工单 工序列表为空");
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- for (int i = 0; i < workOrderProductionProcesses.size(); i++) {
|
|
|
- WorkOrderProductionProcesses wopp = workOrderProductionProcesses.get(i);
|
|
|
- if (wopp.getId().equals(productionTaskDetail.getProductionProcessesId())) {
|
|
|
-
|
|
|
- if ((i + 1) < workOrderProductionProcesses.size()) {
|
|
|
- WorkOrderProductionProcesses nextProductionProcesses = workOrderProductionProcesses.get(i + 1);
|
|
|
- productionTaskDetail.setNextProductionProcessesId(nextProductionProcesses.getId());
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- ApplicableProducts applicableProducts = applicableProductsService.getOne(q -> q.eq(ApplicableProducts::getProductId, workOrder.getProductId()));
|
|
|
- if (ObjectUtil.isEmpty(applicableProducts)) {
|
|
|
- throw new ServiceException("未找到适用于该产品的工艺信息");
|
|
|
- }
|
|
|
- Technology technology = technologyService.getById(applicableProducts.getTechnologyId());
|
|
|
- if (ObjectUtil.isEmpty(technology)) {
|
|
|
- throw new ServiceException("工艺信息不存在");
|
|
|
- }
|
|
|
- String processRoute = technology.getProcessRoute();
|
|
|
- if (ObjectUtil.isEmpty(processRoute)) {
|
|
|
- throw new ServiceException("工艺线路为空");
|
|
|
- }
|
|
|
- String[] split = processRoute.split(",");
|
|
|
-
|
|
|
- for (int i = 0; i < split.length; i++) {
|
|
|
- if (Long.parseLong(split[i])==productionTaskDetail.getProductionProcessesId()) {
|
|
|
-
|
|
|
- if ((i + 1) < split.length) {
|
|
|
- productionTaskDetail.setNextProductionProcessesId(Long.parseLong(split[i + 1]));
|
|
|
- break;
|
|
|
- }
|
|
|
+ List<WorkOrderProductionProcesses> productionProcessesList = workOrderService.getProductionProcessesList(workOrder);
|
|
|
+
|
|
|
+ for (int i = 0; i < productionProcessesList.size(); i++) {
|
|
|
+ WorkOrderProductionProcesses wopp = productionProcessesList.get(i);
|
|
|
+ if (wopp.getId().equals(productionTaskDetail.getProductionProcessesId())) {
|
|
|
+
|
|
|
+ if ((i + 1) < productionProcessesList.size()) {
|
|
|
+ WorkOrderProductionProcesses nextProductionProcesses = productionProcessesList.get(i + 1);
|
|
|
+ productionTaskDetail.setNextProductionProcessesId(nextProductionProcesses.getId());
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- this.updateById(productionTaskDetail);
|
|
|
|
|
|
-
|
|
|
- ProductionTaskDetailRecord productionTaskDetailRecord = new ProductionTaskDetailRecord();
|
|
|
- productionTaskDetailRecord.setProductionTaskDetailId(productionTaskDetail.getId());
|
|
|
- productionTaskDetailRecord.setProductionProcessesId(productionTaskDetail.getProductionProcessesId());
|
|
|
- productionTaskDetailRecord.setPersonLiableId(SecurityUtils.getUserId());
|
|
|
- productionTaskDetailRecordService.save(productionTaskDetailRecord);
|
|
|
+ this.updateById(productionTaskDetail);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -295,7 +284,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
|
|
|
|
|
|
productionTaskDetailDto.setCirculationStatus(0);
|
|
|
|
|
|
- productionTaskDetailDto.setReceivedUserId(-1l);
|
|
|
+
|
|
|
this.updateById(productionTaskDetailDto);
|
|
|
}
|
|
|
|