diff --git a/nursing-unit-common/src/main/java/com/nu/entity/EmployeesSalaryInfoEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/EmployeesSalaryInfoEntity.java new file mode 100644 index 00000000..3db25880 --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/entity/EmployeesSalaryInfoEntity.java @@ -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; + /**护理单元ID,nu_base_info.id*/ + @Dict(dictTable = "nu_base_info", dicText = "nu_name", dicCode = "nu_id") + private String nuId; + /**护理单元名称*/ + private String nuName; + /**长者ID,nu_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; + /**服务类别ID,nu_config_service_category.id*/ + @Dict(dictTable = "nu_config_service_category", dicText = "category_name", dicCode = "id") + private String categoryId; + /**服务类别名称*/ + private String categoryName; + /**服务类型ID,nu_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; + /**服务指令ID,nu_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; +} diff --git a/nursing-unit-employee/nu-employee-api/nu-employee-local-api/src/main/java/com/nu/modules/IEmployeesSalaryApi.java b/nursing-unit-employee/nu-employee-api/nu-employee-local-api/src/main/java/com/nu/modules/IEmployeesSalaryApi.java new file mode 100644 index 00000000..5cee3ffc --- /dev/null +++ b/nursing-unit-employee/nu-employee-api/nu-employee-local-api/src/main/java/com/nu/modules/IEmployeesSalaryApi.java @@ -0,0 +1,9 @@ +package com.nu.modules; + +import com.nu.entity.EmployeesSalaryInfoEntity; + +import java.util.List; + +public interface IEmployeesSalaryApi { + void auditFinish(List data); +} diff --git a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/controller/EmployeesSalaryInfoController.java b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/controller/EmployeesSalaryInfoController.java new file mode 100644 index 00000000..74604ccd --- /dev/null +++ b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/controller/EmployeesSalaryInfoController.java @@ -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 { + @Autowired + private IEmployeesSalaryInfoService employeesSalaryInfoService; + + /** + * 分页列表查询 + * + * @param employeesSalaryInfo + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "员工薪资明细-分页列表查询") + @ApiOperation(value="员工薪资明细-分页列表查询", notes="员工薪资明细-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(EmployeesSalaryInfo employeesSalaryInfo, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(employeesSalaryInfo, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = employeesSalaryInfoService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param employeesSalaryInfo + * @return + */ + @AutoLog(value = "员工薪资明细-添加") + @ApiOperation(value="员工薪资明细-添加", notes="员工薪资明细-添加") + @PostMapping(value = "/add") + public Result 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 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 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 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 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); + } + +} diff --git a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/entity/EmployeesSalaryInfo.java b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/entity/EmployeesSalaryInfo.java new file mode 100644 index 00000000..0cf903a0 --- /dev/null +++ b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/entity/EmployeesSalaryInfo.java @@ -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; + /**护理单元ID,nu_base_info.id*/ + @Excel(name = "护理单元ID,nu_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 = "护理单元ID,nu_base_info.id") + private java.lang.String nuId; + /**护理单元名称*/ + @Excel(name = "护理单元名称", width = 15) + @ApiModelProperty(value = "护理单元名称") + private java.lang.String nuName; + /**长者ID,nu_biz_elder_info.id*/ + @Excel(name = "长者ID,nu_biz_elder_info.id", width = 15) + @ApiModelProperty(value = "长者ID,nu_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; + /**服务类别ID,nu_config_service_category.id*/ + @Excel(name = "服务类别ID,nu_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 = "服务类别ID,nu_config_service_category.id") + private java.lang.String categoryId; + /**服务类别名称*/ + @Excel(name = "服务类别名称", width = 15) + @ApiModelProperty(value = "服务类别名称") + private java.lang.String categoryName; + /**服务类型ID,nu_config_service_type.id*/ + @Excel(name = "服务类型ID,nu_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 = "服务类型ID,nu_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; + /**服务指令ID,nu_config_service_directive.id*/ + @Excel(name = "服务指令ID,nu_config_service_directive.id", width = 15) + @ApiModelProperty(value = "服务指令ID,nu_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; +} diff --git a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/mapper/EmployeesSalaryInfoMapper.java b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/mapper/EmployeesSalaryInfoMapper.java new file mode 100644 index 00000000..64b4f31d --- /dev/null +++ b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/mapper/EmployeesSalaryInfoMapper.java @@ -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 { + +} diff --git a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/mapper/xml/EmployeesSalaryInfoMapper.xml b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/mapper/xml/EmployeesSalaryInfoMapper.xml new file mode 100644 index 00000000..fb2a6c15 --- /dev/null +++ b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/mapper/xml/EmployeesSalaryInfoMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/service/IEmployeesSalaryInfoService.java b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/service/IEmployeesSalaryInfoService.java new file mode 100644 index 00000000..6b442393 --- /dev/null +++ b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/service/IEmployeesSalaryInfoService.java @@ -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 { + +} diff --git a/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/service/impl/EmployeesSalaryInfoServiceImpl.java b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/service/impl/EmployeesSalaryInfoServiceImpl.java new file mode 100644 index 00000000..e7ff8499 --- /dev/null +++ b/nursing-unit-employee/nu-employee-biz/src/main/java/com/nu/modules/salary/service/impl/EmployeesSalaryInfoServiceImpl.java @@ -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 implements IEmployeesSalaryInfoService, IEmployeesSalaryApi { + + @Lazy + @Autowired + private IEmployeesSalaryInfoService ownService; + + /** + * 员工考核完成 + * @param data + */ + @Override + public void auditFinish(List data) { + //单个指令考核完成时调用一次此方法 因此data是同一个工单单号的 list如果大于1代表多人执行 + //逻辑顺序:需要先拿单号查一下 如果没有代表是第一次考核 直接批量新增 否则代表是重新进行了考核 批量更新(条件单号+员工id) + + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("order_no",data.get(0).getOrderNo()); + List 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); + } + } +} diff --git a/nursing-unit-services/nu-services-biz/pom.xml b/nursing-unit-services/nu-services-biz/pom.xml index c8a695b9..cc3ca517 100644 --- a/nursing-unit-services/nu-services-biz/pom.xml +++ b/nursing-unit-services/nu-services-biz/pom.xml @@ -67,6 +67,12 @@ 2.0.0 compile + + com.nursingunit.boot + nu-employee-local-api + 2.0.0 + compile + diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/controller/DirectiveAppraisalController.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/controller/DirectiveAppraisalController.java index eba745c5..c1216d44 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/controller/DirectiveAppraisalController.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/controller/DirectiveAppraisalController.java @@ -106,7 +106,7 @@ public class DirectiveAppraisalController extends JeecgController edit(@RequestBody DirectiveAppraisal directiveAppraisal) { - directiveAppraisalService.updateById(directiveAppraisal); + directiveAppraisalService.audit(directiveAppraisal); return Result.OK("编辑成功!"); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/entity/DirectiveAppraisal.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/entity/DirectiveAppraisal.java index 842874ee..320801d9 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/entity/DirectiveAppraisal.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/entity/DirectiveAppraisal.java @@ -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 = "应收提成价格") diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/service/IDirectiveAppraisalService.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/service/IDirectiveAppraisalService.java index ad56bd84..96082947 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/service/IDirectiveAppraisalService.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/service/IDirectiveAppraisalService.java @@ -11,4 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IDirectiveAppraisalService extends IService { + void audit(DirectiveAppraisal directiveAppraisal); } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/service/impl/DirectiveAppraisalServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/service/impl/DirectiveAppraisalServiceImpl.java index 24ac9b63..dcce13ec 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/service/impl/DirectiveAppraisalServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/appraisal/service/impl/DirectiveAppraisalServiceImpl.java @@ -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 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 optIds = Arrays.asList(directiveAppraisal.getOptIds().split(",")); + //员工姓名 + List 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 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); + } } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/entity/DirectiveOrderInfo.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/entity/DirectiveOrderInfo.java index 776afd17..5e4293c2 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/entity/DirectiveOrderInfo.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/entity/DirectiveOrderInfo.java @@ -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; + /**护理单元ID,nu_base_info.id*/ + @Excel(name = "护理单元ID,nu_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 = "护理单元ID,nu_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; + /**长者ID,nu_biz_elder_info.id*/ + @Excel(name = "长者ID,nu_biz_elder_info.id", width = 15) + @ApiModelProperty(value = "长者ID,nu_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; + /**服务类别ID,nu_config_service_category.id*/ + @Excel(name = "服务类别ID,nu_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 = "服务类别ID,nu_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; + /**服务类型ID,nu_config_service_type.id*/ + @Excel(name = "服务类型ID,nu_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 = "服务类型ID,nu_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; + /**服务指令ID,nu_config_service_directive.id*/ + @Excel(name = "服务指令ID,nu_config_service_directive.id", width = 15) + @ApiModelProperty(value = "服务指令ID,nu_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; } diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/service/impl/DirectiveOrderServiceImpl.java b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/service/impl/DirectiveOrderServiceImpl.java index 56ae279f..de31c2ed 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/service/impl/DirectiveOrderServiceImpl.java +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/order/service/impl/DirectiveOrderServiceImpl.java @@ -224,8 +224,6 @@ public class DirectiveOrderServiceImpl extends ServiceImpl