|
@@ -1,17 +1,20 @@
|
|
|
package com.dayou.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.dayou.common.BaseEntity;
|
|
|
import com.dayou.configuration.DfsConfig;
|
|
|
+import com.dayou.dto.AssetsProWareHouseDTO;
|
|
|
import com.dayou.dto.TaskRecordDTO;
|
|
|
import com.dayou.dto.WareHouseDTO;
|
|
|
import com.dayou.dto.WorkNodeCommit;
|
|
|
-import com.dayou.entity.MajorProduction;
|
|
|
-import com.dayou.entity.WorkTaskRecord;
|
|
|
+import com.dayou.entity.*;
|
|
|
import com.dayou.enums.MainBusinessEnum;
|
|
|
+import com.dayou.enums.ProductionEnum;
|
|
|
import com.dayou.enums.workflow.WorkflowNodeEnum;
|
|
|
+import com.dayou.exception.ErrorCode;
|
|
|
import com.dayou.mapper.MajorProductionMapper;
|
|
|
import com.dayou.mapper.PersonalTargetMapper;
|
|
|
import com.dayou.mapper.WorkFlowNodeInstanceMapper;
|
|
@@ -39,7 +42,9 @@ import java.util.Map;
|
|
|
import static com.dayou.common.Constants.PNG;
|
|
|
import static com.dayou.common.Constants.PROD_VALIDATE_URI;
|
|
|
import static com.dayou.enums.MainBusinessEnum.PERSONAL_BUSINESS;
|
|
|
+import static com.dayou.enums.ProductionEnum.*;
|
|
|
import static com.dayou.enums.workflow.NodeLogEnum.PASS;
|
|
|
+import static com.dayou.enums.workflow.WorkflowNodeEnum.*;
|
|
|
|
|
|
/**
|
|
|
* 类说明:
|
|
@@ -156,13 +161,16 @@ public class BusinessProductionServiceImpl implements IBusinessProductionService
|
|
|
if (StrUtil.isNotBlank(productionNo)){
|
|
|
|
|
|
Map<String,Object> nodeMap = workFlowNodeInstanceMapper.getInOutInstanceNode(productionNo);
|
|
|
+ if (CollectionUtil.isEmpty(nodeMap)){
|
|
|
+ ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR,"该产品目前还不能进行出入库操作。");
|
|
|
+ }
|
|
|
MainBusinessEnum businessType = MainBusinessEnum.valueOf((String) nodeMap.get("businessType"));
|
|
|
Long businessId = (Long) nodeMap.get("businessId");
|
|
|
Long recodeId = (Long) nodeMap.get("id");
|
|
|
String code = (String) nodeMap.get("code");
|
|
|
|
|
|
//完成出库业务操作
|
|
|
- Boolean doRet = doInOutWareHouse(businessType, businessId, recodeId, productionNo);
|
|
|
+ Boolean doRet = doInOutWareHouse(businessType, businessId, recodeId, productionNo,code);
|
|
|
|
|
|
if (doRet){
|
|
|
//提交工作流节点
|
|
@@ -180,15 +188,49 @@ public class BusinessProductionServiceImpl implements IBusinessProductionService
|
|
|
return Boolean.FALSE;
|
|
|
}
|
|
|
|
|
|
- private Boolean doInOutWareHouse(MainBusinessEnum businessEnum,Long businessId,Long recordId,String productionNo) {
|
|
|
- TaskRecordDTO<WareHouseDTO> taskRecordDTO = new TaskRecordDTO<>();
|
|
|
- taskRecordDTO.setRecordId(recordId);
|
|
|
+ private Boolean doInOutWareHouse(MainBusinessEnum businessEnum,Long businessId,Long recordId,String productionNo,String code) {
|
|
|
+
|
|
|
Boolean doWareHouseRet = Boolean.FALSE;
|
|
|
switch (businessEnum){
|
|
|
case PERSONAL_BUSINESS:
|
|
|
-
|
|
|
- break;
|
|
|
+ TaskRecordDTO<PersonalProduction> taskRecord = new TaskRecordDTO<>();
|
|
|
+ taskRecord.setRecordId(recordId);
|
|
|
+ PersonalTarget personalTarget = personalTargetMapper.selectOne(new LambdaQueryWrapper<PersonalTarget>()
|
|
|
+ .eq(PersonalTarget::getPersonalId, businessId)
|
|
|
+ .select(BaseEntity::getId));
|
|
|
+ Long targetId = personalTarget.getId();
|
|
|
+ PersonalProduction production = new PersonalProduction();
|
|
|
+ production.setTargetId(targetId);
|
|
|
+ if (STATEMENT_IN.name().equals(code)){
|
|
|
+ production.setProduction(STATEMENT.name());
|
|
|
+ taskRecord.setTaskData(production);
|
|
|
+ personalProductionService.repertoryIn(taskRecord);
|
|
|
+ }else if (STATEMENT_OUT.name().equals(code)){
|
|
|
+ production.setProduction(STATEMENT.name());
|
|
|
+ taskRecord.setTaskData(production);
|
|
|
+ personalProductionService.repertoryOut(taskRecord);
|
|
|
+ }else if (REPORT_IN.name().equals(code)){
|
|
|
+ production.setProduction(REPORT.name());
|
|
|
+ taskRecord.setTaskData(production);
|
|
|
+ personalProductionService.repertoryIn(taskRecord);
|
|
|
+ }else if (REPORT_OUT.name().equals(code)){
|
|
|
+ production.setProduction(REPORT.name());
|
|
|
+ taskRecord.setTaskData(production);
|
|
|
+ personalProductionService.repertoryOut(taskRecord);
|
|
|
+ }else if (LETTER_IN.name().equals(code)){
|
|
|
+ production.setProduction(LETTER.name());
|
|
|
+ taskRecord.setTaskData(production);
|
|
|
+ personalProductionService.repertoryIn(taskRecord);
|
|
|
+ }else if (LETTER_OUT.name().equals(code)){
|
|
|
+ production.setProduction(LETTER.name());
|
|
|
+ taskRecord.setTaskData(production);
|
|
|
+ personalProductionService.repertoryOut(taskRecord);
|
|
|
+ }else{
|
|
|
+ break;
|
|
|
+ }
|
|
|
case MAJOR_BUSINESS:
|
|
|
+ TaskRecordDTO<WareHouseDTO> taskRecordDTO = new TaskRecordDTO<>();
|
|
|
+ taskRecordDTO.setRecordId(recordId);
|
|
|
MajorProduction mp = majorProductionService.getOne(new LambdaQueryWrapper<MajorProduction>()
|
|
|
.select(BaseEntity::getId,MajorProduction::getProduction,MajorProduction::getRepertoryState)
|
|
|
.eq(MajorProduction::getMajorId, businessId)
|
|
@@ -206,9 +248,21 @@ public class BusinessProductionServiceImpl implements IBusinessProductionService
|
|
|
doWareHouseRet = majorProductionService.warehouse(taskRecordDTO);
|
|
|
break;
|
|
|
case ASSET_BUSINESS:
|
|
|
+ AssetsProduction ap = assetsProductionService.getOne(new LambdaQueryWrapper<AssetsProduction>()
|
|
|
+ .select(BaseEntity::getId, AssetsProduction::getProductionType, AssetsProduction::getRepertoryState)
|
|
|
+ .eq(AssetsProduction::getBusinessId, businessId)
|
|
|
+ .eq(AssetsProduction::getProductionNo, productionNo));
|
|
|
+ Long id = ap.getId();
|
|
|
+ String pt = ap.getProductionType();
|
|
|
+ Boolean status = ap.getRepertoryState()==null?Boolean.FALSE:Boolean.TRUE;
|
|
|
+ AssetsProWareHouseDTO assetsProWareHouseDTO = new AssetsProWareHouseDTO();
|
|
|
+ assetsProWareHouseDTO.setBusinessId(businessId);
|
|
|
+ assetsProWareHouseDTO.setProductionId(id);
|
|
|
+ assetsProWareHouseDTO.setProductionType(pt);
|
|
|
+ assetsProWareHouseDTO.setRepertoryState(status);
|
|
|
+ assetsProWareHouseDTO.setProductionNo(productionNo);
|
|
|
+ doWareHouseRet = assetsProductionService.assetsProRepertory(assetsProWareHouseDTO);
|
|
|
break;
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
if (doWareHouseRet){
|
|
|
//完成任务
|