|
|
@ -31,6 +31,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.baseinternalpurchase.*; |
|
|
|
import com.yxt.anrui.base.api.baseinternalpurchase.flow.BaseInterNalPurchaseTaskQuery; |
|
|
|
import com.yxt.anrui.base.api.baseinternalpurchase.flow.GetNodeVo; |
|
|
@ -53,6 +54,7 @@ import com.yxt.anrui.base.common.utils.Rule; |
|
|
|
import com.yxt.anrui.base.common.utils.domain.BillNo; |
|
|
|
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; |
|
|
@ -87,6 +89,7 @@ import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
@ -129,6 +132,8 @@ public class BaseInternalPurchaseService extends MybatisBaseService<BaseInternal |
|
|
|
private AppSubsetVersionFeign appSubsetVersionFeign; |
|
|
|
@Autowired |
|
|
|
private MessageFeign messageFeign; |
|
|
|
@Autowired |
|
|
|
private FlowFeign flowFeign; |
|
|
|
|
|
|
|
private QueryWrapper<BaseInternalPurchase> createQueryWrapper(BaseInternalPurchaseQuery query) { |
|
|
|
// todo: 这里根据具体业务调整查询条件
|
|
|
@ -361,7 +366,7 @@ public class BaseInternalPurchaseService extends MybatisBaseService<BaseInternal |
|
|
|
//流程定义id
|
|
|
|
bv.setModelId(ProcDefEnum.BASEINTERNALPURCHASE.getProDefId()); |
|
|
|
if (r == 1) { |
|
|
|
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv); |
|
|
|
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv); |
|
|
|
UpdateFlowFieldVo ufVo = voResultBean.getData(); |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(ufVo)); |
|
|
|
for (BaseInternalPurchaseVehicleDto baseInternalPurchaseVehicleDto : baseInternalPurchaseVehicles) { |
|
|
@ -492,7 +497,7 @@ public class BaseInternalPurchaseService extends MybatisBaseService<BaseInternal |
|
|
|
variables.put("app", appMap); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
bv.setOrgSidPath(baseInternalPurchase.getOrgSidPath()); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
|
return rb.setMsg(resultBean.getMsg()); |
|
|
|
} |
|
|
@ -568,18 +573,30 @@ public class BaseInternalPurchaseService extends MybatisBaseService<BaseInternal |
|
|
|
//极光推送
|
|
|
|
UpdateFlowFieldVo ufVo = resultBean.getData(); |
|
|
|
baseInternalPurchase = fetchBySid(bv.getBusinessSid()); |
|
|
|
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()); |
|
|
|
BaseInternalPurchase finalBaseInternalPurchase = baseInternalPurchase; |
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
|
|
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
|
|
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
|
|
|
messageFlowVo.setProcInsId(baseInternalPurchase.getProcInstId()); |
|
|
|
messageFlowVo.setProcDefId(baseInternalPurchase.getProcDefId()); |
|
|
|
messageFlowVo.setProcInsId(finalBaseInternalPurchase.getProcInstId()); |
|
|
|
messageFlowVo.setProcDefId(finalBaseInternalPurchase.getProcDefId()); |
|
|
|
messageFlowableQuery.setUfVo(messageFlowVo); |
|
|
|
messageFlowableQuery.setAppMap(appMap); |
|
|
|
messageFlowableQuery.setBusinessSid(bv.getBusinessSid()); |
|
|
|
messageFlowableQuery.setModuleName("分公司间调车申请"); |
|
|
|
messageFlowableQuery.setMsgContent(baseInternalPurchase.getApplyPeoName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
messageFlowableQuery.setMsgContent(finalBaseInternalPurchase.getApplyPeoName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
messageFlowableQuery.setMsgTitle("分公司间调车"); |
|
|
|
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
return rb.success().setData(resultBean.getData()); |
|
|
|
} else { |
|
|
@ -666,7 +683,7 @@ public class BaseInternalPurchaseService extends MybatisBaseService<BaseInternal |
|
|
|
appMap.put("sid", bv.getBusinessSid()); |
|
|
|
variables.put("app", appMap); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
|
return rb.setMsg(resultBean.getMsg()); |
|
|
|
} |
|
|
@ -674,18 +691,30 @@ public class BaseInternalPurchaseService extends MybatisBaseService<BaseInternal |
|
|
|
//极光推送
|
|
|
|
UpdateFlowFieldVo ufVo = resultBean.getData(); |
|
|
|
baseInternalPurchase = fetchBySid(bv.getBusinessSid()); |
|
|
|
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()); |
|
|
|
BaseInternalPurchase finalBaseInternalPurchase = baseInternalPurchase; |
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
|
|
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
|
|
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
|
|
|
messageFlowVo.setProcInsId(baseInternalPurchase.getProcInstId()); |
|
|
|
messageFlowVo.setProcDefId(baseInternalPurchase.getProcDefId()); |
|
|
|
messageFlowVo.setProcInsId(finalBaseInternalPurchase.getProcInstId()); |
|
|
|
messageFlowVo.setProcDefId(finalBaseInternalPurchase.getProcDefId()); |
|
|
|
messageFlowableQuery.setUfVo(messageFlowVo); |
|
|
|
messageFlowableQuery.setAppMap(appMap); |
|
|
|
messageFlowableQuery.setBusinessSid(bv.getBusinessSid()); |
|
|
|
messageFlowableQuery.setModuleName("分公司间调车申请"); |
|
|
|
messageFlowableQuery.setMsgContent(baseInternalPurchase.getApplyPeoName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
messageFlowableQuery.setMsgContent(finalBaseInternalPurchase.getApplyPeoName() + "提交的" + 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("操作失败!提交的数据不一致"); |
|
|
@ -721,7 +750,7 @@ public class BaseInternalPurchaseService extends MybatisBaseService<BaseInternal |
|
|
|
appMap.put("sid", bv.getBusinessSid()); |
|
|
|
variables.put("app", appMap); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.handleProsess(bv); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean1 = flowFeign.handleProsess(bv); |
|
|
|
if (!resultBean1.getSuccess()) { |
|
|
|
return rb.setMsg(resultBean1.getMsg()); |
|
|
|
} |
|
|
@ -729,18 +758,30 @@ public class BaseInternalPurchaseService extends MybatisBaseService<BaseInternal |
|
|
|
//极光推送
|
|
|
|
UpdateFlowFieldVo ufVo = resultBean1.getData(); |
|
|
|
baseInternalPurchase = fetchBySid(bv.getBusinessSid()); |
|
|
|
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()); |
|
|
|
BaseInternalPurchase finalBaseInternalPurchase = baseInternalPurchase; |
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
|
|
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
|
|
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
|
|
|
messageFlowVo.setProcInsId(baseInternalPurchase.getProcInstId()); |
|
|
|
messageFlowVo.setProcDefId(baseInternalPurchase.getProcDefId()); |
|
|
|
messageFlowVo.setProcInsId(finalBaseInternalPurchase.getProcInstId()); |
|
|
|
messageFlowVo.setProcDefId(finalBaseInternalPurchase.getProcDefId()); |
|
|
|
messageFlowableQuery.setUfVo(messageFlowVo); |
|
|
|
messageFlowableQuery.setAppMap(appMap); |
|
|
|
messageFlowableQuery.setBusinessSid(bv.getBusinessSid()); |
|
|
|
messageFlowableQuery.setModuleName("分公司间调车申请"); |
|
|
|
messageFlowableQuery.setMsgContent(baseInternalPurchase.getApplyPeoName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
messageFlowableQuery.setMsgContent(finalBaseInternalPurchase.getApplyPeoName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
messageFlowableQuery.setMsgTitle("分公司间调车"); |
|
|
|
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
return rb.success().setData(resultBean1.getData()); |
|
|
|
} else { |
|
|
|
return rb.setMsg("操作失败!提交的数据不一致"); |
|
|
@ -803,12 +844,20 @@ public class BaseInternalPurchaseService extends MybatisBaseService<BaseInternal |
|
|
|
UpdateFlowFieldVo ufVo = resultBean.getData(); |
|
|
|
String businessSid = query.getBusinessSid(); |
|
|
|
baseInternalPurchase = fetchBySid(businessSid); |
|
|
|
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()); |
|
|
|
BaseInternalPurchase finalBaseInternalPurchase = baseInternalPurchase; |
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
|
|
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
|
|
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
|
|
|
String procId = baseInternalPurchase.getProcInstId(); |
|
|
|
String procId = finalBaseInternalPurchase.getProcInstId(); |
|
|
|
messageFlowVo.setProcInsId(procId); |
|
|
|
messageFlowVo.setProcDefId(baseInternalPurchase.getProcDefId()); |
|
|
|
messageFlowVo.setProcDefId(finalBaseInternalPurchase.getProcDefId()); |
|
|
|
messageFlowableQuery.setUfVo(messageFlowVo); |
|
|
|
messageFlowableQuery.setAppMap(appMap); |
|
|
|
messageFlowableQuery.setBusinessSid(businessSid); |
|
|
@ -821,11 +870,15 @@ public class BaseInternalPurchaseService extends MybatisBaseService<BaseInternal |
|
|
|
if ("发起申请".equals(nextName)) { |
|
|
|
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); |
|
|
|
} else { |
|
|
|
messageFlowableQuery.setMsgContent(baseInternalPurchase.getApplyPeoName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
messageFlowableQuery.setMsgContent(finalBaseInternalPurchase.getApplyPeoName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
} |
|
|
|
|
|
|
|
messageFlowableQuery.setMsgTitle("分公司间调车"); |
|
|
|
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
} |
|
|
|