From 29f6403107f0839a21b71d176177e5ce6106f741 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Mon, 19 Jan 2026 16:06:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=8C=87=E4=BB=A4-=E6=97=A5?= =?UTF-8?q?=E5=B8=B8/=E5=8D=B3=E6=97=B6=E5=B7=A5=E5=8D=95=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=AE=97=E6=B3=95=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/DirectiveDataPoolMapper.java | 4 + .../mapper/xml/DirectiveDataPoolMapper.xml | 30 ++ .../service/IDirectiveDataPoolService.java | 4 + .../service/impl/CareDataPoolServiceImpl.java | 11 + .../impl/DirectiveDataPoolServiceImpl.java | 10 + .../impl/InvoicingDataPoolServiceImpl.java | 11 + .../impl/LogisticsDataPoolServiceImpl.java | 11 + .../order/mapper/DirectiveOrderSubMapper.java | 1 - .../order/mapper/xml/DirectiveOrderMapper.xml | 4 + .../mapper/xml/DirectiveOrderSubMapper.xml | 50 +--- .../service/IDirectiveOrderSubService.java | 1 - .../impl/DirectiveOrderServiceImpl.java | 282 ++++++++++-------- .../impl/DirectiveOrderSubServiceImpl.java | 5 - 13 files changed, 247 insertions(+), 177 deletions(-) diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/mapper/DirectiveDataPoolMapper.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/mapper/DirectiveDataPoolMapper.java index 28b55f41..ce7216b1 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/mapper/DirectiveDataPoolMapper.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/mapper/DirectiveDataPoolMapper.java @@ -16,6 +16,10 @@ public interface DirectiveDataPoolMapper extends BaseMapper { DirectiveDataPool queryPoolOne(DirectiveDataPool dataPool); + DirectiveDataPool getDirectiveById(@Param("id") String id); + + DirectiveDataPool getPackageById(@Param("id") String id); + void createDataPoolLog(DirectiveDataPool dataPool); void addDataPoolLog(DirectiveDataPool dataPool); diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/mapper/xml/DirectiveDataPoolMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/mapper/xml/DirectiveDataPoolMapper.xml index 1dc7302f..84c14673 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/mapper/xml/DirectiveDataPoolMapper.xml +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/mapper/xml/DirectiveDataPoolMapper.xml @@ -38,6 +38,36 @@ + + + + CREATE TABLE IF NOT EXISTS ${tableName} ( id varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID', diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/service/IDirectiveDataPoolService.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/service/IDirectiveDataPoolService.java index fa36dff0..1887d381 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/service/IDirectiveDataPoolService.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/service/IDirectiveDataPoolService.java @@ -15,6 +15,10 @@ public interface IDirectiveDataPoolService extends IService { DirectiveDataPool queryPoolOne(DirectiveDataPool directiveDataPool); + DirectiveDataPool getDirectiveById(String id); + + DirectiveDataPool getPackageById(String id); + void deleteOrders(String dateStr, DirectiveDataPool dataPool); void addDataPoolLog(String dateStr,String id); diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/service/impl/CareDataPoolServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/service/impl/CareDataPoolServiceImpl.java index baa9a874..0f597272 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/service/impl/CareDataPoolServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/datapool/service/impl/CareDataPoolServiceImpl.java @@ -49,6 +49,17 @@ public class CareDataPoolServiceImpl extends ServiceImpl { - List queryDataPoolSubList(DirectiveOrder orders); List getDirectiveList(@Param("directiveId") String directiveId); List getSubDirectiveList(@Param("packageId") String packageId); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/mapper/xml/DirectiveOrderMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/mapper/xml/DirectiveOrderMapper.xml index 766807da..a8d2b578 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/mapper/xml/DirectiveOrderMapper.xml +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/mapper/xml/DirectiveOrderMapper.xml @@ -479,6 +479,8 @@ a.timeout_duration as timeoutDuration from nu_config_service_directive a where a.id = #{directiveId} + and a.del_flag = '0' + and a.iz_enabled = 'Y' - 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} - - \ No newline at end of file diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/service/IDirectiveOrderSubService.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/service/IDirectiveOrderSubService.java index fdf68521..13d41668 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/service/IDirectiveOrderSubService.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/service/IDirectiveOrderSubService.java @@ -14,7 +14,6 @@ import java.util.List; * @Version: V1.0 */ public interface IDirectiveOrderSubService extends IService { - List queryDataPoolSubList(DirectiveOrder orders); List getDirectiveList(String directiveId); List getSubDirectiveList(String packageId); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/service/impl/DirectiveOrderServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/service/impl/DirectiveOrderServiceImpl.java index 4870cf44..ec09d5f3 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/service/impl/DirectiveOrderServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/service/impl/DirectiveOrderServiceImpl.java @@ -49,29 +49,11 @@ public class DirectiveOrderServiceImpl extends ServiceImpl ruleSubList; - private String allowedTimeout; private String serverNetUrl; @Autowired 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 generateOrdersBatch() { //获取派单规则 getSendOrderRule(); - getAllowedTimeout(); List ordersList = baseMapper.queryDataPoolList(null); for (int i = 0; i < ordersList.size(); 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); //发送websocket消息 try { @@ -162,88 +177,78 @@ public class DirectiveOrderServiceImpl extends ServiceImpl ordersSubList = ordersSubService.queryDataPoolSubList(orders); - String directiveIds = ordersSubList.stream().map(DirectiveOrderSub::getDirectiveId).collect(Collectors.joining(",")); +// System.out.println("护理单元:" + orders.getNuId() + ",服务时间" + orders.getStartTime()); if (orders.getIzPackage().equals("N")) { - //获取满足条件的员工 - DirectiveOrder employee = employeeScreening(directiveIds, orders.getElderId(), null, 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 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(""); + List ordersSubList = ordersSubService.getDirectiveList(orders.getDirectiveId()); + if(ordersSubList!=null&&ordersSubList.size()>0){ + String directiveIds = ordersSubList.stream().map(DirectiveOrderSub::getDirectiveId).collect(Collectors.joining(",")); + //获取满足条件的员工 + DirectiveOrder employee = employeeScreening(directiveIds, orders.getElderId(), null, 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(""); } + } + } else { + + List ordersSubList = ordersSubService.getSubDirectiveList(orders.getDirectiveId()); + if(ordersSubList!=null&&ordersSubList.size()>0){ + String directiveIds = ordersSubList.stream().map(DirectiveOrderSub::getDirectiveId).collect(Collectors.joining(",")); + + List 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 empList = getEmpPermissionAndOnline(directiveIds, employeeIds, startTime); if (empList.size() > 0) { - for (int i = 0; i < empList.size(); 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()); - } +// for (int i = 0; i < empList.size(); 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()); +// } if (ruleSubList.size() > 0) { for (SendOrderRuleSub ruleSub : ruleSubList) { switch (ruleSub.getRuleCode()) { @@ -331,10 +336,10 @@ public class DirectiveOrderServiceImpl extends ServiceImpl 0) { List newList = new ArrayList(); newList.addAll(empList); - for (int i = 0; i < empList.size(); 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()); - } +// for (int i = 0; i < empList.size(); 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()); +// } //****************获取指定护理员工列表,不指定的排除掉=============================> getByOrderly(empList, elderId); @@ -398,7 +403,7 @@ public class DirectiveOrderServiceImpl extends ServiceImpl packageSubList = null; String employeeId = ""; String employeeName = ""; Calendar c = Calendar.getInstance(); 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(); if(duration.equals("")||duration.equals("0")){ c.set(Calendar.YEAR,3000); @@ -724,11 +750,9 @@ public class DirectiveOrderServiceImpl extends ServiceImpl implements IDirectiveOrderSubService { - @Override - public List queryDataPoolSubList(DirectiveOrder orders){ - return baseMapper.queryDataPoolSubList(orders); - } - @Override public List getDirectiveList(String directiveId){ return baseMapper.getDirectiveList(directiveId);