1)去除镜像、镜像日志、标准指令库功能

2)去除标准指令库概念先关逻辑及显示内容
	3)增加操作日志功能:可查看所有业务机构服务指令新增/变更日志。新增数据查看详情时可查看当时添加的字段内容及资源内容、变更数据查看详情时可比对变更前后各字段及资源的内容。操作日志列表页可根据机构、操作类型进行筛选
	4)增加镜像日志功能:可查看业务机构使用镜像码镜像指令时的日志,列表页可根据发起机构、被镜像机构、镜像日期、镜像码进行筛选;点击对应数据详情时可查看单次镜像了哪些指令
This commit is contained in:
1378012178@qq.com 2025-12-23 10:58:50 +08:00
parent c60e797383
commit ef9c5d7b47
17 changed files with 1017 additions and 0 deletions

View File

@ -0,0 +1,77 @@
package com.nu.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Description: 服务指令操作日志详情表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
@Data
public class DirectiveOpeLogInfoMQDto implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
private String id;
/**nu_config_directive_ope_log_main.id*/
private String pkId;
/**分类标签*/
private String instructionTagId;
/**分类标签名称*/
private String instructionTagName;
/**服务类别id*/
private String categoryId;
/**服务类别名称*/
private String categoryName;
/**服务类型id*/
private String typeId;
/**服务类型名称*/
private String typeName;
/**服务指令id*/
private String directiveId;
/**服务指令名称*/
private String directiveName;
/**收费价格*/
private BigDecimal tollPrice;
/**提成价格*/
private BigDecimal comPrice;
/**周期类型 1日常护理 2周期护理 3即时护理*/
private String cycleType;
/**服务说明*/
private String serviceContent;
/**服务时长(分钟)*/
private String serviceDuration;
/**所属部门*/
private String sysOrgCode;
/**语音文件*/
private String mp3File;
/**视频文件*/
private String mp4File;
/**服务指令图片大图*/
private String previewFile;
/**服务指令图片小图*/
private String previewFileSmall;
/**即时指令图片*/
private String immediateFile;
/**即时指令焦点图片*/
private String immediateFileFocus;
/**创建日期*/
private Date createTime;
/**数据类型 1修改前 2修改后*/
private String dataType;
}

View File

@ -0,0 +1,52 @@
package com.nu.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Description: 服务指令操作日志主表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
@Data
public class DirectiveOpeLogMainMQDto implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
private String id;
/**机构编码*/
private String orgCode;
/**操作类型 1新增 2修改*/
private String opeType;
/**操作人*/
private String createBy;
/**操作日期*/
private Date createTime;
/**分类标签名称*/
private String instructionTagName;
/**服务类别名称*/
private String categoryName;
/**服务类型名称*/
private String typeName;
/**服务指令名称*/
private String directiveName;
/**周期类型名称*/
private String cycleTypeName;
private List<DirectiveOpeLogInfoMQDto> opeInfoList;
}

View File

@ -0,0 +1,116 @@
package com.nu.dto;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Description: 服务指令镜像日志详情表
* @Author: jeecg-boot
* @Date: 2025-12-19
* @Version: V1.0
*/
@Data
@TableName("nu_config_directive_sync_log_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "nu_config_directive_sync_log_info对象", description = "服务指令镜像日志详情表")
public class DirectiveSyncLogInfoMQDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
private String id;
private String pkId;
/**
* 分类标签
*/
private String instructionTagId;
/**
* 分类标签
*/
private String instructionTagName;
/**
* 服务类别id
*/
private String categoryId;
/**
* 服务类别id
*/
private String categoryName;
/**
* 服务类型id
*/
private String typeId;
/**
* 服务类型id
*/
private String typeName;
/**
* 服务指令id
*/
private String directiveId;
/**
* 服务指令名称
*/
private String directiveName;
/**
* 收费价格
*/
private BigDecimal tollPrice;
/**
* 提成价格
*/
private BigDecimal comPrice;
/**
* 周期类型 1日常护理 2周期护理 3即时护理
*/
private String cycleType;
/**
* 服务说明
*/
private String serviceContent;
/**
* 服务时长分钟
*/
private String serviceDuration;
/**
* 所属部门
*/
private String sysOrgCode;
/**
* 语音文件
*/
private String mp3File;
/**
* 视频文件
*/
private String mp4File;
/**
* 服务指令图片大图
*/
private String previewFile;
/**
* 服务指令图片小图
*/
private String previewFileSmall;
/**
* 即时指令图片
*/
private String immediateFile;
/**
* 即时指令焦点图片
*/
private String immediateFileFocus;
/**
* 创建日期
*/
private Date createTime;
}

View File

@ -0,0 +1,45 @@
package com.nu.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Description: 服务指令镜像日志主表
* @Author: jeecg-boot
* @Date: 2025-12-19
* @Version: V1.0
*/
@Data
public class DirectiveSyncLogMainMQDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
private String id;
/**
* 哪个机构镜像的
*/
private String opeOrgCode;
/**
* 镜像的哪个机构的指令
*/
private String targetOrgCode;
/**
* 指令镜像码
*/
private String orgDirectiveCode;
/**
* 创建人
*/
private String createBy;
/**
* 创建日期
*/
private Date createTime;
private List<DirectiveSyncLogInfoMQDto> syncInfoList;
}

View File

@ -0,0 +1,180 @@
package com.nu.modules.directiveopelog.controller;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.query.QueryRuleEnum;
import org.jeecg.common.util.oConvertUtils;
import com.nu.modules.directiveopelog.entity.DirectiveOpeLogInfo;
import com.nu.modules.directiveopelog.service.IDirectiveOpeLogInfoService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: 服务指令操作日志详情表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
@Api(tags="服务指令操作日志详情表")
@RestController
@RequestMapping("/directiveopelog/directiveOpeLogInfo")
@Slf4j
public class DirectiveOpeLogInfoController extends JeecgController<DirectiveOpeLogInfo, IDirectiveOpeLogInfoService> {
@Autowired
private IDirectiveOpeLogInfoService directiveOpeLogInfoService;
/**
* 分页列表查询
*
* @param directiveOpeLogInfo
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "服务指令操作日志详情表-分页列表查询")
@ApiOperation(value="服务指令操作日志详情表-分页列表查询", notes="服务指令操作日志详情表-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<DirectiveOpeLogInfo>> queryPageList(DirectiveOpeLogInfo directiveOpeLogInfo,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<DirectiveOpeLogInfo> queryWrapper = QueryGenerator.initQueryWrapper(directiveOpeLogInfo, req.getParameterMap());
Page<DirectiveOpeLogInfo> page = new Page<DirectiveOpeLogInfo>(pageNo, pageSize);
IPage<DirectiveOpeLogInfo> pageList = directiveOpeLogInfoService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param directiveOpeLogInfo
* @return
*/
@AutoLog(value = "服务指令操作日志详情表-添加")
@ApiOperation(value="服务指令操作日志详情表-添加", notes="服务指令操作日志详情表-添加")
@RequiresPermissions("directiveopelog:nu_config_directive_ope_log_info:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody DirectiveOpeLogInfo directiveOpeLogInfo) {
directiveOpeLogInfoService.save(directiveOpeLogInfo);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param directiveOpeLogInfo
* @return
*/
@AutoLog(value = "服务指令操作日志详情表-编辑")
@ApiOperation(value="服务指令操作日志详情表-编辑", notes="服务指令操作日志详情表-编辑")
@RequiresPermissions("directiveopelog:nu_config_directive_ope_log_info:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody DirectiveOpeLogInfo directiveOpeLogInfo) {
directiveOpeLogInfoService.updateById(directiveOpeLogInfo);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "服务指令操作日志详情表-通过id删除")
@ApiOperation(value="服务指令操作日志详情表-通过id删除", notes="服务指令操作日志详情表-通过id删除")
@RequiresPermissions("directiveopelog:nu_config_directive_ope_log_info:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
directiveOpeLogInfoService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "服务指令操作日志详情表-批量删除")
@ApiOperation(value="服务指令操作日志详情表-批量删除", notes="服务指令操作日志详情表-批量删除")
@RequiresPermissions("directiveopelog:nu_config_directive_ope_log_info:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.directiveOpeLogInfoService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "服务指令操作日志详情表-通过id查询")
@ApiOperation(value="服务指令操作日志详情表-通过id查询", notes="服务指令操作日志详情表-通过id查询")
@GetMapping(value = "/queryById")
public Result<DirectiveOpeLogInfo> queryById(@RequestParam(name="id",required=true) String id) {
DirectiveOpeLogInfo directiveOpeLogInfo = directiveOpeLogInfoService.getById(id);
if(directiveOpeLogInfo==null) {
return Result.error("未找到对应数据");
}
return Result.OK(directiveOpeLogInfo);
}
/**
* 导出excel
*
* @param request
* @param directiveOpeLogInfo
*/
@RequiresPermissions("directiveopelog:nu_config_directive_ope_log_info:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, DirectiveOpeLogInfo directiveOpeLogInfo) {
return super.exportXls(request, directiveOpeLogInfo, DirectiveOpeLogInfo.class, "服务指令操作日志详情表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("directiveopelog:nu_config_directive_ope_log_info:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, DirectiveOpeLogInfo.class);
}
}

View File

@ -0,0 +1,185 @@
package com.nu.modules.directiveopelog.controller;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.query.QueryRuleEnum;
import org.jeecg.common.util.oConvertUtils;
import com.nu.modules.directiveopelog.entity.DirectiveOpeLogMain;
import com.nu.modules.directiveopelog.service.IDirectiveOpeLogMainService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: 服务指令操作日志主表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
@Api(tags="服务指令操作日志主表")
@RestController
@RequestMapping("/directiveopelog/directiveOpeLogMain")
@Slf4j
public class DirectiveOpeLogMainController extends JeecgController<DirectiveOpeLogMain, IDirectiveOpeLogMainService> {
@Autowired
private IDirectiveOpeLogMainService directiveOpeLogMainService;
/**
* 分页列表查询
*
* @param directiveOpeLogMain
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "服务指令操作日志主表-分页列表查询")
@ApiOperation(value="服务指令操作日志主表-分页列表查询", notes="服务指令操作日志主表-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<DirectiveOpeLogMain>> queryPageList(DirectiveOpeLogMain directiveOpeLogMain,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
// 自定义查询规则
Map<String, QueryRuleEnum> customeRuleMap = new HashMap<>();
// 自定义多选的查询规则为LIKE_WITH_OR
customeRuleMap.put("orgCode", QueryRuleEnum.LIKE_WITH_OR);
customeRuleMap.put("opeType", QueryRuleEnum.LIKE_WITH_OR);
QueryWrapper<DirectiveOpeLogMain> queryWrapper = QueryGenerator.initQueryWrapper(directiveOpeLogMain, req.getParameterMap(),customeRuleMap);
Page<DirectiveOpeLogMain> page = new Page<DirectiveOpeLogMain>(pageNo, pageSize);
IPage<DirectiveOpeLogMain> pageList = directiveOpeLogMainService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param directiveOpeLogMain
* @return
*/
@AutoLog(value = "服务指令操作日志主表-添加")
@ApiOperation(value="服务指令操作日志主表-添加", notes="服务指令操作日志主表-添加")
@RequiresPermissions("directiveopelog:nu_config_directive_ope_log_main:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody DirectiveOpeLogMain directiveOpeLogMain) {
directiveOpeLogMainService.save(directiveOpeLogMain);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param directiveOpeLogMain
* @return
*/
@AutoLog(value = "服务指令操作日志主表-编辑")
@ApiOperation(value="服务指令操作日志主表-编辑", notes="服务指令操作日志主表-编辑")
@RequiresPermissions("directiveopelog:nu_config_directive_ope_log_main:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody DirectiveOpeLogMain directiveOpeLogMain) {
directiveOpeLogMainService.updateById(directiveOpeLogMain);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "服务指令操作日志主表-通过id删除")
@ApiOperation(value="服务指令操作日志主表-通过id删除", notes="服务指令操作日志主表-通过id删除")
@RequiresPermissions("directiveopelog:nu_config_directive_ope_log_main:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
directiveOpeLogMainService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "服务指令操作日志主表-批量删除")
@ApiOperation(value="服务指令操作日志主表-批量删除", notes="服务指令操作日志主表-批量删除")
@RequiresPermissions("directiveopelog:nu_config_directive_ope_log_main:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.directiveOpeLogMainService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "服务指令操作日志主表-通过id查询")
@ApiOperation(value="服务指令操作日志主表-通过id查询", notes="服务指令操作日志主表-通过id查询")
@GetMapping(value = "/queryById")
public Result<DirectiveOpeLogMain> queryById(@RequestParam(name="id",required=true) String id) {
DirectiveOpeLogMain directiveOpeLogMain = directiveOpeLogMainService.getById(id);
if(directiveOpeLogMain==null) {
return Result.error("未找到对应数据");
}
return Result.OK(directiveOpeLogMain);
}
/**
* 导出excel
*
* @param request
* @param directiveOpeLogMain
*/
@RequiresPermissions("directiveopelog:nu_config_directive_ope_log_main:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, DirectiveOpeLogMain directiveOpeLogMain) {
return super.exportXls(request, directiveOpeLogMain, DirectiveOpeLogMain.class, "服务指令操作日志主表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("directiveopelog:nu_config_directive_ope_log_main:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, DirectiveOpeLogMain.class);
}
}

View File

@ -0,0 +1,134 @@
package com.nu.modules.directiveopelog.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import org.jeecg.common.constant.ProvinceCityArea;
import org.jeecg.common.util.SpringContextUtils;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 服务指令操作日志详情表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
@Data
@TableName("nu_config_directive_ope_log_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="nu_config_directive_ope_log_info对象", description="服务指令操作日志详情表")
public class DirectiveOpeLogInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private String id;
/**nu_config_directive_ope_log_main.id*/
@Excel(name = "nu_config_directive_ope_log_main.id", width = 15)
@ApiModelProperty(value = "nu_config_directive_ope_log_main.id")
private String pkId;
/**分类标签*/
@Excel(name = "分类标签", width = 15)
@ApiModelProperty(value = "分类标签")
private String instructionTagId;
/**分类标签名称*/
@Excel(name = "分类标签名称", width = 15)
@ApiModelProperty(value = "分类标签名称")
private String instructionTagName;
/**服务类别id*/
@Excel(name = "服务类别id", width = 15)
@ApiModelProperty(value = "服务类别id")
private String categoryId;
/**服务类别名称*/
@Excel(name = "服务类别名称", width = 15)
@ApiModelProperty(value = "服务类别名称")
private String categoryName;
/**服务类型id*/
@Excel(name = "服务类型id", width = 15)
@ApiModelProperty(value = "服务类型id")
private String typeId;
/**服务类型名称*/
@Excel(name = "服务类型名称", width = 15)
@ApiModelProperty(value = "服务类型名称")
private String typeName;
/**服务指令id*/
@Excel(name = "服务指令id", width = 15)
@ApiModelProperty(value = "服务指令id")
private String directiveId;
/**服务指令名称*/
@Excel(name = "服务指令名称", width = 15)
@ApiModelProperty(value = "服务指令名称")
private String directiveName;
/**收费价格*/
@Excel(name = "收费价格", width = 15)
@ApiModelProperty(value = "收费价格")
private BigDecimal tollPrice;
/**提成价格*/
@Excel(name = "提成价格", width = 15)
@ApiModelProperty(value = "提成价格")
private BigDecimal comPrice;
/**周期类型 1日常护理 2周期护理 3即时护理*/
@Excel(name = "周期类型 1日常护理 2周期护理 3即时护理", width = 15)
@ApiModelProperty(value = "周期类型 1日常护理 2周期护理 3即时护理")
@Dict(dicCode = "period_type")
private String cycleType;
/**服务说明*/
@Excel(name = "服务说明", width = 15)
@ApiModelProperty(value = "服务说明")
private String serviceContent;
/**服务时长(分钟)*/
@Excel(name = "服务时长(分钟)", width = 15)
@ApiModelProperty(value = "服务时长(分钟)")
private String serviceDuration;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**语音文件*/
@Excel(name = "语音文件", width = 15)
@ApiModelProperty(value = "语音文件")
private String mp3File;
/**视频文件*/
@Excel(name = "视频文件", width = 15)
@ApiModelProperty(value = "视频文件")
private String mp4File;
/**服务指令图片大图*/
@Excel(name = "服务指令图片大图", width = 15)
@ApiModelProperty(value = "服务指令图片大图")
private String previewFile;
/**服务指令图片小图*/
@Excel(name = "服务指令图片小图", width = 15)
@ApiModelProperty(value = "服务指令图片小图")
private String previewFileSmall;
/**即时指令图片*/
@Excel(name = "即时指令图片", width = 15)
@ApiModelProperty(value = "即时指令图片")
private String immediateFile;
/**即时指令焦点图片*/
@Excel(name = "即时指令焦点图片", width = 15)
@ApiModelProperty(value = "即时指令焦点图片")
private String immediateFileFocus;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**数据类型 1修改前 2修改后*/
@Excel(name = "数据类型 1修改前 2修改后", width = 15)
@ApiModelProperty(value = "数据类型 1修改前 2修改后")
private String dataType;
}

View File

@ -0,0 +1,79 @@
package com.nu.modules.directiveopelog.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import org.jeecg.common.constant.ProvinceCityArea;
import org.jeecg.common.util.SpringContextUtils;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 服务指令操作日志主表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
@Data
@TableName("nu_config_directive_ope_log_main")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="nu_config_directive_ope_log_main对象", description="服务指令操作日志主表")
public class DirectiveOpeLogMain implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private String id;
/**机构编码*/
@Excel(name = "机构编码", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "org_code")
@Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "org_code")
@ApiModelProperty(value = "机构编码")
private String orgCode;
/**操作类型 1新增 2修改*/
@Excel(name = "操作类型 1新增 2修改", width = 15, dicCode = "directive_ope_type")
@Dict(dicCode = "directive_ope_type")
@ApiModelProperty(value = "操作类型 1新增 2修改")
private String opeType;
/**操作人*/
@ApiModelProperty(value = "操作人")
private String createBy;
/**操作日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "操作日期")
private Date createTime;
/**分类标签名称*/
@Excel(name = "分类标签名称", width = 15)
@ApiModelProperty(value = "分类标签名称")
private String instructionTagName;
/**服务类别名称*/
@Excel(name = "服务类别名称", width = 15)
@ApiModelProperty(value = "服务类别名称")
private String categoryName;
/**服务类型名称*/
@Excel(name = "服务类型名称", width = 15)
@ApiModelProperty(value = "服务类型名称")
private String typeName;
/**服务指令名称*/
@Excel(name = "服务指令名称", width = 15)
@ApiModelProperty(value = "服务指令名称")
private String directiveName;
/**周期类型名称*/
@Excel(name = "周期类型名称", width = 15)
@ApiModelProperty(value = "周期类型名称")
private String cycleTypeName;
}

View File

@ -0,0 +1,17 @@
package com.nu.modules.directiveopelog.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.nu.modules.directiveopelog.entity.DirectiveOpeLogInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 服务指令操作日志详情表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
public interface DirectiveOpeLogInfoMapper extends BaseMapper<DirectiveOpeLogInfo> {
}

View File

@ -0,0 +1,17 @@
package com.nu.modules.directiveopelog.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.nu.modules.directiveopelog.entity.DirectiveOpeLogMain;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 服务指令操作日志主表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
public interface DirectiveOpeLogMainMapper extends BaseMapper<DirectiveOpeLogMain> {
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.directiveopelog.mapper.DirectiveOpeLogInfoMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.directiveopelog.mapper.DirectiveOpeLogMainMapper">
</mapper>

View File

@ -0,0 +1,14 @@
package com.nu.modules.directiveopelog.service;
import com.nu.modules.directiveopelog.entity.DirectiveOpeLogInfo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 服务指令操作日志详情表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
public interface IDirectiveOpeLogInfoService extends IService<DirectiveOpeLogInfo> {
}

View File

@ -0,0 +1,14 @@
package com.nu.modules.directiveopelog.service;
import com.nu.modules.directiveopelog.entity.DirectiveOpeLogMain;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 服务指令操作日志主表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
public interface IDirectiveOpeLogMainService extends IService<DirectiveOpeLogMain> {
}

View File

@ -0,0 +1,19 @@
package com.nu.modules.directiveopelog.service.impl;
import com.nu.modules.directiveopelog.entity.DirectiveOpeLogInfo;
import com.nu.modules.directiveopelog.mapper.DirectiveOpeLogInfoMapper;
import com.nu.modules.directiveopelog.service.IDirectiveOpeLogInfoService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 服务指令操作日志详情表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
@Service
public class DirectiveOpeLogInfoServiceImpl extends ServiceImpl<DirectiveOpeLogInfoMapper, DirectiveOpeLogInfo> implements IDirectiveOpeLogInfoService {
}

View File

@ -0,0 +1,19 @@
package com.nu.modules.directiveopelog.service.impl;
import com.nu.modules.directiveopelog.entity.DirectiveOpeLogMain;
import com.nu.modules.directiveopelog.mapper.DirectiveOpeLogMainMapper;
import com.nu.modules.directiveopelog.service.IDirectiveOpeLogMainService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 服务指令操作日志主表
* @Author: jeecg-boot
* @Date: 2025-12-22
* @Version: V1.0
*/
@Service
public class DirectiveOpeLogMainServiceImpl extends ServiceImpl<DirectiveOpeLogMainMapper, DirectiveOpeLogMain> implements IDirectiveOpeLogMainService {
}

View File

@ -1,11 +1,14 @@
package com.nu.mq.directive.listener; package com.nu.mq.directive.listener;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
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.nu.dto.DirectiveAsyncMQDto; import com.nu.dto.DirectiveAsyncMQDto;
import com.nu.dto.DirectiveOpeLogMainMQDto;
import com.nu.dto.DirectiveSyncLogMainMQDto;
import com.nu.dto.StatusMQDto; import com.nu.dto.StatusMQDto;
import com.nu.enums.MQStatus; import com.nu.enums.MQStatus;
import com.nu.modules.async.entity.AsyncMain; import com.nu.modules.async.entity.AsyncMain;
@ -14,6 +17,14 @@ import com.nu.modules.async.service.IAsyncMainService;
import com.nu.modules.async.service.IAsyncStatusService; import com.nu.modules.async.service.IAsyncStatusService;
import com.nu.modules.canadddirective.entity.CanAddDirective; import com.nu.modules.canadddirective.entity.CanAddDirective;
import com.nu.modules.canadddirective.service.ICanAddDirectiveService; import com.nu.modules.canadddirective.service.ICanAddDirectiveService;
import com.nu.modules.directiveopelog.entity.DirectiveOpeLogInfo;
import com.nu.modules.directiveopelog.entity.DirectiveOpeLogMain;
import com.nu.modules.directiveopelog.service.IDirectiveOpeLogInfoService;
import com.nu.modules.directiveopelog.service.IDirectiveOpeLogMainService;
import com.nu.modules.directivesynclog.entity.DirectiveSyncLogInfo;
import com.nu.modules.directivesynclog.entity.DirectiveSyncLogMain;
import com.nu.modules.directivesynclog.service.IDirectiveSyncLogInfoService;
import com.nu.modules.directivesynclog.service.IDirectiveSyncLogMainService;
import com.nu.modules.directivetag.body.entity.DirectiveBodyTag; import com.nu.modules.directivetag.body.entity.DirectiveBodyTag;
import com.nu.modules.directivetag.body.entity.DirectiveBodyTagRelation; import com.nu.modules.directivetag.body.entity.DirectiveBodyTagRelation;
import com.nu.modules.directivetag.body.service.IDirectiveBodyTagService; import com.nu.modules.directivetag.body.service.IDirectiveBodyTagService;
@ -66,6 +77,14 @@ public class DirectiveMQListener {
private IDirectiveEmotionTagService emotionTagService; private IDirectiveEmotionTagService emotionTagService;
@Autowired @Autowired
private ICanAddDirectiveService canAddDirectiveService; private ICanAddDirectiveService canAddDirectiveService;
@Autowired
private IDirectiveSyncLogMainService directiveSyncLogMainService;
@Autowired
private IDirectiveSyncLogInfoService directiveSyncLogInfoService;
@Autowired
private IDirectiveOpeLogMainService directiveOpeLogMainService;
@Autowired
private IDirectiveOpeLogInfoService directiveOpeLogInfoService;
/** /**
* 其他平台新增指令 * 其他平台新增指令
@ -261,4 +280,24 @@ public class DirectiveMQListener {
asyncStatus.setMsg(dto.getMessage()); asyncStatus.setMsg(dto.getMessage());
asyncStatusService.updateById(asyncStatus); asyncStatusService.updateById(asyncStatus);
} }
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "fwzl.synccode.log"), exchange = @Exchange(name = "hldy.fwzl", type = ExchangeTypes.DIRECT), key = "fwzl.synccode.log"), errorHandler = "directiveMQErrorHandler")
public void handleDirectiveSyncLog(DirectiveSyncLogMainMQDto dto) {
DirectiveSyncLogMain main = new DirectiveSyncLogMain();
BeanUtils.copyProperties(dto,main);
directiveSyncLogMainService.save(main);
List<DirectiveSyncLogInfo> infoList = BeanUtil.copyToList(dto.getSyncInfoList(), DirectiveSyncLogInfo.class);
directiveSyncLogInfoService.saveBatch(infoList);
}
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.directive.ope"), exchange = @Exchange(name = "hldy.directive", type = ExchangeTypes.DIRECT), key = "hldy.directive.ope"), errorHandler = "directiveMQErrorHandler")
public void handleDirectiveOpeLog(DirectiveOpeLogMainMQDto dto) {
DirectiveOpeLogMain main = new DirectiveOpeLogMain();
BeanUtils.copyProperties(dto,main);
directiveOpeLogMainService.save(main);
List<DirectiveOpeLogInfo> infoList = BeanUtil.copyToList(dto.getOpeInfoList(), DirectiveOpeLogInfo.class);
directiveOpeLogInfoService.saveBatch(infoList);
}
} }