服务指令-请领流程算法调整和测试

This commit is contained in:
曹磊 2025-12-26 17:02:22 +08:00
parent b71c812322
commit 37884ae4a4
5 changed files with 86 additions and 71 deletions

View File

@ -639,6 +639,7 @@ public class QingLingServiceImpl implements IQinglingApi {
if ("3".equals(nowStatus)) {
InvoicingOrdersEntity p_ = new InvoicingOrdersEntity();
p_.setFlowCode("ql_sq");
p_.setIzRollback("Y");
p_.setBizId(dto.getQldNo());
Map<String,String> j = invoicingQlOrdersApi.izCanGoOn(p_);
if(!j.get("error_code").equals("0")){

View File

@ -572,7 +572,7 @@ public class ThdServiceImpl implements ITuiHuoApi {
NuInvoicingThdMain main = thdMainMapper.selectOne(qw);
//检测是否已入库
if (main == null || !"2".equals(main.getStatus())) {
if (main == null || !"1".equals(main.getStatus())) {
r_.put("error_code", "1");
r_.put("msg", "退货单未入库");
return r_;

View File

@ -8,7 +8,6 @@ import com.nu.modules.biz.care.order.entity.CareOrdersSub;
import com.nu.modules.biz.care.order.mapper.CareOrdersMapper;
import com.nu.modules.biz.care.order.service.ICareOrdersService;
import com.nu.modules.biz.care.order.service.ICareOrdersSubService;
import com.nu.modules.biz.invoicing.order.entity.InvoicingOrders;
import com.nu.modules.config.sendorderrule.entity.SendOrderRule;
import com.nu.modules.config.sendorderrule.entity.SendOrderRuleSub;
import com.nu.modules.config.sendorderrule.service.ISendOrderRuleService;
@ -254,6 +253,8 @@ public class CareOrdersServiceImpl extends ServiceImpl<CareOrdersMapper, CareOrd
private CareOrders getByHeadCount(String directiveIds, String elderId, Date startTime, String employeeIds) {
List<CareOrders> empList = getEmpPermissionAndOnline(directiveIds,employeeIds,startTime);
if (empList.size() > 0) {
List<CareOrders> newList = new ArrayList();
newList.addAll(empList);
for(int i=0;i<empList.size();i++){
CareOrders emp = empList.get(i);
System.out.println("员工信息:"+emp.getEmployeeName()+","+emp.getOrderCap()+","+emp.getOrderNum()+","+emp.getTotalDuration()+","+emp.getTotalComPrice()+","+emp.getMaxTime()+","+emp.getOwnCn()+","+emp.getIzFree());
@ -261,43 +262,48 @@ public class CareOrdersServiceImpl extends ServiceImpl<CareOrdersMapper, CareOrd
//****************获取指定护理员工列表不指定的排除掉=============================>
getByOrderly(empList,elderId);
if(ruleSubList.size()>0){
for(SendOrderRuleSub ruleSub : ruleSubList){
switch (ruleSub.getRuleCode()) {
case 1:
//空闲积分
sortByIzFree(empList,ruleSub.getCoefficient());
break;
case 2:
//单次积分
sortByNumAndSetLevel(empList,ruleSub.getCoefficient());
break;
case 3:
//收益积分
sortByPriceAndSetLevel(empList,ruleSub.getCoefficient());
break;
case 4:
//服务时长积分
sortByDurationAndSetLevel(empList,ruleSub.getCoefficient());
break;
case 5:
//最后接单时间积分
sortByMaxTimeAndSetLevel(empList,ruleSub.getCoefficient());
break;
case 6:
//超出上限积分
sortByLimit(empList,ruleSub.getCoefficient());
break;
if (empList.size() > 0) {
if (ruleSubList.size() > 0) {
for (SendOrderRuleSub ruleSub : ruleSubList) {
switch (ruleSub.getRuleCode()) {
case 1:
//空闲积分
sortByIzFree(empList, ruleSub.getCoefficient());
break;
case 2:
//单次积分
sortByNumAndSetLevel(empList, ruleSub.getCoefficient());
break;
case 3:
//收益积分
sortByPriceAndSetLevel(empList, ruleSub.getCoefficient());
break;
case 4:
//服务时长积分
sortByDurationAndSetLevel(empList, ruleSub.getCoefficient());
break;
case 5:
//最后接单时间积分
sortByMaxTimeAndSetLevel(empList, ruleSub.getCoefficient());
break;
case 6:
//超出上限积分
sortByLimit(empList, ruleSub.getCoefficient());
break;
}
}
//获取员工信息
sortEmpList(empList);
return empList.get(0);
} else {
//随机获取一个员工
Random random = new Random();
return empList.get(random.nextInt(empList.size()));
}
//获取员工信息
sortEmpList(empList);
return empList.get(0);
}else{
//随机获取一个员工
Random random = new Random();
return empList.get(random.nextInt(empList.size()));
return newList.get(random.nextInt(newList.size()));
}
}
return null;

View File

@ -249,50 +249,56 @@ public class EmpOrdersServiceImpl extends ServiceImpl<InvoicingOrdersMapper, Inv
private InvoicingOrders getByHeadCount(String directiveId, String elderId, Date startTime) {
List<InvoicingOrders> empList = getEmpPermissionAndOnline(directiveId,startTime);
if (empList.size() > 0) {
List<InvoicingOrders> newList = new ArrayList();
newList.addAll(empList);
for(int i=0;i<empList.size();i++){
InvoicingOrders emp = empList.get(i);
System.out.println("员工信息:"+emp.getEmployeeName()+","+emp.getOrderCap()+","+emp.getOrderNum()+","+emp.getTotalDuration()+","+emp.getTotalComPrice()+","+emp.getMaxTime()+","+emp.getOwnCn()+","+emp.getIzFree());
}
//****************获取指定护理员工列表不指定的排除掉=============================>
getByOrderly(empList,elderId);
if(ruleSubList.size()>0){
for(SendOrderRuleSub ruleSub : ruleSubList){
switch (ruleSub.getRuleCode()) {
case 1:
//空闲积分
sortByIzFree(empList,ruleSub.getCoefficient());
break;
case 2:
//单次积分
sortByNumAndSetLevel(empList,ruleSub.getCoefficient());
break;
case 3:
//收益积分
sortByPriceAndSetLevel(empList,ruleSub.getCoefficient());
break;
case 4:
//服务时长积分
sortByDurationAndSetLevel(empList,ruleSub.getCoefficient());
break;
case 5:
//最后接单时间积分
sortByMaxTimeAndSetLevel(empList,ruleSub.getCoefficient());
break;
case 6:
//超出上限积分
sortByLimit(empList,ruleSub.getCoefficient());
break;
if (empList.size() > 0) {
if(ruleSubList.size()>0){
for(SendOrderRuleSub ruleSub : ruleSubList){
switch (ruleSub.getRuleCode()) {
case 1:
//空闲积分
sortByIzFree(empList,ruleSub.getCoefficient());
break;
case 2:
//单次积分
sortByNumAndSetLevel(empList,ruleSub.getCoefficient());
break;
case 3:
//收益积分
sortByPriceAndSetLevel(empList,ruleSub.getCoefficient());
break;
case 4:
//服务时长积分
sortByDurationAndSetLevel(empList,ruleSub.getCoefficient());
break;
case 5:
//最后接单时间积分
sortByMaxTimeAndSetLevel(empList,ruleSub.getCoefficient());
break;
case 6:
//超出上限积分
sortByLimit(empList,ruleSub.getCoefficient());
break;
}
}
//获取员工信息
sortEmpList(empList);
return empList.get(0);
}else{
//随机获取一个员工
Random random = new Random();
return empList.get(random.nextInt(empList.size()));
}
//获取员工信息
sortEmpList(empList);
return empList.get(0);
}else{
//随机获取一个员工
Random random = new Random();
return empList.get(random.nextInt(empList.size()));
return newList.get(random.nextInt(newList.size()));
}
}
return null;

View File

@ -169,7 +169,11 @@ public class QlOrdersServiceImpl extends ServiceImpl<InvoicingOrdersMapper, Invo
InvoicingOrders io = new InvoicingOrders();
io.setIzFinish("N");
io.setDelFlag("0");
io.setIzRollback("N");
if(invoicingOrdersEntity.getIzRollback()!=null&&!invoicingOrdersEntity.getIzRollback().equals("")){
io.setIzRollback(invoicingOrdersEntity.getIzRollback());
}else{
io.setIzRollback("N");
}
io.setBizType(invoicingOrdersEntity.getFlowCode());
io.setBizId(invoicingOrdersEntity.getBizId());
InvoicingOrders entity = baseMapper.getOrderOne(io);
@ -212,9 +216,6 @@ public class QlOrdersServiceImpl extends ServiceImpl<InvoicingOrdersMapper, Invo
map.put("error_code", "1");
map.put("msg", "工单已结束");
}
}else{
map.put("error_code","1");
map.put("msg","工单不存在");
}
return map;
}
@ -417,6 +418,7 @@ public class QlOrdersServiceImpl extends ServiceImpl<InvoicingOrdersMapper, Invo
if(invoicingOrdersEntity.getFlowCode().equals("ql_zf")){
//ws推送库管通知
}
//ws推送护理员
}
/**