pad指令轮播查询、开始结束服务 转单、协助执行 查询护理单元下即时指令等接口

This commit is contained in:
1378012178@qq.com 2026-03-30 14:57:34 +08:00
parent 21c84a4d16
commit 825c79963c
7 changed files with 303 additions and 219 deletions

View File

@ -26,15 +26,11 @@ public class ServiceOrderApi {
@ApiOperation(value = "服务指令工单-查询工单列表", notes = "服务指令工单-查询工单列表")
@GetMapping(value = "/queryOrderList")
public Result<IPage<DirectiveOrderEntity>> queryOrderList(DirectiveOrderEntity directiveOrderEntity,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
if(StringUtils.isBlank(directiveOrderEntity.getNuId())){
public Result<List<DirectiveOrderEntity>> queryOrderList(DirectiveOrderEntity directiveOrderEntity, HttpServletRequest req) {
if (StringUtils.isBlank(directiveOrderEntity.getNuId())) {
return Result.error("参数错误,请选择正确的护理单元");
}
IPage<DirectiveOrderEntity> pageList = directiveOrderApi.queryOrderList(pageNo, pageSize, directiveOrderEntity,req);
return Result.OK(pageList);
return Result.ok(directiveOrderApi.queryOrderList(directiveOrderEntity, req));
}
@ -48,20 +44,20 @@ public class ServiceOrderApi {
@ApiOperation(value = "服务指令工单-查询工单详细信息", notes = "服务指令工单-查询工单详细信息")
@GetMapping(value = "/queryOrderInfoList")
public Result<List<DirectiveOrderEntity>> queryOrderInfoList(DirectiveOrderEntity directiveOrderInfoEntity, HttpServletRequest req) {
List<DirectiveOrderEntity> pageList = directiveOrderApi.queryOrderInfoList(directiveOrderInfoEntity,req);
List<DirectiveOrderEntity> pageList = directiveOrderApi.queryOrderInfoList(directiveOrderInfoEntity, req);
return Result.OK(pageList);
}
@ApiOperation(value="服务指令工单-开始服务", notes="服务指令工单-开始服务")
@AutoLog(value = "服务指令工单-开始服务",clientType="app", operateType = 2)
@ApiOperation(value = "服务指令工单-开始服务", notes = "服务指令工单-开始服务")
@AutoLog(value = "服务指令工单-开始服务", clientType = "app", operateType = 2)
@PostMapping(value = "/startOrder")
public Result<String> startOrder(@RequestBody DirectiveOrderEntity directiveOrderEntity) {
Map<String, Object> result = directiveOrderApi.startOrder(directiveOrderEntity);
return Result.OK("操作成功!");
}
@ApiOperation(value="服务指令工单-结束服务", notes="服务指令工单-结束服务")
@AutoLog(value = "服务指令工单-结束服务",clientType="app", operateType = 2)
@ApiOperation(value = "服务指令工单-结束服务", notes = "服务指令工单-结束服务")
@AutoLog(value = "服务指令工单-结束服务", clientType = "app", operateType = 2)
@PostMapping(value = "/endOrder")
public Result<String> endOrder(@RequestBody DirectiveOrderEntity directiveOrderEntity) {
Map<String, Object> result = directiveOrderApi.endOrder(directiveOrderEntity);
@ -69,16 +65,16 @@ public class ServiceOrderApi {
}
@ApiOperation(value="服务指令工单-上传mp4", notes="服务指令工单-上传mp4")
@AutoLog(value = "服务指令工单-上传mp4",clientType="app", operateType = 2)
@ApiOperation(value = "服务指令工单-上传mp4", notes = "服务指令工单-上传mp4")
@AutoLog(value = "服务指令工单-上传mp4", clientType = "app", operateType = 2)
@PostMapping(value = "/editSubMp4")
public Result<String> editSubMp4(@RequestBody DirectiveOrderEntity directiveOrderEntity) {
Map<String, Object> result = directiveOrderApi.editSubMp4(directiveOrderEntity);
return Result.OK("操作成功!");
}
@ApiOperation(value="服务指令工单-上传照片", notes="服务指令工单-上传照片")
@AutoLog(value = "服务指令工单-上传照片",clientType="app", operateType = 2)
@ApiOperation(value = "服务指令工单-上传照片", notes = "服务指令工单-上传照片")
@AutoLog(value = "服务指令工单-上传照片", clientType = "app", operateType = 2)
@PostMapping(value = "/editSubPicPath")
public Result<String> editSubPicPath(@RequestBody DirectiveOrderEntity directiveOrderEntity) {
Map<String, Object> result = directiveOrderApi.editSubPicPath(directiveOrderEntity);
@ -88,6 +84,7 @@ public class ServiceOrderApi {
/**
* todo 废弃
*
* @param directiveOrderEntity
* @param pageNo
* @param pageSize
@ -97,43 +94,40 @@ public class ServiceOrderApi {
@ApiOperation(value = "服务指令工单-查询工单列表", notes = "服务指令工单-查询工单列表")
@GetMapping(value = "/queryWorkOrderList")
public Result<IPage<DirectiveOrderEntity>> queryWorkOrderList(DirectiveOrderEntity directiveOrderEntity,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
if(StringUtils.isBlank(directiveOrderEntity.getNuId())){
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
if (StringUtils.isBlank(directiveOrderEntity.getNuId())) {
return Result.error("参数错误,请选择正确的护理单元");
}
IPage<DirectiveOrderEntity> pageList = directiveOrderApi.queryWorkOrderList(pageNo, pageSize, directiveOrderEntity,req);
IPage<DirectiveOrderEntity> pageList = directiveOrderApi.queryWorkOrderList(pageNo, pageSize, directiveOrderEntity, req);
return Result.OK(pageList);
}
@ApiOperation(value="服务指令工单-生成即时指令工单", notes="服务指令工单-生成即时指令工单")
@AutoLog(value = "服务指令工单-生成即时指令工单",clientType="app", operateType = 2)
@ApiOperation(value = "服务指令工单-生成即时指令工单", notes = "服务指令工单-生成即时指令工单")
@AutoLog(value = "服务指令工单-生成即时指令工单", clientType = "app", operateType = 2)
@PostMapping(value = "/generateInstant")
public Result<String> generateInstant(@RequestBody DirectiveOrderEntity directiveOrderEntity) {
Map<String, Object> result = directiveOrderApi.generateOrdersInstant(directiveOrderEntity);
return Result.OK("操作成功!");
return directiveOrderApi.generateOrdersInstant(directiveOrderEntity);
}
@ApiOperation(value="服务指令工单-转单", notes="服务指令工单-转单")
@AutoLog(value = "服务指令工单-转单",clientType="app", operateType = 3)
@ApiOperation(value = "服务指令工单-转单", notes = "服务指令工单-转单")
@AutoLog(value = "服务指令工单-转单", clientType = "app", operateType = 3)
@PostMapping(value = "/transferOrder")
public Result<String> transferOrder(@RequestBody DirectiveOrderInfoEntity dto) {
if(StringUtils.isBlank(dto.getMainId()) ){
if (StringUtils.isBlank(dto.getId())) {
return Result.error("缺少参数");
}
directiveOrderApi.transferOrder(dto);
return Result.OK("操作成功!");
return directiveOrderApi.transferOrder(dto);
}
@ApiOperation(value="服务指令工单-协助执行", notes="服务指令工单-协助执行")
@AutoLog(value = "服务指令工单-协助执行",clientType="app", operateType = 3)
@ApiOperation(value = "服务指令工单-协助执行", notes = "服务指令工单-协助执行")
@AutoLog(value = "服务指令工单-协助执行", clientType = "app", operateType = 3)
@PostMapping(value = "/assistOrder")
public Result<String> assistOrder(@RequestBody DirectiveOrderInfoEntity dto) {
if(StringUtils.isBlank(dto.getMainId()) ){
if (StringUtils.isBlank(dto.getId())) {
return Result.error("缺少参数");
}
directiveOrderApi.assistOrder(dto);
return Result.OK("操作成功!");
return directiveOrderApi.assistOrder(dto);
}
}

View File

@ -466,20 +466,10 @@ public class CareDirectiveApi {
@GetMapping(value = "/getImmediatelyOrderByNuID")
public Result<Map<String, Object>> getImmediatelyOrderByNuID(CareDirectiveEntity dto) {
Map<String, Object> result = Maps.newHashMap();
//护理类即时指令
List<DirectiveOrderEntity> hlList = careDirectivePlanApi.queryImmediatelyOrderList(dto);
//TODO 医疗类即时指令 目前没有表 后续待开发
List<DirectiveOrderEntity> ylList = Lists.newArrayList();
//后勤类即时指令
List<DirectiveOrderEntity> hqList = invoicingDirectivePlanApi.queryImmediatelyOrderList(dto);
//仓库类即时指令
List<DirectiveOrderEntity> ckList = logisticsDirectivePlanApi.queryImmediatelyOrderList(dto);
result.put("total", hlList.size() + ylList.size() + hqList.size() + ckList.size());
result.put("hlList", hlList);
result.put("ylList", ylList);
result.put("hqList", hqList);
result.put("ckList", ckList);
result.put("total", hlList.size());
result.put("jsList", hlList);
return Result.ok(result);
}

View File

@ -2,6 +2,7 @@ package com.nu.modules.order.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nu.entity.*;
import org.jeecg.common.api.vo.Result;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@ -22,6 +23,7 @@ public interface IDirectiveOrderApi {
/**
* 根据工单id查询工单信息+对应服务指令信息
*
* @param id
* @return
*/
@ -29,7 +31,7 @@ public interface IDirectiveOrderApi {
List<DirectiveOrderInfoEntity> queryList(DirectiveOrderInfoEntity directiveOrderInfoEntity);
IPage<DirectiveOrderEntity> queryOrderList(Integer pageNo, Integer pageSize, DirectiveOrderEntity directiveOrderEntity, HttpServletRequest req);
List<DirectiveOrderEntity> queryOrderList(DirectiveOrderEntity directiveOrderEntity, HttpServletRequest req);
List<DirectiveOrderEntity> queryOrderInfoList(DirectiveOrderEntity directiveOrderInfoEntity, HttpServletRequest req);
@ -43,17 +45,17 @@ public interface IDirectiveOrderApi {
IPage<DirectiveOrderEntity> queryWorkOrderList(Integer pageNo, Integer pageSize, DirectiveOrderEntity directiveOrderEntity, HttpServletRequest req);
int queryTodayFinishedTotal(String type,String nuId, String elderId);
int queryTodayFinishedTotal(String type, String nuId, String elderId);
List<DirectiveOrderEntity> queryHistory(CareDirectiveEntity dto);
List<DirectiveOrderEntity> queryCurrent(CareDirectiveEntity dto);
Map<String, Object> generateOrdersInstant(DirectiveOrderEntity directiveOrderEntity);
Result<String> generateOrdersInstant(DirectiveOrderEntity directiveOrderEntity);
void transferOrder(DirectiveOrderInfoEntity dto);
Result<String> transferOrder(DirectiveOrderInfoEntity dto);
void assistOrder(DirectiveOrderInfoEntity dto);
Result<String> assistOrder(DirectiveOrderInfoEntity dto);
Map<String, Object> addBizLog(DirectiveOrderBizLogEntity directiveOrderBizLogEntity);
}

View File

@ -48,6 +48,5 @@ public interface DirectiveOrderMapper extends BaseMapper<DirectiveOrder> {
DirectiveOrder getEmployeeById(@Param("employeeId") String employeeId);
IPage<DirectiveOrderEntity> queryOrderList(Page<DirectiveOrder> page,
@Param("entity") DirectiveOrderEntity entity);
List<DirectiveOrderEntity> queryOrderList(@Param("entity") DirectiveOrderEntity entity);
}

View File

@ -559,25 +559,25 @@
LEFT JOIN nu_config_service_directive dire on t.directive_id = dire.id
WHERE t.nu_id = #{entity.nuId} AND t.employee_id = #{entity.employeeId}
<choose>
<when test="entity.workType == '1'">
<when test='entity.workType == "1"'>
AND t.serv_end_time >= NOW()
AND t.emp_start_time IS NULL
</when>
<when test="entity.workType == '2'">
<when test='entity.workType == "2"'>
AND DATE(t.serv_start_time) = CURDATE()
AND t.serv_end_time >= NOW()
AND t.emp_start_time IS NOT NULL
</when>
<when test="entity.workType == '3'">
<when test='entity.workType == "3"'>
AND DATE(t.serv_start_time) = CURDATE()
AND t.emp_end_time IS NOT NULL
</when>
<when test="entity.workType == '4'">
<when test='entity.workType == "4"'>
AND DATE(t.serv_start_time) = CURDATE()
AND t.serv_end_time <![CDATA[ < ]]> NOW()
AND t.emp_start_time IS NULL
</when>
<when test="entity.workType == '5'">
<when test='entity.workType == "5"'>
AND (
(t.serv_start_time <![CDATA[ <= ]]> NOW()
AND t.serv_end_time >= NOW()
@ -591,5 +591,70 @@
CASE WHEN CAST(t.service_duration AS UNSIGNED) = 0 THEN 999999 ELSE CAST(t.service_duration AS UNSIGNED) END
</select>
<select id="queryOrderNeedDirectiveInfo" resultMap="DirectiveOrderMap">
SELECT p.id,
p.nu_id,
base.nu_name,
elder.id as elderId,
elder.name as elderName,
p.instruction_tag_id,
inst.instruction_name,
directive.category_id,
category.category_name,
directive.type_id,
stype.type_name,
p.directive_id,
directive.directive_name,
p.cycle_type_id,
p.cycle_value,
p.opt_time,
p.opt_count,
p.iz_multi,
directive.immediate_file,
directive.immediate_file_focus,
directive.preview_file,
directive.preview_file_small,
directive.mp3_file,
directive.mp4_file,
directive.service_duration,
directive.service_content,
p.positioning,
p.positioning_long,
p.tag_name,
CONCAT(
DATE_FORMAT(now(), '%Y-%m-%d'), ' ',
p.start_time, ':00'
) as start_time,
CASE
WHEN directive.service_duration IS NOT NULL
THEN DATE_FORMAT(
DATE_ADD(
STR_TO_DATE(CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' ', p.start_time, ':00'),
'%Y-%m-%d %H:%i:%s'),
INTERVAL directive.service_duration MINUTE
),
'%Y-%m-%d %H:%i:%s'
)
ELSE NULL
END as end_time,
p.create_by,
p.create_time,
p.update_by,
p.update_time,
p.sys_org_code
FROM (
SELECT base.*, elder.*
FROM nu_base_info base
LEFT JOIN nu_biz_elder_info elder ON base.elder_id = elder.id
) base_elder
CROSS JOIN (
SELECT inst.*, category.*, stype.*
FROM nu_config_service_instruction_tag inst
LEFT JOIN nu_config_service_category category ON inst.category_id = category.id
LEFT JOIN nu_config_service_type stype ON inst.type_id = stype.id
) config
WHERE p.nu_id = #{dto.nuId}
AND p.instruction_tag_id = #{dto.instructionTagId}
AND directive.id = #{dto.directiveId}
</select>
</mapper>

View File

@ -21,6 +21,7 @@ import com.nu.modules.order.api.IDirectiveOrderApi;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.vo.LoginUser;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -76,20 +77,15 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
* @return
*/
@Override
public IPage<DirectiveOrderEntity> queryOrderList(Integer pageNo, Integer pageSize, DirectiveOrderEntity directiveOrderEntity, HttpServletRequest req) {
Page<DirectiveOrder> page = new Page<>(pageNo, pageSize);
public List<DirectiveOrderEntity> queryOrderList(DirectiveOrderEntity directiveOrderEntity, HttpServletRequest req) {
// 查询原始数据
IPage<DirectiveOrderEntity> resultPage = baseMapper.queryOrderList(page, directiveOrderEntity);
List<DirectiveOrderEntity> records = resultPage.getRecords();
List<DirectiveOrderEntity> list = baseMapper.queryOrderList(directiveOrderEntity);
// 处理数据将指令集合并
List<DirectiveOrderEntity> processedRecords = mergeDirectiveSet(records);
List<DirectiveOrderEntity> result = mergeDirectiveSet(list);
// 重新设置处理后的数据
resultPage.setRecords(processedRecords);
return resultPage;
return result;
}
/**
@ -181,23 +177,35 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
@Override
public Map<String, Object> startOrder(DirectiveOrderEntity directiveOrderEntity) {
Map<String, Object> map = new HashMap<>();
map.put("success", true);
map.put("message", "操作成功");
//服务指令集统一开始
DirectiveOrder directiveOrder = baseMapper.selectById(directiveOrderEntity.getId());
//如果已到服务结束时间 不允许点击开始
if (directiveOrder.getServEndTime().before(new Date())) {
map.put("success", false);
map.put("message", "当前服务已超时,不可执行");
return map;
}
UpdateWrapper<DirectiveOrder> uw = new UpdateWrapper<>();
uw.eq("serv_start_time", directiveOrder.getServStartTime());
directiveOrder.setEmpStartTime(new Date());
if (StringUtils.isEmpty(directiveOrder.getEmployeeIds())) {
//如果未进行转单协助等操作此时实际执行人字段都为空 需将实际执行人设置为派单时派发的员工
directiveOrder.setEmployeeIds(directiveOrder.getEmployeeId());
directiveOrder.setEmployeeNames(directiveOrder.getEmployeeNames());
}
baseMapper.updateById(directiveOrder);
baseMapper.update(directiveOrder, uw);
// QueryWrapper<DirectiveOrderInfo> queryWrapper = new QueryWrapper<>();
// List<DirectiveOrderInfo> list = directiveOrderInfoMapper.selectList(queryWrapper);
Map<String, Object> map = new HashMap<>();
map.put("success", true);
map.put("message", "操作成功");
map.put("directiveOrder", directiveOrder);
// map.put("directiveOrder", directiveOrder);
// map.put("directiveOrderInfo", list);
return map;
}
@ -205,20 +213,16 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
@Override
public Map<String, Object> endOrder(DirectiveOrderEntity directiveOrderEntity) {
DirectiveOrder directiveOrder = baseMapper.selectById(directiveOrderEntity.getId());
directiveOrder.setIzFinish("Y");
directiveOrder.setFinishTime(new Date());
DirectiveOrder directivePrice = baseMapper.getDirectivePrice(directiveOrder.getDirectiveId());//获取服务指令价格
directiveOrder.setTollPrice(directivePrice.getTollPrice());
directiveOrder.setComPrice(directivePrice.getComPrice());
directiveOrder.setEmpEndTime(new Date());
baseMapper.updateById(directiveOrder);
List<DirectiveOrderInfo> list = directiveOrderInfoMapper.selectList(new QueryWrapper<DirectiveOrderInfo>().eq("main_id", directiveOrder.getId()));
// List<DirectiveOrderInfo> list = directiveOrderInfoMapper.selectList(new QueryWrapper<DirectiveOrderInfo>().eq("main_id", directiveOrder.getId()));
Map<String, Object> map = new HashMap<>();
map.put("success", true);
map.put("message", "操作成功");
map.put("directiveOrder", directiveOrder);
map.put("directiveOrderInfo", list);
// map.put("directiveOrder", directiveOrder);
// map.put("directiveOrderInfo", list);
return map;
}
@ -317,6 +321,89 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
return map;
}
@Override
public Result<String> transferOrder(DirectiveOrderInfoEntity dto) {
//服务指令集转单 一起转
DirectiveOrder beforeData = baseMapper.selectById(dto.getId());
//如果已到服务结束时间 不允许转单
if (beforeData.getServStartTime().before(new Date())) {
return Result.error("当前服务已开始,不可转单");
}
UpdateWrapper<DirectiveOrder> uw = new UpdateWrapper<>();
uw.eq("serv_start_time", beforeData.getServStartTime());
String optType = "3";//转单
DirectiveOrder upData = new DirectiveOrder();
//执行类型
upData.setOptType(optType);
//实际执行人
upData.setEmployeeIds(dto.getEmployeeId());
upData.setEmployeeNames(dto.getEmployeeName());
//修改主表
baseMapper.update(upData, uw);
//日志
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
DirectiveOrderLogEntity log = new DirectiveOrderLogEntity();
log.setOrderNo(dto.getId());//服务指令工单id
log.setOptType("转单");//操作描述
log.setOptBy(sysUser.getEmployeesId());//操作人employeeId
log.setOptByName(sysUser.getRealname());//操作人名
log.setBeforeChange(StringUtils.isBlank(beforeData.getEmployeeIds()) ? beforeData.getEmployeeId() : beforeData.getEmployeeIds());//操作前人
log.setBeforeChangeName(StringUtils.isBlank(beforeData.getEmployeeNames()) ? beforeData.getEmployeeName() : beforeData.getEmployeeNames());//操作前人名
log.setAfterChange(dto.getEmployeeId());//操作后人
log.setAfterChangeName(dto.getEmployeeName());//操作后人名
directiveOrderLogApi.addLog(log);
return Result.ok("操作成功");
}
@Override
public Result<String> assistOrder(DirectiveOrderInfoEntity dto) {
//服务指令集协助执行 统一协助
DirectiveOrder beforeData = baseMapper.selectById(dto.getId());
//如果已到服务结束时间 不允许转单
if (beforeData.getServStartTime().before(new Date())) {
return Result.error("当前服务已开始,不可协助执行");
}
UpdateWrapper<DirectiveOrder> uw = new UpdateWrapper<>();
uw.eq("serv_start_time", beforeData.getServStartTime());
String optType = "2";//协助执行
DirectiveOrder upData = new DirectiveOrder();
//执行类型
upData.setOptType(optType);
//实际执行人
upData.setEmployeeIds(dto.getEmployeeId());
upData.setEmployeeNames(dto.getEmployeeName());
//修改主表
baseMapper.update(upData, uw);
//日志
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
DirectiveOrderLogEntity log = new DirectiveOrderLogEntity();
log.setOrderNo(dto.getId());//服务指令工单id
log.setOptType("协助执行");//操作描述
log.setOptBy(sysUser.getEmployeesId());//操作人employeeId
log.setOptByName(sysUser.getRealname());//操作人名
log.setBeforeChange(StringUtils.isBlank(beforeData.getEmployeeIds()) ? beforeData.getEmployeeId() : beforeData.getEmployeeIds());//操作前人
log.setBeforeChangeName(StringUtils.isBlank(beforeData.getEmployeeNames()) ? beforeData.getEmployeeName() : beforeData.getEmployeeNames());//操作前人名
log.setAfterChange(dto.getEmployeeId());//操作后人
log.setAfterChangeName(dto.getEmployeeName());//操作后人名
directiveOrderLogApi.addLog(log);
return Result.ok("操作成功");
}
/**
* 生成即时服务指令工单
*
@ -324,82 +411,16 @@ public class DirectiveOrderPadServiceImpl extends ServiceImpl<DirectiveOrderMapp
* @return
*/
@Override
public Map<String, Object> generateOrdersInstant(DirectiveOrderEntity directiveOrderEntity) {
DirectiveOrder directiveOrder = new DirectiveOrder();
BeanUtils.copyProperties(directiveOrderEntity, directiveOrder);
return directiveOrderService.generateOrdersInstant(directiveOrder);
}
public Result<String> generateOrdersInstant(DirectiveOrderEntity directiveOrderEntity) {
String nuId = directiveOrderEntity.getNuId();
String instructionId = directiveOrderEntity.getInstructionId();
String directiveId = directiveOrderEntity.getDirectiveId();
@Override
public void transferOrder(DirectiveOrderInfoEntity dto) {
DirectiveOrder main = new DirectiveOrder();
String optType = "3";//转单
//执行类型
main.setOptType(optType);
//主要执行人
main.setEmployeeIds(dto.getEmployeeId());
main.setEmployeeNames(dto.getEmployeeName());
//实际执行人
main.setOptIds(dto.getEmployeeId());
main.setOptNames(dto.getEmployeeName());
//修改主表
main.setId(dto.getMainId());
directiveOrderService.updateById(main);
//日志
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
DirectiveOrderLogEntity log = new DirectiveOrderLogEntity();
log.setOrderNo(dto.getMainId());//服务指令工单id
log.setOptType("转单");//操作描述
log.setOptBy(sysUser.getEmployeesId());//操作人employeeId
log.setOptByName(sysUser.getRealname());//操作人名
log.setBeforeChange(dto.getBeforeBy());//操作前人
log.setBeforeChangeName(dto.getBeforeByName());//操作前人名
log.setAfterChange(dto.getEmployeeId());//操作后人
log.setAfterChangeName(dto.getEmployeeName());//操作后人名
directiveOrderLogApi.addLog(log);
}
@Override
public void assistOrder(DirectiveOrderInfoEntity dto) {
DirectiveOrder main = new DirectiveOrder();
DirectiveOrderInfo sub = new DirectiveOrderInfo();
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<DirectiveOrderInfo> subUW = new UpdateWrapper<>();
subUW.eq("main_id", dto.getMainId());
directiveOrderInfoMapper.update(sub, subUW);
//日志
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
DirectiveOrderLogEntity log = new DirectiveOrderLogEntity();
log.setOrderNo(dto.getMainId());//服务指令工单id
log.setOptType("协助执行");//操作描述
log.setOptBy(sysUser.getEmployeesId());//操作人employeeId
log.setOptByName(sysUser.getRealname());//操作人名
log.setBeforeChange(dto.getBeforeBy());//操作前人
log.setBeforeChangeName(dto.getBeforeByName());//操作前人名
log.setAfterChange(dto.getOptIds());//操作后人
log.setAfterChangeName(dto.getOptNames());//操作后人名
directiveOrderLogApi.addLog(log);
return Result.OK("派发成功,执行员工:");
// DirectiveOrder directiveOrder = new DirectiveOrder();
// BeanUtils.copyProperties(directiveOrderEntity, directiveOrder);
// return directiveOrderService.generateOrdersInstant(directiveOrder);
}
@Override

View File

@ -162,86 +162,99 @@
)
</select>
<select id="list" resultType="com.nu.modules.biz.plan.care.entity.CareDirectivePlan" flushCache="true"
useCache="false">
SELECT
plan.id,
plan.nu_id,
<select id="list" resultMap="DirectiveOrderMap">
SELECT p.id,
p.nu_id,
base.nu_name,
CASE WHEN plan.iz_package = 'N' THEN directive.category_id ELSE NULL END as category_id,
CASE WHEN plan.iz_package = 'N' THEN category.category_name ELSE NULL END as category_name,
CASE WHEN plan.iz_package = 'N' THEN directive.type_id ELSE NULL END as type_id,
CASE WHEN plan.iz_package = 'N' THEN stype.type_name ELSE NULL END as type_name,
plan.directive_id,
CASE
WHEN plan.iz_package = 'N' THEN directive.directive_name
WHEN plan.iz_package = 'Y' THEN package.package_name
END as directive_name,
plan.cycle_type_id,
plan.cycle_value,
CASE WHEN plan.iz_package = 'N' THEN directive.immediate_file ELSE NULL END as immediate_file,
CASE WHEN plan.iz_package = 'N' THEN directive.immediate_file_focus ELSE NULL END as immediate_file_focus,
CASE WHEN plan.iz_package = 'N' THEN directive.preview_file ELSE NULL END as preview_file,
CASE WHEN plan.iz_package = 'N' THEN directive.preview_file_small ELSE NULL END as preview_file_small,
CASE WHEN plan.iz_package = 'N' THEN directive.mp3_file ELSE NULL END as mp3_file,
CASE WHEN plan.iz_package = 'N' THEN directive.mp4_file ELSE NULL END as mp4_file,
CASE
WHEN plan.iz_package = 'N' THEN directive.service_duration
WHEN plan.iz_package = 'Y' THEN CAST(package.total_duration AS CHAR)
END as service_duration,
CASE
WHEN plan.iz_package = 'N' THEN directive.service_content
WHEN plan.iz_package = 'Y' THEN package.description
END as service_content,
plan.positioning,
plan.positioning_long,
plan.tag_name,
plan.start_time,
CASE
WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL AND directive.service_duration = 0
THEN '23:59'
WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL AND package.total_duration = 0
THEN '23:59'
WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL AND directive.service_duration > 0
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'),SEC_TO_TIME(directive.service_duration * 60)),
'%H:%i')
WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL AND package.total_duration > 0
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'),SEC_TO_TIME(package.total_duration * 60)),
'%H:%i')
ELSE NULL
END as end_time,
plan.create_by,
plan.create_time,
plan.update_by,
plan.update_time,
plan.sys_org_code,
plan.iz_package
FROM nu_biz_directive_plan plan
LEFT JOIN nu_base_info base ON plan.nu_id = base.nu_id
LEFT JOIN nu_config_service_directive directive ON plan.iz_package = 'N' AND plan.directive_id = directive.id
LEFT JOIN nu_config_directive_package_main package ON plan.iz_package = 'Y' AND plan.directive_id = package.id
p.instruction_tag_id,
inst.instruction_name,
directive.category_id,
category.category_name,
directive.type_id,
stype.type_name,
p.directive_id,
directive.directive_name,
p.cycle_type_id,
p.cycle_value,
p.opt_time,
p.opt_count,
p.iz_multi,
directive.immediate_file,
directive.immediate_file_focus,
directive.preview_file,
directive.preview_file_small,
directive.mp3_file,
directive.mp4_file,
directive.service_duration,
directive.service_content,
p.positioning,
p.positioning_long,
p.tag_name
<if test="dto != null and dto.queryDate != null and dto.queryDate != ''">
,
CONCAT(
DATE_FORMAT(#{dto.queryDate}, '%Y-%m-%d'), ' ',
p.start_time, ':00'
) as start_time,
CASE
WHEN directive.service_duration IS NOT NULL
THEN DATE_FORMAT(
DATE_ADD(
STR_TO_DATE(CONCAT(DATE_FORMAT(#{dto.queryDate}, '%Y-%m-%d'), ' ', p.start_time, ':00'),
'%Y-%m-%d %H:%i:%s'),
INTERVAL directive.service_duration MINUTE
),
'%Y-%m-%d %H:%i:%s'
)
ELSE NULL
END as end_time
</if>
,
p.create_by,
p.create_time,
p.update_by,
p.update_time,
p.sys_org_code
FROM nu_biz_directive_plan p
LEFT JOIN nu_base_info base ON p.nu_id = base.nu_id
LEFT JOIN nu_config_service_directive directive ON p.directive_id = directive.id
LEFT JOIN nu_config_service_instruction_tag inst ON directive.instruction_tag_id = inst.id
LEFT JOIN nu_config_service_category category ON directive.category_id = category.id
LEFT JOIN nu_config_service_type stype ON directive.type_id = stype.id
WHERE 1=1
WHERE 1 = 1
<if test="dto != null and dto.nuId != null and dto.nuId != ''">
AND plan.nu_id = #{dto.nuId}
AND p.nu_id = #{dto.nuId}
</if>
<if test="dto != null and dto.instructionTagId != null and dto.instructionTagId != ''">
AND plan.instruction_tag_id = #{dto.instructionTagId}
AND p.instruction_tag_id = #{dto.instructionTagId}
</if>
<if test="dto != null and dto.queryType != null and dto.queryType != ''">
<choose>
<when test="dto.queryType == 'service'">
AND plan.cycle_type_id != '2'
AND p.cycle_type_id != '2'
</when>
<when test="dto.queryType == 'instant'">
AND plan.cycle_type_id = '2'
AND p.cycle_type_id = '2'
</when>
</choose>
</if>
<if test="dto != null and dto.queryDate != null and dto.queryDate != ''">
AND CONCAT(DATE_FORMAT(#{dto.queryDate}, '%Y-%m-%d'), ' ', p.start_time, ':00') >= #{dto.queryDate}
</if>
ORDER BY p.nu_id ASC, p.instruction_tag_id ASC
<if test="dto != null and dto.queryType != null and dto.queryType != ''">
<choose>
<when test="dto.queryType == 'service'">
, start_time ASC
</when>
<when test="dto.queryType == 'instant'">
, directive.directive_name ASC
</when>
</choose>
</if>
ORDER BY plan.create_time DESC
</select>
<select id="queryFuture" resultMap="DirectiveOrderMap">
SELECT
p.id,