Browse Source

Merge remote-tracking branch 'origin/master'

master
God 2 years ago
parent
commit
0af5d8a509
  1. 185
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java
  2. 48
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busarrearscarryvehicleapply/BusArrearsCarryVehicleApplyService.java
  3. 32
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java
  4. 191
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionService.java

185
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java

@ -32,6 +32,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturer;
import com.yxt.anrui.base.api.baseoutsourcingapplication.*;
import com.yxt.anrui.base.api.baseoutsourcingapplication.flow.GetNodeVo;
@ -54,6 +55,7 @@ import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlFeign;
@ -74,6 +76,7 @@ import com.yxt.anrui.portal.api.sysuser.UserQuery;
import com.yxt.anrui.portal.config.DictCommonType;
import com.yxt.anrui.scm.api.scmvehicleexamine.ScmEntryVehicleExamineDto;
import com.yxt.anrui.scm.api.scmvehicleexamine.ScmVehicleExamineFeign;
import com.yxt.anrui.scm.api.scmvehiclegression.ScmVehicleGression;
import com.yxt.anrui.scm.api.scmvehinspectitem.ScmVehinspectItemDto;
import com.yxt.anrui.scm.api.scmvehinspectitem.ScmVehinspectItemFeign;
import com.yxt.common.base.config.component.FileUploadComponent;
@ -87,12 +90,14 @@ import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
@ -145,6 +150,8 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
private BaseManufacturerService baseManufacturerService;
@Autowired
private BaseVehicleBrandService baseVehicleBrandService;
@Autowired
private FlowFeign flowFeign;
private QueryWrapper<BaseOutsourcingApplication> createQueryWrapper(BaseOutsourcingApplicationQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -420,22 +427,33 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
//如果taskid从业务的数据库中查询出来,那这个taskid 和当前的关系是什么 如果数据库中查询出来的taskid是第四个环节的id,但是目前是做的第一次的提交操作。
// 应该是也不允许走if 也不运行走else 那应该如何验证这个id是否允许走else呢?
// 取出来业务数据的taskid和前端传递的taskid作比较 来判断数据的是否有效 本质上是数据版本一致性的问题
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
ResultBean<UpdateFlowFieldVo> resultBean1 = flowFeign.startProcess(bv);
UpdateFlowFieldVo uff = resultBean1.getData();
updateFlowFiled(BeanUtil.beanToMap(uff));
//======================添加消息推送开始
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(uff, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("外采申请");
messageFlowableQuery.setMsgContent(baseOutsourcingApplication.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("外采申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
//极光推送
// String msgSid = getMessage(uff, appMap, baseOutsourcingApplication);
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(uff, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("外采申请");
messageFlowableQuery.setMsgContent(baseOutsourcingApplication.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("外采申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//======================添加消息推送结束
return resultBean1;
}
@ -481,47 +499,68 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
if (StringUtils.isBlank(businessTaskid) && StringUtils.isBlank(dto.getTaskId())) {
// 新提交 taskid都是空的
saveOrUpdateDto(dto);//update
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
ResultBean<UpdateFlowFieldVo> resultBean1 = flowFeign.startProcess(bv);
UpdateFlowFieldVo uff = resultBean1.getData();
updateFlowFiled(BeanUtil.beanToMap(uff));
//======================添加消息推送开始
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(uff, messageFlowVo);
messageFlowVo.setProcInsId(baseOutsourcingApplication.getProcInstSid());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("外采申请");
messageFlowableQuery.setMsgContent(baseOutsourcingApplication.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("外采申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
//======================添加消息推送结束
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
//极光推送
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(uff, messageFlowVo);
messageFlowVo.setProcInsId(baseOutsourcingApplication.getProcInstSid());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("外采申请");
messageFlowableQuery.setMsgContent(baseOutsourcingApplication.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("外采申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
return resultBean1;
} else if (StringUtils.isNotBlank(businessTaskid) && businessTaskid.equals(dto.getTaskId())) {//只有数据一致的时候才能进行下一步
bv.setTaskDefKey(booad.getTaskDefKey());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
ResultBean<UpdateFlowFieldVo> rb = flowableFeign.handleProsess(bv);
ResultBean<UpdateFlowFieldVo> rb = flowFeign.handleProsess(bv);
UpdateFlowFieldVo uff = rb.getData();
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(rb.getData());
updateFlowFiled(stringObjectMap);
//======================添加消息推送开始
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(uff, messageFlowVo);
messageFlowVo.setProcInsId(baseOutsourcingApplication.getProcInstSid());
messageFlowVo.setProcDefId(baseOutsourcingApplication.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("外采申请");
messageFlowableQuery.setMsgContent(baseOutsourcingApplication.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("外采申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
//======================添加消息推送结束
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
//极光推送
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(uff, messageFlowVo);
messageFlowVo.setProcInsId(baseOutsourcingApplication.getProcInstSid());
messageFlowVo.setProcDefId(baseOutsourcingApplication.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("外采申请");
messageFlowableQuery.setMsgContent(baseOutsourcingApplication.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("外采申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
return rb;
} else {
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
@ -602,21 +641,30 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
}
}
} else {
//======================添加消息推送开始
UpdateFlowFieldVo uff = rb.getData();
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(bv.getBusinessSid());
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(uff, messageFlowVo);
messageFlowVo.setProcInsId(baseOutsourcingApplication.getProcInstSid());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
messageFlowableQuery.setModuleName("外采申请");
messageFlowableQuery.setMsgContent(baseOutsourcingApplication.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("外采申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
//======================添加消息推送结束
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
UpdateFlowFieldVo uff = rb.getData();
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(bv.getBusinessSid());
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(uff, messageFlowVo);
messageFlowVo.setProcInsId(baseOutsourcingApplication.getProcInstSid());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
messageFlowableQuery.setModuleName("外采申请");
messageFlowableQuery.setMsgContent(baseOutsourcingApplication.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("外采申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
}
return rb;
@ -626,27 +674,9 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
}
public ResultBean<UpdateFlowFieldVo> complete_handleProsess(BusinessVariables bv, BaseOutsourcingApplicationDto dto) {
ResultBean<UpdateFlowFieldVo> rb = flowableFeign.handleProsess(bv);
ResultBean<UpdateFlowFieldVo> rb = flowFeign.handleProsess(bv);
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(rb.getData());
updateFlowFiled(stringObjectMap);
//消息推送===========开始
/* UpdateFlowFieldVo uff = rb.getData();
if (!"Event_end".equals(uff.getTaskDefKey())) {
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(bv.getBusinessSid());
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(uff,messageFlowVo);
uff.setProcInsId(baseOutsourcingApplication.getProcInstSid());
uff.setProcDefId(baseOutsourcingApplication.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap((Map<String, Object>) bv.getFormVariables().get("app"));
messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
messageFlowableQuery.setModuleName("外采申请");
messageFlowableQuery.setMsgContent(baseOutsourcingApplication.getCreateByName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批");
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}*/
//消息推送结束=====
return rb;
}
@ -828,7 +858,6 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
String nextName = listResultBean.getData().get(0).getName_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(baseOutsourcingApplication.getCreateBySid())) {
if ("发起申请".equals(nextName)) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {

48
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busarrearscarryvehicleapply/BusArrearsCarryVehicleApplyService.java

@ -56,6 +56,7 @@ import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingFeign;
import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
@ -73,6 +74,7 @@ import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.portal.api.sysuser.UserRoleQuery;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.scm.api.scmvehiclegression.ScmVehicleGression;
import com.yxt.anrui.scm.api.scmwarehouse.ScmWarehouseFeign;
import com.yxt.anrui.scm.api.scmwarehouse.ScmWarehouseVo;
import com.yxt.common.base.config.component.DocPdfComponent;
@ -165,6 +167,8 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@ -1773,7 +1777,7 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
variables = flowableFeign.getMap(flowProcessMapQuery).getData();
bv.setFormVariables(variables);
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
ResultBean<UpdateFlowFieldVo> voResultBean =flowFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
@ -1944,27 +1948,39 @@ public class BusArrearsCarryVehicleApplyService extends MybatisBaseService<BusAr
}
if (bv.getTaskId().equals(busArrearsCarryVehicleApply.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
busArrearsCarryVehicleApply = fetchBySid(bv.getBusinessSid());
if (!"Event_end".equals(ufVo.getTaskDefKey())) {
//极光推送
busArrearsCarryVehicleApply = fetchBySid(bv.getBusinessSid());
ufVo.setProcInsId(busArrearsCarryVehicleApply.getProcInstId());
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcInsId(busArrearsCarryVehicleApply.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
messageFlowableQuery.setModuleName("欠款提车申请");
messageFlowableQuery.setMsgContent(busArrearsCarryVehicleApply.getApplyName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("欠款提车申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
BusArrearsCarryVehicleApply finalBusArrearsCarryVehicleApply1 = busArrearsCarryVehicleApply;
Future future1 = pool.submit(() -> {
//极光推送
ufVo.setProcInsId(finalBusArrearsCarryVehicleApply1.getProcInstId());
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcInsId(finalBusArrearsCarryVehicleApply1.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
messageFlowableQuery.setModuleName("欠款提车申请");
messageFlowableQuery.setMsgContent(finalBusArrearsCarryVehicleApply1.getApplyName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("欠款提车申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
} else {
List<BusArrearsCarryVehicleDetails> carList = busArrearsCarryVehicleDetailsService.selectDetailsByApplySid(bv.getBusinessSid());
for (BusArrearsCarryVehicleDetails adCarListDto : carList) {

32
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java

@ -101,6 +101,7 @@ import com.yxt.anrui.fin.api.finvehicleinvoice.InvoiceVo;
import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
@ -169,6 +170,8 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
SysUserFeign sysUserFeign;
@ -777,10 +780,11 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
bv.setFormVariables(variables);
bv.setModelId(busDeliveredApply.getProcDefId());
if (bv.getTaskId().equals(busDeliveredApply.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
baseMapper.updateStateBySid(3, bv.getBusinessSid());
@ -895,6 +899,30 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
}*/
//更改申请的状态为待审核2
baseMapper.updateStateBySid(2, bv.getBusinessSid());
}else{
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
BusDeliveredApply finalBusDeliveredApply = busDeliveredApply;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
messageFlowableQuery.setModuleName("出库申请");
messageFlowableQuery.setMsgContent(finalBusDeliveredApply.getApplyName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("出库申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
}
}
return rb.success().setData(resultBean.getData());
@ -2353,7 +2381,7 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
variables = flowableFeign.getMap(flowProcessMapQuery).getData();
bv.setFormVariables(variables);
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}

191
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionService.java

@ -39,6 +39,7 @@ import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModelFeign;
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstateDto;
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstateFeign;
import com.yxt.anrui.base.api.basevehicletempstate.BaseVehicleTempstateVo;
import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApply;
import com.yxt.anrui.base.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.enums.DictCommonEnum;
import com.yxt.anrui.base.common.utils.Rule;
@ -46,6 +47,7 @@ import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
@ -161,6 +163,8 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
private ScmWarehouseService scmWarehouseService;
@Autowired
private DocPdfComponent docPdfComponent;
@Autowired
private FlowFeign flowFeign;
private QueryWrapper<ScmVehicleGression> createQueryWrapper(ScmVehicleGressionQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -959,21 +963,36 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
//调出方负责人
bv.setNextNodeUserSids(dto.getPersonUserSid());
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
//极光推送
scmVehicleGression = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("存放地点变更申请");
messageFlowableQuery.setMsgContent(scmVehicleGression.getApplicantName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("存放地点变更");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
//==================================添加线程
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
ScmVehicleGression finalScmVehicleGression = scmVehicleGression;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("存放地点变更申请");
messageFlowableQuery.setMsgContent(finalScmVehicleGression.getApplicantName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("存放地点变更");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
return voResultBean;
}
if (r == 2) {
@ -1036,7 +1055,6 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
*/
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
ScmVehicleGression scmVehicleGression = fetchBySid(bv.getBusinessSid());
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
@ -1047,19 +1065,20 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
bv.setModelId(scmVehicleGression.getProcDefId());
//===============================添加多线程开始======================
if (bv.getTaskId().equals(scmVehicleGression.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
scmVehicleGression = fetchBySid(bv.getBusinessSid());
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
String pdfPath = createPdf(bv.getBusinessSid());
//将生成的出门证添加到出门证表中
@ -1068,114 +1087,40 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
scmExitPermit.setUrl(pdfPath);
scmExitPermitService.insert(scmExitPermit);
});
ScmVehicleGression finalScmVehicleGression = scmVehicleGression;
// Future future2 = pool.submit(() -> {
// //推送调拨单
// List<String> vinList = scmVehicleGressionVehService.fetchVoByMainSid(bv.getBusinessSid());
// if (vinList.size() > 0) {
// //根据分公司sid查询分公司编码
// String useOrgSid = finalScmVehicleGression.getUseOrgSid();
// ResultBean<SysOrganizationVo> sysOrg = sysOrganizationFeign.fetchBySid(useOrgSid);
// SysOrganizationVo sysOrganizationVo = sysOrg.getData();
// for (String s : vinList) {
// BaseVehicleVo baseVehicleVo = baseVehicleFeign.selVehicleByVinNo(s).getData();
// List<StkTransferDirect.FBillEntry> FPAYBILLENTRYs = new ArrayList<>();
// StkTransferDirect stkTransferDirect = new StkTransferDirect();
// stkTransferDirect.setFStockOrgId(sysOrganizationVo.getOrgCode()); //调入库存组织
// stkTransferDirect.setFDate(simpleDateFormat.format(baseVehicleVo.getPriceDate())); //日期
// StkTransferDirect.FBillEntry fBillEntry = new StkTransferDirect.FBillEntry();
// ScmWarehouse scmWarehouse = scmWarehouseService.fetchBySid(finalScmVehicleGression.getTargetLocationSid());
// fBillEntry.setFDestStockId(scmWarehouse.getGressionCode());//调入仓库
// fBillEntry.setFMaterialId(s);//物料编码
// scmWarehouse = scmWarehouseService.fetchBySid(finalScmVehicleGression.getLocationSid());
// fBillEntry.setFSrcStockId(scmWarehouse.getGressionCode());//调出仓库
// FPAYBILLENTRYs.add(fBillEntry);
// stkTransferDirect.setFBillEntry(FPAYBILLENTRYs);
// finKingDeeFeign.draftStkTransferDirect(stkTransferDirect);
// }
// }
//
// });
} else {
//极光推送
scmVehicleGression = fetchBySid(bv.getBusinessSid());
ufVo.setProcInsId(scmVehicleGression.getProcInstId());
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcInsId(scmVehicleGression.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
messageFlowableQuery.setModuleName("存放地点变更申请");
messageFlowableQuery.setMsgContent(scmVehicleGression.getApplicantName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("存放地点变更");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
//===============================添加多线程结束======================
/*if (bv.getTaskId().equals(scmVehicleGression.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if (!"Event_end".equals(ufVo.getTaskDefKey())) {
//极光推送
scmVehicleGression = fetchBySid(bv.getBusinessSid());
ufVo.setProcInsId(scmVehicleGression.getProcInstId());
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcInsId(scmVehicleGression.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
messageFlowableQuery.setModuleName("存放地点变更申请");
messageFlowableQuery.setMsgContent(scmVehicleGression.getApplicantName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("存放地点变更");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
} else {
//推送调拨单
List<String> vinList = scmVehicleGressionVehService.fetchVoByMainSid(bv.getBusinessSid());
if (vinList.size() > 0) {
//根据分公司sid查询分公司编码
String useOrgSid = scmVehicleGression.getUseOrgSid();
ResultBean<SysOrganizationVo> sysOrg = sysOrganizationFeign.fetchBySid(useOrgSid);
SysOrganizationVo sysOrganizationVo = sysOrg.getData();
for (String s : vinList) {
BaseVehicleVo baseVehicleVo = baseVehicleFeign.selVehicleByVinNo(s).getData();
List<StkTransferDirect.FBillEntry> FPAYBILLENTRYs = new ArrayList<>();
StkTransferDirect stkTransferDirect = new StkTransferDirect();
stkTransferDirect.setFStockOrgId(sysOrganizationVo.getOrgCode()); //调入库存组织
stkTransferDirect.setFDate(simpleDateFormat.format(baseVehicleVo.getPriceDate())); //日期
StkTransferDirect.FBillEntry fBillEntry = new StkTransferDirect.FBillEntry();
ScmWarehouse scmWarehouse = scmWarehouseService.fetchBySid(scmVehicleGression.getTargetLocationSid());
fBillEntry.setFDestStockId(scmWarehouse.getGressionCode());//调入仓库
fBillEntry.setFMaterialId(s);//物料编码
scmWarehouse = scmWarehouseService.fetchBySid(scmVehicleGression.getLocationSid());
fBillEntry.setFSrcStockId(scmWarehouse.getGressionCode());//调出仓库
FPAYBILLENTRYs.add(fBillEntry);
stkTransferDirect.setFBillEntry(FPAYBILLENTRYs);
finKingDeeFeign.draftStkTransferDirect(stkTransferDirect);
}
}else{
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
ScmVehicleGression finalScmVehicleGression = scmVehicleGression;
Future future1 = pool.submit(() -> {
//极光推送
ufVo.setProcInsId(finalScmVehicleGression.getProcInstId());
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcInsId(finalScmVehicleGression.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
messageFlowableQuery.setModuleName("存放地点变更申请");
messageFlowableQuery.setMsgContent(finalScmVehicleGression.getApplicantName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("存放地点变更");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
*/
}
/**
@ -1261,7 +1206,6 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
String nextName = listResultBean.getData().get(0).getName_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(scmVehicleGression.getCreateBySid())) {
if ("发起申请".equals(nextName)) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
//清除临时车辆表状态
@ -1307,7 +1251,6 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
String nextName = listResultBean.getData().get(0).getName_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(scmVehicleGression.getCreateBySid())) {
if ("发起申请".equals(nextName)) {
//清除临时车辆表状态
baseVehicleTempstateFeign.delByBusSid(query.getBusinessSid());

Loading…
Cancel
Save