服务指令-日常/即时工单生成算法调整

This commit is contained in:
曹磊 2026-01-19 16:06:02 +08:00
parent 95ab1b407d
commit 29f6403107
13 changed files with 247 additions and 177 deletions

View File

@ -16,6 +16,10 @@ public interface DirectiveDataPoolMapper extends BaseMapper<DirectiveDataPool> {
DirectiveDataPool queryPoolOne(DirectiveDataPool dataPool); DirectiveDataPool queryPoolOne(DirectiveDataPool dataPool);
DirectiveDataPool getDirectiveById(@Param("id") String id);
DirectiveDataPool getPackageById(@Param("id") String id);
void createDataPoolLog(DirectiveDataPool dataPool); void createDataPoolLog(DirectiveDataPool dataPool);
void addDataPoolLog(DirectiveDataPool dataPool); void addDataPoolLog(DirectiveDataPool dataPool);

View File

@ -38,6 +38,36 @@
</where> </where>
</select> </select>
<select id="getDirectiveById" resultType="com.nu.modules.biz.datapool.entity.DirectiveDataPool">
select
a.id as directiveId,
a.directive_name as directiveName,
a.preview_file as previewFile,
a.preview_file_small as previewFileSmall,
a.mp3_file as mp3File,
a.mp4_file as mp4File,
a.service_duration as serviceDuration,
a.service_content as serviceContent,
a.timeout_duration as timeoutDuration
from nu_config_service_directive a
where a.id = #{id}
and a.del_flag = '0'
and a.iz_enabled = 'Y'
</select>
<select id="getPackageById" resultType="com.nu.modules.biz.datapool.entity.DirectiveDataPool">
select
a.id as directiveId,
a.package_name as directiveName,
a.total_duration as serviceDuration,
a.description as serviceContent,
a.timeout_duration as timeoutDuration
from nu_config_directive_package a
where a.id = #{id}
and a.del_flag = '0'
and a.iz_enabled = 'Y'
</select>
<update id="createDataPoolLog"> <update id="createDataPoolLog">
CREATE TABLE IF NOT EXISTS ${tableName} ( CREATE TABLE IF NOT EXISTS ${tableName} (
id varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID', id varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID',

View File

@ -15,6 +15,10 @@ public interface IDirectiveDataPoolService extends IService<DirectiveDataPool> {
DirectiveDataPool queryPoolOne(DirectiveDataPool directiveDataPool); DirectiveDataPool queryPoolOne(DirectiveDataPool directiveDataPool);
DirectiveDataPool getDirectiveById(String id);
DirectiveDataPool getPackageById(String id);
void deleteOrders(String dateStr, DirectiveDataPool dataPool); void deleteOrders(String dateStr, DirectiveDataPool dataPool);
void addDataPoolLog(String dateStr,String id); void addDataPoolLog(String dateStr,String id);

View File

@ -49,6 +49,17 @@ public class CareDataPoolServiceImpl extends ServiceImpl<CareDataPoolMapper, Dir
if(pool!=null){ if(pool!=null){
continue; continue;
} }
if(pool.getIzPackage().equals("N")){
DirectiveDataPool directiveEntity = dataPoolService.getDirectiveById(pool.getDirectiveId());
if(directiveEntity==null){
continue;
}
}else{
DirectiveDataPool packageEntity = dataPoolService.getPackageById(pool.getDirectiveId());
if(packageEntity==null){
continue;
}
}
addDataPool(plan); addDataPool(plan);
} }
} }

View File

@ -45,6 +45,16 @@ public class DirectiveDataPoolServiceImpl extends ServiceImpl<DirectiveDataPoolM
return baseMapper.queryPoolOne(directiveDataPool); return baseMapper.queryPoolOne(directiveDataPool);
} }
@Override
public DirectiveDataPool getDirectiveById(String id){
return baseMapper.getDirectiveById(id);
}
@Override
public DirectiveDataPool getPackageById(String id){
return baseMapper.getPackageById(id);
}
/** /**
* 删除派单 * 删除派单
* @param dateStr * @param dateStr

View File

@ -49,6 +49,17 @@ public class InvoicingDataPoolServiceImpl extends ServiceImpl<InvoicingDataPoolM
if(pool!=null){ if(pool!=null){
continue; continue;
} }
if(pool.getIzPackage().equals("N")){
DirectiveDataPool directiveEntity = dataPoolService.getDirectiveById(pool.getDirectiveId());
if(directiveEntity==null){
continue;
}
}else{
DirectiveDataPool packageEntity = dataPoolService.getPackageById(pool.getDirectiveId());
if(packageEntity==null){
continue;
}
}
addDataPool(plan); addDataPool(plan);
} }
} }

View File

@ -49,6 +49,17 @@ public class LogisticsDataPoolServiceImpl extends ServiceImpl<LogisticsDataPoolM
if(pool!=null){ if(pool!=null){
continue; continue;
} }
if(pool.getIzPackage().equals("N")){
DirectiveDataPool directiveEntity = dataPoolService.getDirectiveById(pool.getDirectiveId());
if(directiveEntity==null){
continue;
}
}else{
DirectiveDataPool packageEntity = dataPoolService.getPackageById(pool.getDirectiveId());
if(packageEntity==null){
continue;
}
}
addDataPool(plan); addDataPool(plan);
} }
} }

View File

@ -14,7 +14,6 @@ import java.util.List;
* @Version: V1.0 * @Version: V1.0
*/ */
public interface DirectiveOrderSubMapper extends BaseMapper<DirectiveOrderSub> { public interface DirectiveOrderSubMapper extends BaseMapper<DirectiveOrderSub> {
List<DirectiveOrderSub> queryDataPoolSubList(DirectiveOrder orders);
List<DirectiveOrderSub> getDirectiveList(@Param("directiveId") String directiveId); List<DirectiveOrderSub> getDirectiveList(@Param("directiveId") String directiveId);
List<DirectiveOrderSub> getSubDirectiveList(@Param("packageId") String packageId); List<DirectiveOrderSub> getSubDirectiveList(@Param("packageId") String packageId);
} }

View File

@ -479,6 +479,8 @@
a.timeout_duration as timeoutDuration a.timeout_duration as timeoutDuration
from nu_config_service_directive a from nu_config_service_directive a
where a.id = #{directiveId} where a.id = #{directiveId}
and a.del_flag = '0'
and a.iz_enabled = 'Y'
</select> </select>
<select id="getPackageById" resultType="com.nu.modules.biz.order.entity.DirectiveOrder"> <select id="getPackageById" resultType="com.nu.modules.biz.order.entity.DirectiveOrder">
@ -490,6 +492,8 @@
a.timeout_duration as timeoutDuration a.timeout_duration as timeoutDuration
from nu_config_directive_package a from nu_config_directive_package a
where a.id = #{directiveId} where a.id = #{directiveId}
and a.del_flag = '0'
and a.iz_enabled = 'Y'
</select> </select>
<select id="getEmployeeById" resultType="com.nu.modules.biz.order.entity.DirectiveOrder"> <select id="getEmployeeById" resultType="com.nu.modules.biz.order.entity.DirectiveOrder">

View File

@ -2,44 +2,6 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.biz.order.mapper.DirectiveOrderSubMapper"> <mapper namespace="com.nu.modules.biz.order.mapper.DirectiveOrderSubMapper">
<select id="queryDataPoolSubList" resultType="com.nu.modules.biz.order.entity.DirectiveOrderSub">
select
id as poolSubId,
pool_type as orderType,
nu_id as nuId,
nu_name as nuName,
elder_id as elderId,
elder_name as elderName,
instruction_tag_id as instructionTagId,
instruction_tag_name as instructionTagName,
category_id as categoryId,
category_name AS categoryName,
type_id as typeId,
type_name as typeName,
directive_id as directiveId,
directive_name as directiveName,
cycle_type_id as cycleTypeId,
cycle_type as cycleType,
cycle_value as cycleValue,
preview_file as previewFile,
net_preview_file as netPeviewFile,
preview_file_small as previewFileSmall,
net_preview_file_small as netPreviewFileSmall,
mp3_file as mp3File,
net_mp3_file as netMp3File,
mp4_file as mp4File,
net_mp4_file as netMp4File,
service_duration as serviceDuration,
service_content as serviceContent,
package_id as packageId,
package_name as packageName,
iz_package as izPackage,
start_time as startTime,
end_time as endTime
from nu_biz_nu_directive_data_pool_sub
where main_id = #{poolId}
</select>
<select id="getDirectiveList" resultType="com.nu.modules.biz.order.entity.DirectiveOrderSub"> <select id="getDirectiveList" resultType="com.nu.modules.biz.order.entity.DirectiveOrderSub">
select select
a.instruction_tag_id as instructionTagId, a.instruction_tag_id as instructionTagId,
@ -57,13 +19,16 @@
a.mp3_file as mp3File, a.mp3_file as mp3File,
a.mp4_file as mp4File, a.mp4_file as mp4File,
a.service_duration as serviceDuration, a.service_duration as serviceDuration,
a.service_content as serviceContent a.service_content as serviceContent,
a.timeout_duration as timeoutDuration
from nu_config_service_directive a from nu_config_service_directive a
left join nu_config_service_instruction_tag b on a.instruction_tag_id = b.id left join nu_config_service_instruction_tag b on a.instruction_tag_id = b.id
left join nu_config_service_category c on a.category_id = c.id left join nu_config_service_category c on a.category_id = c.id
left join nu_config_service_type d on a.type_id = d.id left join nu_config_service_type d on a.type_id = d.id
left join sys_dict_item f on f.dict_id = '1900374791386140674' and f.item_value = a.cycle_type left join sys_dict_item f on f.dict_id = '1900374791386140674' and f.item_value = a.cycle_type
where a.id = #{directiveId} where a.id = #{directiveId}
and a.del_flag = '0'
and a.iz_enabled = 'Y'
</select> </select>
<select id="getSubDirectiveList" resultType="com.nu.modules.biz.order.entity.DirectiveOrderSub"> <select id="getSubDirectiveList" resultType="com.nu.modules.biz.order.entity.DirectiveOrderSub">
@ -83,7 +48,8 @@
b.mp3_file as mp3File, b.mp3_file as mp3File,
b.mp4_file as mp4File, b.mp4_file as mp4File,
b.service_duration as serviceDuration, b.service_duration as serviceDuration,
b.service_content as serviceContent b.service_content as serviceContent,
b.timeout_duration as timeoutDuration
from nu_config_package_directive a from nu_config_package_directive a
left join nu_config_service_directive b on a.directive_id = b.id left join nu_config_service_directive b on a.directive_id = b.id
left join nu_config_service_category c on b.category_id = c.id left join nu_config_service_category c on b.category_id = c.id
@ -91,6 +57,10 @@
left join nu_config_service_instruction_tag e on b.instruction_tag_id = e.id left join nu_config_service_instruction_tag e on b.instruction_tag_id = e.id
left join sys_dict_item f on f.dict_id = '1900374791386140674' and f.item_value = b.cycle_type left join sys_dict_item f on f.dict_id = '1900374791386140674' and f.item_value = b.cycle_type
where a.package_id = #{packageId} where a.package_id = #{packageId}
and a.del_flag = '0'
and a.iz_enabled = 'Y'
and b.del_flag = '0'
and b.iz_enabled = 'Y'
</select> </select>
</mapper> </mapper>

View File

@ -14,7 +14,6 @@ import java.util.List;
* @Version: V1.0 * @Version: V1.0
*/ */
public interface IDirectiveOrderSubService extends IService<DirectiveOrderSub> { public interface IDirectiveOrderSubService extends IService<DirectiveOrderSub> {
List<DirectiveOrderSub> queryDataPoolSubList(DirectiveOrder orders);
List<DirectiveOrderSub> getDirectiveList(String directiveId); List<DirectiveOrderSub> getDirectiveList(String directiveId);
List<DirectiveOrderSub> getSubDirectiveList(String packageId); List<DirectiveOrderSub> getSubDirectiveList(String packageId);
} }

View File

@ -49,29 +49,11 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
private ISysBaseAPI sysBaseAPI; private ISysBaseAPI sysBaseAPI;
SendOrderRule sendOrderRule; SendOrderRule sendOrderRule;
List<SendOrderRuleSub> ruleSubList; List<SendOrderRuleSub> ruleSubList;
private String allowedTimeout;
private String serverNetUrl; private String serverNetUrl;
@Autowired @Autowired
private SdWebsocket sdWebsocket; private SdWebsocket sdWebsocket;
/**
* 获取容错时长
*
* @return
*/
private void getAllowedTimeout() {
if (allowedTimeout == null || allowedTimeout.equals("")) {
JSONObject json = sysConfigApi.getByKey("fwzl_rcsc");
if (json != null) {
allowedTimeout = json.getString("configValue");
}
}
if (allowedTimeout == null || allowedTimeout.equals("")) {
allowedTimeout = "0";
}
}
/** /**
* 获取派单规则 * 获取派单规则
*/ */
@ -131,10 +113,43 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
public Result<?> generateOrdersBatch() { public Result<?> generateOrdersBatch() {
//获取派单规则 //获取派单规则
getSendOrderRule(); getSendOrderRule();
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);
if(orders.getIzPackage().equals("N")){
//获取有效服务指令
DirectiveOrder directiveEntity = baseMapper.getDirectiveById(orders);
if(directiveEntity==null){
continue;
}
orders.setDirectiveName(directiveEntity.getDirectiveName());
orders.setPreviewFile(directiveEntity.getPreviewFile());
orders.setPreviewFileSmall(directiveEntity.getPreviewFileSmall());
orders.setMp3File(directiveEntity.getMp3File());
orders.setMp4File(directiveEntity.getMp4File());
orders.setServiceContent(directiveEntity.getServiceContent());
orders.setServiceDuration(directiveEntity.getServiceDuration());
orders.setTimeoutDuration(directiveEntity.getTimeoutDuration());
}else{
//获取有效服务指令包
DirectiveOrder packageEntity = baseMapper.getPackageById(orders);
if(packageEntity==null){
continue;
}
orders.setDirectiveName(packageEntity.getDirectiveName());
orders.setServiceContent(packageEntity.getServiceContent());
orders.setServiceDuration(packageEntity.getServiceDuration());
orders.setTimeoutDuration(packageEntity.getTimeoutDuration());
}
getNetImages(orders);
String orderNo = getOrderNo(orders.getOrderType());
orders.setOrderNo(orderNo);
orders.setOptType("1");
orders.setIzStart("N");
orders.setIzFinish("N");
orders.setIzTimeout("N");
orders.setDelFlag("0");
generateOrdersSub(orders); generateOrdersSub(orders);
//发送websocket消息 //发送websocket消息
try { try {
@ -162,88 +177,78 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
* @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);
String directiveIds = ordersSubList.stream().map(DirectiveOrderSub::getDirectiveId).collect(Collectors.joining(","));
if (orders.getIzPackage().equals("N")) { if (orders.getIzPackage().equals("N")) {
//获取满足条件的员工 List<DirectiveOrderSub> ordersSubList = ordersSubService.getDirectiveList(orders.getDirectiveId());
DirectiveOrder employee = employeeScreening(directiveIds, orders.getElderId(), null, orders.getStartTime()); if(ordersSubList!=null&&ordersSubList.size()>0){
if(employee!=null){ String directiveIds = ordersSubList.stream().map(DirectiveOrderSub::getDirectiveId).collect(Collectors.joining(","));
String orderNo = getOrderNo(orders.getOrderType()); //获取满足条件的员工
orders.setOrderNo(orderNo); DirectiveOrder employee = employeeScreening(directiveIds, orders.getElderId(), null, orders.getStartTime());
orders.setEmployeeId(employee.getEmployeeId()); if(employee!=null){
orders.setEmployeeName(employee.getEmployeeName()); orders.setEmployeeId(employee.getEmployeeId());
orders.setIzStart("N"); orders.setEmployeeName(employee.getEmployeeName());
orders.setIzFinish("N"); orders.setOptIds(employee.getEmployeeId());
orders.setOrderType("1"); orders.setOptNames(employee.getEmployeeName());
orders.setOptType("1"); this.save(orders);//生成工单主表
orders.setIzTimeout("N"); for (int i = 0; i < ordersSubList.size(); i++) {
orders.setOptIds(employee.getEmployeeId()); DirectiveOrderSub ordersSub = ordersSubList.get(i);
orders.setOptNames(employee.getEmployeeName()); ordersSub.setOrderNo(getOrderSubNo(orders.getOrderNo()));
orders.setServiceAllowedTimeout(allowedTimeout); ordersSub.setMainId(orders.getId());
this.save(orders);//生成工单主表 ordersSub.setEmployeeId(employee.getEmployeeId());
for (int i = 0; i < ordersSubList.size(); i++) { ordersSub.setEmployeeName(employee.getEmployeeName());
DirectiveOrderSub ordersSub = ordersSubList.get(i); ordersSub.setIzStart("N");
ordersSub.setOrderNo(getOrderSubNo(orderNo)); ordersSub.setIzFinish("N");
ordersSub.setMainId(orders.getId()); ordersSub.setOptType("1");
ordersSub.setEmployeeId(employee.getEmployeeId()); ordersSub.setIzTimeout("N");
ordersSub.setEmployeeName(employee.getEmployeeName()); ordersSub.setOptIds(employee.getEmployeeId());
ordersSub.setIzStart("N"); ordersSub.setOptNames(employee.getEmployeeName());
ordersSub.setIzFinish("N"); ordersSubService.save(ordersSub);//生成工单子表
ordersSub.setOptType("1"); }
ordersSub.setIzTimeout("N"); baseMapper.updatePoolIzOrder(orders.getPoolId());
ordersSub.setOptIds(employee.getEmployeeId()); // System.out.println("护理单元:" + orders.getNuId() + ",服务时间:" + orders.getStartTime() + ",服务员工:" + employee.getEmployeeName() + ",获得积分:" + employee.getLevel());
ordersSub.setOptNames(employee.getEmployeeName()); // System.out.println("");
ordersSub.setServiceAllowedTimeout(allowedTimeout); // System.out.println("");
ordersSubService.save(ordersSub);//生成工单子表 // System.out.println("");
}
baseMapper.updatePoolIzOrder(orders.getPoolId());
System.out.println("护理单元:" + orders.getNuId() + ",服务时间:" + orders.getStartTime() + ",服务员工:" + employee.getEmployeeName() + ",获得积分:" + employee.getLevel());
System.out.println("");
System.out.println("");
System.out.println("");
}
} else {
List<DirectiveOrder> emps = baseMapper.getPermissionEmps(directiveIds);//获取服务标签中的员工和数量
emps.removeIf(data -> data.getOwnCn() < ordersSubList.size());//删除没有权限的数据
String employeeIds = emps.stream().map(DirectiveOrder::getEmployeeId).collect(Collectors.joining(","));
DirectiveOrder employee = employeeScreening(directiveIds,orders.getElderId(),employeeIds,orders.getStartTime());
if(employee!=null){
String orderNo = getOrderNo(orders.getOrderType());
orders.setOrderNo(orderNo);
orders.setEmployeeId(employee.getEmployeeId());
orders.setEmployeeName(employee.getEmployeeName());
orders.setIzStart("N");
orders.setIzFinish("N");
orders.setOrderType("1");
orders.setOptType("1");
orders.setIzTimeout("N");
orders.setOptIds(employee.getEmployeeId());
orders.setOptNames(employee.getEmployeeName());
orders.setServiceAllowedTimeout(allowedTimeout);
this.save(orders);//生成工单主表
for (int i = 0; i < ordersSubList.size(); i++) {
DirectiveOrderSub ordersSub = ordersSubList.get(i);
ordersSub.setOrderNo(getOrderSubNo(orderNo));
ordersSub.setMainId(orders.getId());
ordersSub.setEmployeeId(employee.getEmployeeId());
ordersSub.setEmployeeName(employee.getEmployeeName());
ordersSub.setIzStart("N");
ordersSub.setIzFinish("N");
ordersSub.setOptType("1");
ordersSub.setIzTimeout("N");
ordersSub.setOptIds(employee.getEmployeeId());
ordersSub.setOptNames(employee.getEmployeeName());
ordersSub.setServiceAllowedTimeout(allowedTimeout);
ordersSubService.save(ordersSub);//生成工单子表
}
baseMapper.updatePoolIzOrder(orders.getPoolId());
System.out.println("护理单元:" + orders.getNuId() + ",服务时间:" + orders.getStartTime() + ",服务员工:" + employee.getEmployeeName() + ",获得积分:" + employee.getLevel());
System.out.println("");
System.out.println("");
System.out.println("");
} }
}
} else {
List<DirectiveOrderSub> ordersSubList = ordersSubService.getSubDirectiveList(orders.getDirectiveId());
if(ordersSubList!=null&&ordersSubList.size()>0){
String directiveIds = ordersSubList.stream().map(DirectiveOrderSub::getDirectiveId).collect(Collectors.joining(","));
List<DirectiveOrder> emps = baseMapper.getPermissionEmps(directiveIds);//获取服务标签中的员工和数量
emps.removeIf(data -> data.getOwnCn() < ordersSubList.size());//删除没有权限的数据
String employeeIds = emps.stream().map(DirectiveOrder::getEmployeeId).collect(Collectors.joining(","));
DirectiveOrder employee = employeeScreening(directiveIds,orders.getElderId(),employeeIds,orders.getStartTime());
if(employee!=null){
orders.setEmployeeId(employee.getEmployeeId());
orders.setEmployeeName(employee.getEmployeeName());
orders.setOptIds(employee.getEmployeeId());
orders.setOptNames(employee.getEmployeeName());
this.save(orders);//生成工单主表
for (int i = 0; i < ordersSubList.size(); i++) {
DirectiveOrderSub ordersSub = ordersSubList.get(i);
ordersSub.setOrderNo(getOrderSubNo(orders.getOrderNo()));
ordersSub.setMainId(orders.getId());
ordersSub.setEmployeeId(employee.getEmployeeId());
ordersSub.setEmployeeName(employee.getEmployeeName());
ordersSub.setIzStart("N");
ordersSub.setIzFinish("N");
ordersSub.setOptType("1");
ordersSub.setIzTimeout("N");
ordersSub.setOptIds(employee.getEmployeeId());
ordersSub.setOptNames(employee.getEmployeeName());
ordersSubService.save(ordersSub);//生成工单子表
}
baseMapper.updatePoolIzOrder(orders.getPoolId());
// System.out.println("护理单元:" + orders.getNuId() + ",服务时间:" + orders.getStartTime() + ",服务员工:" + employee.getEmployeeName() + ",获得积分:" + employee.getLevel());
// System.out.println("");
// System.out.println("");
// System.out.println("");
}
}
} }
} }
@ -272,10 +277,10 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
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()) {
@ -331,10 +336,10 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
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);
@ -398,7 +403,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() + "]");
} }
} }
@ -420,7 +425,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() + "]");
} }
} }
@ -441,7 +446,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
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
// 如果要在原列表上修改可以清空原列表并添加所有元素 // 如果要在原列表上修改可以清空原列表并添加所有元素
@ -466,7 +471,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
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
@ -492,7 +497,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
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
@ -521,7 +526,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
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
@ -543,7 +548,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() + "]");
} }
} }
} }
@ -562,10 +567,10 @@ 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() + "]");
} // }
} }
/** /**
@ -589,10 +594,10 @@ 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());
} // }
} }
/** /**
@ -692,13 +697,34 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
//后勤即时 //后勤即时
directiveOrder.setTableName("nu_biz_nu_logistics_directive_plan_instant"); directiveOrder.setTableName("nu_biz_nu_logistics_directive_plan_instant");
} }
getAllowedTimeout();
DirectiveOrder orders = baseMapper.getDirectiveById(directiveOrder); DirectiveOrder orders = baseMapper.getInstantById(directiveOrder);
List<DirectiveOrderSub> packageSubList = null; List<DirectiveOrderSub> packageSubList = null;
String employeeId = ""; String employeeId = "";
String employeeName = ""; String employeeName = "";
Calendar c = Calendar.getInstance(); Calendar c = Calendar.getInstance();
Date startTime = c.getTime(); Date startTime = c.getTime();
if(orders.getIzPackage().equals("N")){
//获取服务指令
DirectiveOrder directiveEntity = baseMapper.getDirectiveById(orders);
orders.setDirectiveName(directiveEntity.getDirectiveName());
orders.setPreviewFile(directiveEntity.getPreviewFile());
orders.setPreviewFileSmall(directiveEntity.getPreviewFileSmall());
orders.setMp3File(directiveEntity.getMp3File());
orders.setMp4File(directiveEntity.getMp4File());
orders.setServiceContent(directiveEntity.getServiceContent());
orders.setServiceDuration(directiveEntity.getServiceDuration());
orders.setTimeoutDuration(directiveEntity.getTimeoutDuration());
}else{
//获取服务指令包
DirectiveOrder packageEntity = baseMapper.getPackageById(orders);
orders.setDirectiveName(packageEntity.getDirectiveName());
orders.setServiceContent(packageEntity.getServiceContent());
orders.setServiceDuration(packageEntity.getServiceDuration());
orders.setTimeoutDuration(packageEntity.getTimeoutDuration());
}
//需改造
String duration = orders.getServiceDuration(); String duration = orders.getServiceDuration();
if(duration.equals("")||duration.equals("0")){ if(duration.equals("")||duration.equals("0")){
c.set(Calendar.YEAR,3000); c.set(Calendar.YEAR,3000);
@ -724,11 +750,9 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
employeeName = employee.getEmployeeName(); employeeName = employee.getEmployeeName();
} }
}else{ }else{
orders.setPackageId(orders.getDirectiveId());
orders.setPackageName(orders.getDirectiveName());
orders.setDirectiveId(null); orders.setDirectiveId(null);
orders.setDirectiveName(null); orders.setDirectiveName(null);
packageSubList = ordersSubService.getSubDirectiveList(orders.getPackageId()); packageSubList = ordersSubService.getSubDirectiveList(orders.getDirectiveId());
String directiveIds = packageSubList.stream().map(DirectiveOrderSub::getDirectiveId).collect(Collectors.joining(",")); String directiveIds = packageSubList.stream().map(DirectiveOrderSub::getDirectiveId).collect(Collectors.joining(","));
if(!directiveOrder.getTriggerMode().equals("1")){ if(!directiveOrder.getTriggerMode().equals("1")){
getSendOrderRule(); getSendOrderRule();
@ -763,7 +787,6 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
orders.setIzTimeout("N"); orders.setIzTimeout("N");
orders.setOptIds(employeeId); orders.setOptIds(employeeId);
orders.setOptNames(employeeName); orders.setOptNames(employeeName);
orders.setServiceAllowedTimeout(allowedTimeout);
orders.setDelFlag("0"); orders.setDelFlag("0");
this.save(orders);//生成工单主表 this.save(orders);//生成工单主表
if(packageSubList!=null){ if(packageSubList!=null){
@ -781,8 +804,8 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
ordersSub.setEmployeeName(employeeName); ordersSub.setEmployeeName(employeeName);
ordersSub.setIzPackage(orders.getIzPackage()); ordersSub.setIzPackage(orders.getIzPackage());
if(!orders.getIzPackage().equals("N")){ if(!orders.getIzPackage().equals("N")){
ordersSub.setPackageId(orders.getPackageId()); ordersSub.setPackageId(orders.getDirectiveId());
ordersSub.setPackageName(orders.getPackageName()); ordersSub.setPackageName(orders.getDirectiveName());
} }
ordersSub.setStartTime(startTime); ordersSub.setStartTime(startTime);
ordersSub.setEndTime(endTime); ordersSub.setEndTime(endTime);
@ -792,7 +815,6 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
ordersSub.setIzTimeout("N"); ordersSub.setIzTimeout("N");
ordersSub.setOptIds(employeeId); ordersSub.setOptIds(employeeId);
ordersSub.setOptNames(employeeName); ordersSub.setOptNames(employeeName);
ordersSub.setServiceAllowedTimeout(allowedTimeout);
ordersSub.setDelFlag("0"); ordersSub.setDelFlag("0");
ordersSubService.save(ordersSub);//生成工单子表 ordersSubService.save(ordersSub);//生成工单子表
} }

View File

@ -19,11 +19,6 @@ import java.util.List;
@Slf4j @Slf4j
public class DirectiveOrderSubServiceImpl extends ServiceImpl<DirectiveOrderSubMapper, DirectiveOrderSub> implements IDirectiveOrderSubService { public class DirectiveOrderSubServiceImpl extends ServiceImpl<DirectiveOrderSubMapper, DirectiveOrderSub> implements IDirectiveOrderSubService {
@Override
public List<DirectiveOrderSub> queryDataPoolSubList(DirectiveOrder orders){
return baseMapper.queryDataPoolSubList(orders);
}
@Override @Override
public List<DirectiveOrderSub> getDirectiveList(String directiveId){ public List<DirectiveOrderSub> getDirectiveList(String directiveId){
return baseMapper.getDirectiveList(directiveId); return baseMapper.getDirectiveList(directiveId);