派发服务指令工单时发送websocket

This commit is contained in:
1378012178@qq.com 2026-01-12 16:59:58 +08:00
parent 6e2d793c18
commit 944858c74e
1 changed files with 105 additions and 78 deletions

View File

@ -13,6 +13,7 @@ import com.nu.modules.config.sendorderrule.entity.SendOrderRuleSub;
import com.nu.modules.config.sendorderrule.service.ISendOrderRuleService; import com.nu.modules.config.sendorderrule.service.ISendOrderRuleService;
import com.nu.modules.config.sendorderrule.service.ISendOrderRuleSubService; import com.nu.modules.config.sendorderrule.service.ISendOrderRuleSubService;
import com.nu.modules.sysconfig.ISysConfigApi; import com.nu.modules.sysconfig.ISysConfigApi;
import com.nu.websocket.SdWebsocket;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
@ -50,6 +51,9 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
List<SendOrderRuleSub> ruleSubList; List<SendOrderRuleSub> ruleSubList;
private String allowedTimeout; private String allowedTimeout;
@Autowired
private SdWebsocket sdWebsocket;
/** /**
* 获取容错时长 * 获取容错时长
* *
@ -85,6 +89,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
/** /**
* 获取在线有指令权限的员工并获取员工的接单上限收益服务时长单次 * 获取在线有指令权限的员工并获取员工的接单上限收益服务时长单次
*
* @param directiveId * @param directiveId
* @return * @return
*/ */
@ -94,6 +99,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
/** /**
* 获取长者指定所有护理员 * 获取长者指定所有护理员
*
* @param elderId * @param elderId
* @return * @return
*/ */
@ -117,6 +123,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
/** /**
* 指令池批量生成工单-定时调用 * 指令池批量生成工单-定时调用
*
* @return * @return
*/ */
@Override @Override
@ -128,13 +135,29 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
for (int i = 0; i < ordersList.size(); i++) { for (int i = 0; i < ordersList.size(); i++) {
DirectiveOrder orders = ordersList.get(i); DirectiveOrder orders = ordersList.get(i);
generateOrdersSub(orders); generateOrdersSub(orders);
//todo //发送websocket消息
try {
// 发送数据
JSONObject message = new JSONObject();
message.put("type", "directiveOrder");//消息类型
message.put("timestamp", System.currentTimeMillis());
message.put("from", "system");//发送者
message.put("to", orders.getEmployeeId());//接收用户
message.put("data", orders);//业务数据
String messageJson = message.toJSONString();
//发送给单个用户
sdWebsocket.sendMessage(orders.getEmployeeId(), messageJson);
log.info("【ws消息推送】发送给用户 {}: {}", orders.getEmployeeId(), messageJson);
} catch (Exception e) {
log.error("ws发送消息失败", e);
}
} }
return Result.OK(); return Result.OK();
} }
/** /**
* 获取工单子表数据并进行处理 * 获取工单子表数据并进行处理
*
* @param orders * @param orders
*/ */
private void generateOrdersSub(DirectiveOrder orders) { private void generateOrdersSub(DirectiveOrder orders) {
@ -215,6 +238,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
/** /**
* 获取满足条件的员工 * 获取满足条件的员工
*
* @return * @return
*/ */
private DirectiveOrder employeeScreening(String directiveIds, String elderId, String employeeIds, Date startTime) { private DirectiveOrder employeeScreening(String directiveIds, String elderId, String employeeIds, Date startTime) {
@ -562,6 +586,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
/** /**
* 获取单号 * 获取单号
*
* @return * @return
*/ */
private String getOrderNo() { private String getOrderNo() {
@ -591,6 +616,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
/** /**
* 获取子单号 * 获取子单号
*
* @return * @return
*/ */
private String getOrderSubNo(String mainOrderNo) { private String getOrderSubNo(String mainOrderNo) {
@ -615,6 +641,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
/** /**
* 生成即时服务指令工单 * 生成即时服务指令工单
*
* @param directiveOrder * @param directiveOrder
* @return * @return
*/ */