派发服务指令工单时发送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;
@ -29,7 +30,7 @@ import java.util.stream.Collectors;
/** /**
* @Description: 服务指令工单主表 * @Description: 服务指令工单主表
* @Author: caolei * @Author: caolei
* @Date: 2025-11-18 * @Date: 2025-11-18
* @Version: V1.0 * @Version: V1.0
*/ */
@Service @Service
@ -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;
/** /**
* 获取容错时长 * 获取容错时长
* *
@ -62,7 +66,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
allowedTimeout = json.getString("configValue"); allowedTimeout = json.getString("configValue");
} }
} }
if(allowedTimeout == null || allowedTimeout.equals("")){ if (allowedTimeout == null || allowedTimeout.equals("")) {
allowedTimeout = "0"; allowedTimeout = "0";
} }
} }
@ -70,8 +74,8 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
/** /**
* 获取派单规则 * 获取派单规则
*/ */
private void getSendOrderRule(){ private void getSendOrderRule() {
if(sendOrderRule == null){ if (sendOrderRule == null) {
QueryWrapper<SendOrderRule> qw = new QueryWrapper<>(); QueryWrapper<SendOrderRule> qw = new QueryWrapper<>();
qw.eq("iz_enabled", "Y"); qw.eq("iz_enabled", "Y");
sendOrderRule = sendOrderRuleService.getOne(qw); sendOrderRule = sendOrderRuleService.getOne(qw);
@ -85,26 +89,28 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
/** /**
* 获取在线有指令权限的员工并获取员工的接单上限收益服务时长单次 * 获取在线有指令权限的员工并获取员工的接单上限收益服务时长单次
*
* @param directiveId * @param directiveId
* @return * @return
*/ */
private List<DirectiveOrder> getEmpPermissionAndOnline(String directiveId, String employeeIds, Date startTime){ private List<DirectiveOrder> getEmpPermissionAndOnline(String directiveId, String employeeIds, Date startTime) {
return baseMapper.getEmpPermissionAndOnline(directiveId,employeeIds,startTime); return baseMapper.getEmpPermissionAndOnline(directiveId, employeeIds, startTime);
} }
/** /**
* 获取长者指定所有护理员 * 获取长者指定所有护理员
*
* @param elderId * @param elderId
* @return * @return
*/ */
private Map<String,String> getEmpOrderly(String elderId){ private Map<String, String> getEmpOrderly(String elderId) {
Map<String, String> map = null; Map<String, String> map = null;
DirectiveOrder orders = baseMapper.getEmpOrderly(elderId); DirectiveOrder orders = baseMapper.getEmpOrderly(elderId);
if(orders!=null){ if (orders != null) {
String empIds = orders.getEmployeeIds(); String empIds = orders.getEmployeeIds();
if(empIds!=null&&!empIds.equals("")){ if (empIds != null && !empIds.equals("")) {
String[] pairs = empIds.split(","); String[] pairs = empIds.split(",");
if(pairs.length>0){ if (pairs.length > 0) {
map = new HashMap<>(); map = new HashMap<>();
for (String pair : pairs) { for (String pair : pairs) {
map.put(pair, pair); map.put(pair, pair);
@ -117,34 +123,51 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
/** /**
* 指令池批量生成工单-定时调用 * 指令池批量生成工单-定时调用
*
* @return * @return
*/ */
@Override @Override
public Result<?> generateOrdersBatch(){ public Result<?> generateOrdersBatch() {
//获取派单规则 //获取派单规则
getSendOrderRule(); getSendOrderRule();
getAllowedTimeout(); getAllowedTimeout();
List<DirectiveOrder> ordersList = baseMapper.queryDataPoolList(null); List<DirectiveOrder> ordersList = baseMapper.queryDataPoolList(null);
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) {
System.out.println("护理单元:"+orders.getNuId()+",服务时间"+orders.getStartTime()); System.out.println("护理单元:" + orders.getNuId() + ",服务时间" + orders.getStartTime());
List<DirectiveOrderSub> ordersSubList = ordersSubService.queryDataPoolSubList(orders); List<DirectiveOrderSub> ordersSubList = ordersSubService.queryDataPoolSubList(orders);
String directiveIds = ordersSubList.stream().map(DirectiveOrderSub::getDirectiveId).collect(Collectors.joining(",")); String directiveIds = ordersSubList.stream().map(DirectiveOrderSub::getDirectiveId).collect(Collectors.joining(","));
if(orders.getIzPackage().equals("N")){ if (orders.getIzPackage().equals("N")) {
//获取满足条件的员工 //获取满足条件的员工
DirectiveOrder employee = employeeScreening(directiveIds,orders.getElderId(),null,orders.getStartTime()); DirectiveOrder employee = employeeScreening(directiveIds, orders.getElderId(), null, orders.getStartTime());
if(employee!=null){ if (employee != null) {
String orderNo = getOrderNo(); String orderNo = getOrderNo();
orders.setOrderNo(orderNo); orders.setOrderNo(orderNo);
orders.setEmployeeId(employee.getEmployeeId()); orders.setEmployeeId(employee.getEmployeeId());
@ -157,7 +180,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
orders.setOptNames(employee.getEmployeeName()); orders.setOptNames(employee.getEmployeeName());
orders.setServiceAllowedTimeout(allowedTimeout); orders.setServiceAllowedTimeout(allowedTimeout);
this.save(orders);//生成工单主表 this.save(orders);//生成工单主表
for(int i=0;i<ordersSubList.size();i++){ for (int i = 0; i < ordersSubList.size(); i++) {
DirectiveOrderSub ordersSub = ordersSubList.get(i); DirectiveOrderSub ordersSub = ordersSubList.get(i);
ordersSub.setOrderNo(getOrderSubNo(orderNo)); ordersSub.setOrderNo(getOrderSubNo(orderNo));
ordersSub.setMainId(orders.getId()); ordersSub.setMainId(orders.getId());
@ -169,17 +192,17 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
ordersSubService.save(ordersSub);//生成工单子表 ordersSubService.save(ordersSub);//生成工单子表
} }
baseMapper.updatePoolIzOrder(orders.getPoolId()); baseMapper.updatePoolIzOrder(orders.getPoolId());
System.out.println("护理单元:"+orders.getNuId()+",服务时间:"+orders.getStartTime()+",服务员工:"+employee.getEmployeeName()+",获得积分:"+employee.getLevel()); System.out.println("护理单元:" + orders.getNuId() + ",服务时间:" + orders.getStartTime() + ",服务员工:" + employee.getEmployeeName() + ",获得积分:" + employee.getLevel());
System.out.println(""); System.out.println("");
System.out.println(""); System.out.println("");
System.out.println(""); System.out.println("");
} }
}else{ } else {
List<DirectiveOrder> emps = baseMapper.getPermissionEmps(directiveIds);//获取服务标签中的员工和数量 List<DirectiveOrder> emps = baseMapper.getPermissionEmps(directiveIds);//获取服务标签中的员工和数量
emps.removeIf(data -> data.getOwnCn() < ordersSubList.size());//删除没有权限的数据 emps.removeIf(data -> data.getOwnCn() < ordersSubList.size());//删除没有权限的数据
String employeeIds = emps.stream().map(DirectiveOrder::getEmployeeId).collect(Collectors.joining(",")); String employeeIds = emps.stream().map(DirectiveOrder::getEmployeeId).collect(Collectors.joining(","));
DirectiveOrder employee = employeeScreening(directiveIds,orders.getElderId(),employeeIds,orders.getStartTime()); DirectiveOrder employee = employeeScreening(directiveIds, orders.getElderId(), employeeIds, orders.getStartTime());
if(employee!=null){ if (employee != null) {
String orderNo = getOrderNo(); String orderNo = getOrderNo();
orders.setOrderNo(orderNo); orders.setOrderNo(orderNo);
orders.setEmployeeId(employee.getEmployeeId()); orders.setEmployeeId(employee.getEmployeeId());
@ -192,7 +215,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
orders.setOptNames(employee.getEmployeeName()); orders.setOptNames(employee.getEmployeeName());
orders.setServiceAllowedTimeout(allowedTimeout); orders.setServiceAllowedTimeout(allowedTimeout);
this.save(orders);//生成工单主表 this.save(orders);//生成工单主表
for(int i=0;i<ordersSubList.size();i++){ for (int i = 0; i < ordersSubList.size(); i++) {
DirectiveOrderSub ordersSub = ordersSubList.get(i); DirectiveOrderSub ordersSub = ordersSubList.get(i);
ordersSub.setOrderNo(getOrderSubNo(orderNo)); ordersSub.setOrderNo(getOrderSubNo(orderNo));
ordersSub.setMainId(orders.getId()); ordersSub.setMainId(orders.getId());
@ -204,7 +227,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
ordersSubService.save(ordersSub);//生成工单子表 ordersSubService.save(ordersSub);//生成工单子表
} }
baseMapper.updatePoolIzOrder(orders.getPoolId()); baseMapper.updatePoolIzOrder(orders.getPoolId());
System.out.println("护理单元:"+orders.getNuId()+",服务时间:"+orders.getStartTime()+",服务员工:"+employee.getEmployeeName()+",获得积分:"+employee.getLevel()); System.out.println("护理单元:" + orders.getNuId() + ",服务时间:" + orders.getStartTime() + ",服务员工:" + employee.getEmployeeName() + ",获得积分:" + employee.getLevel());
System.out.println(""); System.out.println("");
System.out.println(""); System.out.println("");
System.out.println(""); System.out.println("");
@ -215,9 +238,10 @@ 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) {
if (sendOrderRule.getRuleCode().equals("1")) { if (sendOrderRule.getRuleCode().equals("1")) {
//按优先级 //按优先级
return getByPriority(directiveIds, elderId, startTime, employeeIds); return getByPriority(directiveIds, elderId, startTime, employeeIds);
@ -235,49 +259,49 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
* @return * @return
*/ */
private DirectiveOrder getByPriority(String directiveIds, String elderId, Date startTime, String employeeIds) { private DirectiveOrder getByPriority(String directiveIds, String elderId, Date startTime, String employeeIds) {
List<DirectiveOrder> empList = getEmpPermissionAndOnline(directiveIds,employeeIds,startTime); List<DirectiveOrder> empList = getEmpPermissionAndOnline(directiveIds, employeeIds, startTime);
if (empList.size() > 0) { if (empList.size() > 0) {
for(int i=0;i<empList.size();i++){ for (int i = 0; i < empList.size(); i++) {
DirectiveOrder emp = empList.get(i); DirectiveOrder emp = empList.get(i);
System.out.println("员工信息:"+emp.getEmployeeName()+","+emp.getOrderCap()+","+emp.getOrderNum()+","+emp.getTotalDuration()+","+emp.getTotalComPrice()+","+emp.getMaxTime()+","+emp.getOwnCn()+","+emp.getIzFree()); System.out.println("员工信息:" + emp.getEmployeeName() + "," + emp.getOrderCap() + "," + emp.getOrderNum() + "," + emp.getTotalDuration() + "," + emp.getTotalComPrice() + "," + emp.getMaxTime() + "," + emp.getOwnCn() + "," + emp.getIzFree());
} }
if(ruleSubList.size()>0){ if (ruleSubList.size() > 0) {
for(SendOrderRuleSub ruleSub : ruleSubList){ for (SendOrderRuleSub ruleSub : ruleSubList) {
switch (ruleSub.getRuleCode()) { switch (ruleSub.getRuleCode()) {
case 1: case 1:
//空闲积分 //空闲积分
sortByIzFree(empList,ruleSub.getCoefficient()); sortByIzFree(empList, ruleSub.getCoefficient());
break; break;
case 2: case 2:
//专员积分 //专员积分
sortByOrderly(empList,ruleSub.getCoefficient(),elderId); sortByOrderly(empList, ruleSub.getCoefficient(), elderId);
break; break;
case 3: case 3:
//单次积分 //单次积分
sortByNumAndSetLevel(empList,ruleSub.getCoefficient()); sortByNumAndSetLevel(empList, ruleSub.getCoefficient());
break; break;
case 4: case 4:
//收益积分 //收益积分
sortByPriceAndSetLevel(empList,ruleSub.getCoefficient()); sortByPriceAndSetLevel(empList, ruleSub.getCoefficient());
break; break;
case 5: case 5:
//服务时长积分 //服务时长积分
sortByDurationAndSetLevel(empList,ruleSub.getCoefficient()); sortByDurationAndSetLevel(empList, ruleSub.getCoefficient());
break; break;
case 6: case 6:
//最后接单时间积分 //最后接单时间积分
sortByMaxTimeAndSetLevel(empList,ruleSub.getCoefficient()); sortByMaxTimeAndSetLevel(empList, ruleSub.getCoefficient());
break; break;
case 7: case 7:
//超出上限积分 //超出上限积分
sortByLimit(empList,ruleSub.getCoefficient()); sortByLimit(empList, ruleSub.getCoefficient());
break; break;
} }
} }
//获取员工信息 //获取员工信息
sortEmpList(empList); sortEmpList(empList);
return empList.get(0); return empList.get(0);
}else{ } else {
//随机获取一个员工 //随机获取一个员工
Random random = new Random(); Random random = new Random();
return empList.get(random.nextInt(empList.size())); return empList.get(random.nextInt(empList.size()));
@ -292,17 +316,17 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
* @return * @return
*/ */
private DirectiveOrder getByHeadCount(String directiveIds, String elderId, Date startTime, String employeeIds) { private DirectiveOrder getByHeadCount(String directiveIds, String elderId, Date startTime, String employeeIds) {
List<DirectiveOrder> empList = getEmpPermissionAndOnline(directiveIds,employeeIds,startTime); List<DirectiveOrder> empList = getEmpPermissionAndOnline(directiveIds, employeeIds, startTime);
if (empList.size() > 0) { if (empList.size() > 0) {
List<DirectiveOrder> newList = new ArrayList(); List<DirectiveOrder> newList = new ArrayList();
newList.addAll(empList); newList.addAll(empList);
for(int i=0;i<empList.size();i++){ for (int i = 0; i < empList.size(); i++) {
DirectiveOrder emp = empList.get(i); DirectiveOrder emp = empList.get(i);
System.out.println("员工信息:"+emp.getEmployeeName()+","+emp.getOrderCap()+","+emp.getOrderNum()+","+emp.getTotalDuration()+","+emp.getTotalComPrice()+","+emp.getMaxTime()+","+emp.getOwnCn()+","+emp.getIzFree()); System.out.println("员工信息:" + emp.getEmployeeName() + "," + emp.getOrderCap() + "," + emp.getOrderNum() + "," + emp.getTotalDuration() + "," + emp.getTotalComPrice() + "," + emp.getMaxTime() + "," + emp.getOwnCn() + "," + emp.getIzFree());
} }
//****************获取指定护理员工列表不指定的排除掉=============================> //****************获取指定护理员工列表不指定的排除掉=============================>
getByOrderly(empList,elderId); getByOrderly(empList, elderId);
if (empList.size() > 0) { if (empList.size() > 0) {
if (ruleSubList.size() > 0) { if (ruleSubList.size() > 0) {
for (SendOrderRuleSub ruleSub : ruleSubList) { for (SendOrderRuleSub ruleSub : ruleSubList) {
@ -341,7 +365,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
Random random = new Random(); Random random = new Random();
return empList.get(random.nextInt(empList.size())); return empList.get(random.nextInt(empList.size()));
} }
}else{ } else {
//随机获取一个员工 //随机获取一个员工
Random random = new Random(); Random random = new Random();
return newList.get(random.nextInt(newList.size())); return newList.get(random.nextInt(newList.size()));
@ -363,7 +387,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
empLevel = empLevel + empList.size() * coefficient; //提高N等级 empLevel = empLevel + empList.size() * coefficient; //提高N等级
emp.setLevel(empLevel); emp.setLevel(empLevel);
} }
System.out.println("员工获取空闲积分信息:"+emp.getEmployeeId()+"-"+emp.getEmployeeName()+"["+emp.getLevel()+"]"); System.out.println("员工获取空闲积分信息:" + emp.getEmployeeId() + "-" + emp.getEmployeeName() + "[" + emp.getLevel() + "]");
} }
} }
@ -385,7 +409,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
emp.setLevel(empLevel); emp.setLevel(empLevel);
} }
} }
System.out.println("员工获取指定护理积分信息:"+emp.getEmployeeId()+"-"+emp.getEmployeeName()+"["+emp.getLevel()+"]"); System.out.println("员工获取指定护理积分信息:" + emp.getEmployeeId() + "-" + emp.getEmployeeName() + "[" + emp.getLevel() + "]");
} }
} }
@ -403,10 +427,10 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
// 为level字段顺序赋值1,2,3... // 为level字段顺序赋值1,2,3...
for (int i = 0; i < sortedEmployees.size(); i++) { for (int i = 0; i < sortedEmployees.size(); i++) {
DirectiveOrder emp = sortedEmployees.get(i); DirectiveOrder emp = sortedEmployees.get(i);
Integer levle = emp.getLevel()*coefficient + i + 1; Integer levle = emp.getLevel() * coefficient + i + 1;
emp.setLevel(levle); emp.setLevel(levle);
System.out.println("员工获取工单数积分信息:"+emp.getEmployeeId()+"-"+emp.getEmployeeName()+"["+emp.getLevel()+"]"); System.out.println("员工获取工单数积分信息:" + emp.getEmployeeId() + "-" + emp.getEmployeeName() + "[" + emp.getLevel() + "]");
} }
// 如果需要返回新列表可以返回sortedEmployees // 如果需要返回新列表可以返回sortedEmployees
// 如果要在原列表上修改可以清空原列表并添加所有元素 // 如果要在原列表上修改可以清空原列表并添加所有元素
@ -428,10 +452,10 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
// 为level字段顺序赋值1,2,3... // 为level字段顺序赋值1,2,3...
for (int i = 0; i < sortedEmployees.size(); i++) { for (int i = 0; i < sortedEmployees.size(); i++) {
DirectiveOrder emp = sortedEmployees.get(i); DirectiveOrder emp = sortedEmployees.get(i);
Integer levle = emp.getLevel()*coefficient + i + 1; Integer levle = emp.getLevel() * coefficient + i + 1;
emp.setLevel(levle); emp.setLevel(levle);
System.out.println("员工获取工单收益积分信息:"+emp.getEmployeeId()+"-"+emp.getEmployeeName()+"["+emp.getLevel()+"]"); System.out.println("员工获取工单收益积分信息:" + emp.getEmployeeId() + "-" + emp.getEmployeeName() + "[" + emp.getLevel() + "]");
} }
// 如果需要返回新列表可以返回sortedEmployees // 如果需要返回新列表可以返回sortedEmployees
@ -454,10 +478,10 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
// 为level字段顺序赋值1,2,3... // 为level字段顺序赋值1,2,3...
for (int i = 0; i < sortedEmployees.size(); i++) { for (int i = 0; i < sortedEmployees.size(); i++) {
DirectiveOrder emp = sortedEmployees.get(i); DirectiveOrder emp = sortedEmployees.get(i);
Integer levle = emp.getLevel()*coefficient + i + 1; Integer levle = emp.getLevel() * coefficient + i + 1;
emp.setLevel(levle); emp.setLevel(levle);
System.out.println("员工获取服务时长积分信息:"+emp.getEmployeeId()+"-"+emp.getEmployeeName()+"["+emp.getLevel()+"]"); System.out.println("员工获取服务时长积分信息:" + emp.getEmployeeId() + "-" + emp.getEmployeeName() + "[" + emp.getLevel() + "]");
} }
// 如果需要返回新列表可以返回sortedEmployees // 如果需要返回新列表可以返回sortedEmployees
@ -483,10 +507,10 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
// 为level字段顺序赋值1,2,3... // 为level字段顺序赋值1,2,3...
for (int i = 0; i < sortedEmployees.size(); i++) { for (int i = 0; i < sortedEmployees.size(); i++) {
DirectiveOrder emp = sortedEmployees.get(i); DirectiveOrder emp = sortedEmployees.get(i);
Integer levle = emp.getLevel()*coefficient + i + 1; Integer levle = emp.getLevel() * coefficient + i + 1;
emp.setLevel(levle); emp.setLevel(levle);
System.out.println("员工获取派单时间积分信息:"+emp.getEmployeeId()+"-"+emp.getEmployeeName()+"["+emp.getLevel()+"]"); System.out.println("员工获取派单时间积分信息:" + emp.getEmployeeId() + "-" + emp.getEmployeeName() + "[" + emp.getLevel() + "]");
} }
// 如果需要返回新列表可以返回sortedEmployees // 如果需要返回新列表可以返回sortedEmployees
@ -508,7 +532,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
Integer levle = emp.getLevel() + empList.size() * coefficient; Integer levle = emp.getLevel() + empList.size() * coefficient;
emp.setLevel(levle); emp.setLevel(levle);
System.out.println("员工获取单上限积分信息:"+emp.getEmployeeId()+"-"+emp.getEmployeeName()+"["+emp.getLevel()+"]"); System.out.println("员工获取单上限积分信息:" + emp.getEmployeeId() + "-" + emp.getEmployeeName() + "[" + emp.getLevel() + "]");
} }
} }
} }
@ -527,9 +551,9 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
// 如果要在原列表上修改可以清空原列表并添加所有元素 // 如果要在原列表上修改可以清空原列表并添加所有元素
empList.clear(); empList.clear();
empList.addAll(sortedEmployees); empList.addAll(sortedEmployees);
for(int i=0;i<empList.size();i++){ for (int i = 0; i < empList.size(); i++) {
DirectiveOrder emp = empList.get(i); DirectiveOrder emp = empList.get(i);
System.out.println("员工获取总积分信息:"+emp.getEmployeeId()+"-"+emp.getEmployeeName()+"["+emp.getLevel()+"]"); System.out.println("员工获取总积分信息:" + emp.getEmployeeId() + "-" + emp.getEmployeeName() + "[" + emp.getLevel() + "]");
} }
} }
@ -554,17 +578,18 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
} }
empList.clear(); empList.clear();
empList.addAll(newList); empList.addAll(newList);
for(int i=0;i<empList.size();i++){ for (int i = 0; i < empList.size(); i++) {
DirectiveOrder emp = empList.get(i); DirectiveOrder emp = empList.get(i);
System.out.println("获取指定护理员工信息:"+emp.getEmployeeId()+"-"+emp.getEmployeeName()); System.out.println("获取指定护理员工信息:" + emp.getEmployeeId() + "-" + emp.getEmployeeName());
} }
} }
/** /**
* 获取单号 * 获取单号
*
* @return * @return
*/ */
private String getOrderNo(){ private String getOrderNo() {
JSONObject deptInfo = sysBaseAPI.getDeptInfo(); JSONObject deptInfo = sysBaseAPI.getDeptInfo();
String deptCode = deptInfo.getString("code"); String deptCode = deptInfo.getString("code");
String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
@ -577,23 +602,24 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
qw.last("limit 1"); qw.last("limit 1");
DirectiveOrder entity = this.getOne(qw); DirectiveOrder entity = this.getOne(qw);
int todayNo = 0; int todayNo = 0;
if(entity!=null){ if (entity != null) {
String orderNo = entity.getOrderNo(); String orderNo = entity.getOrderNo();
if(orderNo!=null&&!orderNo.equals("")){ if (orderNo != null && !orderNo.equals("")) {
String todayNoStr = orderNo.substring(todayPrefix.length()); String todayNoStr = orderNo.substring(todayPrefix.length());
todayNo = Integer.parseInt(todayNoStr); todayNo = Integer.parseInt(todayNoStr);
} }
} }
todayNo = todayNo +1; todayNo = todayNo + 1;
String frontNo = String.format("%04d", todayNo); String frontNo = String.format("%04d", todayNo);
return todayPrefix+frontNo; return todayPrefix + frontNo;
} }
/** /**
* 获取子单号 * 获取子单号
*
* @return * @return
*/ */
private String getOrderSubNo(String mainOrderNo){ private String getOrderSubNo(String mainOrderNo) {
QueryWrapper<DirectiveOrderSub> qw = new QueryWrapper<>(); QueryWrapper<DirectiveOrderSub> qw = new QueryWrapper<>();
qw.likeRight("order_no", mainOrderNo); qw.likeRight("order_no", mainOrderNo);
qw.select("order_no"); qw.select("order_no");
@ -601,53 +627,54 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
qw.last("limit 1"); qw.last("limit 1");
DirectiveOrderSub entity = ordersSubService.getOne(qw); DirectiveOrderSub entity = ordersSubService.getOne(qw);
int todayNo = 0; int todayNo = 0;
if(entity!=null){ if (entity != null) {
String orderNo = entity.getOrderNo(); String orderNo = entity.getOrderNo();
if(orderNo!=null&&!orderNo.equals("")){ if (orderNo != null && !orderNo.equals("")) {
String todayNoStr = orderNo.substring(mainOrderNo.length()); String todayNoStr = orderNo.substring(mainOrderNo.length());
todayNo = Integer.parseInt(todayNoStr); todayNo = Integer.parseInt(todayNoStr);
} }
} }
todayNo = todayNo +1; todayNo = todayNo + 1;
String frontNo = String.format("%03d", todayNo); String frontNo = String.format("%03d", todayNo);
return mainOrderNo+frontNo; return mainOrderNo + frontNo;
} }
/** /**
* 生成即时服务指令工单 * 生成即时服务指令工单
*
* @param directiveOrder * @param directiveOrder
* @return * @return
*/ */
@Override @Override
public Map<String, Object> generateOrdersInstant(DirectiveOrder directiveOrder){ public Map<String, Object> generateOrdersInstant(DirectiveOrder directiveOrder) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("success",true); map.put("success", true);
map.put("message","操作成功"); map.put("message", "操作成功");
String orderType = directiveOrder.getOrderType(); String orderType = directiveOrder.getOrderType();
if(orderType.equals("1")){ if (orderType.equals("1")) {
//护理即时 //护理即时
directiveOrder.setTableName("nu_biz_nu_care_directive_plan_instant"); directiveOrder.setTableName("nu_biz_nu_care_directive_plan_instant");
} }
if(orderType.equals("2")){ if (orderType.equals("2")) {
//医疗即时 //医疗即时
directiveOrder.setTableName("nu_biz_nu_medical_directive_plan_instant"); directiveOrder.setTableName("nu_biz_nu_medical_directive_plan_instant");
} }
if(orderType.equals("3")){ if (orderType.equals("3")) {
//仓库即时 //仓库即时
directiveOrder.setTableName("nu_biz_nu_invoicing_directive_plan_instant"); directiveOrder.setTableName("nu_biz_nu_invoicing_directive_plan_instant");
} }
if(orderType.equals("4")){ if (orderType.equals("4")) {
//后勤即时 //后勤即时
directiveOrder.setTableName("nu_biz_nu_logistics_directive_plan_instant"); directiveOrder.setTableName("nu_biz_nu_logistics_directive_plan_instant");
} }
DirectiveOrder directiveInfo = baseMapper.getDirectiveById(directiveOrder); DirectiveOrder directiveInfo = baseMapper.getDirectiveById(directiveOrder);
if(directiveOrder.getTriggerMode().equals("1")){ if (directiveOrder.getTriggerMode().equals("1")) {
//直接派单给发起人 //直接派单给发起人
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String employeeId = sysUser.getEmployessId(); String employeeId = sysUser.getEmployessId();
}else{ } else {
//按规则派单 //按规则派单
getSendOrderRule(); getSendOrderRule();