Commit eacd21dd80d79d65a7173ddf1005185e722f72e3

Authored by yeqianyong
1 parent c3e93c3f

楚江ERP-发起审核流调整(抽离成公共通用方法)

@@ -10,10 +10,10 @@ import com.lframework.starter.bpm.enums.FlowDefinitionExtBizType; @@ -10,10 +10,10 @@ import com.lframework.starter.bpm.enums.FlowDefinitionExtBizType;
10 import com.lframework.starter.bpm.enums.FlowDefinitionIsPublish; 10 import com.lframework.starter.bpm.enums.FlowDefinitionIsPublish;
11 import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper; 11 import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper;
12 import com.lframework.starter.bpm.service.FlowDefinitionWrapperService; 12 import com.lframework.starter.bpm.service.FlowDefinitionWrapperService;
  13 +import com.lframework.starter.bpm.service.FlowInstanceWrapperService;
13 import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo; 14 import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo;
14 import com.lframework.starter.web.core.components.security.SecurityUtil; 15 import com.lframework.starter.web.core.components.security.SecurityUtil;
15 import com.lframework.starter.web.core.utils.*; 16 import com.lframework.starter.web.core.utils.*;
16 -import com.lframework.xingyun.sc.bo.customer.develop.GetCustomerDevelopPlanBo;  
17 import com.lframework.xingyun.sc.entity.CustomerDevelopPlan; 17 import com.lframework.xingyun.sc.entity.CustomerDevelopPlan;
18 import com.lframework.starter.web.core.impl.BaseMpServiceImpl; 18 import com.lframework.starter.web.core.impl.BaseMpServiceImpl;
19 import com.lframework.starter.web.core.components.resp.PageResult; 19 import com.lframework.starter.web.core.components.resp.PageResult;
@@ -46,7 +46,7 @@ import java.util.stream.Collectors; @@ -46,7 +46,7 @@ import java.util.stream.Collectors;
46 public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDevelopPlanMapper, CustomerDevelopPlan> implements CustomerDevelopPlanService { 46 public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDevelopPlanMapper, CustomerDevelopPlan> implements CustomerDevelopPlanService {
47 47
48 48
49 - private static final String BPM_FLAG = "CustomerDevelop"; 49 + private static final String BPM_FLAG = "CUSTOMER_DEVELOP";
50 50
51 51
52 @Resource 52 @Resource
@@ -55,6 +55,8 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe @@ -55,6 +55,8 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe
55 private InsService insService; 55 private InsService insService;
56 @Resource 56 @Resource
57 private FlowTaskWrapperMapper flowTaskWrapperMapper; 57 private FlowTaskWrapperMapper flowTaskWrapperMapper;
  58 + @Resource
  59 + private FlowInstanceWrapperService flowInstanceWrapperService;
58 60
59 61
60 62
@@ -82,18 +84,17 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe @@ -82,18 +84,17 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe
82 workshopNameList.add("紫铜分厂"); 84 workshopNameList.add("紫铜分厂");
83 vo.setWorkshopNames(workshopNameList); 85 vo.setWorkshopNames(workshopNameList);
84 } 86 }
85 - List<String> ids = new ArrayList<>();  
86 // 待办类型 87 // 待办类型
87 String todoType = vo.getTodoType(); 88 String todoType = vo.getTodoType();
88 if ("COMPLETED".equals(todoType)) { 89 if ("COMPLETED".equals(todoType)) {
89 - 90 + vo.setStatus(CustomerDevelopStatus.PASS.getCode());
90 } else if ("WAIT".equals(todoType)) { 91 } else if ("WAIT".equals(todoType)) {
91 // 获取当前人员的待办任务数据 92 // 获取当前人员的待办任务数据
92 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId()); 93 List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId());
93 if (CollectionUtils.isEmpty(flowTaskList)) { 94 if (CollectionUtils.isEmpty(flowTaskList)) {
94 return PageResultUtil.convert(new PageInfo<>()); 95 return PageResultUtil.convert(new PageInfo<>());
95 } 96 }
96 - ids = flowTaskList.stream().map(FlowTaskDto::getBusinessId).collect(Collectors.toList()); 97 + List<String> ids = flowTaskList.stream().map(FlowTaskDto::getBusinessId).collect(Collectors.toList());
97 vo.setIds(ids); 98 vo.setIds(ids);
98 } 99 }
99 PageHelperUtil.startPage(pageIndex, pageSize); 100 PageHelperUtil.startPage(pageIndex, pageSize);
@@ -178,16 +179,7 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe @@ -178,16 +179,7 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe
178 } 179 }
179 data.setChargeUserId(vo.getChargeUserId()); 180 data.setChargeUserId(vo.getChargeUserId());
180 // 流程处理 181 // 流程处理
181 - FlowDefinitionWrapper flowDefinitionWrapper = flowDefinitionWrapperService.getBaseMapper().selectOne(  
182 - Wrappers.<FlowDefinitionWrapper>query()  
183 - .eq("mode", "CUSTOMER_DEVELOP")  
184 - .eq("is_publish", FlowDefinitionIsPublish.Y.getCode())  
185 - .select("id", "flow_code")  
186 - );  
187 - if (flowDefinitionWrapper == null) {  
188 - throw new DefaultClientException("客户开发未设计审核流程或流程未发布!");  
189 - }  
190 - Instance instance = this.startCustomerDevelopInstance(flowDefinitionWrapper.getFlowCode(), id); 182 + Instance instance = flowInstanceWrapperService.startInstance("CUSTOMER_DEVELOP", id, BPM_FLAG, data);
191 data.setFlowInstanceId(instance.getId()); 183 data.setFlowInstanceId(instance.getId());
192 184
193 getBaseMapper().insert(data); 185 getBaseMapper().insert(data);
@@ -205,6 +197,13 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe @@ -205,6 +197,13 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe
205 if (ObjectUtil.isNull(data)) { 197 if (ObjectUtil.isNull(data)) {
206 throw new DefaultClientException("客户开发计划不存在!"); 198 throw new DefaultClientException("客户开发计划不存在!");
207 } 199 }
  200 + CustomerDevelopStatus status = data.getStatus();
  201 + if (!CustomerDevelopStatus.REFUSE.equals(status)) {
  202 + throw new DefaultClientException("仅驳回状态下可编辑!");
  203 + }
  204 + // 重新发起流程
  205 + Instance instance = flowInstanceWrapperService.startInstance("CUSTOMER_DEVELOP", vo.getId(), BPM_FLAG, vo);
  206 +
208 LambdaUpdateWrapper<CustomerDevelopPlan> updateWrapper = Wrappers.lambdaUpdate(CustomerDevelopPlan.class) 207 LambdaUpdateWrapper<CustomerDevelopPlan> updateWrapper = Wrappers.lambdaUpdate(CustomerDevelopPlan.class)
209 .set(CustomerDevelopPlan::getCustomerId, vo.getCustomerId()) 208 .set(CustomerDevelopPlan::getCustomerId, vo.getCustomerId())
210 .set(CustomerDevelopPlan::getWorkshopId, StringUtil.isBlank(vo.getWorkshopId()) ? null : vo.getWorkshopId()) 209 .set(CustomerDevelopPlan::getWorkshopId, StringUtil.isBlank(vo.getWorkshopId()) ? null : vo.getWorkshopId())
@@ -224,6 +223,7 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe @@ -224,6 +223,7 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe
224 .set(CustomerDevelopPlan::getSettleDays, vo.getSettleDays() == null ? null : vo.getSettleDays()) 223 .set(CustomerDevelopPlan::getSettleDays, vo.getSettleDays() == null ? null : vo.getSettleDays())
225 .set(CustomerDevelopPlan::getChargeUserId, vo.getChargeUserId()) 224 .set(CustomerDevelopPlan::getChargeUserId, vo.getChargeUserId())
226 .set(CustomerDevelopPlan::getStatus, CustomerDevelopStatus.AUDIT) 225 .set(CustomerDevelopPlan::getStatus, CustomerDevelopStatus.AUDIT)
  226 + .set(CustomerDevelopPlan::getFlowInstanceId, instance.getId())
227 .eq(CustomerDevelopPlan::getId, vo.getId()); 227 .eq(CustomerDevelopPlan::getId, vo.getId());
228 getBaseMapper().update(updateWrapper); 228 getBaseMapper().update(updateWrapper);
229 229
@@ -250,30 +250,4 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe @@ -250,30 +250,4 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe
250 .eq(CustomerDevelopPlan::getId, id); 250 .eq(CustomerDevelopPlan::getId, id);
251 getBaseMapper().update(updateWrapper); 251 getBaseMapper().update(updateWrapper);
252 } 252 }
253 -  
254 -  
255 - /**  
256 - * 发起流程实例  
257 - *  
258 - * @param processCode 流程code  
259 - * @param businessId 业务ID  
260 - * @return Instance  
261 - */  
262 - public Instance startCustomerDevelopInstance(String processCode, String businessId) {  
263 - if (this.getById(businessId) != null) {  
264 - throw new DefaultClientException("客户开发已办理完成,无法重新发起!");  
265 - }  
266 - FlowParams flowParams = new FlowParams();  
267 - flowParams.flowCode(processCode);  
268 -  
269 - FlowInstanceExtDto ext = new FlowInstanceExtDto();  
270 - ext.setBizType(FlowDefinitionExtBizType.SYSTEM.getCode());  
271 - ext.setBizFlag(BPM_FLAG);  
272 - flowParams.ext(JsonUtil.toJsonString(ext));  
273 - // 需要传入表单变量  
274 - GetCustomerDevelopPlanBo detail = new GetCustomerDevelopPlanBo(this.findById(businessId));  
275 - flowParams.variable(JsonUtil.parseMap(JsonUtil.toJsonString(detail), String.class, Object.class));  
276 -  
277 - return insService.start(businessId, flowParams);  
278 - }  
279 } 253 }