1、服务考核结束后新增员工薪资数据(计算提成价格)

2、员工薪资
This commit is contained in:
1378012178@qq.com 2026-03-04 16:44:18 +08:00
parent 5b29851955
commit 8663d3ca31
15 changed files with 1148 additions and 102 deletions

View File

@ -0,0 +1,148 @@
package com.nu.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Description: 员工薪资明细
* @Author: jeecg-boot
* @Date: 2026-03-04
* @Version: V1.0
*/
@Data
public class EmployeesSalaryInfoEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**ID*/
private String id;
/**主表id*/
private String mainId;
/**单号*/
private String orderNo;
/**工单类型 1护理;2医疗:3仓库;4行政*/
private String orderType;
/**护理单元IDnu_base_info.id*/
@Dict(dictTable = "nu_base_info", dicText = "nu_name", dicCode = "nu_id")
private String nuId;
/**护理单元名称*/
private String nuName;
/**长者IDnu_biz_elder_info.id*/
private String elderId;
/**长者名称*/
private String elderName;
/**员工ID*/
private String employeeId;
/**员工姓名*/
private String employeeName;
/**分类标签*/
@Dict(dictTable = "nu_config_service_instruction_tag", dicText = "instruction_name", dicCode = "id")
private String instructionTagId;
/**分类标签名称*/
private String instructionTagName;
/**服务类别IDnu_config_service_category.id*/
@Dict(dictTable = "nu_config_service_category", dicText = "category_name", dicCode = "id")
private String categoryId;
/**服务类别名称*/
private String categoryName;
/**服务类型IDnu_config_service_type.id*/
@Dict(dictTable = "nu_config_service_type", dicText = "type_name", dicCode = "id")
private String typeId;
/**服务属性 ds定时 js计时*/
@Dict(dicCode = "service_attribute")
private String serviceAttribute;
/**服务类型名称*/
private String typeName;
/**服务指令IDnu_config_service_directive.id*/
private String directiveId;
/**服务指令名称*/
private String directiveName;
/**周期类型ID*/
private String cycleTypeId;
/**周期类型*/
private String cycleType;
/**周期值*/
private String cycleValue;
/**服务时长(分钟)*/
private String serviceDuration;
/**服务说明*/
private String serviceContent;
/**收费价格*/
private BigDecimal tollPrice;
/**提成价格*/
private BigDecimal comPrice;
/**标签总价格*/
private BigDecimal tagTotalPrice;
/**应收提成价格*/
private BigDecimal ysComPrice;
/**实收提成价格*/
private BigDecimal realComPrice;
/**服务指令包ID*/
private String packageId;
/**服务指令包名称*/
private String packageName;
/**是否是服务指令包 Y是 N否*/
private String izPackage;
/**开始时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date startTime;
/**结束时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**实际开始时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date beginTime;
/**实际结束时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date finishTime;
/**是否开始 Y是 N否*/
private String izStart;
/**是否完成 Y是 N否*/
private String izFinish;
/**创建人*/
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**更新人*/
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**tplink下载地址*/
private String tplinkPath;
/**手动拍照*/
private String manuallyPicPath;
/**手动录制*/
private String manuallyMp4Path;
/**执行类型 1单人 2协助 3转单*/
@Dict(dicCode = "directive_order_opt_type")
private String optType;
/**执行状态 1正常 2未执行 3超时*/
@Dict(dicCode = "directive_order_opt_status")
private String optStatus;
/**实际执行人id多个 主要执行人+协助人*/
private String optIds;
/**实际执行人名称(多个); 主要执行人+协助人*/
private String optNames;
/**审核状态 0待审核 1通过 2未通过*/
@Dict(dicCode = "appraisal_status")
private String status;
/**驳回原因*/
private String content;
/**撤回人(汉字)*/
private String revocation;
/**撤回时间*/
private Date revocationTime;
}

View File

@ -0,0 +1,9 @@
package com.nu.modules;
import com.nu.entity.EmployeesSalaryInfoEntity;
import java.util.List;
public interface IEmployeesSalaryApi {
void auditFinish(List<EmployeesSalaryInfoEntity> data);
}

View File

@ -0,0 +1,174 @@
package com.nu.modules.salary.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.salary.entity.EmployeesSalaryInfo;
import com.nu.modules.salary.service.IEmployeesSalaryInfoService;
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: 2026-03-04
* @Version: V1.0
*/
@Api(tags="员工薪资明细")
@RestController
@RequestMapping("/salary/employeesSalaryInfo")
@Slf4j
public class EmployeesSalaryInfoController extends JeecgController<EmployeesSalaryInfo, IEmployeesSalaryInfoService> {
@Autowired
private IEmployeesSalaryInfoService employeesSalaryInfoService;
/**
* 分页列表查询
*
* @param employeesSalaryInfo
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "员工薪资明细-分页列表查询")
@ApiOperation(value="员工薪资明细-分页列表查询", notes="员工薪资明细-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<EmployeesSalaryInfo>> queryPageList(EmployeesSalaryInfo employeesSalaryInfo,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<EmployeesSalaryInfo> queryWrapper = QueryGenerator.initQueryWrapper(employeesSalaryInfo, req.getParameterMap());
Page<EmployeesSalaryInfo> page = new Page<EmployeesSalaryInfo>(pageNo, pageSize);
IPage<EmployeesSalaryInfo> pageList = employeesSalaryInfoService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param employeesSalaryInfo
* @return
*/
@AutoLog(value = "员工薪资明细-添加")
@ApiOperation(value="员工薪资明细-添加", notes="员工薪资明细-添加")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody EmployeesSalaryInfo employeesSalaryInfo) {
employeesSalaryInfoService.save(employeesSalaryInfo);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param employeesSalaryInfo
* @return
*/
@AutoLog(value = "员工薪资明细-编辑")
@ApiOperation(value="员工薪资明细-编辑", notes="员工薪资明细-编辑")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody EmployeesSalaryInfo employeesSalaryInfo) {
employeesSalaryInfoService.updateById(employeesSalaryInfo);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "员工薪资明细-通过id删除")
@ApiOperation(value="员工薪资明细-通过id删除", notes="员工薪资明细-通过id删除")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
employeesSalaryInfoService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "员工薪资明细-批量删除")
@ApiOperation(value="员工薪资明细-批量删除", notes="员工薪资明细-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.employeesSalaryInfoService.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<EmployeesSalaryInfo> queryById(@RequestParam(name="id",required=true) String id) {
EmployeesSalaryInfo employeesSalaryInfo = employeesSalaryInfoService.getById(id);
if(employeesSalaryInfo==null) {
return Result.error("未找到对应数据");
}
return Result.OK(employeesSalaryInfo);
}
/**
* 导出excel
*
* @param request
* @param employeesSalaryInfo
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, EmployeesSalaryInfo employeesSalaryInfo) {
return super.exportXls(request, employeesSalaryInfo, EmployeesSalaryInfo.class, "员工薪资明细");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, EmployeesSalaryInfo.class);
}
}

View File

@ -0,0 +1,271 @@
package com.nu.modules.salary.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.*;
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;
import javax.persistence.Column;
/**
* @Description: 员工薪资明细
* @Author: jeecg-boot
* @Date: 2026-03-04
* @Version: V1.0
*/
@Data
@TableName("nu_biz_employees_salary_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="nu_biz_employees_salary_info对象", description="员工薪资明细")
public class EmployeesSalaryInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**ID*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "ID")
private java.lang.String id;
/**主表id*/
@Excel(name = "主表id", width = 15)
@ApiModelProperty(value = "主表id")
private java.lang.String mainId;
/**单号*/
@Excel(name = "单号", width = 15)
@ApiModelProperty(value = "单号")
private java.lang.String orderNo;
/**工单类型 1护理;2医疗:3仓库;4行政*/
@Excel(name = "工单类型 1护理;2医疗:3仓库;4行政", width = 15)
@ApiModelProperty(value = "工单类型 1护理;2医疗:3仓库;4行政")
private java.lang.String orderType;
/**护理单元IDnu_base_info.id*/
@Excel(name = "护理单元IDnu_base_info.id", width = 15, dictTable = "nu_base_info", dicText = "nu_name", dicCode = "nu_id")
@Dict(dictTable = "nu_base_info", dicText = "nu_name", dicCode = "nu_id")
@ApiModelProperty(value = "护理单元IDnu_base_info.id")
private java.lang.String nuId;
/**护理单元名称*/
@Excel(name = "护理单元名称", width = 15)
@ApiModelProperty(value = "护理单元名称")
private java.lang.String nuName;
/**长者IDnu_biz_elder_info.id*/
@Excel(name = "长者IDnu_biz_elder_info.id", width = 15)
@ApiModelProperty(value = "长者IDnu_biz_elder_info.id")
private java.lang.String elderId;
/**长者名称*/
@Excel(name = "长者名称", width = 15)
@ApiModelProperty(value = "长者名称")
private java.lang.String elderName;
/**员工ID*/
@Excel(name = "员工ID", width = 15)
@ApiModelProperty(value = "员工ID")
private java.lang.String employeeId;
/**员工姓名*/
@Excel(name = "员工姓名", width = 15)
@ApiModelProperty(value = "员工姓名")
private java.lang.String employeeName;
/**分类标签*/
@Excel(name = "分类标签", width = 15, dictTable = "nu_config_service_instruction_tag", dicText = "instruction_name", dicCode = "id")
@Dict(dictTable = "nu_config_service_instruction_tag", dicText = "instruction_name", dicCode = "id")
@ApiModelProperty(value = "分类标签")
private java.lang.String instructionTagId;
/**分类标签名称*/
@Excel(name = "分类标签名称", width = 15)
@ApiModelProperty(value = "分类标签名称")
private java.lang.String instructionTagName;
/**服务类别IDnu_config_service_category.id*/
@Excel(name = "服务类别IDnu_config_service_category.id", width = 15, dictTable = "nu_config_service_category", dicText = "category_name", dicCode = "id")
@Dict(dictTable = "nu_config_service_category", dicText = "category_name", dicCode = "id")
@ApiModelProperty(value = "服务类别IDnu_config_service_category.id")
private java.lang.String categoryId;
/**服务类别名称*/
@Excel(name = "服务类别名称", width = 15)
@ApiModelProperty(value = "服务类别名称")
private java.lang.String categoryName;
/**服务类型IDnu_config_service_type.id*/
@Excel(name = "服务类型IDnu_config_service_type.id", width = 15, dictTable = "nu_config_service_type", dicText = "type_name", dicCode = "id")
@Dict(dictTable = "nu_config_service_type", dicText = "type_name", dicCode = "id")
@ApiModelProperty(value = "服务类型IDnu_config_service_type.id")
private java.lang.String typeId;
/**服务属性 ds定时 js计时*/
@Excel(name = "服务属性 ds定时 js计时", width = 15)
@ApiModelProperty(value = "服务属性 ds定时 js计时")
@Dict(dicCode = "service_attribute")
private java.lang.String serviceAttribute;
/**服务类型名称*/
@Excel(name = "服务类型名称", width = 15)
@ApiModelProperty(value = "服务类型名称")
private java.lang.String typeName;
/**服务指令IDnu_config_service_directive.id*/
@Excel(name = "服务指令IDnu_config_service_directive.id", width = 15)
@ApiModelProperty(value = "服务指令IDnu_config_service_directive.id")
private java.lang.String directiveId;
/**服务指令名称*/
@Excel(name = "服务指令名称", width = 15)
@ApiModelProperty(value = "服务指令名称")
private java.lang.String directiveName;
/**周期类型ID*/
@Excel(name = "周期类型ID", width = 15)
@ApiModelProperty(value = "周期类型ID")
private java.lang.String cycleTypeId;
/**周期类型*/
@Excel(name = "周期类型", width = 15)
@ApiModelProperty(value = "周期类型")
private java.lang.String cycleType;
/**周期值*/
@Excel(name = "周期值", width = 15)
@ApiModelProperty(value = "周期值")
private java.lang.String cycleValue;
/**服务时长(分钟)*/
@Excel(name = "服务时长(分钟)", width = 15)
@ApiModelProperty(value = "服务时长(分钟)")
private java.lang.String serviceDuration;
/**服务说明*/
@Excel(name = "服务说明", width = 15)
@ApiModelProperty(value = "服务说明")
private java.lang.String serviceContent;
/**收费价格*/
@Excel(name = "收费价格", width = 15)
@ApiModelProperty(value = "收费价格")
private java.math.BigDecimal tollPrice;
/**提成价格*/
@Excel(name = "提成价格", width = 15)
@ApiModelProperty(value = "提成价格")
private java.math.BigDecimal comPrice;
/**标签总价格*/
@Excel(name = "标签总价格", width = 15)
@ApiModelProperty(value = "标签总价格")
private java.math.BigDecimal tagTotalPrice;
/**应收提成价格*/
@Excel(name = "应收提成价格", width = 15)
@ApiModelProperty(value = "应收提成价格")
private java.math.BigDecimal ysComPrice;
/**实收提成价格*/
@Excel(name = "实收提成价格", width = 15)
@ApiModelProperty(value = "实收提成价格")
private java.math.BigDecimal realComPrice;
/**服务指令包ID*/
@Excel(name = "服务指令包ID", width = 15)
@ApiModelProperty(value = "服务指令包ID")
private java.lang.String packageId;
/**服务指令包名称*/
@Excel(name = "服务指令包名称", width = 15)
@ApiModelProperty(value = "服务指令包名称")
private java.lang.String packageName;
/**是否是服务指令包 Y是 N否*/
@Excel(name = "是否是服务指令包 Y是 N否", width = 15)
@ApiModelProperty(value = "是否是服务指令包 Y是 N否")
private java.lang.String izPackage;
/**开始时间*/
@Excel(name = "开始时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "开始时间")
private java.util.Date startTime;
/**结束时间*/
@Excel(name = "结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "结束时间")
private java.util.Date endTime;
/**实际开始时间*/
@Excel(name = "实际开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "实际开始时间")
private java.util.Date beginTime;
/**实际结束时间*/
@Excel(name = "实际结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "实际结束时间")
private java.util.Date finishTime;
/**是否开始 Y是 N否*/
@Excel(name = "是否开始 Y是 N否", width = 15)
@ApiModelProperty(value = "是否开始 Y是 N否")
private java.lang.String izStart;
/**是否完成 Y是 N否*/
@Excel(name = "是否完成 Y是 N否", width = 15)
@ApiModelProperty(value = "是否完成 Y是 N否")
private java.lang.String izFinish;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**tplink下载地址*/
@Excel(name = "tplink下载地址", width = 15)
@ApiModelProperty(value = "tplink下载地址")
private java.lang.String tplinkPath;
/**手动拍照*/
@Excel(name = "手动拍照", width = 15)
@ApiModelProperty(value = "手动拍照")
private java.lang.String manuallyPicPath;
/**手动录制*/
@Excel(name = "手动录制", width = 15)
@ApiModelProperty(value = "手动录制")
private java.lang.String manuallyMp4Path;
/**执行类型 1单人 2协助 3转单*/
@Excel(name = "执行类型 1单人 2协助 3转单", width = 15, dicCode = "directive_order_opt_type")
@Dict(dicCode = "directive_order_opt_type")
@ApiModelProperty(value = "执行类型 1单人 2协助 3转单")
private java.lang.String optType;
/**执行状态 1正常 2未执行 3超时*/
@Excel(name = "执行状态 1正常 2未执行 3超时", width = 15, dicCode = "directive_order_opt_status")
@Dict(dicCode = "directive_order_opt_status")
@ApiModelProperty(value = "执行状态 1正常 2未执行 3超时")
private java.lang.String optStatus;
/**实际执行人id多个 主要执行人+协助人*/
@Excel(name = "实际执行人id多个 主要执行人+协助人", width = 15)
@ApiModelProperty(value = "实际执行人id多个 主要执行人+协助人")
private java.lang.String optIds;
/**实际执行人名称(多个); 主要执行人+协助人*/
@Excel(name = "实际执行人名称(多个); 主要执行人+协助人", width = 15)
@ApiModelProperty(value = "实际执行人名称(多个); 主要执行人+协助人")
private java.lang.String optNames;
/**审核状态 0待审核 1通过 2未通过*/
@Excel(name = "审核状态 1待审核 2通过 3未通过", width = 15, dicCode = "appraisal_status")
@Dict(dicCode = "appraisal_status")
@ApiModelProperty(value = "审核状态 0待审核 1通过 2未通过")
private java.lang.String status;
/**驳回原因*/
@Excel(name = "驳回原因", width = 15)
@ApiModelProperty(value = "驳回原因")
private java.lang.String content;
/**撤回人(汉字)*/
@Excel(name = "撤回人(汉字)", width = 15)
@ApiModelProperty(value = "撤回人(汉字)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
@Column(nullable = true, updatable = true)
private java.lang.String revocation;
/**撤回时间*/
@Excel(name = "撤回时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "撤回时间")
@TableField(updateStrategy = FieldStrategy.IGNORED)
@Column(nullable = true, updatable = true)
private java.util.Date revocationTime;
}

View File

@ -0,0 +1,17 @@
package com.nu.modules.salary.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.nu.modules.salary.entity.EmployeesSalaryInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 员工薪资明细
* @Author: jeecg-boot
* @Date: 2026-03-04
* @Version: V1.0
*/
public interface EmployeesSalaryInfoMapper extends BaseMapper<EmployeesSalaryInfo> {
}

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.salary.mapper.EmployeesSalaryInfoMapper">
</mapper>

View File

@ -0,0 +1,14 @@
package com.nu.modules.salary.service;
import com.nu.modules.salary.entity.EmployeesSalaryInfo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 员工薪资明细
* @Author: jeecg-boot
* @Date: 2026-03-04
* @Version: V1.0
*/
public interface IEmployeesSalaryInfoService extends IService<EmployeesSalaryInfo> {
}

View File

@ -0,0 +1,59 @@
package com.nu.modules.salary.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.nu.entity.EmployeesSalaryInfoEntity;
import com.nu.modules.IEmployeesSalaryApi;
import com.nu.modules.salary.entity.EmployeesSalaryInfo;
import com.nu.modules.salary.mapper.EmployeesSalaryInfoMapper;
import com.nu.modules.salary.service.IEmployeesSalaryInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
* @Description: 员工薪资明细
* @Author: jeecg-boot
* @Date: 2026-03-04
* @Version: V1.0
*/
@Service
public class EmployeesSalaryInfoServiceImpl extends ServiceImpl<EmployeesSalaryInfoMapper, EmployeesSalaryInfo> implements IEmployeesSalaryInfoService, IEmployeesSalaryApi {
@Lazy
@Autowired
private IEmployeesSalaryInfoService ownService;
/**
* 员工考核完成
* @param data
*/
@Override
public void auditFinish(List<EmployeesSalaryInfoEntity> data) {
//单个指令考核完成时调用一次此方法 因此data是同一个工单单号的 list如果大于1代表多人执行
//逻辑顺序需要先拿单号查一下 如果没有代表是第一次考核 直接批量新增 否则代表是重新进行了考核 批量更新条件单号+员工id
QueryWrapper<EmployeesSalaryInfo> qw = new QueryWrapper<>();
qw.eq("order_no",data.get(0).getOrderNo());
List<EmployeesSalaryInfo> hisDataList = baseMapper.selectList(qw);
if(CollectionUtils.isEmpty(hisDataList)){
//首次
ownService.saveBatch(BeanUtil.copyToList(data,EmployeesSalaryInfo.class));
}else{
//非首次
EmployeesSalaryInfoEntity newData = data.get(0);
hisDataList.stream().forEach(item -> {
item.setRealComPrice(newData.getRealComPrice());//员工的实际提成
item.setStatus(newData.getStatus());
item.setContent(newData.getContent());
item.setUpdateTime(newData.getUpdateTime());
});
ownService.updateBatchById(hisDataList);
}
}
}

View File

@ -67,6 +67,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.nursingunit.boot</groupId>
<artifactId>nu-employee-local-api</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@ -106,7 +106,7 @@ public class DirectiveAppraisalController extends JeecgController<DirectiveAppra
@ApiOperation(value = "护理单元-服务指令-工单-编辑", notes = "护理单元-服务指令-工单-编辑")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> edit(@RequestBody DirectiveAppraisal directiveAppraisal) {
directiveAppraisalService.updateById(directiveAppraisal);
directiveAppraisalService.audit(directiveAppraisal);
return Result.OK("编辑成功!");
}

View File

@ -15,16 +15,16 @@ import javax.persistence.Column;
import java.io.Serializable;
/**
* @Description: 护理单元-服务指令-工单
* @Description: 护理单元-服务指令-工单-子表
* @Author: jeecg-boot
* @Date: 2026-02-28
* @Version: V1.0
*/
@Data
@TableName("nu_biz_nu_directive_order")
@TableName("nu_biz_nu_directive_order_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="nu_biz_nu_directive_order对象", description="护理单元-服务指令-工单")
@ApiModel(value="nu_biz_nu_directive_order对象", description="护理单元-服务指令-工单-子表")
public class DirectiveAppraisal implements Serializable {
private static final long serialVersionUID = 1L;
@ -32,6 +32,10 @@ public class DirectiveAppraisal implements Serializable {
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "ID")
private java.lang.String id;
/**主表id*/
@Excel(name = "主表id", width = 15)
@ApiModelProperty(value = "主表id")
private java.lang.String mainId;
/**单号*/
@Excel(name = "单号", width = 15)
@ApiModelProperty(value = "单号")
@ -133,6 +137,10 @@ public class DirectiveAppraisal implements Serializable {
@Excel(name = "提成价格", width = 15)
@ApiModelProperty(value = "提成价格")
private java.math.BigDecimal comPrice;
/**标签总价格*/
@Excel(name = "标签总价格", width = 15)
@ApiModelProperty(value = "标签总价格")
private java.math.BigDecimal tagTotalPrice;
/**应收提成价格*/
@Excel(name = "应收提成价格", width = 15)
@ApiModelProperty(value = "应收提成价格")

View File

@ -11,4 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IDirectiveAppraisalService extends IService<DirectiveAppraisal> {
void audit(DirectiveAppraisal directiveAppraisal);
}

View File

@ -1,19 +1,184 @@
package com.nu.modules.biz.appraisal.service.impl;
import com.nu.entity.EmployeesSalaryInfoEntity;
import com.nu.modules.IEmployeesSalaryApi;
import com.nu.modules.biz.appraisal.entity.DirectiveAppraisal;
import com.nu.modules.biz.appraisal.mapper.DirectiveAppraisalMapper;
import com.nu.modules.biz.appraisal.service.IDirectiveAppraisalService;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Arrays;
import java.util.List;
/**
* @Description: 护理单元-服务指令-工单
* @Author: jeecg-boot
* @Date: 2026-02-28
* @Date: 2026-02-28
* @Version: V1.0
*/
@Service
public class DirectiveAppraisalServiceImpl extends ServiceImpl<DirectiveAppraisalMapper, DirectiveAppraisal> implements IDirectiveAppraisalService {
@Autowired
private IEmployeesSalaryApi employeesSalaryApi;
/**
* 考核
*
* @param directiveAppraisal
*/
@Override
public void audit(DirectiveAppraisal directiveAppraisal) {
// 最终的提成
BigDecimal tiCheng = new BigDecimal(0);
// 每人提成
BigDecimal meiRenTiCheng = new BigDecimal(0);
//员工ids
List<String> optIds = Arrays.asList(directiveAppraisal.getOptIds().split(","));
//员工姓名
List<String> optNames = Arrays.asList(directiveAppraisal.getOptNames().split(","));
if ("2".equals(directiveAppraisal.getStatus())) {
// 考核通过 - 一个人执行的直接就是之前算好的提成 多人的话平均 例如3人执行 提成是1元的话 每人3毛3分
tiCheng = directiveAppraisal.getYsComPrice();
// 总共几个人执行的
int renShu = optIds.size();
if (renShu > 0) {
// 计算每人提成精确到2位小数向下取整 比如 1元 3人分 1÷3约等于0.33333 保留2位 第三位是向下取整 结果0.33
// 验证4.01提成 3人分 4.01÷3约等于1.336666 保留2位1.33 第三位6向下取整0 结果 1.33 总共给3人3.99 < 4.01 差2分
meiRenTiCheng = tiCheng.divide(new BigDecimal(renShu), 2, RoundingMode.DOWN);
}
}
if ("3".equals(directiveAppraisal.getStatus())) {
//考核不通过 - 员工提成0 长者收费0
tiCheng = new BigDecimal(0);
meiRenTiCheng = new BigDecimal(0);
}
//首次考核就是向员工薪资明显表插入数据 因为有撤回功能 所以可能出现二次及以上考核 此时就是更新了 所以需要先用id查询 有则更新否则新增
//如果是多人执行 需要给多人插入数据 - 新增时把员工id/姓名拆分成对应的人orderNo单号是一样的 一个单号对应一个具体的指令 修改时根据单号一样的一条/多条数据的值状态
List<EmployeesSalaryInfoEntity> handleData = Lists.newArrayList();
for (int i = 0; i < optIds.size(); i++) {
EmployeesSalaryInfoEntity empSalary = new EmployeesSalaryInfoEntity();
//员工信息
empSalary.setEmployeeId(optIds.get(i));
empSalary.setEmployeeName(optNames.get(i));
//员工提成
empSalary.setRealComPrice(meiRenTiCheng);
//工单单号 - 用于关联原始工单
empSalary.setOrderNo(directiveAppraisal.getOrderNo());
//工单类型 - 1护理2医疗3仓库4行政
empSalary.setOrderType(directiveAppraisal.getOrderType());
//护理单元ID - 关联nu_base_info表
empSalary.setNuId(directiveAppraisal.getNuId());
//护理单元名称
empSalary.setNuName(directiveAppraisal.getNuName());
//长者ID - 关联nu_biz_elder_info表
empSalary.setElderId(directiveAppraisal.getElderId());
//长者名称
empSalary.setElderName(directiveAppraisal.getElderName());
//分类标签ID - 关联nu_config_service_instruction_tag表
empSalary.setInstructionTagId(directiveAppraisal.getInstructionTagId());
//分类标签名称
empSalary.setInstructionTagName(directiveAppraisal.getInstructionTagName());
//服务类别ID - 关联nu_config_service_category表
empSalary.setCategoryId(directiveAppraisal.getCategoryId());
//服务类别名称
empSalary.setCategoryName(directiveAppraisal.getCategoryName());
//服务类型ID - 关联nu_config_service_type表
empSalary.setTypeId(directiveAppraisal.getTypeId());
//服务属性 - ds定时/js计时
empSalary.setServiceAttribute(directiveAppraisal.getServiceAttribute());
//服务类型名称
empSalary.setTypeName(directiveAppraisal.getTypeName());
//服务指令ID - 关联nu_config_service_directive表
empSalary.setDirectiveId(directiveAppraisal.getDirectiveId());
//服务指令名称
empSalary.setDirectiveName(directiveAppraisal.getDirectiveName());
//周期类型ID
empSalary.setCycleTypeId(directiveAppraisal.getCycleTypeId());
//周期类型
empSalary.setCycleType(directiveAppraisal.getCycleType());
//周期值
empSalary.setCycleValue(directiveAppraisal.getCycleValue());
//服务时长分钟
empSalary.setServiceDuration(directiveAppraisal.getServiceDuration());
//服务说明
empSalary.setServiceContent(directiveAppraisal.getServiceContent());
//收费价格
empSalary.setTollPrice(directiveAppraisal.getTollPrice());
//提成价格
empSalary.setComPrice(directiveAppraisal.getComPrice());
//标签总价格
empSalary.setTagTotalPrice(directiveAppraisal.getTagTotalPrice());
//应收提成价格
empSalary.setYsComPrice(directiveAppraisal.getYsComPrice());
//服务指令包ID
empSalary.setPackageId(directiveAppraisal.getPackageId());
//服务指令包名称
empSalary.setPackageName(directiveAppraisal.getPackageName());
//是否为服务指令包 - Y是/N否
empSalary.setIzPackage(directiveAppraisal.getIzPackage());
//计划开始时间
empSalary.setStartTime(directiveAppraisal.getStartTime());
//计划结束时间
empSalary.setEndTime(directiveAppraisal.getEndTime());
//实际开始时间
empSalary.setBeginTime(directiveAppraisal.getBeginTime());
//实际结束时间
empSalary.setFinishTime(directiveAppraisal.getFinishTime());
//是否开始 - Y是/N否
empSalary.setIzStart(directiveAppraisal.getIzStart());
//是否完成 - Y是/N否
empSalary.setIzFinish(directiveAppraisal.getIzFinish());
//创建人
empSalary.setCreateBy(directiveAppraisal.getCreateBy());
//创建日期
empSalary.setCreateTime(directiveAppraisal.getCreateTime());
//更新人
empSalary.setUpdateBy(directiveAppraisal.getUpdateBy());
//更新日期
empSalary.setUpdateTime(directiveAppraisal.getUpdateTime());
//tplink下载地址
empSalary.setTplinkPath(directiveAppraisal.getTplinkPath());
//手动拍照路径
empSalary.setManuallyPicPath(directiveAppraisal.getManuallyPicPath());
//手动录制视频路径
empSalary.setManuallyMp4Path(directiveAppraisal.getManuallyMp4Path());
//执行类型 - 1单人/2协助/3转单
empSalary.setOptType(directiveAppraisal.getOptType());
//执行状态 - 1正常/2未执行/3超时
empSalary.setOptStatus(directiveAppraisal.getOptStatus());
//实际执行人ID多个逗号分隔
empSalary.setOptIds(directiveAppraisal.getOptIds());
//实际执行人名称多个逗号分隔
empSalary.setOptNames(directiveAppraisal.getOptNames());
//审核状态 - 0待审核/1通过/2未通过
empSalary.setStatus(directiveAppraisal.getStatus());
//驳回原因
empSalary.setContent(directiveAppraisal.getContent());
//撤回人
empSalary.setRevocation(directiveAppraisal.getRevocation());
//撤回时间
empSalary.setRevocationTime(directiveAppraisal.getRevocationTime());
handleData.add(empSalary);
}
//存储数据
//考核信息
directiveAppraisal.setRealComPrice(tiCheng);
//薪资
employeesSalaryApi.auditFinish(handleData);
baseMapper.updateById(directiveAppraisal);
}
}

View File

@ -1,24 +1,25 @@
package com.nu.modules.biz.order.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
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 javax.persistence.Column;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Description: 服务指令工单
* @Description: 服务指令工单
* @Author: caolei
* @Date: 2025-11-13
* @Date: 2025-11-14
* @Version: V1.0
*/
@Data
@ -28,134 +29,308 @@ import java.util.Date;
@ApiModel(value="nu_biz_nu_directive_order_info对象", description="服务指令工单子表")
public class DirectiveOrderInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
/**ID*/
@TableId(type = IdType.ASSIGN_ID)
private String id;
/**单号*/
private String orderNo;
/**工单类型*/
private String orderType;
@ApiModelProperty(value = "ID")
private java.lang.String id;
/**主表id*/
private String mainId;
/**护理单元id*/
private String nuId;
@Excel(name = "主表id", width = 15)
@ApiModelProperty(value = "主表id")
private java.lang.String mainId;
/**单号*/
@Excel(name = "单号", width = 15)
@ApiModelProperty(value = "单号")
private java.lang.String orderNo;
/**工单类型 1护理;2医疗:3仓库;4行政*/
@Excel(name = "工单类型 1护理;2医疗:3仓库;4行政", width = 15)
@ApiModelProperty(value = "工单类型 1护理;2医疗:3仓库;4行政")
private java.lang.String orderType;
/**护理单元IDnu_base_info.id*/
@Excel(name = "护理单元IDnu_base_info.id", width = 15, dictTable = "nu_base_info", dicText = "nu_name", dicCode = "nu_id")
@Dict(dictTable = "nu_base_info", dicText = "nu_name", dicCode = "nu_id")
@ApiModelProperty(value = "护理单元IDnu_base_info.id")
private java.lang.String nuId;
/**护理单元名称*/
private String nuName;
/**长者id*/
private String elderId;
/**长者姓名*/
private String elderName;
@Excel(name = "护理单元名称", width = 15)
@ApiModelProperty(value = "护理单元名称")
private java.lang.String nuName;
/**长者IDnu_biz_elder_info.id*/
@Excel(name = "长者IDnu_biz_elder_info.id", width = 15)
@ApiModelProperty(value = "长者IDnu_biz_elder_info.id")
private java.lang.String elderId;
/**长者名称*/
@Excel(name = "长者名称", width = 15)
@ApiModelProperty(value = "长者名称")
private java.lang.String elderName;
/**员工ID*/
private String employeeId;
@Excel(name = "员工ID", width = 15)
@ApiModelProperty(value = "员工ID")
private java.lang.String employeeId;
/**员工姓名*/
private String employeeName;
/**分类标签id*/
private String instructionTagId;
@Excel(name = "员工姓名", width = 15)
@ApiModelProperty(value = "员工姓名")
private java.lang.String employeeName;
/**分类标签*/
private String instructionTagName;
/**服务类别id*/
private String categoryId;
@Excel(name = "分类标签", width = 15, dictTable = "nu_config_service_instruction_tag", dicText = "instruction_name", dicCode = "id")
@Dict(dictTable = "nu_config_service_instruction_tag", dicText = "instruction_name", dicCode = "id")
@ApiModelProperty(value = "分类标签")
private java.lang.String instructionTagId;
/**分类标签名称*/
@Excel(name = "分类标签名称", width = 15)
@ApiModelProperty(value = "分类标签名称")
private java.lang.String instructionTagName;
/**服务类别IDnu_config_service_category.id*/
@Excel(name = "服务类别IDnu_config_service_category.id", width = 15, dictTable = "nu_config_service_category", dicText = "category_name", dicCode = "id")
@Dict(dictTable = "nu_config_service_category", dicText = "category_name", dicCode = "id")
@ApiModelProperty(value = "服务类别IDnu_config_service_category.id")
private java.lang.String categoryId;
/**服务类别名称*/
private String categoryName;
/**服务类型id*/
private String typeId;
@Excel(name = "服务类别名称", width = 15)
@ApiModelProperty(value = "服务类别名称")
private java.lang.String categoryName;
/**服务类型IDnu_config_service_type.id*/
@Excel(name = "服务类型IDnu_config_service_type.id", width = 15, dictTable = "nu_config_service_type", dicText = "type_name", dicCode = "id")
@Dict(dictTable = "nu_config_service_type", dicText = "type_name", dicCode = "id")
@ApiModelProperty(value = "服务类型IDnu_config_service_type.id")
private java.lang.String typeId;
/**服务属性 ds定时 js计时*/
@Excel(name = "服务属性 ds定时 js计时", width = 15)
@ApiModelProperty(value = "服务属性 ds定时 js计时")
@Dict(dicCode = "service_attribute")
private java.lang.String serviceAttribute;
/**服务类型名称*/
private String typeName;
/**服务指令id*/
private String directiveId;
@Excel(name = "服务类型名称", width = 15)
@ApiModelProperty(value = "服务类型名称")
private java.lang.String typeName;
/**服务指令IDnu_config_service_directive.id*/
@Excel(name = "服务指令IDnu_config_service_directive.id", width = 15)
@ApiModelProperty(value = "服务指令IDnu_config_service_directive.id")
private java.lang.String directiveId;
/**服务指令名称*/
private String directiveName;
/**指令类型ID*/
private String cycleTypeId;
/**指令类型*/
private String cycleType;
@Excel(name = "服务指令名称", width = 15)
@ApiModelProperty(value = "服务指令名称")
private java.lang.String directiveName;
/**周期类型ID*/
@Excel(name = "周期类型ID", width = 15)
@ApiModelProperty(value = "周期类型ID")
private java.lang.String cycleTypeId;
/**周期类型*/
@Excel(name = "周期类型", width = 15)
@ApiModelProperty(value = "周期类型")
private java.lang.String cycleType;
/**周期值*/
private String cycleValue;
/**服务指令图片大图*/
private String previewFile;
/**服务指令图片大图-网络地址*/
// private String netPreviewFile;
/**服务指令图片小图*/
private String previewFileSmall;
/**服务指令图片小图-网络地址*/
// private String netPreviewFileSmall;
/**指令音频文件*/
private String mp3File;
/**指令音频文件-网络地址*/
// private String netMp3File;
/**指令视频文件*/
private String mp4File;
/**指令视频文件-网络地址*/
// private String netMp4File;
@Excel(name = "周期值", width = 15)
@ApiModelProperty(value = "周期值")
private java.lang.String cycleValue;
/**服务时长(分钟)*/
private String serviceDuration;
/**服务描述*/
private String serviceContent;
/**超时时长(分钟)*/
private String timeoutDuration;
@Excel(name = "服务时长(分钟)", width = 15)
@ApiModelProperty(value = "服务时长(分钟)")
private java.lang.String serviceDuration;
/**服务说明*/
@Excel(name = "服务说明", width = 15)
@ApiModelProperty(value = "服务说明")
private java.lang.String serviceContent;
/**收费价格*/
private BigDecimal tollPrice;
@Excel(name = "收费价格", width = 15)
@ApiModelProperty(value = "收费价格")
private java.math.BigDecimal tollPrice;
/**提成价格*/
private BigDecimal comPrice;
/**实际提成价格*/
private BigDecimal realComPrice;
/**指令包id*/
private String packageId;
/**指令包名称*/
private String packageName;
@Excel(name = "提成价格", width = 15)
@ApiModelProperty(value = "提成价格")
private java.math.BigDecimal comPrice;
/**标签总价格*/
@Excel(name = "标签总价格", width = 15)
@ApiModelProperty(value = "标签总价格")
private java.math.BigDecimal tagTotalPrice;
/**应收提成价格*/
@Excel(name = "应收提成价格", width = 15)
@ApiModelProperty(value = "应收提成价格")
private java.math.BigDecimal ysComPrice;
/**实收提成价格*/
@Excel(name = "实收提成价格", width = 15)
@ApiModelProperty(value = "实收提成价格")
private java.math.BigDecimal realComPrice;
/**服务指令包ID*/
@Excel(name = "服务指令包ID", width = 15)
@ApiModelProperty(value = "服务指令包ID")
private java.lang.String packageId;
/**服务指令包名称*/
@Excel(name = "服务指令包名称", width = 15)
@ApiModelProperty(value = "服务指令包名称")
private java.lang.String packageName;
/**是否是服务指令包 Y是 N否*/
private String izPackage;
@Excel(name = "是否是服务指令包 Y是 N否", width = 15)
@ApiModelProperty(value = "是否是服务指令包 Y是 N否")
private java.lang.String izPackage;
/**开始时间*/
@Excel(name = "开始时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date startTime;
@ApiModelProperty(value = "开始时间")
private java.util.Date startTime;
/**结束时间*/
@Excel(name = "结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date endTime;
@ApiModelProperty(value = "结束时间")
private java.util.Date endTime;
/**实际开始时间*/
@Excel(name = "实际开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date beginTime;
@ApiModelProperty(value = "实际开始时间")
private java.util.Date beginTime;
/**实际结束时间*/
@Excel(name = "实际结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date finishTime;
@ApiModelProperty(value = "实际结束时间")
private java.util.Date finishTime;
/**是否开始 Y是 N否*/
private String izStart;
@Excel(name = "是否开始 Y是 N否", width = 15)
@ApiModelProperty(value = "是否开始 Y是 N否")
private java.lang.String izStart;
/**是否完成 Y是 N否*/
private String izFinish;
@Excel(name = "是否完成 Y是 N否", width = 15)
@ApiModelProperty(value = "是否完成 Y是 N否")
private java.lang.String izFinish;
/**创建人*/
private String createBy;
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
private String updateBy;
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**是否删除 0未删除 1删除*/
private String delFlag;
private String tplinkPath;
private String manuallyPicPath;
private String manuallyMp4Path;
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**tplink下载地址*/
@Excel(name = "tplink下载地址", width = 15)
@ApiModelProperty(value = "tplink下载地址")
private java.lang.String tplinkPath;
/**手动拍照*/
@Excel(name = "手动拍照", width = 15)
@ApiModelProperty(value = "手动拍照")
private java.lang.String manuallyPicPath;
/**手动录制*/
@Excel(name = "手动录制", width = 15)
@ApiModelProperty(value = "手动录制")
private java.lang.String manuallyMp4Path;
/**执行类型 1单人 2协助 3转单*/
private String optType;
/**是否超时 Y超时 N未超时*/
private String izTimeout;
@Excel(name = "执行类型 1单人 2协助 3转单", width = 15, dicCode = "directive_order_opt_type")
@Dict(dicCode = "directive_order_opt_type")
@ApiModelProperty(value = "执行类型 1单人 2协助 3转单")
private java.lang.String optType;
/**执行状态 1正常 2未执行 3超时*/
@Excel(name = "执行状态 1正常 2未执行 3超时", width = 15, dicCode = "directive_order_opt_status")
@Dict(dicCode = "directive_order_opt_status")
@ApiModelProperty(value = "执行状态 1正常 2未执行 3超时")
private java.lang.String optStatus;
/**实际执行人id多个 主要执行人+协助人*/
private String optIds;
@Excel(name = "实际执行人id多个 主要执行人+协助人", width = 15)
@ApiModelProperty(value = "实际执行人id多个 主要执行人+协助人")
private java.lang.String optIds;
/**实际执行人名称(多个); 主要执行人+协助人*/
private String optNames;
@Excel(name = "实际执行人名称(多个); 主要执行人+协助人", width = 15)
@ApiModelProperty(value = "实际执行人名称(多个); 主要执行人+协助人")
private java.lang.String optNames;
/**审核状态 0待审核 1通过 2未通过*/
@Excel(name = "审核状态 1待审核 2通过 3未通过", width = 15, dicCode = "appraisal_status")
@Dict(dicCode = "appraisal_status")
@ApiModelProperty(value = "审核状态 0待审核 1通过 2未通过")
private java.lang.String status;
/**驳回原因*/
@Excel(name = "驳回原因", width = 15)
@ApiModelProperty(value = "驳回原因")
private java.lang.String content;
/**撤回人(汉字)*/
@Excel(name = "撤回人(汉字)", width = 15)
@ApiModelProperty(value = "撤回人(汉字)")
@TableField(updateStrategy = FieldStrategy.IGNORED)
@Column(nullable = true, updatable = true)
private java.lang.String revocation;
/**撤回时间*/
@Excel(name = "撤回时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "撤回时间")
@TableField(updateStrategy = FieldStrategy.IGNORED)
@Column(nullable = true, updatable = true)
private java.util.Date revocationTime;
/**接单上限*/
@TableField(exist = false)
private Integer orderCap;
/**最大时间*/
@TableField(exist = false)
private Date maxTime;
/**单次*/
@TableField(exist = false)
private Integer orderNum;
/**总服务时长*/
@TableField(exist = false)
private Integer totalDuration;
/**总服务收益*/
@TableField(exist = false)
private BigDecimal totalComPrice;
/**是否空闲 1空闲 0非空闲*/
@TableField(exist = false)
private Integer izFree;
/**员工身上挂载的工单数,未完成工单即为挂单*/
@TableField(exist = false)
private Integer ownCn;
/**员工id集合逗号分隔*/
@TableField(exist = false)
private String employeeIds;
/**服务指令id集合逗号分隔*/
@TableField(exist = false)
private String directiveIds;
/**优先级 数值越高优先级越高*/
//空闲状态提高3级 指定护理员提高2级
@TableField(exist = false)
private Integer level;
/**发起模式 1主动触发工单派给发起人自己 2被动触发中控发起派单规则发送给员工*/
@TableField(exist = false)
private String triggerMode;
@TableField(exist = false)
private String tableName;//表名字
/**服务指令图片大图*/
@TableField(exist = false)
private String previewFile;
/**服务指令图片小图*/
@TableField(exist = false)
private String previewFileSmall;
/**语音文件*/
@TableField(exist = false)
private String mp3File;
/**视频文件*/
@TableField(exist = false)
private String mp4File;
@TableField(exist = false)
private String immediateFile;
@TableField(exist = false)
private String immediateFileFocus;
@TableField(exist = false)
private String packDirectives;
}

View File

@ -224,8 +224,6 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
ordersSub.setOptType("1");
ordersSub.setIzStart("N");
ordersSub.setIzFinish("N");
ordersSub.setIzTimeout("N");
ordersSub.setDelFlag("0");
ordersSub.setOptIds(employee.getEmployeeId());
ordersSub.setOptNames(employee.getEmployeeName());
ordersInfoService.save(ordersSub);//生成工单子表
@ -278,8 +276,6 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
ordersSub.setOptType("1");
ordersSub.setIzStart("N");
ordersSub.setIzFinish("N");
ordersSub.setIzTimeout("N");
ordersSub.setDelFlag("0");
ordersSub.setOptIds(employee.getEmployeeId());
ordersSub.setOptNames(employee.getEmployeeName());
ordersInfoService.save(ordersSub);//生成工单子表
@ -862,10 +858,8 @@ public class DirectiveOrderServiceImpl extends ServiceImpl<DirectiveOrderMapper,
ordersInfo.setIzStart("N");
ordersInfo.setIzFinish("N");
ordersInfo.setOptType("1");
ordersInfo.setIzTimeout("N");
ordersInfo.setOptIds(employeeId);
ordersInfo.setOptNames(employeeName);
ordersInfo.setDelFlag("0");
ordersInfoService.save(ordersInfo);//生成工单子表
}
}