123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- package com.fjhx.sale.flow;
- import cn.hutool.extra.spring.SpringUtil;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.dynamic.datasource.annotation.DS;
- import com.baomidou.dynamic.datasource.annotation.DSTransactional;
- import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
- import com.baomidou.mybatisplus.core.toolkit.IdWorker;
- import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
- import com.fjhx.area.utils.CustomizeAreaUtil;
- import com.fjhx.common.constant.SourceConstant;
- 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.sale.entity.sample.dto.SampleDto;
- import com.fjhx.sale.entity.sample.po.Sample;
- import com.fjhx.sale.entity.sample.po.SampleProduct;
- import com.fjhx.sale.entity.sample.po.SampleProject;
- import com.fjhx.sale.entity.sample.po.SampleShipment;
- import com.fjhx.sale.service.sample.SampleProductService;
- import com.fjhx.sale.service.sample.SampleProjectService;
- import com.fjhx.sale.service.sample.SampleService;
- import com.fjhx.sale.service.sample.SampleShipmentService;
- import com.ruoyi.common.exception.ServiceException;
- import com.ruoyi.common.utils.SecurityUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.util.Date;
- import java.util.List;
- /**
- * 样品单流程
- * @Author:caozj
- * @DATE:2023/4/3 17:38
- */
- @Component
- @DS(SourceConstant.SALE)
- public class SampleFlow extends FlowDelegate {
- @Autowired
- private CodingRuleService codingRuleService;
- @Autowired
- private SampleService sampleService;
- @Autowired
- private SampleProductService sampleProductService;
- @Autowired
- private SampleProjectService sampleProjectService;
- @Autowired
- private SampleShipmentService sampleShipmentService;
- @Override
- public String getFlowKey() {
- return "sample_flow";
- }
- /**
- * 发起流程
- * @param flowId 流程ID
- * @param submitData 采购付款数据
- * @return
- */
- @Override
- @DSTransactional
- public Long start(Long flowId, JSONObject submitData) {
- // SampleService sampleService = SpringUtil.getBean(SampleService.class);
- // SampleProductService sampleProductService = SpringUtil.getBean(SampleProductService.class);
- // SampleProjectService sampleProjectService = SpringUtil.getBean(SampleProjectService.class);
- // SampleShipmentService sampleShipmentService = SpringUtil.getBean(SampleShipmentService.class);
- // Sample sample = submitData.toJavaObject(Sample.class);
- SampleDto sample = submitData.toJavaObject(SampleDto.class);
- sample.setCode(codingRuleService.createCode(CodingRuleEnum.SAMPLE.getKey(),sample.getBuyCorporationId()));
- long id = start(sample);
- return id;
- }
- public Long start(SampleDto sample){
- //赋值城市省份信息
- CustomizeAreaUtil.setAreaId(sample);
- sample.setBuyCityId(sample.getCityId());
- sample.setBuyCountryId(sample.getCountryId());
- sample.setBuyProvinceId(sample.getProvinceId());
- // sample.setCode(CodeEnum.SAMPLE_CODE.getCode());
- sample.setStatus(FlowStatusEnum1.UNDER_REVIEW.getKey());
- sample.setUserName(SecurityUtils.getUsername());
- sampleService.save(sample);
- List<SampleProduct> sampleProductList = sample.getSampleProductList();
- if(CollectionUtils.isNotEmpty(sampleProductList)){//保存样品单产品
- for(SampleProduct c : sampleProductList){
- c.setId(IdWorker.getId());
- c.setSampleId(sample.getId());
- c.setExpendQuantity(c.getQuantity());
- ObsFileUtil.saveFile(c.getFileList(),c.getId());
- }
- sampleProductService.saveBatch(sampleProductList);
- }
- List<SampleProject> sampleProjectList = sample.getSampleProjectList();
- if(CollectionUtils.isNotEmpty(sampleProjectList)){//保存收费项目
- for(SampleProject c : sampleProjectList){
- c.setSampleId(sample.getId());
- }
- sampleProjectService.saveBatch(sampleProjectList);
- }
- List<SampleShipment> sampleShipmentList = sample.getSampleShipmentList();
- if(CollectionUtils.isNotEmpty(sampleShipmentList)){//保存自定义出货
- for(SampleShipment c : sampleShipmentList){
- c.setSampleId(sample.getId());
- }
- sampleShipmentService.saveBatch(sampleShipmentList);
- }
- //交接单附件
- ObsFileUtil.saveFile(sample.getFileList(),sample.getId(),1);
- //包装附件
- ObsFileUtil.saveFile(sample.getPackageFileList(),sample.getId(),2);
- return sample.getId();
- }
- /**
- * 结束流程
- * @param flowId 流程ID
- * @param businessId 业务ID
- * @param submitData 数据
- */
- @Override
- public void end(Long flowId, Long businessId, JSONObject submitData) {
- SampleService sampleService = SpringUtil.getBean(SampleService.class);
- //通过业务ID查询样品单数据
- Sample sample = sampleService.getById(businessId);
- if(ObjectUtils.isEmpty(sample)){
- throw new ServiceException("样品单不存在");
- }
- //修改样品单状态为审批通过
- sample.setStatus(FlowStatusEnum1.PASS.getKey());
- sample.setApprovedDate(new Date());
- sampleService.updateById(sample);
- }
- }
|