|
|
@ -25,6 +25,7 @@ import com.yxt.anrui.base.biz.basevehiclemodel.BaseVehicleModelService; |
|
|
|
import com.yxt.anrui.base.biz.busvehicleapplydetail.BusVehicleApplyDetailService; |
|
|
|
import com.yxt.anrui.base.biz.busvehicleapplysz.BusVehicleApplySzService; |
|
|
|
import com.yxt.anrui.base.common.enums.BillTypeEnum; |
|
|
|
import com.yxt.anrui.base.common.enums.DictCommonEnum; |
|
|
|
import com.yxt.anrui.base.common.enums.ManPurOrderType; |
|
|
|
import com.yxt.anrui.base.common.utils.Rule; |
|
|
|
import com.yxt.anrui.base.common.utils.domain.BillNo; |
|
|
@ -38,7 +39,6 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; |
|
|
|
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; |
|
|
|
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; |
|
|
|
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlFeign; |
|
|
|
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlVo; |
|
|
|
import com.yxt.anrui.flowable.api.utils.ProcDefEnum; |
|
|
|
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; |
|
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; |
|
|
@ -52,7 +52,9 @@ import com.yxt.common.base.utils.PagerUtil; |
|
|
|
import com.yxt.common.core.query.PagerQuery; |
|
|
|
import com.yxt.common.core.result.ResultBean; |
|
|
|
import com.yxt.common.core.vo.PagerVo; |
|
|
|
import com.yxt.messagecenter.api.message.*; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFeign; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFlowVo; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFlowableQuery; |
|
|
|
import com.yxt.messagecenter.api.messagelist.MessageListFeign; |
|
|
|
import com.yxt.messagecenter.api.messagetype.MessageTypeFeign; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
@ -348,6 +350,9 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
if (r == 0) { |
|
|
|
return rb.setMsg("操作失败!提交的数据不一致"); |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(dto.getSchedulingTypeKey())) { |
|
|
|
return rb.setMsg("采购原因不能为空"); |
|
|
|
} |
|
|
|
//新增修改保存
|
|
|
|
ResultBean<String> resultBean = saveOrUpdateDto(dto); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
@ -363,6 +368,11 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
appMap.put("sid", businessSid); |
|
|
|
variables.put("money", Integer.valueOf(dto.getCurrentAmount()).intValue() > 0); |
|
|
|
variables.put("app", appMap); |
|
|
|
//判断是否是储备订单,若是,则isTrue网关参数为true=============添加
|
|
|
|
variables.put("isTrue", DictCommonEnum.schedulingType.CB_SCHEDULINGTYPE.getCode().equals(dto.getSchedulingTypeKey())); |
|
|
|
if (DictCommonEnum.schedulingType.CB_SCHEDULINGTYPE.getCode().equals(dto.getSchedulingTypeKey())) { |
|
|
|
bv.setNextNodeUserSids(dto.getUserSids()); |
|
|
|
} |
|
|
|
//用户的部门全路径sid
|
|
|
|
bv.setOrgSidPath(orgSidPath); |
|
|
|
//业务sid
|
|
|
@ -383,15 +393,14 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
busVehicleApply = fetchBySid(businessSid); |
|
|
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
|
|
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
|
|
|
BeanUtil.copyProperties(ufVo,messageFlowVo); |
|
|
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
|
|
|
messageFlowableQuery.setUfVo(messageFlowVo); |
|
|
|
messageFlowableQuery.setAppMap(appMap); |
|
|
|
messageFlowableQuery.setBusinessSid(businessSid); |
|
|
|
messageFlowableQuery.setModuleName("厂家采购申请"); |
|
|
|
messageFlowableQuery.setMsgContent(busVehicleApply.getCreateByName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批"); |
|
|
|
messageFlowableQuery.setMsgContent(busVehicleApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
messageFlowableQuery.setMsgTitle("供应链"); |
|
|
|
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); |
|
|
|
// String msgSid = getMessage(ufVo, appMap, busVehicleApply);
|
|
|
|
return voResultBean; |
|
|
|
} |
|
|
|
if (r == 2) { |
|
|
@ -462,6 +471,8 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
variables.put("app", appMap); |
|
|
|
//根据业务sid查询排产信息
|
|
|
|
variables.put("money", busVehicleApply.getCurrentAmount().intValue() > 0); |
|
|
|
//判断是否是储备订单,若是,则isTrue网关参数为true=============添加
|
|
|
|
variables.put("isTrue", DictCommonEnum.schedulingType.CB_SCHEDULINGTYPE.getCode().equals(busVehicleApply.getSchedulingTypeKey())); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
if (bv.getTaskId().equals(busVehicleApply.getTaskId())) { |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv); |
|
|
@ -523,25 +534,25 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
finPaymentrecordDto.setBusSid(r.getData()); |
|
|
|
finPaymentrecordFeign.save(finPaymentrecordDto); |
|
|
|
} |
|
|
|
try{ |
|
|
|
/* try{ |
|
|
|
ApPayBill apb=createApPayBill(busVehicleApply,vo); |
|
|
|
ResultBean resultBean1 = finKingDeeFeign.draftApPayBill(apb); |
|
|
|
}catch (Exception e){ |
|
|
|
log.error(e.getMessage()); |
|
|
|
} |
|
|
|
}*/ |
|
|
|
} else { |
|
|
|
//极光推送
|
|
|
|
busVehicleApply = fetchBySid(businessSid); |
|
|
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
|
|
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
|
|
|
BeanUtil.copyProperties(ufVo,messageFlowVo); |
|
|
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
|
|
|
ufVo.setProcDefId(busVehicleApply.getProcDefId()); |
|
|
|
ufVo.setProcInsId(busVehicleApply.getProcInstId()); |
|
|
|
messageFlowableQuery.setUfVo(messageFlowVo); |
|
|
|
messageFlowableQuery.setAppMap(appMap); |
|
|
|
messageFlowableQuery.setBusinessSid(businessSid); |
|
|
|
messageFlowableQuery.setModuleName("厂家采购申请"); |
|
|
|
messageFlowableQuery.setMsgContent(busVehicleApply.getCreateByName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批"); |
|
|
|
messageFlowableQuery.setMsgContent(busVehicleApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
messageFlowableQuery.setMsgTitle("供应链"); |
|
|
|
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); |
|
|
|
} |
|
|
@ -554,10 +565,11 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
|
|
|
|
/** |
|
|
|
* 构造付款单 |
|
|
|
* |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private ApPayBill createApPayBill(BusVehicleApply busVehicleApply,List<BusVehicleApplyDetailVo> vo) { |
|
|
|
ApPayBill apPayBill=new ApPayBill(); |
|
|
|
private ApPayBill createApPayBill(BusVehicleApply busVehicleApply, List<BusVehicleApplyDetailVo> vo) { |
|
|
|
ApPayBill apPayBill = new ApPayBill(); |
|
|
|
apPayBill.setFPOSTDATE(busVehicleApply.getApplicationDate()); |
|
|
|
apPayBill.setFDATE(busVehicleApply.getApplicationDate()); |
|
|
|
apPayBill.setFCONTACTUNIT("010001"); |
|
|
@ -566,11 +578,11 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
apPayBill.setFPURCHASEORGID("101"); |
|
|
|
apPayBill.setFPURCHASEDEPTID("05.04"); |
|
|
|
apPayBill.setFPAYORGID("101"); |
|
|
|
List<ApPayBill.FPAYBILLENTRY> FPAYBILLENTRYs=new ArrayList<>(); |
|
|
|
for(BusVehicleApplyDetailVo b:vo){ |
|
|
|
if(com.yxt.common.base.utils.StringUtils.isNotBlank(b.getApplyForDeposit()) |
|
|
|
&&Double.valueOf(b.getApplyForDeposit())>0){ |
|
|
|
ApPayBill.FPAYBILLENTRY fpaybillentry=new ApPayBill.FPAYBILLENTRY(); |
|
|
|
List<ApPayBill.FPAYBILLENTRY> FPAYBILLENTRYs = new ArrayList<>(); |
|
|
|
for (BusVehicleApplyDetailVo b : vo) { |
|
|
|
if (com.yxt.common.base.utils.StringUtils.isNotBlank(b.getApplyForDeposit()) |
|
|
|
&& Double.valueOf(b.getApplyForDeposit()) > 0) { |
|
|
|
ApPayBill.FPAYBILLENTRY fpaybillentry = new ApPayBill.FPAYBILLENTRY(); |
|
|
|
fpaybillentry.setFPAYTOTALAMOUNTFOR(Double.valueOf(b.getUseDeposit())); |
|
|
|
fpaybillentry.setFPAYAMOUNTFOR_E(Double.valueOf(b.getUseDeposit())); |
|
|
|
fpaybillentry.setFSETTLEPAYAMOUNTFOR(Double.valueOf(b.getUseDeposit())); |
|
|
@ -583,10 +595,10 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
FPAYBILLENTRYs.add(fpaybillentry); |
|
|
|
} |
|
|
|
} |
|
|
|
if(FPAYBILLENTRYs.size()>0){ |
|
|
|
if (FPAYBILLENTRYs.size() > 0) { |
|
|
|
apPayBill.setFPAYBILLENTRY(FPAYBILLENTRYs); |
|
|
|
return apPayBill; |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
@ -607,12 +619,13 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
//根据业务sid查询排产信息
|
|
|
|
BusVehicleApply busVehicleApply = fetchBySid(query.getBusinessSid()); |
|
|
|
variables.put("money", busVehicleApply.getCurrentAmount().intValue() > 0); |
|
|
|
//判断是否是储备订单,若是,则isTrue网关参数为true=============添加
|
|
|
|
variables.put("isTrue", DictCommonEnum.schedulingType.CB_SCHEDULINGTYPE.getCode().equals(busVehicleApply.getSchedulingTypeKey())); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
bv.setModelId(ProcDefEnum.VEHICLEAPPLY.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()); |
|
|
|
// List<GetNodeVo> voList = resultBean.getData().stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
|
|
|
|
return rb.success().setData(voList); |
|
|
|
} |
|
|
|
|
|
|
@ -631,12 +644,13 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
//根据业务sid查询排产信息
|
|
|
|
BusVehicleApply busVehicleApply = fetchBySid(query.getBusinessSid()); |
|
|
|
variables.put("money", busVehicleApply.getCurrentAmount().intValue() > 0); |
|
|
|
//判断是否是储备订单,若是,则isTrue网关参数为true=============添加
|
|
|
|
variables.put("isTrue", DictCommonEnum.schedulingType.CB_SCHEDULINGTYPE.getCode().equals(busVehicleApply.getSchedulingTypeKey())); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
bv.setModelId(ProcDefEnum.VEHICLEAPPLY.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()); |
|
|
|
// List<GetNodeVo> voList = resultBean.getData().stream().map(m -> JSON.parseObject(JSON.toJSONString(m), GetNodeVo.class)).collect(Collectors.toList());
|
|
|
|
return rb.success().setData(voList); |
|
|
|
} |
|
|
|
|
|
|
@ -670,6 +684,8 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
variables.put("app", appMap); |
|
|
|
//根据业务sid查询排产信息
|
|
|
|
variables.put("money", busVehicleApply.getCurrentAmount().intValue() > 0); |
|
|
|
//判断是否是储备订单,若是,则isTrue网关参数为true=============添加
|
|
|
|
variables.put("isTrue", DictCommonEnum.schedulingType.CB_SCHEDULINGTYPE.getCode().equals(busVehicleApply.getSchedulingTypeKey())); |
|
|
|
flowTaskVo.setValues(variables); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo); |
|
|
|
if (!resultBean.getSuccess()) { |
|
|
@ -683,7 +699,7 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
busVehicleApply = fetchBySid(businessSid); |
|
|
|
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); |
|
|
|
MessageFlowVo messageFlowVo = new MessageFlowVo(); |
|
|
|
BeanUtil.copyProperties(ufVo,messageFlowVo); |
|
|
|
BeanUtil.copyProperties(ufVo, messageFlowVo); |
|
|
|
String procId = busVehicleApply.getProcInstId(); |
|
|
|
ufVo.setProcInsId(procId); |
|
|
|
ufVo.setProcDefId(busVehicleApply.getProcDefId()); |
|
|
@ -691,13 +707,13 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
messageFlowableQuery.setAppMap(appMap); |
|
|
|
messageFlowableQuery.setBusinessSid(businessSid); |
|
|
|
messageFlowableQuery.setModuleName("厂家采购申请"); |
|
|
|
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId); |
|
|
|
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId); |
|
|
|
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); |
|
|
|
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); |
|
|
|
if(receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())){ |
|
|
|
messageFlowableQuery.setMsgContent("您提交的"+messageFlowableQuery.getModuleName()+"已被驳回,请重新提交"); |
|
|
|
}else{ |
|
|
|
messageFlowableQuery.setMsgContent(busVehicleApply.getCreateByName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批"); |
|
|
|
if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())) { |
|
|
|
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); |
|
|
|
} else { |
|
|
|
messageFlowableQuery.setMsgContent(busVehicleApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); |
|
|
|
} |
|
|
|
|
|
|
|
messageFlowableQuery.setMsgTitle("供应链"); |
|
|
@ -809,57 +825,4 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
vo.setPlateThicknessSize("底 " + vo.getPlateThicknessBottom() + " mm,边 " + vo.getPlateThicknessEdge() + " mm"); |
|
|
|
return rb.success().setData(vo); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 排产申请极光推送-移动端 |
|
|
|
* |
|
|
|
* @param ufVo |
|
|
|
* @param appMap |
|
|
|
* @param busVehicleApply |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public String getMessage(UpdateFlowFieldVo ufVo, Map<String, Object> appMap, BusVehicleApply busVehicleApply) { |
|
|
|
//=====极光推送信息========================================参数组装
|
|
|
|
String procId = busVehicleApply.getProcInstId(); |
|
|
|
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.getLatestTasks(procId); |
|
|
|
String nextNodeUserSids = resultBean.getData().get(0).getASSIGNEE_(); |
|
|
|
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); |
|
|
|
//根据用户的sid查询用户的id
|
|
|
|
ResultBean<String> stringList1 = sysUserFeign.selectIdBySid(receiveSidList); |
|
|
|
List<String> reveiveIdList = Arrays.asList(stringList1.getData().split(",")); |
|
|
|
MessageFlowableDto messageFlowableDto = new MessageFlowableDto(); |
|
|
|
MessageJsonDto messageJsonDto = new MessageJsonDto(); |
|
|
|
BeanUtil.copyProperties(ufVo, messageJsonDto); |
|
|
|
//查询流程审批的页面操作地址组装json的参数
|
|
|
|
//根据taskDef和移动端标识
|
|
|
|
ResultBean<SysProUrlVo> selectUrlByKey = sysProUrlFeign.selectUrlByKey(ProcDefEnum.VEHICLEAPPLY.getProDefId(), ufVo.getTaskDefKey(), "1", "2"); |
|
|
|
SysProUrlVo sysProUrlVo = selectUrlByKey.getData(); |
|
|
|
messageFlowableDto.setBusinessSid(busVehicleApply.getSid()); |
|
|
|
messageFlowableDto.setApp_type("2"); |
|
|
|
if (sysProUrlVo.getUrl().contains("#")) { |
|
|
|
messageFlowableDto.setModuleAction(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(0)); |
|
|
|
List<Integer> codesInteger = Arrays.asList(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(1).split(",")).stream().map(Integer::parseInt).collect(Collectors.toList()); |
|
|
|
int[] ints = codesInteger.stream().mapToInt(Integer::valueOf).toArray(); |
|
|
|
; |
|
|
|
messageJsonDto.setButtons(ints); |
|
|
|
} else { |
|
|
|
messageFlowableDto.setModuleAction(sysProUrlVo.getUrl()); |
|
|
|
} |
|
|
|
messageFlowableDto.setModuleSid(Arrays.asList(sysProUrlVo.getModulePluginName().split("#")).get(0)); |
|
|
|
messageJsonDto.setTaskName(ufVo.getNodeState()); |
|
|
|
messageJsonDto.setProcInsId(ufVo.getProcInsId()); |
|
|
|
messageJsonDto.setAppMap(appMap); |
|
|
|
messageFlowableDto.setJson(messageJsonDto); |
|
|
|
messageFlowableDto.setList(receiveSidList); |
|
|
|
messageFlowableDto.setReceiveIdList(reveiveIdList); |
|
|
|
messageFlowableDto.setModuleName("排产申请"); |
|
|
|
messageFlowableDto.setMsgContent("排产申请"); |
|
|
|
messageFlowableDto.setMsgTitle("排产申请"); |
|
|
|
messageFlowableDto.setCreateName(busVehicleApply.getCreateByName()); |
|
|
|
messageFlowableDto.setTaskId(ufVo.getTaskId()); |
|
|
|
ResultBean<String> stringResultBean = messageFeign.getMessage(messageFlowableDto); |
|
|
|
String msgSid = stringResultBean.getData(); |
|
|
|
return msgSid; |
|
|
|
|
|
|
|
} |
|
|
|
} |