|
@@ -1,12 +1,10 @@
|
|
|
package com.fjhx.purchase.flow;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.fjhx.common.enums.CodingRuleEnum;
|
|
|
import com.fjhx.common.enums.FlowStatusEnum1;
|
|
|
import com.fjhx.common.service.coding.CodingRuleService;
|
|
|
-import com.fjhx.file.utils.ObsFileUtil;
|
|
|
import com.fjhx.flow.core.FlowDelegate;
|
|
|
import com.fjhx.flow.enums.FlowStatusEnum;
|
|
|
import com.fjhx.purchase.entity.subscribe.dto.SubscribeDto;
|
|
@@ -23,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* @Author:caozj
|
|
@@ -33,125 +30,115 @@ import java.util.List;
|
|
|
@Component
|
|
|
public class SubscribeFlow extends FlowDelegate {
|
|
|
|
|
|
- @Autowired
|
|
|
- private CodingRuleService codingRuleService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private SubscribeService subscribeService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private SubscribeDetailService subscribeDetailService;
|
|
|
-
|
|
|
- @Override
|
|
|
- public String getFlowKey() {
|
|
|
- return "subscribe_flow";
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 发起流程
|
|
|
- *
|
|
|
- * @param flowId 流程ID
|
|
|
- * @param submitData 申购数据
|
|
|
- * @return 业务id
|
|
|
- */
|
|
|
- @Override
|
|
|
- public Long start(Long flowId, JSONObject submitData) {
|
|
|
- SubscribeDto subscribe = submitData.toJavaObject(SubscribeDto.class);
|
|
|
- subscribe.setCode(codingRuleService.createCode(CodingRuleEnum.SUBSCRIBE.getKey(), null));
|
|
|
- subscribe.setSubcribeStatus(SubscribeStatusEnum.UNDER_REVIEW.getKey());
|
|
|
- subscribe.setFlowId(flowId);
|
|
|
- //赋值归属公司
|
|
|
- if (ObjectUtils.isEmpty(subscribe.getCompanyId())) {
|
|
|
- subscribe.setCompanyId(SecurityUtils.getCompanyId());
|
|
|
- }
|
|
|
- subscribeService.save(subscribe);
|
|
|
-
|
|
|
- List<SubscribeDetail> subscribeDetails = subscribe.getSubscribeDetailList();
|
|
|
- if (CollectionUtils.isNotEmpty(subscribeDetails)) {
|
|
|
- subscribeDetails.forEach(item -> {
|
|
|
- item.setSubscribeId(subscribe.getId());
|
|
|
- item.setDataType(0);
|
|
|
- item.setCompanyId(subscribe.getCompanyId());
|
|
|
- });
|
|
|
- subscribeDetailService.saveBatch(subscribeDetails);
|
|
|
- }
|
|
|
-
|
|
|
- submitData.put("code", subscribe.getCode());
|
|
|
-
|
|
|
- //代他人提交附件
|
|
|
- ObsFileUtil.saveFile(subscribe.getSubstituteFileList(), subscribe.getId(), 10);
|
|
|
- //申请用途附件
|
|
|
- ObsFileUtil.saveFile(subscribe.getPurposeFileList(), subscribe.getId(), 15);
|
|
|
-
|
|
|
- return subscribe.getId();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 结束流程
|
|
|
- *
|
|
|
- * @param flowId 流程ID
|
|
|
- * @param businessId 业务ID
|
|
|
- * @param submitData 数据
|
|
|
- */
|
|
|
- @Override
|
|
|
- public void end(Long flowId, Long businessId, JSONObject submitData) {
|
|
|
-
|
|
|
- // 通过业务ID查询申购数据
|
|
|
- Subscribe subscribe = subscribeService.getById(businessId);
|
|
|
- if (ObjectUtils.isEmpty(subscribe)) {
|
|
|
- throw new ServiceException("申购单不存在");
|
|
|
- }
|
|
|
-
|
|
|
- // 修改申购状态为审批通过
|
|
|
- subscribe.setSubcribeStatus(SubscribeStatusEnum.PASS.getKey());
|
|
|
- subscribe.setApprovedDate(new Date());
|
|
|
- subscribeService.updateById(subscribe);
|
|
|
-
|
|
|
- // 修改申购明细为待采购
|
|
|
- subscribeDetailService.update(q -> q
|
|
|
- .eq(SubscribeDetail::getSubscribeId, subscribe.getId())
|
|
|
- .set(SubscribeDetail::getStatus, SubscribeDetailStatusEnum.PAID_AMOUNT.getKey())
|
|
|
- .set(BasePo::getUpdateTime, new Date())
|
|
|
- .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
|
|
|
- );
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void relaunch(Long flowId, Long businessId, FlowStatusEnum flowStatus, JSONObject submitData) {
|
|
|
- super.relaunch(flowId, businessId, flowStatus, submitData);
|
|
|
- throw new ServiceException("该功能当前不可用!");
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void reject(Long flowId, Long businessId, FlowStatusEnum flowStatus) {
|
|
|
- super.reject(flowId, businessId, flowStatus);
|
|
|
-
|
|
|
- subscribeService.update(q -> q
|
|
|
- .eq(Subscribe::getId, businessId)
|
|
|
- .set(Subscribe::getSubcribeStatus, FlowStatusEnum1.REJECT.getKey())
|
|
|
- .set(BasePo::getUpdateTime, new Date())
|
|
|
- .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
|
|
|
- );
|
|
|
-
|
|
|
- // 修改申购明细为驳回
|
|
|
- subscribeDetailService.update(q -> q
|
|
|
- .eq(SubscribeDetail::getSubscribeId, businessId)
|
|
|
- .set(SubscribeDetail::getStatus, FlowStatusEnum1.REJECT.getKey())
|
|
|
- .set(BasePo::getUpdateTime, new Date())
|
|
|
- .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void cancellation(Long flowId, Long businessId, FlowStatusEnum flowStatus) {
|
|
|
- super.cancellation(flowId, businessId, flowStatus);
|
|
|
-
|
|
|
- subscribeService.update(q -> q
|
|
|
- .eq(Subscribe::getId, businessId)
|
|
|
- .set(Subscribe::getSubcribeStatus, FlowStatusEnum1.CANCELLATION.getKey())
|
|
|
- .set(BasePo::getUpdateTime, new Date())
|
|
|
- .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
|
|
|
- );
|
|
|
- }
|
|
|
+ @Autowired
|
|
|
+ private CodingRuleService codingRuleService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SubscribeService subscribeService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SubscribeDetailService subscribeDetailService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getFlowKey() {
|
|
|
+ return "subscribe_flow";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发起流程
|
|
|
+ *
|
|
|
+ * @param flowId 流程ID
|
|
|
+ * @param submitData 申购数据
|
|
|
+ * @return 业务id
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Long start(Long flowId, JSONObject submitData) {
|
|
|
+ SubscribeDto subscribe = submitData.toJavaObject(SubscribeDto.class);
|
|
|
+ subscribe.setCode(codingRuleService.createCode(CodingRuleEnum.SUBSCRIBE.getKey(), null));
|
|
|
+ subscribe.setSubcribeStatus(SubscribeStatusEnum.UNDER_REVIEW.getKey());
|
|
|
+ subscribe.setFlowId(flowId);
|
|
|
+
|
|
|
+ commStart(subscribe);
|
|
|
+
|
|
|
+ submitData.put("code", subscribe.getCode());
|
|
|
+
|
|
|
+
|
|
|
+ return subscribe.getId();
|
|
|
+ }
|
|
|
+
|
|
|
+ public void commStart(SubscribeDto subscribe) {
|
|
|
+ subscribeService.saveOrEdit(subscribe);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 结束流程
|
|
|
+ *
|
|
|
+ * @param flowId 流程ID
|
|
|
+ * @param businessId 业务ID
|
|
|
+ * @param submitData 数据
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void end(Long flowId, Long businessId, JSONObject submitData) {
|
|
|
+
|
|
|
+ // 通过业务ID查询申购数据
|
|
|
+ Subscribe subscribe = subscribeService.getById(businessId);
|
|
|
+ if (ObjectUtils.isEmpty(subscribe)) {
|
|
|
+ throw new ServiceException("申购单不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改申购状态为审批通过
|
|
|
+ subscribe.setSubcribeStatus(SubscribeStatusEnum.PASS.getKey());
|
|
|
+ subscribe.setApprovedDate(new Date());
|
|
|
+ subscribeService.updateById(subscribe);
|
|
|
+
|
|
|
+ // 修改申购明细为待采购
|
|
|
+ subscribeDetailService.update(q -> q
|
|
|
+ .eq(SubscribeDetail::getSubscribeId, subscribe.getId())
|
|
|
+ .set(SubscribeDetail::getStatus, SubscribeDetailStatusEnum.PAID_AMOUNT.getKey())
|
|
|
+ .set(BasePo::getUpdateTime, new Date())
|
|
|
+ .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
|
|
|
+ );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void relaunch(Long flowId, Long businessId, FlowStatusEnum flowStatus, JSONObject submitData) {
|
|
|
+ super.relaunch(flowId, businessId, flowStatus, submitData);
|
|
|
+
|
|
|
+ SubscribeDto subscribe = submitData.toJavaObject(SubscribeDto.class);
|
|
|
+
|
|
|
+ commStart(subscribe);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void reject(Long flowId, Long businessId, FlowStatusEnum flowStatus) {
|
|
|
+ super.reject(flowId, businessId, flowStatus);
|
|
|
+
|
|
|
+ subscribeService.update(q -> q
|
|
|
+ .eq(Subscribe::getId, businessId)
|
|
|
+ .set(Subscribe::getSubcribeStatus, FlowStatusEnum1.REJECT.getKey())
|
|
|
+ .set(BasePo::getUpdateTime, new Date())
|
|
|
+ .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
|
|
|
+ );
|
|
|
+
|
|
|
+ // 修改申购明细为驳回
|
|
|
+ subscribeDetailService.update(q -> q
|
|
|
+ .eq(SubscribeDetail::getSubscribeId, businessId)
|
|
|
+ .set(SubscribeDetail::getStatus, 13)//申购明细(待采购状态特殊)13是驳回
|
|
|
+ .set(BasePo::getUpdateTime, new Date())
|
|
|
+ .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void cancellation(Long flowId, Long businessId, FlowStatusEnum flowStatus) {
|
|
|
+ super.cancellation(flowId, businessId, flowStatus);
|
|
|
+
|
|
|
+ subscribeService.update(q -> q
|
|
|
+ .eq(Subscribe::getId, businessId)
|
|
|
+ .set(Subscribe::getSubcribeStatus, FlowStatusEnum1.CANCELLATION.getKey())
|
|
|
+ .set(BasePo::getUpdateTime, new Date())
|
|
|
+ .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|