Merge branch 'master' of http://47.115.223.229:8888/yangjun/nursing_unit_java
# Conflicts: # nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/service/impl/DirectiveOrderPadServiceImpl.java
This commit is contained in:
commit
96c3db96ec
|
|
@ -110,7 +110,22 @@ public class ServiceOrderApi {
|
||||||
@ApiOperation(value="服务指令工单-转单", notes="服务指令工单-转单")
|
@ApiOperation(value="服务指令工单-转单", notes="服务指令工单-转单")
|
||||||
@AutoLog(value = "服务指令工单-转单",clientType="app", operateType = 3)
|
@AutoLog(value = "服务指令工单-转单",clientType="app", operateType = 3)
|
||||||
@PostMapping(value = "/transferOrder")
|
@PostMapping(value = "/transferOrder")
|
||||||
public Result<String> transferOrder(@RequestBody DirectiveOrderEntity directiveOrderEntity) {
|
public Result<String> transferOrder(@RequestBody DirectiveOrderSubEntity dto) {
|
||||||
|
if(StringUtils.isBlank(dto.getMainId()) ){
|
||||||
|
return Result.error("缺少参数");
|
||||||
|
}
|
||||||
|
directiveOrderApi.transferOrder(dto);
|
||||||
|
return Result.OK("操作成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value="服务指令工单-协助执行", notes="服务指令工单-协助执行")
|
||||||
|
@AutoLog(value = "服务指令工单-协助执行",clientType="app", operateType = 3)
|
||||||
|
@PostMapping(value = "/assistOrder")
|
||||||
|
public Result<String> assistOrder(@RequestBody DirectiveOrderSubEntity dto) {
|
||||||
|
if(StringUtils.isBlank(dto.getMainId()) ){
|
||||||
|
return Result.error("缺少参数");
|
||||||
|
}
|
||||||
|
directiveOrderApi.assistOrder(dto);
|
||||||
return Result.OK("操作成功!");
|
return Result.OK("操作成功!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,4 +51,7 @@ public interface IDirectiveOrderApi {
|
||||||
|
|
||||||
Map<String, Object> generateOrdersInstant(DirectiveOrderEntity directiveOrderEntity);
|
Map<String, Object> generateOrdersInstant(DirectiveOrderEntity directiveOrderEntity);
|
||||||
|
|
||||||
|
void transferOrder(DirectiveOrderSubEntity dto);
|
||||||
|
|
||||||
|
void assistOrder(DirectiveOrderSubEntity dto);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,4 @@ public interface IInvoicingDataPoolService extends IService<DirectiveDataPool> {
|
||||||
*/
|
*/
|
||||||
void editDataPool(InvoicingDirectivePlan invoicingDirectivePlan);
|
void editDataPool(InvoicingDirectivePlan invoicingDirectivePlan);
|
||||||
|
|
||||||
// Result<?> addInstant(InvoicingDataPool dataPool);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,4 +38,6 @@ public interface DirectiveOrderMapper extends BaseMapper<DirectiveOrder> {
|
||||||
List<DirectiveOrderEntity> queryCurrent(@Param("dto") CareDirectiveEntity dto);
|
List<DirectiveOrderEntity> queryCurrent(@Param("dto") CareDirectiveEntity dto);
|
||||||
|
|
||||||
DirectiveOrder getDirectiveById(DirectiveOrder orders);
|
DirectiveOrder getDirectiveById(DirectiveOrder orders);
|
||||||
|
|
||||||
|
DirectiveOrder getEmployeeById(@Param("employeeId") String employeeId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ package com.nu.modules.biz.order.mapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.nu.modules.biz.order.entity.DirectiveOrder;
|
import com.nu.modules.biz.order.entity.DirectiveOrder;
|
||||||
import com.nu.modules.biz.order.entity.DirectiveOrderSub;
|
import com.nu.modules.biz.order.entity.DirectiveOrderSub;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -13,4 +15,6 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public interface DirectiveOrderSubMapper extends BaseMapper<DirectiveOrderSub> {
|
public interface DirectiveOrderSubMapper extends BaseMapper<DirectiveOrderSub> {
|
||||||
List<DirectiveOrderSub> queryDataPoolSubList(DirectiveOrder orders);
|
List<DirectiveOrderSub> queryDataPoolSubList(DirectiveOrder orders);
|
||||||
|
List<DirectiveOrderSub> getDirectiveList(@Param("directiveId") String directiveId);
|
||||||
|
List<DirectiveOrderSub> getSubDirectiveList(@Param("packageId") String packageId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,7 @@
|
||||||
<select id="queryDataPoolList" resultType="com.nu.modules.biz.order.entity.DirectiveOrder">
|
<select id="queryDataPoolList" resultType="com.nu.modules.biz.order.entity.DirectiveOrder">
|
||||||
select
|
select
|
||||||
a.id as poolId,
|
a.id as poolId,
|
||||||
|
a.pool_type as orderType,
|
||||||
a.biz_id as bizId,
|
a.biz_id as bizId,
|
||||||
a.nu_id as nuId,
|
a.nu_id as nuId,
|
||||||
a.nu_name as nuName,
|
a.nu_name as nuName,
|
||||||
|
|
@ -426,13 +427,15 @@
|
||||||
|
|
||||||
<select id="getDirectiveById" resultType="com.nu.modules.biz.order.entity.DirectiveOrder">
|
<select id="getDirectiveById" resultType="com.nu.modules.biz.order.entity.DirectiveOrder">
|
||||||
select
|
select
|
||||||
id,
|
m.id as bizId,
|
||||||
nu_id as nuId,
|
m.nu_id as nuId,
|
||||||
nu_name as nuName,
|
m.nu_name as nuName,
|
||||||
elder_id as elderId,
|
elder_id as elderId,
|
||||||
elder_name as elderName,
|
elder_name as elderName,
|
||||||
directive_id as directiveId,
|
directive_id as directiveId,
|
||||||
directive_name as directiveName,
|
directive_name as directiveName,
|
||||||
|
'3' as cycleTypeId,
|
||||||
|
(select item_text from sys_dict_item where dict_id = '1900374791386140674' and item_value = '3') as cycleType,
|
||||||
preview_file as previewFile,
|
preview_file as previewFile,
|
||||||
net_preview_file as netPreviewFile,
|
net_preview_file as netPreviewFile,
|
||||||
preview_file_small as previewFileSmall,
|
preview_file_small as previewFileSmall,
|
||||||
|
|
@ -443,9 +446,18 @@
|
||||||
net_mp4_file as netMp4File,
|
net_mp4_file as netMp4File,
|
||||||
service_duration as serviceDuration,
|
service_duration as serviceDuration,
|
||||||
service_content as serviceContent,
|
service_content as serviceContent,
|
||||||
iz_package
|
iz_package,
|
||||||
|
(case when b.orderly is null then 2 else 1 end) as orderEmp
|
||||||
from ${tableName} m
|
from ${tableName} m
|
||||||
|
left join nu_biz_elder_info b on m.elder_id = b.id
|
||||||
where m.id = #{id}
|
where m.id = #{id}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getEmployeeById" resultType="com.nu.modules.biz.order.entity.DirectiveOrder">
|
||||||
|
select a.id as employeeId,
|
||||||
|
a.name as employeeName
|
||||||
|
from nu_biz_employees_info a
|
||||||
|
where a.id = #{employeeId}
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
<select id="queryDataPoolSubList" resultType="com.nu.modules.biz.order.entity.DirectiveOrderSub">
|
<select id="queryDataPoolSubList" resultType="com.nu.modules.biz.order.entity.DirectiveOrderSub">
|
||||||
select
|
select
|
||||||
id as poolSubId,
|
id as poolSubId,
|
||||||
|
pool_type as orderType,
|
||||||
nu_id as nuId,
|
nu_id as nuId,
|
||||||
nu_name as nuName,
|
nu_name as nuName,
|
||||||
elder_id as elderId,
|
elder_id as elderId,
|
||||||
|
|
@ -39,4 +40,57 @@
|
||||||
where main_id = #{poolId}
|
where main_id = #{poolId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getDirectiveList" resultType="com.nu.modules.biz.order.entity.DirectiveOrderSub">
|
||||||
|
select
|
||||||
|
a.instruction_tag_id as instructionTagId,
|
||||||
|
b.instruction_name as instructionTagName,
|
||||||
|
a.category_id as categoryId,
|
||||||
|
c.category_name AS categoryName,
|
||||||
|
a.type_id as typeId,
|
||||||
|
d.type_name as typeName,
|
||||||
|
a.id as directiveId,
|
||||||
|
a.directive_name as directiveName,
|
||||||
|
a.cycle_type as cycleTypeId,
|
||||||
|
f.item_text AS cycleType,
|
||||||
|
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
|
||||||
|
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_category c on a.category_id = c.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
|
||||||
|
where a.id = #{directiveId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getSubDirectiveList" resultType="com.nu.modules.biz.order.entity.DirectiveOrderSub">
|
||||||
|
select
|
||||||
|
b.instruction_tag_id as instructionTagId,
|
||||||
|
e.instruction_name as instructionTagName,
|
||||||
|
b.category_id as categoryId,
|
||||||
|
c.category_name AS categoryName,
|
||||||
|
b.type_id as typeId,
|
||||||
|
d.type_name as typeName,
|
||||||
|
b.id as directiveId,
|
||||||
|
b.directive_name as directiveName,
|
||||||
|
b.cycle_type as cycleTypeId,
|
||||||
|
f.item_text AS cycleType,
|
||||||
|
b.preview_file as previewFile,
|
||||||
|
b.preview_file_small as previewFileSmall,
|
||||||
|
b.mp3_file as mp3File,
|
||||||
|
b.mp4_file as mp4File,
|
||||||
|
b.service_duration as serviceDuration,
|
||||||
|
b.service_content as serviceContent
|
||||||
|
from nu_config_package_directive a
|
||||||
|
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_type d on b.type_id = d.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
|
||||||
|
where a.package_id = #{packageId}
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -3,6 +3,8 @@ package com.nu.modules.biz.order.service;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.nu.modules.biz.order.entity.DirectiveOrder;
|
import com.nu.modules.biz.order.entity.DirectiveOrder;
|
||||||
import com.nu.modules.biz.order.entity.DirectiveOrderSub;
|
import com.nu.modules.biz.order.entity.DirectiveOrderSub;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -13,4 +15,6 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public interface IDirectiveOrderSubService extends IService<DirectiveOrderSub> {
|
public interface IDirectiveOrderSubService extends IService<DirectiveOrderSub> {
|
||||||
List<DirectiveOrderSub> queryDataPoolSubList(DirectiveOrder orders);
|
List<DirectiveOrderSub> queryDataPoolSubList(DirectiveOrder orders);
|
||||||
|
List<DirectiveOrderSub> getDirectiveList(String directiveId);
|
||||||
|
List<DirectiveOrderSub> getSubDirectiveList(String packageId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.nu.modules.biz.order.service.impl;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
@ -30,7 +31,7 @@ import java.util.*;
|
||||||
/**
|
/**
|
||||||
* @Description: 服务指令工单主表
|
* @Description: 服务指令工单主表
|
||||||
* @Author: caolei
|
* @Author: caolei
|
||||||
* @Date: 2025-11-18
|
* @Date: 2025-11-18
|
||||||
* @Version: V1.0
|
* @Version: V1.0
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
|
@ -55,7 +56,7 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
|
||||||
@Override
|
@Override
|
||||||
public DirectiveOrderEntity selectInfoById(String id) {
|
public DirectiveOrderEntity selectInfoById(String id) {
|
||||||
DirectiveOrderEntity result = new DirectiveOrderEntity();
|
DirectiveOrderEntity result = new DirectiveOrderEntity();
|
||||||
BeanUtils.copyProperties(baseMapper.selectInfoById(id),result);
|
BeanUtils.copyProperties(baseMapper.selectInfoById(id), result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -63,14 +64,14 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
|
||||||
public IPage<DirectiveOrderEntity> queryOrderList(Integer pageNo, Integer pageSize, DirectiveOrderEntity directiveOrderEntity, HttpServletRequest req) {
|
public IPage<DirectiveOrderEntity> queryOrderList(Integer pageNo, Integer pageSize, DirectiveOrderEntity directiveOrderEntity, HttpServletRequest req) {
|
||||||
String nowDate = DateUtils.formatDate(new Date(),"yyyy-MM-dd");
|
String nowDate = DateUtils.formatDate(new Date(),"yyyy-MM-dd");
|
||||||
DirectiveOrder directiveOrder = new DirectiveOrder();
|
DirectiveOrder directiveOrder = new DirectiveOrder();
|
||||||
BeanUtils.copyProperties(directiveOrderEntity,directiveOrder);
|
BeanUtils.copyProperties(directiveOrderEntity, directiveOrder);
|
||||||
QueryWrapper<DirectiveOrder> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<DirectiveOrder> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.eq("nu_id",directiveOrderEntity.getNuId());
|
queryWrapper.eq("nu_id", directiveOrderEntity.getNuId());
|
||||||
queryWrapper.eq("iz_finish","N");
|
queryWrapper.eq("iz_finish", "N");
|
||||||
queryWrapper.like("start_time",nowDate);
|
queryWrapper.like("start_time",nowDate);
|
||||||
queryWrapper.eq(StringUtils.isNotBlank(directiveOrderEntity.getEmployeeId()),"employee_id",directiveOrderEntity.getEmployeeId());
|
queryWrapper.eq(StringUtils.isNotBlank(directiveOrderEntity.getEmployeeId()),"employee_id",directiveOrderEntity.getEmployeeId());
|
||||||
Page<DirectiveOrder> page = new Page<>(pageNo, pageSize);
|
Page<DirectiveOrder> page = new Page<>(pageNo, pageSize);
|
||||||
List<DirectiveOrder> list = baseMapper.selectList(page,queryWrapper);
|
List<DirectiveOrder> list = baseMapper.selectList(page, queryWrapper);
|
||||||
IPage<DirectiveOrderEntity> entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
|
IPage<DirectiveOrderEntity> entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
|
||||||
entityPage.setRecords(BeanUtil.copyToList(list, DirectiveOrderEntity.class));
|
entityPage.setRecords(BeanUtil.copyToList(list, DirectiveOrderEntity.class));
|
||||||
return entityPage;
|
return entityPage;
|
||||||
|
|
@ -79,7 +80,7 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
|
||||||
@Override
|
@Override
|
||||||
public List<DirectiveOrderSubEntity> queryOrderInfoList(DirectiveOrderSubEntity directiveOrderSubEntity, HttpServletRequest req) {
|
public List<DirectiveOrderSubEntity> queryOrderInfoList(DirectiveOrderSubEntity directiveOrderSubEntity, HttpServletRequest req) {
|
||||||
DirectiveOrderSub directiveOrderSub = new DirectiveOrderSub();
|
DirectiveOrderSub directiveOrderSub = new DirectiveOrderSub();
|
||||||
BeanUtils.copyProperties(directiveOrderSubEntity,directiveOrderSub);
|
BeanUtils.copyProperties(directiveOrderSubEntity, directiveOrderSub);
|
||||||
QueryWrapper<DirectiveOrderSub> queryWrapper = QueryGenerator.initQueryWrapper(directiveOrderSub, req.getParameterMap());
|
QueryWrapper<DirectiveOrderSub> queryWrapper = QueryGenerator.initQueryWrapper(directiveOrderSub, req.getParameterMap());
|
||||||
List<DirectiveOrderSub> list = directiveOrderSubMapper.selectList(queryWrapper);
|
List<DirectiveOrderSub> list = directiveOrderSubMapper.selectList(queryWrapper);
|
||||||
List<DirectiveOrderSubEntity> list1 = new ArrayList<>();
|
List<DirectiveOrderSubEntity> list1 = new ArrayList<>();
|
||||||
|
|
@ -95,17 +96,17 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
|
||||||
directiveOrderSub.setBeginTime(new Date());
|
directiveOrderSub.setBeginTime(new Date());
|
||||||
directiveOrderSubMapper.updateById(directiveOrderSub);
|
directiveOrderSubMapper.updateById(directiveOrderSub);
|
||||||
|
|
||||||
if(!StringUtils.equals("Y",directiveOrder.getIzStart())){
|
if (!StringUtils.equals("Y", directiveOrder.getIzStart())) {
|
||||||
directiveOrder.setIzStart("Y");
|
directiveOrder.setIzStart("Y");
|
||||||
directiveOrder.setBeginTime(new Date());
|
directiveOrder.setBeginTime(new Date());
|
||||||
baseMapper.updateById(directiveOrder);
|
baseMapper.updateById(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", "操作成功");
|
||||||
map.put("directiveOrder",directiveOrder);
|
map.put("directiveOrder", directiveOrder);
|
||||||
map.put("directiveOrderSub",directiveOrderSub);
|
map.put("directiveOrderSub", directiveOrderSub);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -120,8 +121,8 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
|
||||||
directiveOrderSub.setComPrice(directivePriceSub.getComPrice());
|
directiveOrderSub.setComPrice(directivePriceSub.getComPrice());
|
||||||
directiveOrderSubMapper.updateById(directiveOrderSub);
|
directiveOrderSubMapper.updateById(directiveOrderSub);
|
||||||
|
|
||||||
List<DirectiveOrderSub> list = directiveOrderSubMapper.selectList(new QueryWrapper<DirectiveOrderSub>().eq("main_id",directiveOrder.getId()).ne("iz_finish","Y"));
|
List<DirectiveOrderSub> list = directiveOrderSubMapper.selectList(new QueryWrapper<DirectiveOrderSub>().eq("main_id", directiveOrder.getId()).ne("iz_finish", "Y"));
|
||||||
if(list.size()==0){
|
if (list.size() == 0) {
|
||||||
directiveOrder.setIzFinish("Y");
|
directiveOrder.setIzFinish("Y");
|
||||||
directiveOrder.setFinishTime(new Date());
|
directiveOrder.setFinishTime(new Date());
|
||||||
DirectiveOrder directivePrice = baseMapper.getDirectivePrice(directiveOrder.getDirectiveId());//获取服务指令价格
|
DirectiveOrder directivePrice = baseMapper.getDirectivePrice(directiveOrder.getDirectiveId());//获取服务指令价格
|
||||||
|
|
@ -132,54 +133,54 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
|
||||||
|
|
||||||
|
|
||||||
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", "操作成功");
|
||||||
map.put("directiveOrder",directiveOrder);
|
map.put("directiveOrder", directiveOrder);
|
||||||
map.put("directiveOrderSub",directiveOrderSub);
|
map.put("directiveOrderSub", directiveOrderSub);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<DirectiveOrderEntity> queryWorkOrderList(Integer pageNo, Integer pageSize, DirectiveOrderEntity directiveOrderEntity, HttpServletRequest req) {
|
public IPage<DirectiveOrderEntity> queryWorkOrderList(Integer pageNo, Integer pageSize, DirectiveOrderEntity directiveOrderEntity, HttpServletRequest req) {
|
||||||
DirectiveOrder directiveOrder = new DirectiveOrder();
|
DirectiveOrder directiveOrder = new DirectiveOrder();
|
||||||
BeanUtils.copyProperties(directiveOrderEntity,directiveOrder);
|
BeanUtils.copyProperties(directiveOrderEntity, directiveOrder);
|
||||||
QueryWrapper<DirectiveOrder> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<DirectiveOrder> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.eq("nu_id",directiveOrderEntity.getNuId());
|
queryWrapper.eq("nu_id", directiveOrderEntity.getNuId());
|
||||||
queryWrapper.eq(StringUtils.isNotBlank(directiveOrderEntity.getEmployeeId()),"employee_id",directiveOrderEntity.getEmployeeId());
|
queryWrapper.eq(StringUtils.isNotBlank(directiveOrderEntity.getEmployeeId()), "employee_id", directiveOrderEntity.getEmployeeId());
|
||||||
// 方法1: 使用between查询
|
// 方法1: 使用between查询
|
||||||
LocalDateTime todayStart = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0);
|
LocalDateTime todayStart = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0);
|
||||||
LocalDateTime todayEnd = LocalDateTime.now().withHour(23).withMinute(59).withSecond(59);
|
LocalDateTime todayEnd = LocalDateTime.now().withHour(23).withMinute(59).withSecond(59);
|
||||||
queryWrapper.between("start_time", todayStart, todayEnd);
|
queryWrapper.between("start_time", todayStart, todayEnd);
|
||||||
/**工单类型 1待执行 2已执行 3已完成 4已过期 5待执行或者已执行未完成 空是全部*/
|
/**工单类型 1待执行 2已执行 3已完成 4已过期 5待执行或者已执行未完成 空是全部*/
|
||||||
if(StringUtils.equals("1",directiveOrderEntity.getWorkType())){
|
if (StringUtils.equals("1", directiveOrderEntity.getWorkType())) {
|
||||||
queryWrapper.eq("iz_start","N");
|
queryWrapper.eq("iz_start", "N");
|
||||||
queryWrapper.eq("iz_finish","N");
|
queryWrapper.eq("iz_finish", "N");
|
||||||
queryWrapper.apply("start_time > now()");
|
queryWrapper.apply("start_time > now()");
|
||||||
queryWrapper.orderByAsc("start_time");
|
queryWrapper.orderByAsc("start_time");
|
||||||
}else if(StringUtils.equals("2",directiveOrderEntity.getWorkType())){
|
} else if (StringUtils.equals("2", directiveOrderEntity.getWorkType())) {
|
||||||
queryWrapper.eq("iz_start","Y");
|
queryWrapper.eq("iz_start", "Y");
|
||||||
queryWrapper.eq("iz_finish","N");
|
queryWrapper.eq("iz_finish", "N");
|
||||||
queryWrapper.orderByAsc("start_time");
|
queryWrapper.orderByAsc("start_time");
|
||||||
}else if(StringUtils.equals("3",directiveOrderEntity.getWorkType())){
|
} else if (StringUtils.equals("3", directiveOrderEntity.getWorkType())) {
|
||||||
queryWrapper.eq("iz_start","Y");
|
queryWrapper.eq("iz_start", "Y");
|
||||||
queryWrapper.eq("iz_finish","Y");
|
queryWrapper.eq("iz_finish", "Y");
|
||||||
}else if(StringUtils.equals("4",directiveOrderEntity.getWorkType())){
|
} else if (StringUtils.equals("4", directiveOrderEntity.getWorkType())) {
|
||||||
queryWrapper.eq("iz_start","N");
|
queryWrapper.eq("iz_start", "N");
|
||||||
queryWrapper.eq("iz_finish","N");
|
queryWrapper.eq("iz_finish", "N");
|
||||||
queryWrapper.apply("start_time < now()");
|
queryWrapper.apply("start_time < now()");
|
||||||
}else if(StringUtils.equals("5",directiveOrderEntity.getWorkType())){
|
} else if (StringUtils.equals("5", directiveOrderEntity.getWorkType())) {
|
||||||
queryWrapper.apply("((iz_start = 'N' and iz_finish='N') or (iz_start='Y' and iz_finish='N'))");
|
queryWrapper.apply("((iz_start = 'N' and iz_finish='N') or (iz_start='Y' and iz_finish='N'))");
|
||||||
}
|
}
|
||||||
Page<DirectiveOrder> page = new Page<>(pageNo, pageSize);
|
Page<DirectiveOrder> page = new Page<>(pageNo, pageSize);
|
||||||
List<DirectiveOrder> list = baseMapper.selectList(page,queryWrapper);
|
List<DirectiveOrder> list = baseMapper.selectList(page, queryWrapper);
|
||||||
IPage<DirectiveOrderEntity> entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
|
IPage<DirectiveOrderEntity> entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
|
||||||
entityPage.setRecords(BeanUtil.copyToList(list, DirectiveOrderEntity.class));
|
entityPage.setRecords(BeanUtil.copyToList(list, DirectiveOrderEntity.class));
|
||||||
return entityPage;
|
return entityPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int queryTodayFinishedTotal(String type,String nuId, String elderId) {
|
public int queryTodayFinishedTotal(String type, String nuId, String elderId) {
|
||||||
return baseMapper.queryTodayFinishedTotal(type,nuId, elderId);
|
return baseMapper.queryTodayFinishedTotal(type, nuId, elderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -199,8 +200,8 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
|
||||||
directiveOrderSub.setManuallyMp4Path(directiveOrderSubEntity.getManuallyMp4Path());
|
directiveOrderSub.setManuallyMp4Path(directiveOrderSubEntity.getManuallyMp4Path());
|
||||||
directiveOrderSubMapper.updateById(directiveOrderSub);
|
directiveOrderSubMapper.updateById(directiveOrderSub);
|
||||||
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", "操作成功");
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -211,21 +212,77 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
|
||||||
directiveOrderSub.setManuallyPicPath(directiveOrderSubEntity.getManuallyPicPath());
|
directiveOrderSub.setManuallyPicPath(directiveOrderSubEntity.getManuallyPicPath());
|
||||||
directiveOrderSubMapper.updateById(directiveOrderSub);
|
directiveOrderSubMapper.updateById(directiveOrderSub);
|
||||||
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", "操作成功");
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成即时服务指令工单
|
* 生成即时服务指令工单
|
||||||
|
*
|
||||||
* @param directiveOrderEntity
|
* @param directiveOrderEntity
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> generateOrdersInstant(DirectiveOrderEntity directiveOrderEntity){
|
public Map<String, Object> generateOrdersInstant(DirectiveOrderEntity directiveOrderEntity) {
|
||||||
DirectiveOrder directiveOrder = new DirectiveOrder();
|
DirectiveOrder directiveOrder = new DirectiveOrder();
|
||||||
BeanUtils.copyProperties(directiveOrderEntity,directiveOrder);
|
BeanUtils.copyProperties(directiveOrderEntity, directiveOrder);
|
||||||
return directiveOrderService.generateOrdersInstant(directiveOrder);
|
return directiveOrderService.generateOrdersInstant(directiveOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void transferOrder(DirectiveOrderSubEntity dto) {
|
||||||
|
DirectiveOrder main = new DirectiveOrder();
|
||||||
|
DirectiveOrderSub sub = new DirectiveOrderSub();
|
||||||
|
|
||||||
|
String optType = "3";//转单
|
||||||
|
|
||||||
|
//执行类型
|
||||||
|
main.setOptType(optType);
|
||||||
|
sub.setOptType(optType);
|
||||||
|
//主要执行人
|
||||||
|
main.setEmployeeId(dto.getEmployeeId());
|
||||||
|
main.setEmployeeName(dto.getEmployeeName());
|
||||||
|
sub.setEmployeeId(dto.getEmployeeId());
|
||||||
|
sub.setEmployeeName(dto.getEmployeeName());
|
||||||
|
//实际执行人
|
||||||
|
main.setOptIds(dto.getEmployeeId());
|
||||||
|
main.setOptNames(dto.getEmployeeName());
|
||||||
|
sub.setOptIds(dto.getEmployeeId());
|
||||||
|
sub.setOptNames(dto.getEmployeeName());
|
||||||
|
|
||||||
|
//修改主表
|
||||||
|
main.setId(dto.getMainId());
|
||||||
|
directiveOrderService.updateById(main);
|
||||||
|
//修改子表
|
||||||
|
UpdateWrapper<DirectiveOrderSub> subUW = new UpdateWrapper<>();
|
||||||
|
subUW.eq("main_id",dto.getMainId());
|
||||||
|
directiveOrderSubMapper.update(sub,subUW);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void assistOrder(DirectiveOrderSubEntity dto) {
|
||||||
|
DirectiveOrder main = new DirectiveOrder();
|
||||||
|
DirectiveOrderSub sub = new DirectiveOrderSub();
|
||||||
|
|
||||||
|
String optType = "2";//协助
|
||||||
|
|
||||||
|
//执行类型
|
||||||
|
main.setOptType(optType);
|
||||||
|
sub.setOptType(optType);
|
||||||
|
//实际执行人
|
||||||
|
main.setOptIds(dto.getOptIds());
|
||||||
|
main.setOptNames(dto.getOptNames());
|
||||||
|
sub.setOptIds(dto.getOptIds());
|
||||||
|
sub.setOptNames(dto.getOptNames());
|
||||||
|
|
||||||
|
//修改主表
|
||||||
|
main.setId(dto.getMainId());
|
||||||
|
directiveOrderService.updateById(main);
|
||||||
|
//修改子表
|
||||||
|
UpdateWrapper<DirectiveOrderSub> subUW = new UpdateWrapper<>();
|
||||||
|
subUW.eq("main_id",dto.getMainId());
|
||||||
|
directiveOrderSubMapper.update(sub,subUW);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -49,6 +50,10 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
|
||||||
SendOrderRule sendOrderRule;
|
SendOrderRule sendOrderRule;
|
||||||
List<SendOrderRuleSub> ruleSubList;
|
List<SendOrderRuleSub> ruleSubList;
|
||||||
private String allowedTimeout;
|
private String allowedTimeout;
|
||||||
|
private String serverNetUrl;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SdWebsocket sdWebsocket;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取容错时长
|
* 获取容错时长
|
||||||
|
|
@ -62,7 +67,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 +75,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 +90,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,35 +124,52 @@ 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.getOrderType());
|
||||||
orders.setOrderNo(orderNo);
|
orders.setOrderNo(orderNo);
|
||||||
orders.setEmployeeId(employee.getEmployeeId());
|
orders.setEmployeeId(employee.getEmployeeId());
|
||||||
orders.setEmployeeName(employee.getEmployeeName());
|
orders.setEmployeeName(employee.getEmployeeName());
|
||||||
|
|
@ -153,11 +177,12 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
|
||||||
orders.setIzFinish("N");
|
orders.setIzFinish("N");
|
||||||
orders.setOrderType("1");
|
orders.setOrderType("1");
|
||||||
orders.setOptType("1");
|
orders.setOptType("1");
|
||||||
|
orders.setIzTimeout("N");
|
||||||
orders.setOptIds(employee.getEmployeeId());
|
orders.setOptIds(employee.getEmployeeId());
|
||||||
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());
|
||||||
|
|
@ -165,22 +190,26 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
|
||||||
ordersSub.setEmployeeName(employee.getEmployeeName());
|
ordersSub.setEmployeeName(employee.getEmployeeName());
|
||||||
ordersSub.setIzStart("N");
|
ordersSub.setIzStart("N");
|
||||||
ordersSub.setIzFinish("N");
|
ordersSub.setIzFinish("N");
|
||||||
ordersSub.setOrderType("1");
|
ordersSub.setOptType("1");
|
||||||
|
ordersSub.setIzTimeout("N");
|
||||||
|
ordersSub.setOptIds(employee.getEmployeeId());
|
||||||
|
ordersSub.setOptNames(employee.getEmployeeName());
|
||||||
|
ordersSub.setServiceAllowedTimeout(allowedTimeout);
|
||||||
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.getOrderType());
|
||||||
orders.setOrderNo(orderNo);
|
orders.setOrderNo(orderNo);
|
||||||
orders.setEmployeeId(employee.getEmployeeId());
|
orders.setEmployeeId(employee.getEmployeeId());
|
||||||
orders.setEmployeeName(employee.getEmployeeName());
|
orders.setEmployeeName(employee.getEmployeeName());
|
||||||
|
|
@ -188,11 +217,12 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
|
||||||
orders.setIzFinish("N");
|
orders.setIzFinish("N");
|
||||||
orders.setOrderType("1");
|
orders.setOrderType("1");
|
||||||
orders.setOptType("1");
|
orders.setOptType("1");
|
||||||
|
orders.setIzTimeout("N");
|
||||||
orders.setOptIds(employee.getEmployeeId());
|
orders.setOptIds(employee.getEmployeeId());
|
||||||
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());
|
||||||
|
|
@ -200,11 +230,15 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
|
||||||
ordersSub.setEmployeeName(employee.getEmployeeName());
|
ordersSub.setEmployeeName(employee.getEmployeeName());
|
||||||
ordersSub.setIzStart("N");
|
ordersSub.setIzStart("N");
|
||||||
ordersSub.setIzFinish("N");
|
ordersSub.setIzFinish("N");
|
||||||
ordersSub.setOrderType("1");
|
ordersSub.setOptType("1");
|
||||||
|
ordersSub.setIzTimeout("N");
|
||||||
|
ordersSub.setOptIds(employee.getEmployeeId());
|
||||||
|
ordersSub.setOptNames(employee.getEmployeeName());
|
||||||
|
ordersSub.setServiceAllowedTimeout(allowedTimeout);
|
||||||
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 +249,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 +270,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 +327,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 +376,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 +398,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 +420,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 +438,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 +463,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 +489,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 +518,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 +543,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 +562,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,22 +589,36 @@ 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(String orderType){
|
||||||
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"));
|
||||||
// 构建今天的前缀模式
|
// 构建今天的前缀模式
|
||||||
String todayPrefix = "HL" + deptCode + today;
|
String todayPrefix = "";
|
||||||
|
if(orderType.equals("1")){
|
||||||
|
todayPrefix = "HL";
|
||||||
|
}
|
||||||
|
if(orderType.equals("2")){
|
||||||
|
todayPrefix = "YL";
|
||||||
|
}
|
||||||
|
if(orderType.equals("3")){
|
||||||
|
todayPrefix = "CK";
|
||||||
|
}
|
||||||
|
if(orderType.equals("4")){
|
||||||
|
todayPrefix = "HQ";
|
||||||
|
}
|
||||||
|
todayPrefix = todayPrefix + deptCode + today;
|
||||||
QueryWrapper<DirectiveOrder> qw = new QueryWrapper<>();
|
QueryWrapper<DirectiveOrder> qw = new QueryWrapper<>();
|
||||||
qw.likeRight("order_no", todayPrefix);
|
qw.likeRight("order_no", todayPrefix);
|
||||||
qw.select("order_no");
|
qw.select("order_no");
|
||||||
|
|
@ -577,23 +626,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,59 +651,257 @@ 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);
|
getAllowedTimeout();
|
||||||
|
DirectiveOrder orders = baseMapper.getDirectiveById(directiveOrder);
|
||||||
|
List<DirectiveOrderSub> packageSubList = null;
|
||||||
|
String employeeId = "";
|
||||||
|
String employeeName = "";
|
||||||
|
Calendar c = Calendar.getInstance();
|
||||||
|
Date startTime = c.getTime();
|
||||||
|
String duration = orders.getServiceDuration();
|
||||||
|
if(duration.equals("")||duration.equals("0")){
|
||||||
|
c.set(Calendar.YEAR,3000);
|
||||||
|
c.set(Calendar.MONTH,Calendar.DECEMBER);
|
||||||
|
c.set(Calendar.DAY_OF_MONTH,31);
|
||||||
|
c.set(Calendar.HOUR_OF_DAY,0);
|
||||||
|
c.set(Calendar.MINUTE,0);
|
||||||
|
c.set(Calendar.SECOND,0);
|
||||||
|
c.set(Calendar.MILLISECOND,0);
|
||||||
|
}else{
|
||||||
|
c.add(Calendar.MINUTE,Integer.valueOf(duration));
|
||||||
|
}
|
||||||
|
Date endTime = c.getTime();
|
||||||
|
orders.setStartTime(startTime);
|
||||||
|
orders.setEndTime(endTime);
|
||||||
|
if(orders.getIzPackage().equals("N")){
|
||||||
|
packageSubList = ordersSubService.getDirectiveList(orders.getDirectiveId());
|
||||||
|
String directiveIds = packageSubList.stream().map(DirectiveOrderSub::getDirectiveId).collect(Collectors.joining(","));
|
||||||
|
if(!directiveOrder.getTriggerMode().equals("1")){
|
||||||
|
getSendOrderRule();
|
||||||
|
DirectiveOrder employee = employeeScreening(directiveIds,orders.getElderId(),null,orders.getStartTime());
|
||||||
|
employeeId = employee.getEmployeeId();
|
||||||
|
employeeName = employee.getEmployeeName();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
orders.setPackageId(orders.getDirectiveId());
|
||||||
|
orders.setPackageName(orders.getDirectiveName());
|
||||||
|
orders.setDirectiveId(null);
|
||||||
|
orders.setDirectiveName(null);
|
||||||
|
packageSubList = ordersSubService.getSubDirectiveList(orders.getPackageId());
|
||||||
|
String directiveIds = packageSubList.stream().map(DirectiveOrderSub::getDirectiveId).collect(Collectors.joining(","));
|
||||||
|
if(!directiveOrder.getTriggerMode().equals("1")){
|
||||||
|
getSendOrderRule();
|
||||||
|
List<DirectiveOrder> emps = baseMapper.getPermissionEmps(directiveIds);//获取服务标签中的员工和数量
|
||||||
|
if(packageSubList!=null){
|
||||||
|
int size = packageSubList.size();
|
||||||
|
emps.removeIf(data -> data.getOwnCn() < size);//删除没有权限的数据
|
||||||
|
}
|
||||||
|
String employeeIds = emps.stream().map(DirectiveOrder::getEmployeeId).collect(Collectors.joining(","));
|
||||||
|
DirectiveOrder employee = employeeScreening(directiveIds,orders.getElderId(),employeeIds,orders.getStartTime());
|
||||||
|
employeeId = employee.getEmployeeId();
|
||||||
|
employeeName = employee.getEmployeeName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
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();
|
employeeId = sysUser.getEmployessId();
|
||||||
}else{
|
employeeName = getEmployeeName(employeeId);
|
||||||
//按规则派单
|
|
||||||
getSendOrderRule();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getNetImages(orders);
|
||||||
|
String orderNo = getOrderNo(orderType);
|
||||||
|
orders.setOrderNo(orderNo);
|
||||||
|
orders.setOrderType(orderType);
|
||||||
|
orders.setOptType("1");
|
||||||
|
orders.setEmployeeId(employeeId);
|
||||||
|
orders.setEmployeeName(employeeName);
|
||||||
|
orders.setIzStart("N");
|
||||||
|
orders.setIzFinish("N");
|
||||||
|
orders.setIzTimeout("N");
|
||||||
|
orders.setOptIds(employeeId);
|
||||||
|
orders.setOptNames(employeeName);
|
||||||
|
orders.setServiceAllowedTimeout(allowedTimeout);
|
||||||
|
orders.setDelFlag("0");
|
||||||
|
this.save(orders);//生成工单主表
|
||||||
|
if(packageSubList!=null){
|
||||||
|
for(int i=0;i<packageSubList.size();i++){
|
||||||
|
DirectiveOrderSub ordersSub = packageSubList.get(i);
|
||||||
|
getSubNetImages(ordersSub);
|
||||||
|
ordersSub.setOrderNo(getOrderSubNo(orderNo));
|
||||||
|
ordersSub.setOrderType(orderType);
|
||||||
|
ordersSub.setMainId(orders.getId());
|
||||||
|
ordersSub.setNuId(orders.getNuId());
|
||||||
|
ordersSub.setNuName(orders.getNuName());
|
||||||
|
ordersSub.setElderId(orders.getElderId());
|
||||||
|
ordersSub.setElderName(orders.getElderName());
|
||||||
|
ordersSub.setEmployeeId(employeeId);
|
||||||
|
ordersSub.setEmployeeName(employeeName);
|
||||||
|
ordersSub.setIzPackage(orders.getIzPackage());
|
||||||
|
if(!orders.getIzPackage().equals("N")){
|
||||||
|
ordersSub.setPackageId(orders.getPackageId());
|
||||||
|
ordersSub.setPackageName(orders.getPackageName());
|
||||||
|
}
|
||||||
|
ordersSub.setStartTime(startTime);
|
||||||
|
ordersSub.setEndTime(endTime);
|
||||||
|
ordersSub.setIzStart("N");
|
||||||
|
ordersSub.setIzFinish("N");
|
||||||
|
ordersSub.setOptType("1");
|
||||||
|
ordersSub.setIzTimeout("N");
|
||||||
|
ordersSub.setOptIds(employeeId);
|
||||||
|
ordersSub.setOptNames(employeeName);
|
||||||
|
ordersSub.setServiceAllowedTimeout(allowedTimeout);
|
||||||
|
ordersSub.setDelFlag("0");
|
||||||
|
ordersSubService.save(ordersSub);//生成工单子表
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//todo
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private DirectiveOrder getNetImages(DirectiveOrder par) {
|
||||||
|
if (par.getPreviewFile() != null && !par.getPreviewFile().equals("")) {
|
||||||
|
String previewFile = getImageNetUrl(par.getPreviewFile());
|
||||||
|
par.setNetPreviewFile(previewFile);
|
||||||
|
} else {
|
||||||
|
par.setPreviewFile("");
|
||||||
|
par.setNetPreviewFile("");
|
||||||
|
}
|
||||||
|
if (par.getPreviewFileSmall() != null && !par.getPreviewFileSmall().equals("")) {
|
||||||
|
String previewFileSmall = getImageNetUrl(par.getPreviewFileSmall());
|
||||||
|
par.setNetPreviewFileSmall(previewFileSmall);
|
||||||
|
} else {
|
||||||
|
par.setPreviewFileSmall("");
|
||||||
|
par.setNetPreviewFileSmall("");
|
||||||
|
}
|
||||||
|
if (par.getMp3File() != null && !par.getMp3File().equals("")) {
|
||||||
|
String netMp3File = getImageNetUrl(par.getMp3File());
|
||||||
|
par.setNetMp3File(netMp3File);
|
||||||
|
} else {
|
||||||
|
par.setMp3File("");
|
||||||
|
par.setNetMp3File("");
|
||||||
|
}
|
||||||
|
if (par.getMp4File() != null && !par.getMp4File().equals("")) {
|
||||||
|
String netMp4File = getImageNetUrl(par.getMp4File());
|
||||||
|
par.setNetMp4File(netMp4File);
|
||||||
|
} else {
|
||||||
|
par.setMp4File("");
|
||||||
|
par.setNetMp4File("");
|
||||||
|
}
|
||||||
|
return par;
|
||||||
|
}
|
||||||
|
|
||||||
|
private DirectiveOrderSub getSubNetImages(DirectiveOrderSub par) {
|
||||||
|
if (par.getPreviewFile() != null && !par.getPreviewFile().equals("")) {
|
||||||
|
String previewFile = getImageNetUrl(par.getPreviewFile());
|
||||||
|
par.setNetPreviewFile(previewFile);
|
||||||
|
} else {
|
||||||
|
par.setPreviewFile("");
|
||||||
|
par.setNetPreviewFile("");
|
||||||
|
}
|
||||||
|
if (par.getPreviewFileSmall() != null && !par.getPreviewFileSmall().equals("")) {
|
||||||
|
String previewFileSmall = getImageNetUrl(par.getPreviewFileSmall());
|
||||||
|
par.setNetPreviewFileSmall(previewFileSmall);
|
||||||
|
} else {
|
||||||
|
par.setPreviewFileSmall("");
|
||||||
|
par.setNetPreviewFileSmall("");
|
||||||
|
}
|
||||||
|
if (par.getMp3File() != null && !par.getMp3File().equals("")) {
|
||||||
|
String netMp3File = getImageNetUrl(par.getMp3File());
|
||||||
|
par.setNetMp3File(netMp3File);
|
||||||
|
} else {
|
||||||
|
par.setMp3File("");
|
||||||
|
par.setNetMp3File("");
|
||||||
|
}
|
||||||
|
if (par.getMp4File() != null && !par.getMp4File().equals("")) {
|
||||||
|
String netMp4File = getImageNetUrl(par.getMp4File());
|
||||||
|
par.setNetMp4File(netMp4File);
|
||||||
|
} else {
|
||||||
|
par.setMp4File("");
|
||||||
|
par.setNetMp4File("");
|
||||||
|
}
|
||||||
|
return par;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取管理平台静态资源路径
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private void getOpeMediaAddress() {
|
||||||
|
if (serverNetUrl == null || serverNetUrl.equals("")) {
|
||||||
|
JSONObject json = sysConfigApi.getByKey("ope_media_address");
|
||||||
|
if (json != null) {
|
||||||
|
String configValue = json.getString("configValue");
|
||||||
|
if (!configValue.endsWith("/")) {
|
||||||
|
configValue += "/";
|
||||||
|
}
|
||||||
|
serverNetUrl = configValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getImageNetUrl(String imageUrl) {
|
||||||
|
getOpeMediaAddress();
|
||||||
|
return serverNetUrl + imageUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取员工姓名
|
||||||
|
* @param employeeId
|
||||||
|
*/
|
||||||
|
private String getEmployeeName(String employeeId){
|
||||||
|
String employeeName = "";
|
||||||
|
if(employeeId!=null&&!employeeId.equals("")){
|
||||||
|
DirectiveOrder employeeInfo = baseMapper.getEmployeeById(employeeId);
|
||||||
|
if(employeeInfo!=null){
|
||||||
|
employeeName = employeeInfo.getEmployeeName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return employeeName;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,4 +23,14 @@ public class DirectiveOrderSubServiceImpl extends ServiceImpl<DirectiveOrderSubM
|
||||||
public List<DirectiveOrderSub> queryDataPoolSubList(DirectiveOrder orders){
|
public List<DirectiveOrderSub> queryDataPoolSubList(DirectiveOrder orders){
|
||||||
return baseMapper.queryDataPoolSubList(orders);
|
return baseMapper.queryDataPoolSubList(orders);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DirectiveOrderSub> getDirectiveList(String directiveId){
|
||||||
|
return baseMapper.getDirectiveList(directiveId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<DirectiveOrderSub> getSubDirectiveList(String packageId){
|
||||||
|
return baseMapper.getSubDirectiveList(packageId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -363,18 +363,6 @@ public class CareDirectivePlanServiceImpl extends ServiceImpl<CareDirectivePlanM
|
||||||
bizNuCareDirectivePlanInstantService.save(instant);
|
bizNuCareDirectivePlanInstantService.save(instant);
|
||||||
//TODO 增加日志
|
//TODO 增加日志
|
||||||
|
|
||||||
//生成即时指令到数据池,测试
|
|
||||||
// DataPool dataPool = new DataPool();
|
|
||||||
// dataPool.setBizId(customerServerInstant.getId());
|
|
||||||
// dataPool.setNuId(customerServerInstant.getNuId());
|
|
||||||
// dataPool.setNuName(customerServerInstant.getNuName());
|
|
||||||
// dataPool.setCustomerId(customerServerInstant.getCustomerId());
|
|
||||||
// dataPool.setCustomerName(customerServerInstant.getCustomerName());
|
|
||||||
// dataPool.setDirectiveId(customerServerInstant.getDirectiveId());
|
|
||||||
// dataPool.setDirectiveName(customerServerInstant.getDirectiveName());
|
|
||||||
// dataPool.setServiceDuration(customerServerInstant.getServiceDuration());
|
|
||||||
// dataPoolServiceImpl.addInstant(dataPool);
|
|
||||||
|
|
||||||
BeanUtils.copyProperties(instant,careDirectiveInstantEntity);
|
BeanUtils.copyProperties(instant,careDirectiveInstantEntity);
|
||||||
return careDirectiveInstantEntity;
|
return careDirectiveInstantEntity;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -112,9 +112,25 @@ public class SdWebsocket {
|
||||||
* @param message
|
* @param message
|
||||||
*/
|
*/
|
||||||
public void sendMessage(String userId, String message) {
|
public void sendMessage(String userId, String message) {
|
||||||
log.info("【系统 SdWebsocket】广播,userId:"+userId+",消息:"+message);
|
log.info("【系统 SdWebsocket】向用户 {} 发送消息: {}", userId, message);
|
||||||
|
|
||||||
|
// 打印所有在线用户
|
||||||
|
StringBuilder userList = new StringBuilder();
|
||||||
|
for (String user : sessionPool.keySet()) {
|
||||||
|
if (userList.length() > 0) {
|
||||||
|
userList.append(", ");
|
||||||
|
}
|
||||||
|
userList.append(user);
|
||||||
|
}
|
||||||
|
log.info("【系统 SdWebsocket】当前在线用户: [{}] 共 {} 人", userList.toString(), sessionPool.size());
|
||||||
|
|
||||||
Session session = sessionPool.get(userId);
|
Session session = sessionPool.get(userId);
|
||||||
session.getAsyncRemote().sendText(message);
|
if (session != null && session.isOpen()) {
|
||||||
|
session.getAsyncRemote().sendText(message);
|
||||||
|
log.debug("【系统 SdWebsocket】消息发送成功");
|
||||||
|
} else {
|
||||||
|
log.warn("【系统 SdWebsocket】用户 {} 不在线或连接已关闭,无法发送消息", userId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,7 @@ public class WebSocketMessageController {
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("发送消息失败", e);
|
log.error("发送消息失败", e);
|
||||||
|
e.printStackTrace();
|
||||||
return Result.error("发送失败: " + e.getMessage());
|
return Result.error("发送失败: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue