Showing
8 changed files
with
175 additions
and
42 deletions
| ... | ... | @@ -402,6 +402,42 @@ public class GetCustomerCreditBo extends BaseBo<CustomerCredit> implements BaseD |
| 402 | 402 | private String shareholderFileId; |
| 403 | 403 | |
| 404 | 404 | /** |
| 405 | + * 所属营销部分管 | |
| 406 | + */ | |
| 407 | + @ApiModelProperty(value = "所属营销部分管") | |
| 408 | + private String marketingDepartmentManagement; | |
| 409 | + | |
| 410 | + /** | |
| 411 | + * 所属营销部分管名称(非持久化字段) | |
| 412 | + */ | |
| 413 | + @ApiModelProperty(value = "所属营销部分管名称") | |
| 414 | + private String marketingDepartmentManagementName; | |
| 415 | + | |
| 416 | + /** | |
| 417 | + * 营销部主管 | |
| 418 | + */ | |
| 419 | + @ApiModelProperty(value = "营销部主管") | |
| 420 | + private String marketingDepartmentSupervisor; | |
| 421 | + | |
| 422 | + /** | |
| 423 | + * 营销部主管名称(非持久化字段) | |
| 424 | + */ | |
| 425 | + @ApiModelProperty(value = "营销部主管名称") | |
| 426 | + private String marketingDepartmentSupervisorName; | |
| 427 | + | |
| 428 | + /** | |
| 429 | + * 营销中心主管 | |
| 430 | + */ | |
| 431 | + @ApiModelProperty(value = "营销中心主管") | |
| 432 | + private String marketingCenterSupervisor; | |
| 433 | + | |
| 434 | + /** | |
| 435 | + * 营销中心主管名称(非持久化字段) | |
| 436 | + */ | |
| 437 | + @ApiModelProperty(value = "营销中心主管名称") | |
| 438 | + private String marketingCenterSupervisorName; | |
| 439 | + | |
| 440 | + /** | |
| 405 | 441 | * 核心人员 |
| 406 | 442 | */ |
| 407 | 443 | @ApiModelProperty("核心人员") | ... | ... |
xingyun-sc/src/main/java/com/lframework/xingyun/sc/controller/customer/CustomerCreditController.java
| ... | ... | @@ -112,9 +112,9 @@ public class CustomerCreditController extends DefaultBaseController { |
| 112 | 112 | /** |
| 113 | 113 | * 根据ID查询变更审核的数据 |
| 114 | 114 | */ |
| 115 | - @ApiOperation("根据ID查询") | |
| 115 | + @ApiOperation("根据ID查询变更审核的数据") | |
| 116 | 116 | @ApiImplicitParam(value = "id", name = "id", paramType = "query", required = true) |
| 117 | - @HasPermission({"customer-credit-manage:customer-credit-plan:examine"}) | |
| 117 | + @HasPermission({"customer-credit-manage:customer-credit-plan:approve", "customer-credit-manage:customer-credit-plan:review"}) | |
| 118 | 118 | @GetMapping("/getExamineById") |
| 119 | 119 | public InvokeResult<GetCustomerCreditBo> getExamineById(@NotBlank(message = "id不能为空!") String id) { |
| 120 | 120 | |
| ... | ... | @@ -176,7 +176,7 @@ public class CustomerCreditController extends DefaultBaseController { |
| 176 | 176 | * 取消 |
| 177 | 177 | */ |
| 178 | 178 | @ApiOperation("取消") |
| 179 | - @HasPermission({"customer-credit-manage:customer-credit-plan:modify"}) | |
| 179 | + @HasPermission({"customer-credit-manage:customer-credit-plan:close"}) | |
| 180 | 180 | @GetMapping("/cancel") |
| 181 | 181 | public InvokeResult<Void> cancel(@NotBlank(message = "id不能为空!") String id) { |
| 182 | 182 | ... | ... |
| ... | ... | @@ -317,6 +317,21 @@ public class CustomerCredit extends BaseEntity implements BaseDto { |
| 317 | 317 | private String shareholderFileId; |
| 318 | 318 | |
| 319 | 319 | /** |
| 320 | + * 所属营销部分管 | |
| 321 | + */ | |
| 322 | + private String marketingDepartmentManagement; | |
| 323 | + | |
| 324 | + /** | |
| 325 | + * 营销部主管 | |
| 326 | + */ | |
| 327 | + private String marketingDepartmentSupervisor; | |
| 328 | + | |
| 329 | + /** | |
| 330 | + * 营销中心主管 | |
| 331 | + */ | |
| 332 | + private String marketingCenterSupervisor; | |
| 333 | + | |
| 334 | + /** | |
| 320 | 335 | * 创建人ID |
| 321 | 336 | */ |
| 322 | 337 | @TableField(fill = FieldFill.INSERT) | ... | ... |
| ... | ... | @@ -727,6 +727,8 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM |
| 727 | 727 | } |
| 728 | 728 | String jsonString = JsonUtil.toJsonString(vo); |
| 729 | 729 | redisHandler.set(vo.getId(), jsonString); |
| 730 | + //修改状态 | |
| 731 | + updateStatus(vo.getId(), "AUDIT"); | |
| 730 | 732 | } else { |
| 731 | 733 | //变更审核通过后再修改入库 |
| 732 | 734 | LambdaUpdateWrapper<CustomerCredit> updateWrapper = Wrappers.lambdaUpdate(CustomerCredit.class) |
| ... | ... | @@ -1065,6 +1067,37 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM |
| 1065 | 1067 | cleanCacheByKey(id); |
| 1066 | 1068 | } |
| 1067 | 1069 | |
| 1070 | + @OpLog(type = OtherOpLogType.class, name = "更新审核人,ID:{}", params = {"#id"}) | |
| 1071 | + @Transactional(rollbackFor = Exception.class) | |
| 1072 | + @Override | |
| 1073 | + public void updateExamineUser(UpdateCustomerCreditVo vo) { | |
| 1074 | + if (vo == null) { | |
| 1075 | + return; | |
| 1076 | + } | |
| 1077 | + if (StringUtil.isNotEmpty(vo.getSupervisorReview())) { | |
| 1078 | + LambdaUpdateWrapper<CustomerCredit> updateWrapper = Wrappers.lambdaUpdate(CustomerCredit.class) | |
| 1079 | + .set(CustomerCredit::getSupervisorReview, vo.getSupervisorReview()) | |
| 1080 | + .eq(CustomerCredit::getId, vo.getId()); | |
| 1081 | + getBaseMapper().update(updateWrapper); | |
| 1082 | + } else if (StringUtil.isNotEmpty(vo.getMarketingDepartmentManagement())) { | |
| 1083 | + LambdaUpdateWrapper<CustomerCredit> updateWrapper = Wrappers.lambdaUpdate(CustomerCredit.class) | |
| 1084 | + .set(CustomerCredit::getMarketingDepartmentManagement, vo.getMarketingDepartmentManagement()) | |
| 1085 | + .eq(CustomerCredit::getId, vo.getId()); | |
| 1086 | + getBaseMapper().update(updateWrapper); | |
| 1087 | + } else if (StringUtil.isNotEmpty(vo.getMarketingDepartmentSupervisor())) { | |
| 1088 | + LambdaUpdateWrapper<CustomerCredit> updateWrapper = Wrappers.lambdaUpdate(CustomerCredit.class) | |
| 1089 | + .set(CustomerCredit::getMarketingDepartmentSupervisor, vo.getMarketingDepartmentSupervisor()) | |
| 1090 | + .eq(CustomerCredit::getId, vo.getId()); | |
| 1091 | + getBaseMapper().update(updateWrapper); | |
| 1092 | + } else if (StringUtil.isNotEmpty(vo.getMarketingCenterSupervisor())) { | |
| 1093 | + LambdaUpdateWrapper<CustomerCredit> updateWrapper = Wrappers.lambdaUpdate(CustomerCredit.class) | |
| 1094 | + .set(CustomerCredit::getMarketingCenterSupervisor, vo.getMarketingCenterSupervisor()) | |
| 1095 | + .eq(CustomerCredit::getId, vo.getId()); | |
| 1096 | + getBaseMapper().update(updateWrapper); | |
| 1097 | + } | |
| 1098 | + cleanCacheByKey(vo.getId()); | |
| 1099 | + } | |
| 1100 | + | |
| 1068 | 1101 | @OpLog(type = OtherOpLogType.class, name = "取消,ID:{}", params = {"#id"}) |
| 1069 | 1102 | @Transactional(rollbackFor = Exception.class) |
| 1070 | 1103 | @Override |
| ... | ... | @@ -1237,7 +1270,7 @@ public class CustomerCreditServiceImpl extends BaseMpServiceImpl<CustomerCreditM |
| 1237 | 1270 | } |
| 1238 | 1271 | dataModel.put("enterpriseType", enterpriseType); |
| 1239 | 1272 | } |
| 1240 | - | |
| 1273 | + | |
| 1241 | 1274 | // 核心人员列表 - 确保放入数据模型供模板遍历 |
| 1242 | 1275 | List<GetCorePersonnelBo> corePersonnelBoList = new ArrayList<>(); |
| 1243 | 1276 | if (CollectionUtils.isNotEmpty(corePersonnelList)) { | ... | ... |
| 1 | 1 | package com.lframework.xingyun.sc.listeners.flow; |
| 2 | 2 | |
| 3 | -import com.lframework.starter.bpm.enums.FlowInstanceStatus; | |
| 4 | -import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; | |
| 3 | +import com.lframework.starter.bpm.dto.FlowInstanceExtDto; | |
| 4 | +import com.lframework.starter.web.core.components.security.SecurityUtil; | |
| 5 | +import com.lframework.starter.web.core.utils.JsonUtil; | |
| 5 | 6 | import com.lframework.xingyun.sc.service.customer.CustomerCreditService; |
| 6 | -import com.lframework.xingyun.sc.service.customer.CustomerDevelopPlanService; | |
| 7 | +import com.lframework.xingyun.sc.vo.customer.credit.UpdateCustomerCreditVo; | |
| 7 | 8 | import lombok.extern.slf4j.Slf4j; |
| 8 | 9 | import org.apache.commons.collections4.MapUtils; |
| 10 | +import org.apache.commons.lang3.StringUtils; | |
| 9 | 11 | import org.dromara.warm.flow.core.entity.Instance; |
| 12 | +import org.dromara.warm.flow.core.entity.Node; | |
| 10 | 13 | import org.dromara.warm.flow.core.listener.Listener; |
| 11 | 14 | import org.dromara.warm.flow.core.listener.ListenerVariable; |
| 12 | 15 | import org.springframework.stereotype.Component; |
| ... | ... | @@ -18,9 +21,6 @@ import java.util.Map; |
| 18 | 21 | @Slf4j |
| 19 | 22 | public class NodeFinishListener implements Listener { |
| 20 | 23 | |
| 21 | - | |
| 22 | - @Resource | |
| 23 | - private CustomerDevelopPlanService customerDevelopPlanService; | |
| 24 | 24 | @Resource |
| 25 | 25 | private CustomerCreditService customerCreditService; |
| 26 | 26 | |
| ... | ... | @@ -38,48 +38,66 @@ public class NodeFinishListener implements Listener { |
| 38 | 38 | if (MapUtils.isEmpty(variable)) { |
| 39 | 39 | return; |
| 40 | 40 | } |
| 41 | + Node node = listenerVariable.getNode(); | |
| 42 | + String nodeCode = null; | |
| 43 | + if (node != null) { | |
| 44 | + nodeCode = node.getNodeCode(); | |
| 45 | + } | |
| 46 | + log.info("nodeCode==" + nodeCode); | |
| 41 | 47 | String businessId = instance.getBusinessId(); |
| 42 | - String businessType = (String) variable.get("businessType"); | |
| 43 | - // 获取审核结果 | |
| 44 | - String flowStatus = listenerVariable.getFlowParams().getFlowStatus(); | |
| 45 | - // 更新业务数据 | |
| 46 | - switch (businessType) { | |
| 47 | - case "CUSTOMER_DEVELOP": | |
| 48 | - handleCustomerDevelopData(flowStatus, businessId); | |
| 49 | - break; | |
| 50 | - case "CUSTOMER_CREDIT": | |
| 51 | - handleCustomerCreditData(flowStatus, businessId); | |
| 52 | - break; | |
| 53 | - default: | |
| 54 | - break; | |
| 48 | + // 获取业务数据标识 | |
| 49 | + String ext = instance.getExt(); | |
| 50 | + String businessType = null; | |
| 51 | + if (StringUtils.isNotBlank(ext)) { | |
| 52 | + FlowInstanceExtDto flowInstanceExtDto = JsonUtil.parseObject(ext, FlowInstanceExtDto.class); | |
| 53 | + businessType = flowInstanceExtDto.getBizFlag(); | |
| 54 | + } | |
| 55 | + if ("CUSTOMER_CREDIT".equals(businessType)) { | |
| 56 | + // 更新业务数据 | |
| 57 | + switch (nodeCode) { | |
| 58 | + //办事处主管审核 | |
| 59 | + case "customer_credit_office_manager": | |
| 60 | + handleCustomerCreditData(businessId, nodeCode); | |
| 61 | + break; | |
| 62 | + //所属营销部分管审核 | |
| 63 | + case "customer_credit_marketing_department_management": | |
| 64 | + handleCustomerCreditData(businessId, nodeCode); | |
| 65 | + break; | |
| 66 | + //营销部主管审核 | |
| 67 | + case "customer_credit_marketing_department_supervisor": | |
| 68 | + handleCustomerCreditData(businessId, nodeCode); | |
| 69 | + break; | |
| 70 | + //营销中心主管 | |
| 71 | + case "customer_credit_marketing_center_supervisor": | |
| 72 | + handleCustomerCreditData(businessId, nodeCode); | |
| 73 | + break; | |
| 74 | + default: | |
| 75 | + break; | |
| 76 | + } | |
| 55 | 77 | } |
| 56 | 78 | log.info("==================== 流程节点完成监听器结束......"); |
| 57 | 79 | } |
| 58 | 80 | |
| 59 | - | |
| 60 | 81 | /** |
| 61 | - * 客户开发业务数据处理 | |
| 82 | + * 客户资信-办事处主管审核人存储数据处理 | |
| 62 | 83 | * |
| 63 | 84 | * @param businessId 业务ID |
| 64 | 85 | */ |
| 65 | - private void handleCustomerDevelopData(String flowStatus, String businessId) { | |
| 66 | - if (FlowInstanceStatus.APPROVE_PASS.getCode().equals(flowStatus)) { | |
| 67 | - customerDevelopPlanService.updateStatus(businessId, CustomerDevelopStatus.PASS); | |
| 68 | - } else if (FlowInstanceStatus.REVOKE.getCode().equals(flowStatus)) { | |
| 69 | - customerDevelopPlanService.updateStatus(businessId, CustomerDevelopStatus.REFUSE); | |
| 86 | + private void handleCustomerCreditData(String businessId, String nodeCode) { | |
| 87 | + UpdateCustomerCreditVo vo = new UpdateCustomerCreditVo(); | |
| 88 | + String currentUserId = SecurityUtil.getCurrentUser().getId(); | |
| 89 | + log.info("当前人id:" + currentUserId); | |
| 90 | + if ("customer_credit_office_manager".equals(nodeCode)) { | |
| 91 | + vo.setSupervisorReview(currentUserId); | |
| 92 | + } else if ("customer_credit_marketing_department_management".equals(nodeCode)) { | |
| 93 | + vo.setMarketingDepartmentManagement(currentUserId); | |
| 94 | + } else if ("customer_credit_marketing_department_supervisor".equals(nodeCode)) { | |
| 95 | + vo.setMarketingDepartmentSupervisor(currentUserId); | |
| 96 | + } else if ("customer_credit_marketing_center_supervisor".equals(nodeCode)) { | |
| 97 | + vo.setMarketingCenterSupervisor(currentUserId); | |
| 70 | 98 | } |
| 71 | - } | |
| 99 | + vo.setId(businessId); | |
| 72 | 100 | |
| 73 | - /** | |
| 74 | - * 客户资信业务数据处理 | |
| 75 | - * | |
| 76 | - * @param businessId 业务ID | |
| 77 | - */ | |
| 78 | - private void handleCustomerCreditData(String flowStatus, String businessId) { | |
| 79 | - if (FlowInstanceStatus.APPROVE_PASS.getCode().equals(flowStatus)) { | |
| 80 | - customerCreditService.updateStatus(businessId, "PASS"); | |
| 81 | - } else if (FlowInstanceStatus.REVOKE.getCode().equals(flowStatus)) { | |
| 82 | - customerCreditService.updateStatus(businessId, "REFUSE"); | |
| 83 | - } | |
| 101 | + customerCreditService.updateExamineUser(vo); | |
| 84 | 102 | } |
| 85 | 103 | } | ... | ... |
| ... | ... | @@ -74,6 +74,13 @@ public interface CustomerCreditService extends BaseMpService<CustomerCredit> { |
| 74 | 74 | void updateStatus(String id, String status); |
| 75 | 75 | |
| 76 | 76 | /** |
| 77 | + * 更新审核人 | |
| 78 | + * | |
| 79 | + * @param vo | |
| 80 | + */ | |
| 81 | + void updateExamineUser(UpdateCustomerCreditVo vo); | |
| 82 | + | |
| 83 | + /** | |
| 77 | 84 | * 取消 |
| 78 | 85 | * |
| 79 | 86 | * @param id | ... | ... |
| ... | ... | @@ -434,4 +434,22 @@ public class UpdateCustomerCreditVo implements BaseVo, Serializable { |
| 434 | 434 | @ApiModelProperty(value = "客户资信历史记录id") |
| 435 | 435 | private String creditHistoryId; |
| 436 | 436 | |
| 437 | + /** | |
| 438 | + * 所属营销部分管 | |
| 439 | + */ | |
| 440 | + @ApiModelProperty(value = "所属营销部分管") | |
| 441 | + private String marketingDepartmentManagement; | |
| 442 | + | |
| 443 | + /** | |
| 444 | + * 营销部主管 | |
| 445 | + */ | |
| 446 | + @ApiModelProperty(value = "营销部主管") | |
| 447 | + private String marketingDepartmentSupervisor; | |
| 448 | + | |
| 449 | + /** | |
| 450 | + * 营销中心主管 | |
| 451 | + */ | |
| 452 | + @ApiModelProperty(value = "营销中心主管") | |
| 453 | + private String marketingCenterSupervisor; | |
| 454 | + | |
| 437 | 455 | } | ... | ... |
| ... | ... | @@ -60,6 +60,9 @@ |
| 60 | 60 | <result column="business_file_id" property="businessFileId"/> |
| 61 | 61 | <result column="shareholder_file_name" property="shareholderFileName"/> |
| 62 | 62 | <result column="shareholder_file_id" property="shareholderFileId"/> |
| 63 | + <result column="marketing_department_management" property="marketingDepartmentManagement"/> | |
| 64 | + <result column="marketing_department_supervisor" property="marketingDepartmentSupervisor"/> | |
| 65 | + <result column="marketing_center_supervisor" property="marketingCenterSupervisor"/> | |
| 63 | 66 | <result column="status" property="status"/> |
| 64 | 67 | <result column="create_by_id" property="createById"/> |
| 65 | 68 | <result column="create_by" property="createBy"/> |
| ... | ... | @@ -128,6 +131,9 @@ |
| 128 | 131 | tb.business_file_name, |
| 129 | 132 | tb.business_file_id, |
| 130 | 133 | tb.shareholder_file_name, |
| 134 | + tb.marketing_department_management, | |
| 135 | + tb.marketing_department_supervisor, | |
| 136 | + tb.marketing_center_supervisor, | |
| 131 | 137 | tb.shareholder_file_id, |
| 132 | 138 | tb.create_by_id, |
| 133 | 139 | tb.create_by, | ... | ... |