|
|
@ -41,17 +41,28 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; |
|
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|
|
|
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.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.JPushServer; |
|
|
|
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.AppMessageDto; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFeign; |
|
|
|
import com.yxt.messagecenter.api.messagelist.MessageListDto; |
|
|
|
import com.yxt.messagecenter.api.messagelist.MessageListFeign; |
|
|
|
import com.yxt.messagecenter.api.messagetype.MessageTypeFeign; |
|
|
|
import com.yxt.messagecenter.api.messagetype.MessageTypeVo; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.ExecutorService; |
|
|
|
import java.util.concurrent.Executors; |
|
|
|
import java.util.concurrent.Future; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
@ -94,6 +105,13 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
@Autowired |
|
|
|
private BusVehicleApplySzService busVehicleApplySzService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private MessageTypeFeign messageTypeFeign; |
|
|
|
@Autowired |
|
|
|
private MessageFeign messageFeign; |
|
|
|
@Autowired |
|
|
|
private MessageListFeign messageListFeign; |
|
|
|
|
|
|
|
/** |
|
|
|
* 分页列表 |
|
|
|
* |
|
|
@ -116,6 +134,13 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
if (StringUtils.isNotBlank(query.getUserSid())) { |
|
|
|
qw.eq("bva.createBySid", query.getUserSid()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getApplyTypeKey())) { |
|
|
|
qw.eq("bva.applyTypeKey", query.getApplyTypeKey()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getSchedulingTypeKey())) { |
|
|
|
qw.eq("bva.schedulingTypeKey", query.getSchedulingTypeKey()); |
|
|
|
} |
|
|
|
|
|
|
|
//查询分公司sid
|
|
|
|
// if (StringUtils.isNotBlank(query.getUserSid())) {
|
|
|
|
// String orgSid = sysStaffOrgFeign.getPathSidByUserSid(query.getUserSid()).getData();
|
|
|
@ -330,10 +355,10 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
|
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
|
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
Map<String,Object> appMap = new HashMap<>(); |
|
|
|
appMap.put("sid",businessSid); |
|
|
|
Map<String, Object> appMap = new HashMap<>(); |
|
|
|
appMap.put("sid", businessSid); |
|
|
|
variables.put("money", Integer.valueOf(dto.getCurrentAmount()).intValue() > 0); |
|
|
|
variables.put("app",appMap); |
|
|
|
variables.put("app", appMap); |
|
|
|
//用户的部门全路径sid
|
|
|
|
bv.setOrgSidPath(orgSidPath); |
|
|
|
//业务sid
|
|
|
@ -350,6 +375,8 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
} |
|
|
|
UpdateFlowFieldVo ufVo = voResultBean.getData(); |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(ufVo)); |
|
|
|
//极光推送信息
|
|
|
|
// messageJpush(ufVo.getTaskDefKey(), businessSid, orgSidPath);
|
|
|
|
return voResultBean; |
|
|
|
} |
|
|
|
if (r == 2) { |
|
|
@ -366,6 +393,75 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
return rb; |
|
|
|
} |
|
|
|
|
|
|
|
public void messageJpush(String taskDefKey, String businessSid, String orgSidPath) { |
|
|
|
BusVehicleApply busVehicleApply = fetchBySid(businessSid); |
|
|
|
GetNodeQuery getNodeQuery = new GetNodeQuery(); |
|
|
|
getNodeQuery.setTaskDefKey(taskDefKey); |
|
|
|
getNodeQuery.setBusinessSid(businessSid); |
|
|
|
ResultBean<List<GetNodeVo>> nodeVoList = getNextNodesForSubmit(getNodeQuery); |
|
|
|
//根据组织架构、角色两个参数取相关符合条件的用户信息
|
|
|
|
UserQuery userQuery = new UserQuery(); |
|
|
|
userQuery.setRoleSid(nodeVoList.getData().get(0).getCandidateGroups().get(0)); |
|
|
|
userQuery.setOrgSidPath(orgSidPath); |
|
|
|
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRole(userQuery).getData(); |
|
|
|
StringBuilder nextNodeUserSids = new StringBuilder(); |
|
|
|
List<String> stringList = new ArrayList<>(); |
|
|
|
for (SysUserVo su : sysUserVos) { |
|
|
|
stringList.add(su.getSid()); |
|
|
|
// nextNodeUserSids.append(su.getSid()).append(",");
|
|
|
|
} |
|
|
|
//符合条件的用户的sid,拼接的字符串
|
|
|
|
// String nextNodeUserSids_ = nextNodeUserSids.toString();
|
|
|
|
//标题、内容、消息类别key、消息类别名称、
|
|
|
|
JPushServer.sendPushAlias("排产申请审批", busVehicleApply.getCreateByName() + "的排产申请", "msg_type", "系统消息", stringList.toArray(new String[stringList.size()])); |
|
|
|
} |
|
|
|
|
|
|
|
public String getMessage(List<String> list) { |
|
|
|
// 1、保存消息体
|
|
|
|
AppMessageDto messageDto = new AppMessageDto(); |
|
|
|
ResultBean<List<MessageTypeVo>> messageBean = messageTypeFeign.selectAppMsgTypeList("0002"); |
|
|
|
if (messageBean.getSuccess() && messageBean.getData() != null) { |
|
|
|
List<MessageTypeVo> typeVoList = messageBean.getData(); |
|
|
|
for (MessageTypeVo message : typeVoList) { |
|
|
|
if (message.getMsgType().equals("系统消息")) { |
|
|
|
messageDto.setMsgTypeSid(message.getMsgTypeSid()); |
|
|
|
messageDto.setMsgType(message.getMsgType()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
messageDto.setMsgTitle("排产申请审批"); |
|
|
|
messageDto.setMsgContent("排产申请审批"); |
|
|
|
messageDto.setMsgSource("排产"); |
|
|
|
String msgSid = messageFeign.saveOrUpdateAppMessage(messageDto).getData(); |
|
|
|
String msgTypeSid = messageDto.getMsgTypeSid(); |
|
|
|
// 2、保存至消息列表
|
|
|
|
// 使用多线程保存
|
|
|
|
List<Future<?>> futures = new ArrayList<Future<?>>(); |
|
|
|
ExecutorService executor = Executors.newFixedThreadPool(4); |
|
|
|
for (String receverSid : list) { |
|
|
|
Future<?> f = executor.submit(new Runnable() { |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
try { |
|
|
|
System.out.println("run start-----------------" + System.currentTimeMillis() + ":" + Thread.currentThread().getName()); |
|
|
|
MessageListDto messageList = new MessageListDto(); |
|
|
|
messageList.setMsgSid(msgSid); |
|
|
|
messageList.setRDelStatus(0); |
|
|
|
messageList.setSDelStatus(0); |
|
|
|
messageList.setReceiverSid(receverSid); |
|
|
|
messageListFeign.save(messageList); |
|
|
|
System.out.println("run end-----------------" + System.currentTimeMillis() + ":" + Thread.currentThread().getName()); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
futures.add(f); |
|
|
|
} |
|
|
|
executor.shutdown(); |
|
|
|
return msgSid; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 判断提交的流程是否被允许 |
|
|
|
* |
|
|
@ -459,8 +555,8 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa |
|
|
|
finPaymentrecordDto.setCreateOrgSid(stringResultBean.getData()); |
|
|
|
finPaymentrecordDto.setUseOrgSid(stringResultBean.getData()); |
|
|
|
finPaymentrecordDto.setCost(busVehicleApply.getCurrentAmount().intValue()); |
|
|
|
finPaymentrecordDto.setCostTitleKey("1"); |
|
|
|
finPaymentrecordDto.setCostTitleValue("车款"); |
|
|
|
finPaymentrecordDto.setCostTitleKey("2"); |
|
|
|
finPaymentrecordDto.setCostTitleValue("订金"); |
|
|
|
finPaymentrecordDto.setCostTypeKey("2"); |
|
|
|
finPaymentrecordDto.setCostTypeValue("排产"); |
|
|
|
//查询收款单位和收款账号
|
|
|
|