|
|
@ -26,18 +26,14 @@ |
|
|
|
package com.yxt.anrui.base.biz.baseoutsourcingapplication; |
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
import cn.hutool.core.thread.ThreadUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetwareDto; |
|
|
|
import com.yxt.anrui.base.api.baseoutsourcingapplication.*; |
|
|
|
import com.yxt.anrui.base.api.baseoutsourcingapplicationvehicle.BaseOutsourcingApplicationVehicle; |
|
|
|
import com.yxt.anrui.base.api.baseoutsourcingapplicationvehicle.BaseOutsourcingApplicationVehicleDto; |
|
|
|
import com.yxt.anrui.base.api.baseoutsourcingapplicationvehicle.BaseOutsourcingApplicationVehicleVo; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicleDto; |
|
|
|
import com.yxt.anrui.base.api.commonappendix.CommonAppendix; |
|
|
|
import com.yxt.anrui.base.api.commonappendix.CommonAppendixDto; |
|
|
|
import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo; |
|
|
|
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum; |
|
|
|
import com.yxt.anrui.base.api.flow.FlowTaskVo; |
|
|
@ -50,13 +46,10 @@ import com.yxt.anrui.base.common.utils.domain.BillNo; |
|
|
|
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.StartProcessDto; |
|
|
|
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; |
|
|
|
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; |
|
|
|
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkDto; |
|
|
|
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign; |
|
|
|
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFlowStateEnum; |
|
|
|
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkTypeEnum; |
|
|
|
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.dictcommon.DictCommonFeign; |
|
|
@ -70,25 +63,27 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.UserQuery; |
|
|
|
import com.yxt.anrui.portal.config.DictCommonType; |
|
|
|
import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleDto; |
|
|
|
import com.yxt.anrui.scm.api.scmvehicleexamine.ScmEntryVehicleExamineDto; |
|
|
|
import com.yxt.anrui.scm.api.scmvehicleexamine.ScmVehicleExamineFeign; |
|
|
|
import com.yxt.anrui.scm.api.scmvehinspectitem.ScmVehinspectItemDto; |
|
|
|
import com.yxt.anrui.scm.api.scmvehinspectitem.ScmVehinspectItemFeign; |
|
|
|
import com.yxt.common.base.utils.DateUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.DateUtils; |
|
|
|
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.MessageFeign; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFlowableDto; |
|
|
|
import com.yxt.messagecenter.api.message.MessageJsonDto; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
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.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
|
* Project: anrui-base(外采管理) <br/> |
|
|
@ -128,6 +123,10 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
private ScmVehicleExamineFeign scmVehicleExamineFeign; |
|
|
|
@Autowired |
|
|
|
private ScmVehinspectItemFeign scmVehinspectItemFeign; |
|
|
|
@Autowired |
|
|
|
private SysProUrlFeign sysProUrlFeign; |
|
|
|
@Autowired |
|
|
|
private MessageFeign messageFeign; |
|
|
|
|
|
|
|
private QueryWrapper<BaseOutsourcingApplication> createQueryWrapper(BaseOutsourcingApplicationQuery query) { |
|
|
|
// todo: 这里根据具体业务调整查询条件
|
|
|
@ -365,7 +364,13 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
bv.setOrgSidPath(orgSidPath); |
|
|
|
bv.setBusinessSid(businessSid); |
|
|
|
bv.setUserSid(dto.getUserSid()); |
|
|
|
// variables.put("businessSid", businessSid);
|
|
|
|
//================添加app参数开始
|
|
|
|
//若app移动端有此功能,则传递appMap参数
|
|
|
|
Map<String, Object> appMap = new HashMap<>(); |
|
|
|
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
|
|
|
|
appMap.put("sid", businessSid); |
|
|
|
variables.put("app", appMap); |
|
|
|
//=================添加app参数结束
|
|
|
|
bv.setFormVariables(variables); |
|
|
|
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId()); |
|
|
|
//如果taskid从业务的数据库中查询出来,那这个taskid 和当前的关系是什么 如果数据库中查询出来的taskid是第四个环节的id,但是目前是做的第一次的提交操作。
|
|
|
@ -375,6 +380,11 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv); |
|
|
|
UpdateFlowFieldVo uff = resultBean1.getData(); |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(uff)); |
|
|
|
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(businessSid); |
|
|
|
//======================添加消息推送开始
|
|
|
|
//极光推送
|
|
|
|
String msgSid = getMessage(uff, appMap, baseOutsourcingApplication); |
|
|
|
//======================添加消息推送结束
|
|
|
|
return resultBean1; |
|
|
|
} |
|
|
|
ResultBean rb = submitBusinessData(dto, busSid, orgSidPath); |
|
|
@ -391,7 +401,13 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
bv.setOrgSidPath(orgSidPath); |
|
|
|
bv.setBusinessSid(businessSid); |
|
|
|
bv.setUserSid(dto.getUserSid()); |
|
|
|
// variables.put("businessSid", businessSid);
|
|
|
|
//================添加app参数开始
|
|
|
|
//若app移动端有此功能,则传递appMap参数
|
|
|
|
Map<String, Object> appMap = new HashMap<>(); |
|
|
|
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
|
|
|
|
appMap.put("sid", businessSid); |
|
|
|
variables.put("app", appMap); |
|
|
|
//=================添加app参数结束
|
|
|
|
bv.setFormVariables(variables); |
|
|
|
bv.setModelId(ProcDefEnum.BASEOUTSOURCINGAPPLICATION.getProDefId()); |
|
|
|
if (StringUtils.isBlank(businessTaskid) && StringUtils.isBlank(dto.getTaskId())) { |
|
|
@ -400,14 +416,25 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv); |
|
|
|
UpdateFlowFieldVo uff = resultBean1.getData(); |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(uff)); |
|
|
|
//======================添加消息推送开始
|
|
|
|
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(businessSid); |
|
|
|
//极光推送
|
|
|
|
String msgSid = getMessage(uff, appMap, baseOutsourcingApplication); |
|
|
|
//======================添加消息推送结束
|
|
|
|
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); |
|
|
|
UpdateFlowFieldVo uff = rb.getData(); |
|
|
|
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(rb.getData()); |
|
|
|
updateFlowFiled(stringObjectMap); |
|
|
|
//======================添加消息推送开始
|
|
|
|
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(businessSid); |
|
|
|
//极光推送
|
|
|
|
String msgSid = getMessage(uff, appMap, baseOutsourcingApplication); |
|
|
|
//======================添加消息推送结束
|
|
|
|
return rb; |
|
|
|
} else { |
|
|
|
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!"); |
|
|
@ -439,6 +466,11 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
BaseOutsourcingApplication booad = fetchBySid(bv.getBusinessSid()); |
|
|
|
String businessTaskid = booad.getTaskId(); |
|
|
|
if (businessTaskid.equals(bv.getTaskId())) { //只有数据一致的时候才能进行下一步
|
|
|
|
//=================添加app相关参数
|
|
|
|
Map<String,Object> appMap = new HashMap<>(); |
|
|
|
appMap.put("sid",bv.getBusinessSid()); |
|
|
|
bv.getFormVariables().put("app",appMap); |
|
|
|
//================添加app相关参数
|
|
|
|
ResultBean<UpdateFlowFieldVo> rb = flowableFeign.handleProsess(bv); |
|
|
|
String taskDefKey = rb.getData().getTaskDefKey(); |
|
|
|
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(rb.getData()); |
|
|
@ -468,6 +500,12 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//======================添加消息推送开始
|
|
|
|
UpdateFlowFieldVo uff = rb.getData(); |
|
|
|
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(bv.getBusinessSid()); |
|
|
|
//极光推送
|
|
|
|
String msgSid = getMessage(uff, appMap, baseOutsourcingApplication); |
|
|
|
//======================添加消息推送结束
|
|
|
|
return rb; |
|
|
|
} else { |
|
|
|
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!"); |
|
|
@ -597,6 +635,11 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
String businessTaskid = booad.getTaskId(); |
|
|
|
if (businessTaskid.equals(flowTaskVo.getTaskId())) { //只有数据一致的时候才能进行下一步
|
|
|
|
BeanUtil.copyProperties(flowTaskVo, fl); |
|
|
|
//==========添加app相关参数
|
|
|
|
Map<String,Object> appMap = new HashMap<>(); |
|
|
|
appMap.put("sid",flowTaskVo.getBusinessSid()); |
|
|
|
flowTaskVo.getValues().put("app",appMap); |
|
|
|
//=========添加app相关参数
|
|
|
|
BaseOutsourcingApplicationDto boad = baseMapper.getBySid(flowTaskVo.getBusinessSid()); |
|
|
|
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(fl); |
|
|
|
UpdateFlowFieldVo data = resultBean.getData(); |
|
|
@ -606,6 +649,11 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
stringObjectMap.put("procDefId", boad.getProcDefId()); |
|
|
|
stringObjectMap.put("nodeState", data.getNodeState()); |
|
|
|
updateFlowFiled(stringObjectMap); |
|
|
|
//======================添加消息推送开始
|
|
|
|
BaseOutsourcingApplication baseOutsourcingApplication = fetchBySid(flowTaskVo.getBusinessSid()); |
|
|
|
//极光推送
|
|
|
|
String msgSid = getMessage(data, appMap, baseOutsourcingApplication); |
|
|
|
//======================添加消息推送结束
|
|
|
|
return resultBean; |
|
|
|
} else { |
|
|
|
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!"); |
|
|
@ -686,4 +734,64 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu |
|
|
|
processCirculationNodesByMap.setSuccess(true); |
|
|
|
return processCirculationNodesByMap; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<AppBaseOutsourcingApplicationVo> getExternalPurchase(String sid) { |
|
|
|
ResultBean<AppBaseOutsourcingApplicationVo> rb = ResultBean.fireFail(); |
|
|
|
AppBaseOutsourcingApplicationVo vo = baseMapper.getExternalPurchase(sid); |
|
|
|
List<CommonAppendixVo> commonAppendixVos = commonAppendixService.selByLinkSid(sid); |
|
|
|
List<String> stringList = new ArrayList<>(); |
|
|
|
if (commonAppendixVos != null && commonAppendixVos.size() > 0) { |
|
|
|
stringList.add(commonAppendixVos.get(0).getFilePath()); |
|
|
|
} |
|
|
|
vo.setImages(stringList); |
|
|
|
return rb.success().setData(vo); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 消息推送 |
|
|
|
* @param ufVo |
|
|
|
* @param appMap |
|
|
|
* @param baseOutsourcingApplication |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public String getMessage(UpdateFlowFieldVo ufVo, Map<String, Object> appMap, BaseOutsourcingApplication baseOutsourcingApplication) { |
|
|
|
//=====极光推送信息========================================参数组装
|
|
|
|
List<String> receiveSidList = Arrays.asList(ufVo.getNextNodeUserSids().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.BASEOUTSOURCINGAPPLICATION.getProDefId(), ufVo.getTaskDefKey(), "1", "2"); |
|
|
|
SysProUrlVo sysProUrlVo = selectUrlByKey.getData(); |
|
|
|
messageFlowableDto.setBusinessSid(baseOutsourcingApplication.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(baseOutsourcingApplication.getCreateByName()); |
|
|
|
messageFlowableDto.setTaskId(ufVo.getTaskId()); |
|
|
|
ResultBean<String> stringResultBean = messageFeign.getMessage(messageFlowableDto); |
|
|
|
String msgSid = stringResultBean.getData(); |
|
|
|
return msgSid; |
|
|
|
|
|
|
|
} |
|
|
|
} |