|
|
@ -146,6 +146,7 @@ import com.yxt.anrui.riskcenter.api.loanfileexamine.LoanFileexamineFeign; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterFeign; |
|
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign; |
|
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; |
|
|
|
import com.yxt.common.base.config.component.FileUploadComponent; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.PagerUtil; |
|
|
|
import com.yxt.common.core.query.PagerQuery; |
|
|
@ -262,6 +263,8 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
private BusArrearsCarryVehicleApplyService busArrearsCarryVehicleApplyService; |
|
|
|
@Autowired |
|
|
|
private LoanFileexamineFeign loanFileexamineFeign; |
|
|
|
@Autowired |
|
|
|
private FileUploadComponent fileUploadComponent; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
@ -1220,6 +1223,223 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean qkComplete(BusinessVariables bv) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
BusDeliveredApply busDeliveredApply = fetchBySid(bv.getBusinessSid()); |
|
|
|
bv.setOrgSidPath(busDeliveredApply.getOrgSidPath()); |
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
//若app移动端有此功能,则传递appMap参数
|
|
|
|
Map<String, Object> appMap = new HashMap<>(); |
|
|
|
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
|
|
|
|
appMap.put("outboundSid", bv.getBusinessSid()); |
|
|
|
appMap.put("contractId", busDeliveredApply.getContractNo()); |
|
|
|
appMap.put("contract_id", busDeliveredApply.getContractNo()); |
|
|
|
variables.put("app", appMap); |
|
|
|
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); |
|
|
|
flowProcessMapQuery.setProDefKey(busDeliveredApply.getProcDefId()); |
|
|
|
flowProcessMapQuery.setVariables(variables); |
|
|
|
flowProcessMapQuery.setContractNo(busDeliveredApply.getContractNo()); |
|
|
|
variables = flowableFeign.getMap(flowProcessMapQuery).getData(); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
bv.setModelId(busDeliveredApply.getProcDefId()); |
|
|
|
if (bv.getTaskId().equals(busDeliveredApply.getTaskId())) { |
|
|
|
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()); |
|
|
|
try { |
|
|
|
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() |
|
|
|
.setNameFormat("demo-pool-%d").build(); |
|
|
|
ExecutorService pool = new ThreadPoolExecutor(1, 10, |
|
|
|
1000, TimeUnit.MILLISECONDS, |
|
|
|
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); |
|
|
|
Future future0 = pool.submit(() -> { |
|
|
|
List<BaseVehicleStateDto> dtoList = new ArrayList<>(); |
|
|
|
List<String> vinSidList = busDeliveredApplyDetailsService.selectVinSidByApplySid(bv.getBusinessSid()); |
|
|
|
vinSidList.removeAll(Collections.singleton(null)); |
|
|
|
if (!vinSidList.isEmpty()) { |
|
|
|
vinSidList.stream().forEach(v -> { |
|
|
|
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto(); |
|
|
|
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.CKKP_PASS.getTypeKey()); |
|
|
|
baseVehicleStateDto.setBusSid(v); |
|
|
|
dtoList.add(baseVehicleStateDto); |
|
|
|
}); |
|
|
|
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList); |
|
|
|
} |
|
|
|
}); |
|
|
|
List<BusDeliveredApplyDetails> detailsList = busDeliveredApplyDetailsService.selectByApplySid(busDeliveredApply.getSid()); |
|
|
|
ResultBean<AppOrderDetailsVo> orderDetailsVoResultBean = busSalesOrderService.getSaleOrderDetailsByContractNo(busDeliveredApply.getContractNo()); |
|
|
|
if (!orderDetailsVoResultBean.getSuccess()) { |
|
|
|
log.error("获取销售订单详情出错啦!!!"); |
|
|
|
} |
|
|
|
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(busDeliveredApply.getStaffUserSid()); |
|
|
|
|
|
|
|
//推送开票申请数据
|
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
pushInvoice(busDeliveredApply, detailsList, orderDetailsVoResultBean.getData(), userVoResultBean.getData()); |
|
|
|
}); |
|
|
|
|
|
|
|
//推送优惠包交接数据
|
|
|
|
Future future2 = pool.submit(() -> { |
|
|
|
pushDiscountPackage(busDeliveredApply, detailsList); |
|
|
|
}); |
|
|
|
//推送出库查询数据
|
|
|
|
Future future3 = pool.submit(() -> { |
|
|
|
pushOutApply(busDeliveredApply, detailsList, orderDetailsVoResultBean.getData(), userVoResultBean.getData()); |
|
|
|
}); |
|
|
|
//推送随车资料数据
|
|
|
|
Future future4 = pool.submit(() -> { |
|
|
|
pushVehicleInforHandov(busDeliveredApply, detailsList, orderDetailsVoResultBean.getData(), userVoResultBean.getData()); |
|
|
|
}); |
|
|
|
//推送待交车准备数据
|
|
|
|
Future future5 = pool.submit(() -> { |
|
|
|
pushHandoverPrepare(busDeliveredApply, detailsList, orderDetailsVoResultBean.getData(), userVoResultBean.getData()); |
|
|
|
}); |
|
|
|
//推送合格证管理员站内信提醒有待移交的合格证,同时自动更改出库车辆的合格证移交状态为“待移交”。
|
|
|
|
//ToDo:合格证管理员、随车资料管理员、发票管理员创建并查询该角色的用户推送消息有待移交的资料等等。
|
|
|
|
Future future6 = pool.submit(() -> { |
|
|
|
//合格证管理员
|
|
|
|
List<String> recipientSidList = new ArrayList<>(); |
|
|
|
UserQuery userQuery = new UserQuery(); |
|
|
|
userQuery.setRoleSid("7846bb61-34e2-44e5-92da-279245308e53"); |
|
|
|
userQuery.setOrgSidPath(bv.getOrgSidPath()); |
|
|
|
recipientSidList = sysUserFeign.getUserSidByRole(userQuery).getData(); |
|
|
|
PushMessageQuery pushMessageQuery = new PushMessageQuery(); |
|
|
|
pushMessageQuery.setReceivedSids(recipientSidList); |
|
|
|
pushMessageQuery.setModuleName("业务"); |
|
|
|
pushMessageQuery.setMsgContent("您有待移交的合格证,请前往合格证管理中查看"); |
|
|
|
pushMessageQuery.setApp_type("2"); |
|
|
|
pushMessageQuery.setModuleSid("e25e13b5-f2ed-421f-bdb3-6f2eca2a3028"); |
|
|
|
pushMessageQuery.setMsgTitle("合格证移交提醒"); |
|
|
|
pushMessageQuery.setBusinessSid(busDeliveredApply.getSid()); |
|
|
|
// 消息推送
|
|
|
|
messageFeign.pushNoUriMessage(pushMessageQuery); |
|
|
|
}); |
|
|
|
Future future7 = pool.submit(() -> { |
|
|
|
//随车资料管理员
|
|
|
|
List<String> recipientSidList = new ArrayList<>(); |
|
|
|
UserQuery userQuery = new UserQuery(); |
|
|
|
userQuery.setRoleSid("55b41998-d246-4169-b666-fe53a27a6b8d"); |
|
|
|
userQuery.setOrgSidPath(bv.getOrgSidPath()); |
|
|
|
recipientSidList = sysUserFeign.getUserSidByRole(userQuery).getData(); |
|
|
|
PushMessageQuery pushMessageQuery = new PushMessageQuery(); |
|
|
|
pushMessageQuery.setReceivedSids(recipientSidList); |
|
|
|
pushMessageQuery.setModuleName("业务"); |
|
|
|
pushMessageQuery.setMsgContent("您有待移交的随车资料,请前往随车资料管理查看"); |
|
|
|
pushMessageQuery.setApp_type("2"); |
|
|
|
pushMessageQuery.setModuleSid("e25e13b5-f2ed-421f-bdb3-6f2eca2a3028"); |
|
|
|
pushMessageQuery.setMsgTitle("随车资料移交提醒"); |
|
|
|
pushMessageQuery.setBusinessSid(busDeliveredApply.getSid()); |
|
|
|
// 消息推送
|
|
|
|
messageFeign.pushNoUriMessage(pushMessageQuery); |
|
|
|
}); |
|
|
|
Future future9 = pool.submit(() -> { |
|
|
|
//优惠包管理员
|
|
|
|
List<String> recipientSidList = new ArrayList<>(); |
|
|
|
UserQuery userQuery = new UserQuery(); |
|
|
|
userQuery.setRoleSid("2def57cf-2423-49b3-9af4-7f74e9fd27a6"); |
|
|
|
userQuery.setOrgSidPath(bv.getOrgSidPath()); |
|
|
|
recipientSidList = sysUserFeign.getUserSidByRole(userQuery).getData(); |
|
|
|
PushMessageQuery pushMessageQuery = new PushMessageQuery(); |
|
|
|
pushMessageQuery.setReceivedSids(recipientSidList); |
|
|
|
pushMessageQuery.setModuleName("业务"); |
|
|
|
pushMessageQuery.setMsgContent("您有待移交的优惠包,请前往优惠包交接查看"); |
|
|
|
pushMessageQuery.setApp_type("2"); |
|
|
|
pushMessageQuery.setModuleSid("e25e13b5-f2ed-421f-bdb3-6f2eca2a3028"); |
|
|
|
pushMessageQuery.setMsgTitle("优惠包移交提醒"); |
|
|
|
pushMessageQuery.setBusinessSid(busDeliveredApply.getSid()); |
|
|
|
// 消息推送
|
|
|
|
messageFeign.pushNoUriMessage(pushMessageQuery); |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
log.error("推送数据失败=========================" + e.getMessage()); |
|
|
|
return rb.setMsg("推送数据失败"); |
|
|
|
} |
|
|
|
//根据车辆sid和合同编码修改开票管理中对应的领票状态为是
|
|
|
|
List<BusDeliveredApplyDetails> busDeliveredApplyDetails = busDeliveredApplyDetailsService.selectByApplySid(busDeliveredApply.getSid()); |
|
|
|
for (BusDeliveredApplyDetails busDeliveredApplyDetail : busDeliveredApplyDetails) { |
|
|
|
String vinSid = busDeliveredApplyDetail.getVinSid(); |
|
|
|
FinVehicleInvoice finVehicleInvoice = finVehicleInvoiceFeign.selectByVinAndContractNo(vinSid, busDeliveredApply.getContractNo()).getData(); |
|
|
|
if (finVehicleInvoice != null) { |
|
|
|
if (StringUtils.isNotBlank(finVehicleInvoice.getSid())) { |
|
|
|
finVehicleInvoiceFeign.updateBySid(finVehicleInvoice.getSid()); |
|
|
|
} |
|
|
|
} |
|
|
|
//合格证的状态修改为待移交状态
|
|
|
|
CertificateStateQuery certificateStateQuery = new CertificateStateQuery(); |
|
|
|
certificateStateQuery.setVinSid(vinSid); |
|
|
|
certificateStateQuery.setTransferStateKey(CertificState.TransferState.TRANSTATE_DYJ.getCode()); |
|
|
|
certificateStateQuery.setTransferStateValue(CertificState.TransferState.TRANSTATE_DYJ.getRemarks()); |
|
|
|
baseVehicleCertificateFeign.updateYjState(certificateStateQuery); |
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
if ("重新提交".equals(bv.getComment())) { |
|
|
|
//将待出库中的车辆更改状态为出库申请0
|
|
|
|
List<String> vinSidList = busDeliveredApplyDetailsService.selectVinSidByApplySid(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()); |
|
|
|
BusDeliveredApply finalBusDeliveredApply1 = busDeliveredApply; |
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
List<BaseVehicleStateDto> dtoList = new ArrayList<>(); |
|
|
|
vinSidList.removeAll(Collections.singleton(null)); |
|
|
|
if (!vinSidList.isEmpty()) { |
|
|
|
vinSidList.stream().forEach(v -> { |
|
|
|
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto(); |
|
|
|
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.CKTJ.getTypeKey()); |
|
|
|
baseVehicleStateDto.setBusSid(v); |
|
|
|
dtoList.add(baseVehicleStateDto); |
|
|
|
}); |
|
|
|
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList); |
|
|
|
} |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
//更改申请的状态为待审核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()); |
|
|
|
} else { |
|
|
|
return rb.setMsg("操作失败!提交的数据不一致"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 推送待交车准备数据 |
|
|
|
* |
|
|
@ -2518,19 +2738,6 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
busDeliveredApplyDetailsService.insert(busDeliveredApplyDetails); |
|
|
|
} |
|
|
|
baseMapper.updateById(busDeliveredApply); |
|
|
|
/* stateDtoList = new ArrayList<>(); |
|
|
|
vinSidList = busDeliveredApplyDetailsService.selectVinSidByApplySid(sid); |
|
|
|
vinSidList.removeAll(Collections.singleton(null)); |
|
|
|
if (!vinSidList.isEmpty()) { |
|
|
|
List<BaseVehicleStateDto> finalStateDtoList = stateDtoList; |
|
|
|
vinSidList.stream().forEach(vv -> { |
|
|
|
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto(); |
|
|
|
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.CKKP_SAVE.getTypeKey()); |
|
|
|
baseVehicleStateDto.setBusSid(vv); |
|
|
|
finalStateDtoList.add(baseVehicleStateDto); |
|
|
|
}); |
|
|
|
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(stateDtoList); |
|
|
|
}*/ |
|
|
|
} |
|
|
|
return rb.success().setData(sid); |
|
|
|
} |
|
|
@ -3185,6 +3392,7 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
} |
|
|
|
BusDeliveredApply busDeliveredApply = new BusDeliveredApply(); |
|
|
|
BeanUtil.copyProperties(dto, busDeliveredApply, "sid"); |
|
|
|
busDeliveredApply.setTypeState(1); |
|
|
|
busDeliveredApply.setContractNo(contractNo); |
|
|
|
busDeliveredApply.setApplySid(userSid); |
|
|
|
busDeliveredApply.setCreateBySid(userSid); |
|
|
@ -3343,21 +3551,29 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
} |
|
|
|
busDeliveredApplyDetailsService.insert(busDeliveredApplyDetails); |
|
|
|
} |
|
|
|
//责任人担保承诺书
|
|
|
|
List<String> promiseList = dto.getPromiseList(); |
|
|
|
//担保承诺书
|
|
|
|
List<String> danFileList = dto.getDanFileList(); |
|
|
|
//车辆登记合同
|
|
|
|
List<String> carFileList = dto.getCarFileList(); |
|
|
|
promiseList.removeAll(Collections.singleton(null)); |
|
|
|
if (!promiseList.isEmpty()) { |
|
|
|
String promiseFile = String.join(",", promiseList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
busDeliveredApply.setPromiseFile(promiseFile); |
|
|
|
} |
|
|
|
danFileList.removeAll(Collections.singleton(null)); |
|
|
|
if (!danFileList.isEmpty()) { |
|
|
|
String danFile = String.join(",", danFileList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
busDeliveredApply.setDanFile(danFile); |
|
|
|
} |
|
|
|
carFileList.removeAll(Collections.singleton(null)); |
|
|
|
if (!carFileList.isEmpty()) { |
|
|
|
String carFile = String.join(",", carFileList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
busDeliveredApply.setCarFile(carFile); |
|
|
|
} |
|
|
|
baseMapper.insert(busDeliveredApply); |
|
|
|
sid = busDeliveredApply.getSid(); |
|
|
|
/* List<BaseVehicleStateDto> stateDtoList = new ArrayList<>(); |
|
|
|
List<String> vinSidList = busDeliveredApplyDetailsService.selectVinSidByApplySid(sid); |
|
|
|
vinSidList.removeAll(Collections.singleton(null)); |
|
|
|
if (!vinSidList.isEmpty()) { |
|
|
|
vinSidList.stream().forEach(vv -> { |
|
|
|
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto(); |
|
|
|
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.CKKP_SAVE.getTypeKey()); |
|
|
|
baseVehicleStateDto.setBusSid(vv); |
|
|
|
stateDtoList.add(baseVehicleStateDto); |
|
|
|
}); |
|
|
|
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(stateDtoList); |
|
|
|
}*/ |
|
|
|
//保存开票信息
|
|
|
|
|
|
|
|
} else { |
|
|
|
//根据出库申请sid查询出库申请是否存在
|
|
|
@ -3526,6 +3742,33 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
} |
|
|
|
busDeliveredApplyDetailsService.insert(busDeliveredApplyDetails); |
|
|
|
} |
|
|
|
//责任人担保承诺书
|
|
|
|
List<String> promiseList = dto.getPromiseList(); |
|
|
|
//担保承诺书
|
|
|
|
List<String> danFileList = dto.getDanFileList(); |
|
|
|
//车辆登记合同
|
|
|
|
List<String> carFileList = dto.getCarFileList(); |
|
|
|
promiseList.removeAll(Collections.singleton(null)); |
|
|
|
if (!promiseList.isEmpty()) { |
|
|
|
String promiseFile = String.join(",", promiseList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
busDeliveredApply.setPromiseFile(promiseFile); |
|
|
|
}else{ |
|
|
|
busDeliveredApply.setPromiseFile(""); |
|
|
|
} |
|
|
|
danFileList.removeAll(Collections.singleton(null)); |
|
|
|
if (!danFileList.isEmpty()) { |
|
|
|
String danFile = String.join(",", danFileList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
busDeliveredApply.setDanFile(danFile); |
|
|
|
}else{ |
|
|
|
busDeliveredApply.setDanFile(""); |
|
|
|
} |
|
|
|
carFileList.removeAll(Collections.singleton(null)); |
|
|
|
if (!carFileList.isEmpty()) { |
|
|
|
String carFile = String.join(",", carFileList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
busDeliveredApply.setCarFile(carFile); |
|
|
|
}else{ |
|
|
|
busDeliveredApply.setCarFile(""); |
|
|
|
} |
|
|
|
baseMapper.updateById(busDeliveredApply); |
|
|
|
} |
|
|
|
return rb.success().setData(sid); |
|
|
@ -3650,10 +3893,6 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
bv.setUserSid(dto.getUserSid()); |
|
|
|
//流程定义id
|
|
|
|
bv.setModelId(ProcDefEnum.QKBUSDELIVEREDAPPLY.getProDefId()); |
|
|
|
//判断发起人是否为销售专员
|
|
|
|
variables.put("isAdj", busDeliveredApply.getCreateBySid().equals(busDeliveredApply.getStaffUserSid())); |
|
|
|
//判断是否为贷款业务
|
|
|
|
variables.put("isDk", "2".equals(busDeliveredApply.getPaymentMethodKey())); |
|
|
|
//若app移动端有此功能,则传递appMap参数
|
|
|
|
Map<String, Object> appMap = new HashMap<>(); |
|
|
|
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
|
|
|
@ -3661,29 +3900,6 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
appMap.put("contractId", busDeliveredApply.getContractNo()); |
|
|
|
appMap.put("contract_id", busDeliveredApply.getContractNo()); |
|
|
|
variables.put("app", appMap); |
|
|
|
//根据合同号查询销售订单
|
|
|
|
if (!"2".equals(busDeliveredApply.getPaymentMethodKey())) { |
|
|
|
BusSalesOrder busSalesOrder = busSalesOrderService.selectByContractNos(busDeliveredApply.getContractNo()); |
|
|
|
if ("2".equals(busSalesOrder.getFinancePlan())) { |
|
|
|
//查询是否是自营非担保
|
|
|
|
ResultBean<SolutionsDetailsVo> detailsVoResultBean = loanSolutionsFeign.selectDetailsss(busSalesOrder.getSid()); |
|
|
|
if (detailsVoResultBean.getData() != null) { |
|
|
|
if ("01".equals(detailsVoResultBean.getData().getTypeKey())) { |
|
|
|
//自营非担保
|
|
|
|
variables.put("isDanBao", true); |
|
|
|
} else { |
|
|
|
variables.put("isDanBao", false); |
|
|
|
} |
|
|
|
} else { |
|
|
|
variables.put("isDanBao", false); |
|
|
|
} |
|
|
|
} else { |
|
|
|
variables.put("isDanBao", false); |
|
|
|
} |
|
|
|
} else { |
|
|
|
variables.put("isDanBao", true); |
|
|
|
} |
|
|
|
|
|
|
|
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); |
|
|
|
flowProcessMapQuery.setProDefKey(bv.getModelId()); |
|
|
|
flowProcessMapQuery.setVariables(variables); |
|
|
@ -3794,4 +4010,522 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
} |
|
|
|
return rb; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<List<GetNodeVo>> qkGetPreviousNodesForReject(GetNodeQuery query) { |
|
|
|
ResultBean<List<GetNodeVo>> rb = new ResultBean<>(); |
|
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
|
BeanUtil.copyProperties(query, bv); |
|
|
|
if (StringUtils.isNotBlank(query.getBusinessSid())) { |
|
|
|
BusDeliveredApply busDeliveredApply = fetchBySid(query.getBusinessSid()); |
|
|
|
bv.setModelId(busDeliveredApply.getProcDefId()); |
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
//若app移动端有此功能,则传递appMap参数
|
|
|
|
Map<String, Object> appMap = new HashMap<>(); |
|
|
|
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
|
|
|
|
appMap.put("outboundSid", query.getBusinessSid()); |
|
|
|
appMap.put("contractId", busDeliveredApply.getContractNo()); |
|
|
|
appMap.put("contract_id", busDeliveredApply.getContractNo()); |
|
|
|
variables.put("app", appMap); |
|
|
|
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); |
|
|
|
flowProcessMapQuery.setProDefKey(busDeliveredApply.getProcDefId()); |
|
|
|
flowProcessMapQuery.setVariables(variables); |
|
|
|
flowProcessMapQuery.setContractNo(busDeliveredApply.getContractNo()); |
|
|
|
variables = flowableFeign.getMap(flowProcessMapQuery).getData(); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
} else { |
|
|
|
bv.setModelId(ProcDefEnum.QKBUSDELIVEREDAPPLY.getProDefId()); |
|
|
|
} |
|
|
|
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); |
|
|
|
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
|
|
|
|
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList()); |
|
|
|
return rb.success().setData(voList); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<List<GetNodeVo>> qkGetNextNodesForSubmit(GetNodeQuery query) { |
|
|
|
ResultBean<List<GetNodeVo>> rb = ResultBean.fireFail(); |
|
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
|
BeanUtil.copyProperties(query, bv); |
|
|
|
if (StringUtils.isNotBlank(query.getBusinessSid())) { |
|
|
|
BusDeliveredApply busDeliveredApply = fetchBySid(query.getBusinessSid()); |
|
|
|
bv.setModelId(busDeliveredApply.getProcDefId()); |
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
//若app移动端有此功能,则传递appMap参数
|
|
|
|
Map<String, Object> appMap = new HashMap<>(); |
|
|
|
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
|
|
|
|
appMap.put("outboundSid", query.getBusinessSid()); |
|
|
|
appMap.put("contractId", busDeliveredApply.getContractNo()); |
|
|
|
appMap.put("contract_id", busDeliveredApply.getContractNo()); |
|
|
|
variables.put("app", appMap); |
|
|
|
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); |
|
|
|
flowProcessMapQuery.setProDefKey(busDeliveredApply.getProcDefId()); |
|
|
|
flowProcessMapQuery.setVariables(variables); |
|
|
|
flowProcessMapQuery.setContractNo(busDeliveredApply.getContractNo()); |
|
|
|
variables = flowableFeign.getMap(flowProcessMapQuery).getData(); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
} else { |
|
|
|
bv.setModelId(ProcDefEnum.QKBUSDELIVEREDAPPLY.getProDefId()); |
|
|
|
} |
|
|
|
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); |
|
|
|
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
|
|
|
|
List<GetNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList()); |
|
|
|
return rb.success().setData(voList); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean qkReject(BusDeliveredApplyTaskQuery query) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
BusDeliveredApply busDeliveredApply = fetchBySid(query.getBusinessSid()); |
|
|
|
if (busDeliveredApply == null) { |
|
|
|
return rb.setMsg("该申请不存在"); |
|
|
|
} |
|
|
|
String businessTaskId = busDeliveredApply.getTaskId(); |
|
|
|
if (StringUtils.isNotBlank(businessTaskId)) { |
|
|
|
if (businessTaskId.equals(query.getTaskId())) { |
|
|
|
FlowTaskVo flowTaskVo = new FlowTaskVo(); |
|
|
|
BeanUtil.copyProperties(query, flowTaskVo); |
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
//若app移动端有此功能,则传递appMap参数
|
|
|
|
Map<String, Object> appMap = new HashMap<>(); |
|
|
|
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
|
|
|
|
appMap.put("outboundSid", query.getBusinessSid()); |
|
|
|
appMap.put("contractId", busDeliveredApply.getContractNo()); |
|
|
|
appMap.put("contract_id", busDeliveredApply.getContractNo()); |
|
|
|
variables.put("app", appMap); |
|
|
|
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); |
|
|
|
flowProcessMapQuery.setProDefKey(busDeliveredApply.getProcDefId()); |
|
|
|
flowProcessMapQuery.setVariables(variables); |
|
|
|
flowProcessMapQuery.setContractNo(busDeliveredApply.getContractNo()); |
|
|
|
variables = flowableFeign.getMap(flowProcessMapQuery).getData(); |
|
|
|
flowTaskVo.setValues(variables); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
|
return rb.setMsg(resultBean.getMsg()); |
|
|
|
} |
|
|
|
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData()); |
|
|
|
//更新业务中的流程相关的参数
|
|
|
|
updateFlowFiled(map); |
|
|
|
busDeliveredApply = fetchBySid(query.getBusinessSid()); |
|
|
|
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(busDeliveredApply.getProcInstId()); |
|
|
|
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); |
|
|
|
String nextName = listResultBean.getData().get(0).getName_(); |
|
|
|
if ("发起申请".equals(nextName)) { |
|
|
|
List<String> vinSidList = busDeliveredApplyDetailsService.selectVinSidByApplySid(query.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()); |
|
|
|
BusDeliveredApply finalBusDeliveredApply1 = busDeliveredApply; |
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
List<BaseVehicleStateDto> dtoList = new ArrayList<>(); |
|
|
|
vinSidList.removeAll(Collections.singleton(null)); |
|
|
|
if (!vinSidList.isEmpty()) { |
|
|
|
vinSidList.stream().forEach(v -> { |
|
|
|
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto(); |
|
|
|
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.CKZZ.getTypeKey()); |
|
|
|
baseVehicleStateDto.setBusSid(v); |
|
|
|
dtoList.add(baseVehicleStateDto); |
|
|
|
}); |
|
|
|
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList); |
|
|
|
} |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
baseMapper.updateStateBySid(1, query.getBusinessSid()); |
|
|
|
} |
|
|
|
//极光推送
|
|
|
|
UpdateFlowFieldVo ufVo = resultBean.getData(); |
|
|
|
busDeliveredApply = fetchBySid(query.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()); |
|
|
|
BusDeliveredApply finalBusDeliveredApply = busDeliveredApply; |
|
|
|
Map<String, Object> finalVariables = variables; |
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
|
|
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
|
|
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
|
|
|
messageFlowVo.setProcInsId(finalBusDeliveredApply.getProcInstId()); |
|
|
|
messageFlowVo.setProcDefId(finalBusDeliveredApply.getProcDefId()); |
|
|
|
messageFlowableQuery.setUfVo(messageFlowVo); |
|
|
|
messageFlowableQuery.setAppMap((Map<String, Object>) finalVariables.get("app")); |
|
|
|
messageFlowableQuery.setBusinessSid(query.getBusinessSid()); |
|
|
|
messageFlowableQuery.setModuleName("欠款出库申请"); |
|
|
|
ResultBean<List<LatestTaskVo>> listResultBean2 = flowTaskFeign.getLatestTasks(finalBusDeliveredApply.getProcInstId()); |
|
|
|
String nextNodeUserSids2 = listResultBean2.getData().get(0).getASSIGNEE_(); |
|
|
|
String nextName2 = listResultBean2.getData().get(0).getName_(); |
|
|
|
if ("发起申请".equals(nextName2)) { |
|
|
|
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); |
|
|
|
} else { |
|
|
|
messageFlowableQuery.setMsgContent(finalBusDeliveredApply.getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
} |
|
|
|
messageFlowableQuery.setMsgTitle("欠款出库申请"); |
|
|
|
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
} |
|
|
|
return rb.setMsg("操作失败!提交的数据不一致!"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean qkRevokeProcess(BusDeliveredApplyTaskQuery query) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
if (StringUtils.isBlank(query.getUserSid())) { |
|
|
|
return rb.setMsg("参数错误:userSid"); |
|
|
|
} |
|
|
|
//根据业务sid查询移库申请
|
|
|
|
BusDeliveredApply busDeliveredApply = fetchBySid(query.getBusinessSid()); |
|
|
|
String businessTaskId = busDeliveredApply.getTaskId(); |
|
|
|
if (StringUtils.isNotBlank(businessTaskId)) { |
|
|
|
if (businessTaskId.equals(query.getTaskId())) { |
|
|
|
FlowTaskVo flowTaskVo = new FlowTaskVo(); |
|
|
|
BeanUtil.copyProperties(query, flowTaskVo); |
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
//若app移动端有此功能,则传递appMap参数
|
|
|
|
Map<String, Object> appMap = new HashMap<>(); |
|
|
|
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
|
|
|
|
appMap.put("outboundSid", query.getBusinessSid()); |
|
|
|
appMap.put("contractId", busDeliveredApply.getContractNo()); |
|
|
|
appMap.put("contract_id", busDeliveredApply.getContractNo()); |
|
|
|
variables.put("app", appMap); |
|
|
|
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); |
|
|
|
flowProcessMapQuery.setProDefKey(busDeliveredApply.getProcDefId()); |
|
|
|
flowProcessMapQuery.setVariables(variables); |
|
|
|
flowProcessMapQuery.setContractNo(busDeliveredApply.getContractNo()); |
|
|
|
variables = flowableFeign.getMap(flowProcessMapQuery).getData(); |
|
|
|
flowTaskVo.setValues(variables); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
|
return rb.setMsg("操作失败!"); |
|
|
|
} |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); |
|
|
|
busDeliveredApply = fetchBySid(query.getBusinessSid()); |
|
|
|
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(busDeliveredApply.getProcInstId()); |
|
|
|
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); |
|
|
|
String nextName = listResultBean.getData().get(0).getName_(); |
|
|
|
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); |
|
|
|
if ("发起申请".equals(nextName)) { |
|
|
|
List<String> vinSidList = busDeliveredApplyDetailsService.selectVinSidByApplySid(query.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()); |
|
|
|
BusDeliveredApply finalBusDeliveredApply1 = busDeliveredApply; |
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
List<BaseVehicleStateDto> dtoList = new ArrayList<>(); |
|
|
|
vinSidList.removeAll(Collections.singleton(null)); |
|
|
|
if (!vinSidList.isEmpty()) { |
|
|
|
vinSidList.stream().forEach(v -> { |
|
|
|
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto(); |
|
|
|
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.CKZZ.getTypeKey()); |
|
|
|
baseVehicleStateDto.setBusSid(v); |
|
|
|
dtoList.add(baseVehicleStateDto); |
|
|
|
}); |
|
|
|
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList); |
|
|
|
} |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
baseMapper.updateStateBySid(1, query.getBusinessSid()); |
|
|
|
} |
|
|
|
|
|
|
|
return rb.success().setData(resultBean.getData()); |
|
|
|
} |
|
|
|
} |
|
|
|
return rb.setMsg("操作失败,提交的数据不一致!"); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean qkBreakProcess(BusDeliveredApplyTaskQuery query) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
if (StringUtils.isBlank(query.getInstanceId())) { |
|
|
|
return rb.setMsg("参数错误:instanceId"); |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(query.getUserSid())) { |
|
|
|
return rb.setMsg("参数错误:userSid"); |
|
|
|
} |
|
|
|
BusDeliveredApply busDeliveredApply = fetchBySid(query.getBusinessSid()); |
|
|
|
String businessTaskId = busDeliveredApply.getTaskId(); |
|
|
|
if (StringUtils.isNotBlank(businessTaskId)) { |
|
|
|
if (query.getUserSid().equals(busDeliveredApply.getCreateBySid())) { |
|
|
|
FlowTaskVo flowTaskVo = new FlowTaskVo(); |
|
|
|
BeanUtil.copyProperties(query, flowTaskVo); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
|
return rb.setMsg(resultBean.getMsg()); |
|
|
|
} |
|
|
|
baseMapper.updateStateBySid(4, query.getBusinessSid()); |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); |
|
|
|
List<String> vinSidList = busDeliveredApplyDetailsService.selectVinSidByApplySid(query.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()); |
|
|
|
BusDeliveredApply finalBusDeliveredApply1 = busDeliveredApply; |
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
List<BaseVehicleStateDto> dtoList = new ArrayList<>(); |
|
|
|
vinSidList.removeAll(Collections.singleton(null)); |
|
|
|
if (!vinSidList.isEmpty()) { |
|
|
|
vinSidList.stream().forEach(v -> { |
|
|
|
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto(); |
|
|
|
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.CKZZ.getTypeKey()); |
|
|
|
baseVehicleStateDto.setBusSid(v); |
|
|
|
dtoList.add(baseVehicleStateDto); |
|
|
|
}); |
|
|
|
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList); |
|
|
|
} |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
return rb.success().setData(resultBean.getData()); |
|
|
|
} else { |
|
|
|
if (businessTaskId.equals(query.getTaskId())) { |
|
|
|
FlowTaskVo flowTaskVo = new FlowTaskVo(); |
|
|
|
BeanUtil.copyProperties(query, flowTaskVo); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
|
return rb.setMsg(resultBean.getMsg()); |
|
|
|
} |
|
|
|
baseMapper.updateStateBySid(4, query.getBusinessSid()); |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); |
|
|
|
List<String> vinSidList = busDeliveredApplyDetailsService.selectVinSidByApplySid(query.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()); |
|
|
|
BusDeliveredApply finalBusDeliveredApply1 = busDeliveredApply; |
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
List<BaseVehicleStateDto> dtoList = new ArrayList<>(); |
|
|
|
vinSidList.removeAll(Collections.singleton(null)); |
|
|
|
if (!vinSidList.isEmpty()) { |
|
|
|
vinSidList.stream().forEach(v -> { |
|
|
|
BaseVehicleStateDto baseVehicleStateDto = new BaseVehicleStateDto(); |
|
|
|
baseVehicleStateDto.setOperateType(BaseVehicleStateEnum.OperateTypeEnum.CKZZ.getTypeKey()); |
|
|
|
baseVehicleStateDto.setBusSid(v); |
|
|
|
dtoList.add(baseVehicleStateDto); |
|
|
|
}); |
|
|
|
ResultBean busVehicleStateResultBean = baseVehicleStateFeign.saveOrUpdate(dtoList); |
|
|
|
} |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
return rb.success().setData(resultBean.getData()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
return rb.setMsg("操作失败!提交的数据不一致!"); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<DeliveredDetailsVo2> qkGetRetrievalApplyDetails(String sid) { |
|
|
|
ResultBean<DeliveredDetailsVo2> rb = ResultBean.fireFail(); |
|
|
|
DeliveredDetailsVo2 appDeliveredDetailsVo = new DeliveredDetailsVo2(); |
|
|
|
//根据sid获取出库申请
|
|
|
|
BusDeliveredApply busDeliveredApply = fetchBySid(sid); |
|
|
|
if (busDeliveredApply == null) { |
|
|
|
return rb.setMsg("该出库申请不存在"); |
|
|
|
} |
|
|
|
ResultBean<AppOrderDetailsVo> resultBean = busSalesOrderService.getSaleOrderDetailsByContractNo(busDeliveredApply.getContractNo()); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
|
log.error("获取销售订单详情出错啦!!!"); |
|
|
|
return rb; |
|
|
|
} |
|
|
|
appDeliveredDetailsVo.setBusSalesOrderSid(resultBean.getData().getBusSalesOrderSid()); |
|
|
|
appDeliveredDetailsVo.setOrgPath(busDeliveredApply.getOrgSidPath()); |
|
|
|
appDeliveredDetailsVo.setSid(sid); |
|
|
|
BeanUtil.copyProperties(busDeliveredApply, appDeliveredDetailsVo, "sid"); |
|
|
|
appDeliveredDetailsVo.setContractId(busDeliveredApply.getContractNo()); |
|
|
|
appDeliveredDetailsVo.setPublishInfo(busDeliveredApply.getApplyDept() + "-" + busDeliveredApply.getApplyName()); |
|
|
|
appDeliveredDetailsVo.setCreateTime(DateUtil.format(busDeliveredApply.getCreateTime(), "yyyy-MM-dd")); |
|
|
|
//pc发起人
|
|
|
|
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(busDeliveredApply.getStaffUserSid()); |
|
|
|
if (!userVoResultBean.getSuccess()) { |
|
|
|
return rb.setMsg(userVoResultBean.getMsg()); |
|
|
|
} |
|
|
|
appDeliveredDetailsVo.setPcApplyName(busDeliveredApply.getApplyName()); |
|
|
|
appDeliveredDetailsVo.setPcApplySid(busDeliveredApply.getApplySid()); |
|
|
|
appDeliveredDetailsVo.setPcApplyDept(busDeliveredApply.getApplyDept()); |
|
|
|
appDeliveredDetailsVo.setPcApplyDeptSid(busDeliveredApply.getApplyDeptSid()); |
|
|
|
appDeliveredDetailsVo.setPcStaffSid(userVoResultBean.getData().getStaffSid()); |
|
|
|
List<BusDeliveredApplyDetails> detailsList = busDeliveredApplyDetailsService.selectByApplySid(sid); |
|
|
|
detailsList.removeAll(Collections.singleton(null)); |
|
|
|
if (StringUtils.isNotBlank(busDeliveredApply.getDistributorPrice())) { |
|
|
|
appDeliveredDetailsVo.setDistributorName(busDeliveredApply.getDistributorName() + ",单车中介费:" + busDeliveredApply.getDistributorPrice() + "元"); |
|
|
|
appDeliveredDetailsVo.setPcDistributorName(busDeliveredApply.getDistributorName()); |
|
|
|
appDeliveredDetailsVo.setPcDistributorPrice(busDeliveredApply.getDistributorPrice()); |
|
|
|
appDeliveredDetailsVo.setPcDistributorPriceAll(new BigDecimal(busDeliveredApply.getDistributorPrice()).multiply(new BigDecimal(detailsList.size())).toString()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busDeliveredApply.getDistributorPriceTwo())) { |
|
|
|
appDeliveredDetailsVo.setDistributorNameTwo(busDeliveredApply.getDistributorNameTwo() + ",单车中介费:" + busDeliveredApply.getDistributorPriceTwo() + "元"); |
|
|
|
appDeliveredDetailsVo.setPcDistributorNameTwo(busDeliveredApply.getDistributorNameTwo()); |
|
|
|
appDeliveredDetailsVo.setPcDistributorPriceTwo(busDeliveredApply.getDistributorPriceTwo()); |
|
|
|
appDeliveredDetailsVo.setPcDistributorPriceTwoAll(new BigDecimal(busDeliveredApply.getDistributorPriceTwo()).multiply(new BigDecimal(detailsList.size())).toString()); |
|
|
|
} |
|
|
|
List<AppCarListVo> carList = new ArrayList<>(); |
|
|
|
if (!detailsList.isEmpty()) { |
|
|
|
for (int i = 0; i < detailsList.size(); i++) { |
|
|
|
BusDeliveredApplyDetails busDeliveredApplyDetails = detailsList.get(i); |
|
|
|
//根据合同编号和车辆sid查询销售订单的车辆信息
|
|
|
|
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleService.selectByNoAndVinSid(busDeliveredApply.getContractNo(), busDeliveredApplyDetails.getVinSid()); |
|
|
|
AppCarListVo appCarListVo = new AppCarListVo(); |
|
|
|
appCarListVo.setDiscount(busDeliveredApplyDetails.getSingleCarDiscountPrice()); |
|
|
|
appCarListVo.setVinSid(busDeliveredApplyDetails.getVinSid()); |
|
|
|
//查询该车辆是否有挂车
|
|
|
|
ResultBean<TraliveredVo> trailerList = baseTrailerFeign.trailerList(busDeliveredApplyDetails.getVinSid(), busDeliveredApply.getContractNo()); |
|
|
|
if (trailerList.getData() != null) { |
|
|
|
if (trailerList.getData().getList().isEmpty()) { |
|
|
|
appCarListVo.setShowHandCarBtn(false); |
|
|
|
} else { |
|
|
|
appCarListVo.setShowHandCarBtn(true); |
|
|
|
} |
|
|
|
} else { |
|
|
|
appCarListVo.setShowHandCarBtn(false); |
|
|
|
} |
|
|
|
|
|
|
|
//优惠包使用情况
|
|
|
|
List<BusDeliveredDetailsDiscountsVo> discountUse = new ArrayList<>(); |
|
|
|
List<BusDeliveredDetailsDiscount> discountsList = busDeliveredDetailsDiscountService.selectByVinSid(busDeliveredApplyDetails.getSid()); |
|
|
|
for (int j = 0; j < discountsList.size(); j++) { |
|
|
|
BusDeliveredDetailsDiscount busDeliveredDetailsDiscount = discountsList.get(j); |
|
|
|
BusDeliveredDetailsDiscountsVo busDeliveredDetailsDiscountsVo = new BusDeliveredDetailsDiscountsVo(); |
|
|
|
busDeliveredDetailsDiscountsVo.setDiscountSid(busDeliveredDetailsDiscount.getDiscountSid()); |
|
|
|
busDeliveredDetailsDiscountsVo.setDiscountName(busDeliveredDetailsDiscount.getName()); |
|
|
|
busDeliveredDetailsDiscountsVo.setDiscountNum(busDeliveredDetailsDiscount.getGiveNum()); |
|
|
|
busDeliveredDetailsDiscountsVo.setDiscountInfo(busDeliveredDetailsDiscount.getDiscountExplain()); |
|
|
|
busDeliveredDetailsDiscountsVo.setDiscountPrice(busDeliveredDetailsDiscount.getPrice()); |
|
|
|
busDeliveredDetailsDiscountsVo.setTotalNum(busDeliveredDetailsDiscount.getNum()); |
|
|
|
discountUse.add(busDeliveredDetailsDiscountsVo); |
|
|
|
} |
|
|
|
appCarListVo.setDiscountUse(discountUse); |
|
|
|
//使用人信息
|
|
|
|
BusDeliveredUseMessagesVo realBuyer = new BusDeliveredUseMessagesVo(); |
|
|
|
BusDeliveredUseMessage busDeliveredUseMessage = busDeliveredUseMessageService.fetchBySid(busDeliveredApplyDetails.getUseMessageSid()); |
|
|
|
BeanUtil.copyProperties(busDeliveredUseMessage, realBuyer); |
|
|
|
realBuyer.setVin(busDeliveredApplyDetails.getVinNo()); |
|
|
|
appCarListVo.setRealBuyer(realBuyer); |
|
|
|
carList.add(appCarListVo); |
|
|
|
} |
|
|
|
} |
|
|
|
appDeliveredDetailsVo.setCarList(carList); |
|
|
|
//获取实际购车人的数据
|
|
|
|
ResultBean<List<DictCommonVo>> listResultBean = dictCommonFeign.getTypeValues("buyerType", "0"); |
|
|
|
List<DictCommonVo> dictCommonVoList = listResultBean.getData(); |
|
|
|
List<DeliveredDictVo> voList = Optional.ofNullable(dictCommonVoList).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), DeliveredDictVo.class)).collect(Collectors.toList()); |
|
|
|
appDeliveredDetailsVo.setBuyerType(voList); |
|
|
|
if (StringUtils.isNotBlank(busDeliveredApply.getPromiseFile())) { |
|
|
|
List<String> promiseFileList = Arrays.asList(busDeliveredApply.getPromiseFile().split(",")); |
|
|
|
promiseFileList = promiseFileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); |
|
|
|
appDeliveredDetailsVo.setPromiseList(promiseFileList); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busDeliveredApply.getDanFile())) { |
|
|
|
List<String> danFileList = Arrays.asList(busDeliveredApply.getDanFile().split(",")); |
|
|
|
danFileList = danFileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); |
|
|
|
appDeliveredDetailsVo.setDanFileList(danFileList); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(busDeliveredApply.getCarFile())) { |
|
|
|
List<String> carFileList = Arrays.asList(busDeliveredApply.getCarFile().split(",")); |
|
|
|
carFileList = carFileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); |
|
|
|
appDeliveredDetailsVo.setCarFileList(carFileList); |
|
|
|
} |
|
|
|
return rb.success().setData(appDeliveredDetailsVo); |
|
|
|
} |
|
|
|
|
|
|
|
public PagerVo<AppDeliveredApplyPageVo> getRetrievalApplyListQk(PagerQuery<AppDeliveredApplyPageQuery> pagerQuery) { |
|
|
|
AppDeliveredApplyPageQuery query = pagerQuery.getParams(); |
|
|
|
QueryWrapper<AppDeliveredApplyPageQuery> qw = new QueryWrapper<>(); |
|
|
|
String orgPath = pagerQuery.getParams().getOrgPath(); |
|
|
|
//========================================数据授权开始
|
|
|
|
if (StringUtils.isNotBlank(query.getMenuSid())) { |
|
|
|
//=======================
|
|
|
|
PrivilegeQuery privilegeQuery = new PrivilegeQuery(); |
|
|
|
privilegeQuery.setOrgPath(query.getOrgPath()); |
|
|
|
privilegeQuery.setMenuSid(query.getMenuSid()); |
|
|
|
privilegeQuery.setUserSid(query.getUserSid()); |
|
|
|
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); |
|
|
|
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { |
|
|
|
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
|
|
|
|
String orgSidPath = query.getOrgPath(); |
|
|
|
orgSidPath = orgSidPath + "/"; |
|
|
|
int i1 = orgSidPath.indexOf("/"); |
|
|
|
int i2 = orgSidPath.indexOf("/", i1 + 1); |
|
|
|
int i3 = orgSidPath.indexOf("/", i2 + 1); |
|
|
|
int i4 = orgSidPath.indexOf("/", i3 + 1); |
|
|
|
String orgLevelKey = defaultIdReltBean.getData(); |
|
|
|
if ("1".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i1); |
|
|
|
qw.like("bd.orgSidPath", orgSidPath); |
|
|
|
} else if ("2".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i2); |
|
|
|
qw.like("bd.orgSidPath", orgSidPath); |
|
|
|
} else if ("3".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i3); |
|
|
|
qw.like("bd.orgSidPath", orgSidPath); |
|
|
|
} else if ("4".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i4); |
|
|
|
qw.like("bd.orgSidPath", orgSidPath); |
|
|
|
} else if ("5".equals(orgLevelKey)) { |
|
|
|
qw.eq("bd.createBySid", query.getUserSid()); |
|
|
|
} else { |
|
|
|
PagerVo<AppDeliveredApplyPageVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} else { |
|
|
|
PagerVo<AppDeliveredApplyPageVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} else { |
|
|
|
String orgSid = ""; |
|
|
|
if (StringUtils.isNotBlank(orgPath)) { |
|
|
|
orgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData(); |
|
|
|
} else { |
|
|
|
orgSid = sysStaffOrgFeign.getPathSidByUserSid(pagerQuery.getParams().getUserSid()).getData(); |
|
|
|
} |
|
|
|
qw.eq("useOrgSid", orgSid); |
|
|
|
qw.eq("applySid", pagerQuery.getParams().getUserSid()); |
|
|
|
} |
|
|
|
qw.eq("bd.typeState", 1); |
|
|
|
IPage<AppDeliveredApplyPageQuery> page = PagerUtil.queryToPage(pagerQuery); |
|
|
|
IPage<AppDeliveredApplyPageVo> iPage = baseMapper.getRetrievalApplyList(page, qw, pagerQuery.getParams().getName()); |
|
|
|
List<AppDeliveredApplyPageVo> records = iPage.getRecords(); |
|
|
|
records.removeAll(Collections.singleton(null)); |
|
|
|
if (!records.isEmpty()) { |
|
|
|
for (AppDeliveredApplyPageVo appDeliveredApplyPageVo : records) { |
|
|
|
if (query.getUserSid().equals(appDeliveredApplyPageVo.getCreateBySid()) && appDeliveredApplyPageVo.isShowDelete()) { |
|
|
|
appDeliveredApplyPageVo.setShowDelete(true); |
|
|
|
} else { |
|
|
|
appDeliveredApplyPageVo.setShowDelete(false); |
|
|
|
} |
|
|
|
if (query.getUserSid().equals(appDeliveredApplyPageVo.getCreateBySid()) && appDeliveredApplyPageVo.isShowUpdata()) { |
|
|
|
appDeliveredApplyPageVo.setShowUpdata(true); |
|
|
|
} else { |
|
|
|
appDeliveredApplyPageVo.setShowUpdata(false); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
PagerVo<AppDeliveredApplyPageVo> p = PagerUtil.pageToVo(iPage, null); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} |