|
@@ -12,14 +12,19 @@ import com.jeeplus.core.excel.ExcelOptions;
|
|
|
import com.jeeplus.core.excel.ExportMode;
|
|
|
import com.jeeplus.core.excel.utils.EasyPoiUtil;
|
|
|
import com.jeeplus.core.query.QueryWrapperGenerator;
|
|
|
+import com.jeeplus.sys.constant.enums.LogTypeEnum;
|
|
|
import com.jeeplus.sys.domain.Office;
|
|
|
import com.jeeplus.sys.service.OfficeService;
|
|
|
import com.jeeplus.test.jobPosion.domain.JobPosition;
|
|
|
import com.jeeplus.test.jobPosion.domain.Position;
|
|
|
+import com.jeeplus.test.jobPosion.enums.PositionTypeEnum;
|
|
|
import com.jeeplus.test.jobPosion.service.JobPositionService;
|
|
|
+import com.jeeplus.test.jobPosion.service.PositionLogService;
|
|
|
import com.jeeplus.test.jobPosion.service.PositionService;
|
|
|
import com.jeeplus.test.jobPosion.service.dto.JobPositionDTO;
|
|
|
+import com.jeeplus.test.jobPosion.service.dto.PositionLogDTO;
|
|
|
import com.jeeplus.test.jobPosion.service.mapstruct.JobPositionWrapper;
|
|
|
+import com.jeeplus.test.jobPosion.utils.BeanUtils;
|
|
|
import com.jeeplus.test.projectRecords.constant.enums.ProjectStatusEnum;
|
|
|
import com.jeeplus.test.projectRecords.constant.enums.ProjectTypeEnum;
|
|
|
import com.jeeplus.test.projectRecords.constant.enums.YesOrNoEnum;
|
|
@@ -69,6 +74,9 @@ public class JobPositionController {
|
|
|
@Autowired
|
|
|
private OfficeService officeService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PositionLogService positionLogService;
|
|
|
+
|
|
|
/**
|
|
|
* 查询职位列表
|
|
|
* @param jobPosition
|
|
@@ -103,15 +111,79 @@ public class JobPositionController {
|
|
|
* @param jobPositionDTO
|
|
|
* @return
|
|
|
*/
|
|
|
- @ApiLog("添加职位")
|
|
|
+ @ApiLog(value = "修改/新增职位", type = LogTypeEnum.SAVE)
|
|
|
@PreAuthorize("hasAnyAuthority('job:job_position:save','job:job_position:edit')")
|
|
|
@PostMapping("save")
|
|
|
- public ResponseEntity save(@Valid @RequestBody JobPositionDTO jobPositionDTO) {
|
|
|
+ public ResponseEntity save(@Valid @RequestBody JobPositionDTO jobPositionDTO,HttpServletRequest request) {
|
|
|
JobPosition jobPosition = JobPositionWrapper.INSTANCE.toEntity(jobPositionDTO);
|
|
|
- if(StrUtil.isEmpty(jobPosition.getId())){
|
|
|
+ JobPosition oldPosition = null;
|
|
|
+ PositionLogDTO positionLogDTO = new PositionLogDTO();
|
|
|
+ if(StrUtil.isEmpty(jobPositionDTO.getId())){
|
|
|
jobPosition.setUseFlag("1");
|
|
|
+ positionLogDTO.setType(PositionTypeEnum.JOB_POSITION.getValue());
|
|
|
+ positionLogDTO.setOperationType("新建职位");
|
|
|
+ positionLogDTO.setOperationContent("新建职位: "+jobPositionDTO.getName());
|
|
|
+ }else{
|
|
|
+ oldPosition = jobPositionService.getById(jobPosition.getId());
|
|
|
+ if(ObjectUtil.isNotEmpty(oldPosition)){
|
|
|
+ if(StrUtil.isNotEmpty(oldPosition.getPositionId())){
|
|
|
+ Position byId = positionService.getById(oldPosition.getPositionId());
|
|
|
+ if (ObjectUtil.isNotEmpty(byId)) {
|
|
|
+ if(StrUtil.isNotEmpty(byId.getName())){
|
|
|
+ oldPosition.setPositionId(byId.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(StrUtil.isNotEmpty(oldPosition.getOfficeId())){
|
|
|
+ Office office = officeService.getById(oldPosition.getOfficeId());
|
|
|
+ if (ObjectUtil.isNotEmpty(office)) {
|
|
|
+ if(StrUtil.isNotEmpty(office.getName())){
|
|
|
+ oldPosition.setOfficeId(office.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ positionLogDTO.setType(PositionTypeEnum.JOB_POSITION.getValue());
|
|
|
+ positionLogDTO.setOperationType("修改职位");
|
|
|
+ }
|
|
|
+ try{
|
|
|
+ jobPositionService.saveOrUpdate(jobPosition);
|
|
|
+ }catch (Exception e){
|
|
|
+ if (StrUtil.isNotEmpty(jobPosition.getId())){
|
|
|
+ String changedFields = BeanUtils.getChangedFields(jobPosition, new JobPosition());
|
|
|
+ positionLogDTO.setOperationContent(changedFields);
|
|
|
+ }
|
|
|
+ positionLogDTO.setOperationResult("失败");
|
|
|
+ positionLogService.saveLog(positionLogDTO,request);
|
|
|
+ return ResponseEntity.badRequest().body ("职位保存失败");
|
|
|
}
|
|
|
- jobPositionService.saveOrUpdate(jobPosition);
|
|
|
+
|
|
|
+ if (StrUtil.isNotEmpty(jobPositionDTO.getId())){
|
|
|
+ JobPosition byId = jobPositionService.getById(jobPosition.getId());
|
|
|
+ if(ObjectUtil.isNotEmpty(byId)){
|
|
|
+ if(StrUtil.isNotEmpty(byId.getPositionId())){
|
|
|
+ Position byId1 = positionService.getById(byId.getPositionId());
|
|
|
+ if (ObjectUtil.isNotEmpty(byId1)) {
|
|
|
+ if(StrUtil.isNotEmpty(byId1.getName())){
|
|
|
+ byId.setPositionId(byId1.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(StrUtil.isNotEmpty(byId.getOfficeId())){
|
|
|
+ Office office = officeService.getById(byId.getOfficeId());
|
|
|
+ if (ObjectUtil.isNotEmpty(office)) {
|
|
|
+ if(StrUtil.isNotEmpty(office.getName())){
|
|
|
+ byId.setOfficeId(office.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String changedFields = BeanUtils.getChangedFields(byId, oldPosition);
|
|
|
+ positionLogDTO.setOperationContent(changedFields);
|
|
|
+ }
|
|
|
+ positionLogDTO.setOperationResult("成功");
|
|
|
+ positionLogService.saveLog(positionLogDTO,request);
|
|
|
+
|
|
|
return ResponseEntity.ok ("保存职位成功");
|
|
|
}
|
|
|
|
|
@@ -120,12 +192,36 @@ public class JobPositionController {
|
|
|
* @param ids
|
|
|
* @return
|
|
|
*/
|
|
|
- @ApiLog("删除职位")
|
|
|
+ @ApiLog(value = "删除职位", type = LogTypeEnum.SAVE)
|
|
|
@PreAuthorize ("hasAuthority('job:job_position:del')")
|
|
|
@DeleteMapping("delete")
|
|
|
- public ResponseEntity delete(String ids) {
|
|
|
+ public ResponseEntity delete(String ids,HttpServletRequest request) {
|
|
|
+ List<PositionLogDTO> positionLogDTOList = new ArrayList<>();
|
|
|
+
|
|
|
String idArray[] =ids.split(",");
|
|
|
- jobPositionService.removeByIds (Lists.newArrayList (idArray));
|
|
|
+ List<JobPosition> jobPositions = jobPositionService.listByIds(Lists.newArrayList(idArray));
|
|
|
+ jobPositions.stream().forEach(item->{
|
|
|
+ PositionLogDTO positionLogDTO = new PositionLogDTO();
|
|
|
+ positionLogDTO.setType(PositionTypeEnum.JOB_POSITION.getValue());
|
|
|
+ positionLogDTO.setOperationType("删除职位");
|
|
|
+ positionLogDTO.setOperationContent("删除职位: "+item.getName());
|
|
|
+ positionLogDTOList.add(positionLogDTO);
|
|
|
+ });
|
|
|
+ try{
|
|
|
+ jobPositionService.removeByIds (Lists.newArrayList (idArray));
|
|
|
+ }catch (Exception e) {
|
|
|
+ positionLogDTOList.stream().forEach(item->{
|
|
|
+ item.setOperationResult("失败");
|
|
|
+ });
|
|
|
+ positionLogService.saveLogBatch(positionLogDTOList,request);
|
|
|
+ return ResponseEntity.badRequest().body ("职位删除失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ positionLogDTOList.stream().forEach(item->{
|
|
|
+ item.setOperationResult("成功");
|
|
|
+ });
|
|
|
+ positionLogService.saveLogBatch(positionLogDTOList,request);
|
|
|
+
|
|
|
return ResponseEntity.ok ("删除职位成功");
|
|
|
}
|
|
|
|
|
@@ -134,13 +230,42 @@ public class JobPositionController {
|
|
|
* @param ids
|
|
|
* @return
|
|
|
*/
|
|
|
- @ApiLog("修改职位启动状态")
|
|
|
+ @ApiLog(value = "修改职位启用状态", type = LogTypeEnum.SAVE)
|
|
|
@PreAuthorize ("hasAnyAuthority('job:job_position:del','job:job_position:edit','job:job_position:add')")
|
|
|
@PostMapping("changeUseFlag/{useFlag}")
|
|
|
- public ResponseEntity changeUseFlag(String ids,@PathVariable("useFlag") String useFlag) {
|
|
|
+ public ResponseEntity changeUseFlag(String ids,@PathVariable("useFlag") String useFlag,HttpServletRequest request) {
|
|
|
String idArray[] =ids.split(",");
|
|
|
ArrayList<String> strings = Lists.newArrayList(idArray);
|
|
|
- jobPositionService.updateUseFlagById(strings,useFlag);
|
|
|
+
|
|
|
+ List<PositionLogDTO> positionLogDTOList = new ArrayList<>();
|
|
|
+
|
|
|
+ List<JobPosition> jobPositions = jobPositionService.listByIds(strings);
|
|
|
+ jobPositions.stream().forEach(item->{
|
|
|
+ PositionLogDTO positionLogDTO = new PositionLogDTO();
|
|
|
+ positionLogDTO.setType(PositionTypeEnum.JOB_POSITION.getValue());
|
|
|
+ positionLogDTO.setOperationType("修改职位启用状态");
|
|
|
+ if("1".equals(useFlag)){
|
|
|
+ positionLogDTO.setOperationContent("修改职位“"+item.getName()+"”的启用状态为:启用");
|
|
|
+ }else{
|
|
|
+ positionLogDTO.setOperationContent("修改职位“"+item.getName()+"”的启用状态为:停用");
|
|
|
+ }
|
|
|
+ positionLogDTOList.add(positionLogDTO);
|
|
|
+ });
|
|
|
+ try{
|
|
|
+ jobPositionService.updateUseFlagById(strings,useFlag);
|
|
|
+ }catch (Exception e){
|
|
|
+ positionLogDTOList.stream().forEach(item->{
|
|
|
+ item.setOperationResult("失败");
|
|
|
+ });
|
|
|
+ positionLogService.saveLogBatch(positionLogDTOList,request);
|
|
|
+ return ResponseEntity.badRequest().body ("修改职位状态失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ positionLogDTOList.stream().forEach(item->{
|
|
|
+ item.setOperationResult("成功");
|
|
|
+ });
|
|
|
+ positionLogService.saveLogBatch(positionLogDTOList,request);
|
|
|
+
|
|
|
return ResponseEntity.ok ("修改职位状态成功");
|
|
|
}
|
|
|
|
|
@@ -209,7 +334,7 @@ public class JobPositionController {
|
|
|
@DemoMode
|
|
|
@PreAuthorize("hasAnyAuthority('job:job_position:import')")
|
|
|
@PostMapping("import")
|
|
|
- @ApiOperation(value = "导入职位数据excel")
|
|
|
+ @ApiLog(value = "导入职位数据excel", type = LogTypeEnum.IMPORT)
|
|
|
public ResponseEntity importFile(MultipartFile file) throws IOException{
|
|
|
|
|
|
ArrayList<JobPosition> arrayList = new ArrayList<>();
|
|
@@ -366,7 +491,7 @@ public class JobPositionController {
|
|
|
* @param response
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- @ApiLog("导出职位数据")
|
|
|
+ @ApiLog(value = "导出职位数据", type = LogTypeEnum.EXPORT)
|
|
|
@PreAuthorize("hasAnyAuthority('job:job_position:export')")
|
|
|
@GetMapping("export")
|
|
|
@ApiOperation(value = "导出职位excel")
|