diff --git a/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/controller/EmpSalaryItemConfigController.java b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/controller/EmpSalaryItemConfigController.java new file mode 100644 index 00000000..ffaa2baf --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/controller/EmpSalaryItemConfigController.java @@ -0,0 +1,52 @@ +package cn.lihongjie.coal.empSalaryItemConfig.controller; + +import cn.lihongjie.coal.annotation.SysLog; +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.empSalaryItemConfig.dto.CreateEmpSalaryItemConfigDto; +import cn.lihongjie.coal.empSalaryItemConfig.dto.EmpSalaryItemConfigDto; +import cn.lihongjie.coal.empSalaryItemConfig.dto.UpdateEmpSalaryItemConfigDto; +import cn.lihongjie.coal.empSalaryItemConfig.service.EmpSalaryItemConfigService; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/empSalaryItemConfig") +@SysLog(module = "工资公式配置") +@Slf4j +public class EmpSalaryItemConfigController { + @Autowired private EmpSalaryItemConfigService service; + + @PostMapping("/create") + public EmpSalaryItemConfigDto create(@RequestBody CreateEmpSalaryItemConfigDto request) { + return this.service.create(request); + } + + @PostMapping("/update") + public EmpSalaryItemConfigDto update(@RequestBody UpdateEmpSalaryItemConfigDto request) { + return this.service.update(request); + } + + @PostMapping("/delete") + public Object delete(@RequestBody IdRequest request) { + this.service.delete(request); + return true; + } + + @PostMapping("/getById") + public EmpSalaryItemConfigDto getById(@RequestBody IdRequest request) { + return this.service.getById(request.getId()); + } + + @PostMapping("/list") + public Page list(@RequestBody CommonQuery request) { + return this.service.list(request); + } +} diff --git a/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/dto/CreateEmpSalaryItemConfigDto.java b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/dto/CreateEmpSalaryItemConfigDto.java new file mode 100644 index 00000000..2fd3b857 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/dto/CreateEmpSalaryItemConfigDto.java @@ -0,0 +1,34 @@ +package cn.lihongjie.coal.empSalaryItemConfig.dto; + +import cn.lihongjie.coal.base.dto.CommonDto; + +import lombok.Data; + +import org.hibernate.annotations.Comment; +import org.hibernate.annotations.Formula; + +@Data +public class CreateEmpSalaryItemConfigDto extends CommonDto { + @Comment("类别") + private String itemType; + + @Formula( + "(select i.name\n" + + "from t_dictionary d,\n" + + " t_dictionary_item i\n" + + "where d.id = i.dictionary_id\n" + + " and d.code = 'emp.salary.item.config.type'\n" + + " and i.code = item_type)") + private String itemTypeName; + + + + @Comment("表达式") + private String expression; + + + + @Comment("表达式-展示") + private String expressionShow; + +} diff --git a/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/dto/EmpSalaryItemConfigDto.java b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/dto/EmpSalaryItemConfigDto.java new file mode 100644 index 00000000..68000720 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/dto/EmpSalaryItemConfigDto.java @@ -0,0 +1,34 @@ +package cn.lihongjie.coal.empSalaryItemConfig.dto; + +import cn.lihongjie.coal.base.dto.CommonDto; + +import lombok.Data; + +import org.hibernate.annotations.Comment; +import org.hibernate.annotations.Formula; + +@Data +public class EmpSalaryItemConfigDto extends CommonDto { + + @Comment("类别") + private String itemType; + + @Formula( + "(select i.name\n" + + "from t_dictionary d,\n" + + " t_dictionary_item i\n" + + "where d.id = i.dictionary_id\n" + + " and d.code = 'emp.salary.item.config.type'\n" + + " and i.code = item_type)") + private String itemTypeName; + + + + @Comment("表达式") + private String expression; + + + + @Comment("表达式-展示") + private String expressionShow; +} diff --git a/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/dto/UpdateEmpSalaryItemConfigDto.java b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/dto/UpdateEmpSalaryItemConfigDto.java new file mode 100644 index 00000000..6ea798d9 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/dto/UpdateEmpSalaryItemConfigDto.java @@ -0,0 +1,34 @@ +package cn.lihongjie.coal.empSalaryItemConfig.dto; + +import cn.lihongjie.coal.base.dto.CommonDto; + +import lombok.Data; + +import org.hibernate.annotations.Comment; +import org.hibernate.annotations.Formula; + +@Data +public class UpdateEmpSalaryItemConfigDto extends CommonDto { + + @Comment("类别") + private String itemType; + + @Formula( + "(select i.name\n" + + "from t_dictionary d,\n" + + " t_dictionary_item i\n" + + "where d.id = i.dictionary_id\n" + + " and d.code = 'emp.salary.item.config.type'\n" + + " and i.code = item_type)") + private String itemTypeName; + + + + @Comment("表达式") + private String expression; + + + + @Comment("表达式-展示") + private String expressionShow; +} diff --git a/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/entity/EmpSalaryItemConfigEntity.java b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/entity/EmpSalaryItemConfigEntity.java new file mode 100644 index 00000000..d353737a --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/entity/EmpSalaryItemConfigEntity.java @@ -0,0 +1,46 @@ +package cn.lihongjie.coal.empSalaryItemConfig.entity; + +import cn.lihongjie.coal.base.entity.CommonEntity; + +import jakarta.persistence.Entity; + +import lombok.Data; + +import org.hibernate.annotations.Comment; +import org.hibernate.annotations.Formula; + +@Data +@Entity +public class EmpSalaryItemConfigEntity extends CommonEntity { + + @Comment("类别") + private String itemType; + + @Formula( + "(select i.name\n" + + "from t_dictionary d,\n" + + " t_dictionary_item i\n" + + "where d.id = i.dictionary_id\n" + + " and d.code = 'emp.salary.item.config.type'\n" + + " and i.code = item_type)") + private String itemTypeName; + + + + @Comment("表达式") + private String expression; + + + + @Comment("表达式-展示") + private String expressionShow; + + + + @Comment("字典编码") + private String dictCode; + + + + +} diff --git a/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/mapper/EmpSalaryItemConfigMapper.java b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/mapper/EmpSalaryItemConfigMapper.java new file mode 100644 index 00000000..52c29b65 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/mapper/EmpSalaryItemConfigMapper.java @@ -0,0 +1,23 @@ +package cn.lihongjie.coal.empSalaryItemConfig.mapper; + +import cn.lihongjie.coal.base.mapper.BaseMapper; +import cn.lihongjie.coal.base.mapper.CommonEntityMapper; +import cn.lihongjie.coal.base.mapper.CommonMapper; +import cn.lihongjie.coal.empSalaryItemConfig.dto.CreateEmpSalaryItemConfigDto; +import cn.lihongjie.coal.empSalaryItemConfig.dto.EmpSalaryItemConfigDto; +import cn.lihongjie.coal.empSalaryItemConfig.dto.UpdateEmpSalaryItemConfigDto; +import cn.lihongjie.coal.empSalaryItemConfig.entity.EmpSalaryItemConfigEntity; + +import org.mapstruct.Mapper; +import org.mapstruct.control.DeepClone; + +@Mapper( + componentModel = org.mapstruct.MappingConstants.ComponentModel.SPRING, + uses = {CommonMapper.class, CommonEntityMapper.class}, + mappingControl = DeepClone.class) +public interface EmpSalaryItemConfigMapper + extends BaseMapper< + EmpSalaryItemConfigEntity, + EmpSalaryItemConfigDto, + CreateEmpSalaryItemConfigDto, + UpdateEmpSalaryItemConfigDto> {} diff --git a/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/repository/EmpSalaryItemConfigRepository.java b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/repository/EmpSalaryItemConfigRepository.java new file mode 100644 index 00000000..11b27da8 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/repository/EmpSalaryItemConfigRepository.java @@ -0,0 +1,9 @@ +package cn.lihongjie.coal.empSalaryItemConfig.repository; + +import cn.lihongjie.coal.base.dao.BaseRepository; +import cn.lihongjie.coal.empSalaryItemConfig.entity.EmpSalaryItemConfigEntity; + +import org.springframework.stereotype.Repository; + +@Repository +public interface EmpSalaryItemConfigRepository extends BaseRepository {} diff --git a/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/service/EmpSalaryItemConfigService.java b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/service/EmpSalaryItemConfigService.java new file mode 100644 index 00000000..98c412d9 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/empSalaryItemConfig/service/EmpSalaryItemConfigService.java @@ -0,0 +1,71 @@ +package cn.lihongjie.coal.empSalaryItemConfig.service; + +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.base.service.BaseService; +import cn.lihongjie.coal.empSalaryItemConfig.dto.CreateEmpSalaryItemConfigDto; +import cn.lihongjie.coal.empSalaryItemConfig.dto.EmpSalaryItemConfigDto; +import cn.lihongjie.coal.empSalaryItemConfig.dto.UpdateEmpSalaryItemConfigDto; +import cn.lihongjie.coal.empSalaryItemConfig.entity.EmpSalaryItemConfigEntity; +import cn.lihongjie.coal.empSalaryItemConfig.mapper.EmpSalaryItemConfigMapper; +import cn.lihongjie.coal.empSalaryItemConfig.repository.EmpSalaryItemConfigRepository; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.ConversionService; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Slf4j +@Transactional +public class EmpSalaryItemConfigService + extends BaseService { + @Autowired private EmpSalaryItemConfigRepository repository; + + @Autowired private EmpSalaryItemConfigMapper mapper; + + @Autowired private ConversionService conversionService; + + public EmpSalaryItemConfigDto create(CreateEmpSalaryItemConfigDto request) { + EmpSalaryItemConfigEntity entity = mapper.toEntity(request); + + this.repository.save(entity); + return getById(entity.getId()); + } + + public EmpSalaryItemConfigDto update(UpdateEmpSalaryItemConfigDto request) { + EmpSalaryItemConfigEntity entity = this.repository.get(request.getId()); + this.mapper.updateEntity(entity, request); + + this.repository.save(entity); + + return getById(entity.getId()); + } + + public void delete(IdRequest request) { + this.repository.deleteAllById(request.getIds()); + } + + public EmpSalaryItemConfigDto getById(String id) { + EmpSalaryItemConfigEntity entity = repository.get(id); + + return mapper.toDto(entity); + } + + public Page list(CommonQuery query) { + Page page = + repository.findAll( + query.specification(conversionService), + PageRequest.of( + query.getPageNo(), + query.getPageSize(), + Sort.by(query.getOrders()))); + + return page.map(this.mapper::toDto); + } +} diff --git a/src/main/resources/scripts/dict/enum/empSalaryItemConfigDict.groovy b/src/main/resources/scripts/dict/enum/empSalaryItemConfigDict.groovy new file mode 100644 index 00000000..c4e9fe69 --- /dev/null +++ b/src/main/resources/scripts/dict/enum/empSalaryItemConfigDict.groovy @@ -0,0 +1,17 @@ + +package scripts.dict + +import cn.lihongjie.coal.base.dto.CommonQuery +import cn.lihongjie.coal.empSalaryItemConfig.controller.EmpSalaryItemConfigController +import org.springframework.context.ApplicationContext + +ApplicationContext ioc = ioc + +def controller = ioc.getBean(EmpSalaryItemConfigController.class) + + + + +return controller.list(new CommonQuery()) + +