From 9dc6c61ed26335767b9f7f2ef15d18db64917044 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 14 Nov 2022 21:03:24 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E7=BC=96=E8=BE=91=E8=B0=83=E8=96=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/biz/SalaryArchiveItemBiz.java | 13 +++ .../param/SalaryArchiveItemSaveParam.java | 9 +- .../service/SalaryArchiveItemService.java | 17 ++- .../impl/SalaryArchiveItemServiceImpl.java | 106 ++++++++++++++++++ .../salary/web/SalaryArchiveController.java | 16 +++ .../wrapper/SalaryArchiveItemWrapper.java | 63 +++++++++++ .../proxy/SalaryArchiveItemWrapperProxy.java | 7 ++ 7 files changed, 227 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/biz/SalaryArchiveItemBiz.java b/src/com/engine/salary/biz/SalaryArchiveItemBiz.java index e8c096755..e36c02296 100644 --- a/src/com/engine/salary/biz/SalaryArchiveItemBiz.java +++ b/src/com/engine/salary/biz/SalaryArchiveItemBiz.java @@ -123,6 +123,19 @@ public class SalaryArchiveItemBiz { } + public void updateIgnoreNull(SalaryArchiveItemPO salaryArchiveItem) { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); + SalaryArchiveItemPOEncrypt.encryptSalaryArchiveItemPO(salaryArchiveItem); + mapper.updateIgnoreNull(salaryArchiveItem); + sqlSession.commit(); + } finally { + sqlSession.close(); + } + } + + public List salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam queryParam, List salaryItemIds) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemSaveParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemSaveParam.java index 66725711c..a096f12ae 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemSaveParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemSaveParam.java @@ -30,6 +30,9 @@ import java.util.Set; //薪资项目调整保存参数") public class SalaryArchiveItemSaveParam { + // 主键id + private Long salaryArchiveItemId; + //薪资档案id private Long salaryArchiveId; @@ -56,9 +59,9 @@ public class SalaryArchiveItemSaveParam { if (saveParam.getAdjustReason() == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100306, "请选择调整原因")); } - if (SalaryArchiveItemAdjustReasonEnum.parseByValue(saveParam.getAdjustReason()) == null) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100306, "调整原因不在范围内")); - } +// if (SalaryArchiveItemAdjustReasonEnum.parseByValue(saveParam.getAdjustReason()) == null) { +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100306, "调整原因不在范围内")); +// } if (saveParam.getEffectiveTime() == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100307, "请选择生效日期")); } diff --git a/src/com/engine/salary/service/SalaryArchiveItemService.java b/src/com/engine/salary/service/SalaryArchiveItemService.java index 51a534d68..70f53e9d9 100644 --- a/src/com/engine/salary/service/SalaryArchiveItemService.java +++ b/src/com/engine/salary/service/SalaryArchiveItemService.java @@ -43,6 +43,15 @@ public interface SalaryArchiveItemService { */ String getSalaryItemAdjustBeforeValue(SalaryItemAdjustBeforeParam adjustBeforeParam); + + /** + * @description 根据薪资档案id和薪资项id获取薪资项目(生效+不生效) + * @return List + * @author Harryxzy + * @date 2022/11/14 17:07 + */ + List getSalaryItemsBySalaryArchiveIdAndItemIds(Long salaryArchiveId, List salaryItemPageIds); + /** * 获取当前已生效 * @@ -140,5 +149,11 @@ public interface SalaryArchiveItemService { Map> getIneffectiveItemListMap(Collection salaryArchiveIds, boolean isNoNeedSalaryItem, Collection salaryItemIds); - + /** + * @description 单个档案的薪资项目调整的编辑 + * @return String + * @author Harryxzy + * @date 2022/11/14 13:38 + */ + String editSingleSalaryItem(SalaryArchiveItemSaveParam salaryArchiveItemSaveParam); } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java index 52b422a7e..d02a7a728 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java @@ -4,6 +4,7 @@ import com.engine.core.impl.Service; import com.engine.salary.biz.SalaryArchiveBiz; import com.engine.salary.biz.SalaryArchiveItemBiz; import com.engine.salary.biz.SalaryItemBiz; +import com.engine.salary.constant.SalaryArchiveConstant; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO; import com.engine.salary.entity.salaryarchive.param.*; @@ -12,6 +13,7 @@ import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum; +import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.SalaryArchiveItemService; import com.engine.salary.util.SalaryEntityUtil; @@ -26,6 +28,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.text.SimpleDateFormat; import java.util.*; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -57,8 +60,11 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi private List getIneffectiveSalaryItems(Long salaryArchiveId, List salaryItemIds) { // 没有薪资项目时,给个不存在的,否则加载所有不合理 salaryItemIds = CollectionUtils.isEmpty(salaryItemIds) ? Collections.singletonList(0L) : salaryItemIds; + ArrayList salaryArchiveIds = new ArrayList<>(); + salaryArchiveIds.add(salaryArchiveId); return salaryArchiveItemMapper.getIneffectiveSalaryItems(SalaryArchiveItemQueryParam.builder() .salaryArchiveId(salaryArchiveId) + .salaryArchivesIds(salaryArchiveIds) .salaryItemIds(salaryItemIds) .effectiveTime(new Date()).build()); } @@ -74,6 +80,17 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi .effectiveTime(new Date()).build()); } + + @Override + public List getSalaryItemsBySalaryArchiveIdAndItemIds(Long salaryArchiveId, List salaryItemIds) { + // 没有薪资项目时,给个不存在的,否则加载所有不合理 + salaryItemIds = CollectionUtils.isEmpty(salaryItemIds) ? Collections.singletonList(0L) : salaryItemIds; + return salaryArchiveItemMapper.getEffectiveSalaryItems(SalaryArchiveItemQueryParam.builder() + .salaryArchiveId(salaryArchiveId) + .salaryItemIds(salaryItemIds) + .build()); + } + /** * 获取当前已生效 gt * @@ -169,6 +186,95 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi return SalaryEntityUtil.group2Map(salaryArchiveItems, k -> k.getSalaryArchiveId() + "-" + k.getSalaryItemId()); } + @Override + public String editSingleSalaryItem(SalaryArchiveItemSaveParam salaryArchiveItemSaveParam) { + // 检查参数 + SalaryArchiveItemSaveParam.checkParam(salaryArchiveItemSaveParam); + + Long salaryArchiveId = salaryArchiveItemSaveParam.getSalaryArchiveId(); + // 获取所有可被引用的薪资项目 + List salaryItems = getCanAdjustSalaryItems(); + Map salaryItemMap = SalaryEntityUtil.convert2Map(salaryItems, SalaryItemPO::getId); + // 待处理薪资项目 + List salaryArchiveItems = salaryArchiveItemSaveParam.getSalaryArchiveItems().stream() + .filter(e -> salaryItemMap.containsKey(e.getSalaryItemId())) + .collect(Collectors.toList()); + List salaryItemIds = salaryArchiveItems.stream().map(SalaryArchiveItemDetailSaveParam::getSalaryItemId).collect(Collectors.toList()); + // 薪资档案 + SalaryArchivePO salaryArchive = salaryArchiveMapper.getById(salaryArchiveId); + if (salaryArchive != null) { + // 停薪列表禁止操作 + boolean isDisabled = salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue()) || + salaryArchive.getRunStatus().equals(SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue()); + if (isDisabled) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(115437, "停薪列表禁止操作")); + } + SalaryArchiveItemPO salaryArchiveItem = null; + if (salaryArchiveItemSaveParam.getSalaryArchiveItemId() != null ) { + salaryArchiveItem = salaryArchiveItemMapper.getById(salaryArchiveItemSaveParam.getSalaryArchiveItemId()); + if (salaryArchiveItem == null || !salaryArchiveItem.getSalaryArchiveId().equals(salaryArchiveId)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100428, "该薪资档案的薪资项目的调整记录不存在")); + } + if (salaryArchiveItemSaveParam.getSalaryArchiveItems().size() > 1) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(149535, "单个调整不能处理多个薪资项目")); + } else if (!salaryArchiveItems.get(0).getSalaryItemId().equals(salaryArchiveItem.getSalaryItemId())){ + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 149539, "单个调薪的目标项目和调整明细项目id不一致")); + } + } + // 构建更新PO + SalaryArchiveItemPO updateSalaryArchiveItemPO = buildUpdateSalaryArchiveItemPO(salaryArchiveItemSaveParam,salaryArchiveItems,salaryItemIds,salaryArchiveItem); + salaryArchiveItemMapper.updateIgnoreNull(updateSalaryArchiveItemPO); + } + return StringUtils.EMPTY; + } + + /** + * @description 构建薪资档案中调薪的更新PO + * @return null + * @author Harryxzy + * @date 2022/11/14 14:24 + */ + private SalaryArchiveItemPO buildUpdateSalaryArchiveItemPO(SalaryArchiveItemSaveParam salaryArchiveItemSaveParam,List salaryArchiveItems,List salaryItemIds,SalaryArchiveItemPO salaryArchiveItem) { + // 获取生效+未生效的数据 + List salaryItemsBySalaryArchiveIdAndItemIds = getSalaryItemsBySalaryArchiveIdAndItemIds(salaryArchiveItemSaveParam.getSalaryArchiveId(), salaryItemIds); + // 获取当前已生效数据 + List effectiveSalaryItems = getEffectiveSalaryItems(salaryArchiveItemSaveParam.getSalaryArchiveId(), salaryItemIds); + // 待保存生效时间 + Date saveEffectiveTime = salaryArchiveItemSaveParam.getEffectiveTime(); + salaryArchiveItems.forEach(e -> { + // 已生效 + List effectiveList = effectiveSalaryItems.stream().filter(i -> i.getSalaryItemId().equals(e.getSalaryItemId())).collect(Collectors.toList()); + // 当前已生效 + SalaryArchiveItemPO effectiveSalaryItem = CollectionUtils.isNotEmpty(effectiveList) && effectiveList.size() > 0 ? effectiveList.get(0) : null; + List list = salaryItemsBySalaryArchiveIdAndItemIds.stream().filter(i -> i.getSalaryItemId().equals(e.getSalaryItemId())).collect(Collectors.toList()); + boolean isNotNumber = StringUtils.isNotEmpty(e.getAdjustValue()) && !Pattern.matches(SalaryArchiveConstant.NUMBER_REGEX, e.getAdjustValue()); + if (isNotNumber) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100581, "请输入数字")); + } + + // 修改了生效日期 + if(!salaryArchiveItemSaveParam.getEffectiveTime().equals(salaryArchiveItem.getEffectiveTime())){ + boolean isEffectiveTimeRepeat = list.stream().anyMatch(it -> it.getEffectiveTime().equals(saveEffectiveTime)); + if (isEffectiveTimeRepeat) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(153539, "已经存在该生效日期的调整记录,请修改生效日期")); + } + } + + + // 1.检验是否可以调整 + if (effectiveSalaryItem != null) { + // 当前已经生效的时间 + Date effectiveTime = effectiveSalaryItem.getEffectiveTime(); + // 1.1 如果保存的生效日期早于<当前已生效 + if (saveEffectiveTime.before(effectiveTime)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100429, "生效日期不可早于当前已生效的调整日期")); + } + } + }); + return SalaryArchiveItemPO.builder().id(salaryArchiveItemSaveParam.getSalaryArchiveItemId()).effectiveTime(salaryArchiveItemSaveParam.getEffectiveTime()).adjustReason(salaryArchiveItemSaveParam.getAdjustReason()) + .description(salaryArchiveItemSaveParam.getDescription()).itemValue(salaryArchiveItemSaveParam.getSalaryArchiveItems().get(0).getAdjustValue()).build(); + } + @Override public List getCurrentEffectiveItemListIngoreValue(Collection salaryArchivesIds, List salaryItemIds) { diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index f5fbfcaae..ca33a1014 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -718,6 +718,22 @@ public class SalaryArchiveController { return new ResponseResult>(user).run(getSalaryArchiveItemWrapper(user)::singleSalaryItemAdjustRecordList, queryParam); } + + /** + * @description 单个档案的薪资项目调整的编辑 + * @return String + * @author Harryxzy + * @date 2022/11/11 13:50 + */ + @POST + @Path("/adjustRecord/editSingleSalaryItem") + @Produces(MediaType.APPLICATION_JSON) + public String editSingleSalaryItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveItemSaveParam updateParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryArchiveItemWrapper(user)::editSingleSalaryItem, updateParam); + } + + /** * 导出薪资项目调整记录列表 */ diff --git a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java index fca2f61bd..7954d7838 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java @@ -280,6 +280,17 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt return listPage; } + /** + * @description 单个档案的薪资项目调整的编辑 + * @return void + * @author Harryxzy + * @date 2022/11/14 11:46 + */ + @Override + public String editSingleSalaryItem(SalaryArchiveItemSaveParam salaryArchiveItemSaveParam) { + return getSalaryArchiveItemService(user).editSingleSalaryItem(salaryArchiveItemSaveParam); + } + /** * 导出薪资项目调整记录列表 * @@ -291,4 +302,56 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt } + /** + * @description 获取单个档案的单个薪资项目调整信息 + * @return void + * @author Harryxzy + * @date 2022/11/11 14:39 + */ + public SingleSalaryItemAdjustRecordListDTO getSingleSalaryItemInfo(SingleSalaryItemAdjustRecordListDTO queryParam) { + SalaryArchiveItemPO byId = getSalaryArchiveItemService(user).getById(queryParam.getId()); + + // 获取所有可被引用的薪资项目 + List salaryItemList = getSalaryArchiveItemService(user).getCanAdjustSalaryItems(); + List salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); + //所有调整记录 + List listAll = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam.builder().build(), salaryItemIds); + + //根据条件分页查询调整记录 + PageInfo adjustlistByParamPage = getSalaryArchiveItemService(user).salaryItemAdjustRecordListPage(SalaryItemAdjustRecordQueryParam.builder().salaryArchiveId(byId.getSalaryArchiveId()).build(), salaryItemIds); + List adjustPageList = adjustlistByParamPage.getList(); + + List resultList = Lists.newArrayList(); + adjustPageList.forEach(m -> { + if (CollectionUtils.isNotEmpty(listAll)) { + listAll.removeIf(a -> a.getId().equals(m.getId())); + } + Optional optional = listAll.stream().filter(f -> f.getSalaryArchiveId().equals(m.getSalaryArchiveId()) && f.getSalaryItemId().equals(m.getSalaryItemId())).findFirst(); + m.setAdjustBefore(optional.isPresent() ? optional.get().getAdjustAfter() : ""); + + m.setAdjustReason(SalaryArchiveItemAdjustReasonEnum.getDefaultLabelByValue(m.getAdjustReason())); + + SingleSalaryItemAdjustRecordListDTO singleSalaryItemAdjustRecordList = new SingleSalaryItemAdjustRecordListDTO(); + BeanUtils.copyProperties(m, singleSalaryItemAdjustRecordList); + resultList.add(singleSalaryItemAdjustRecordList); + }); + + List salaryItemPageIds = resultList.stream().map(SingleSalaryItemAdjustRecordListDTO::getSalaryItemId).collect(Collectors.toList()); + List effectiveSalaryItems = getSalaryArchiveItemService(user).getEffectiveSalaryItems(queryParam.getSalaryArchiveId(), salaryItemPageIds); + // 行记录按钮权限控制 + for (int i = 0; i < resultList.size(); i++) { + SingleSalaryItemAdjustRecordListDTO singleSalaryItemAdjustRecord = resultList.get(i); + if(singleSalaryItemAdjustRecord.getId().equals(queryParam.getId())){ + Optional optional = effectiveSalaryItems.stream().filter(f -> f.getSalaryItemId().equals(singleSalaryItemAdjustRecord.getSalaryItemId())).findFirst(); + Date effectiveDate = optional.map(SalaryArchiveItemPO::getEffectiveTime).orElse(null); + if (effectiveDate != null && singleSalaryItemAdjustRecord.getEffectiveTime().before(effectiveDate)) { + singleSalaryItemAdjustRecord.setCanOperator(Boolean.FALSE); + } else { + singleSalaryItemAdjustRecord.setCanOperator(Boolean.TRUE); + } + return singleSalaryItemAdjustRecord; + } + } + return null; + } } diff --git a/src/com/engine/salary/wrapper/proxy/SalaryArchiveItemWrapperProxy.java b/src/com/engine/salary/wrapper/proxy/SalaryArchiveItemWrapperProxy.java index 5dd2719b0..e59218f04 100644 --- a/src/com/engine/salary/wrapper/proxy/SalaryArchiveItemWrapperProxy.java +++ b/src/com/engine/salary/wrapper/proxy/SalaryArchiveItemWrapperProxy.java @@ -55,4 +55,11 @@ public interface SalaryArchiveItemWrapperProxy { PageInfo singleSalaryItemAdjustRecordList(SingleSalaryItemAdjustRecordQueryParam queryParam); + /** + * @description 单个档案的薪资项目调整的编辑 + * @return void + * @author Harryxzy + * @date 2022/11/14 11:45 + */ + String editSingleSalaryItem(SalaryArchiveItemSaveParam salaryArchiveItemSaveParam); } From 323c1ec0e0c519c1158dff28a91671c66ca45cf8 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 15 Nov 2022 09:34:58 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E8=B0=83=E8=96=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/web/SalaryArchiveController.java | 14 ++++++++++++++ .../salary/wrapper/SalaryArchiveItemWrapper.java | 4 +++- .../proxy/SalaryArchiveItemWrapperProxy.java | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index ca33a1014..0222fbf4f 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -719,6 +719,20 @@ public class SalaryArchiveController { } + /** + * @description 编辑前获取薪资项目调整信息 + * @return String + * @author Harryxzy + * @date 2022/11/15 9:25 + */ + @POST + @Path("/adjustRecord/getSingleSalaryItemInfo") + @Produces(MediaType.APPLICATION_JSON) + public String getSingleSalaryItemInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SingleSalaryItemAdjustRecordListDTO queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryArchiveItemWrapper(user)::getSingleSalaryItemInfo, queryParam); + } + /** * @description 单个档案的薪资项目调整的编辑 * @return String diff --git a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java index 7954d7838..6853cb482 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java @@ -310,7 +310,9 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt */ public SingleSalaryItemAdjustRecordListDTO getSingleSalaryItemInfo(SingleSalaryItemAdjustRecordListDTO queryParam) { SalaryArchiveItemPO byId = getSalaryArchiveItemService(user).getById(queryParam.getId()); - + if(Objects.isNull(byId)){ + throw new SalaryRunTimeException("该薪资项目调整信息不存在"); + } // 获取所有可被引用的薪资项目 List salaryItemList = getSalaryArchiveItemService(user).getCanAdjustSalaryItems(); List salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); diff --git a/src/com/engine/salary/wrapper/proxy/SalaryArchiveItemWrapperProxy.java b/src/com/engine/salary/wrapper/proxy/SalaryArchiveItemWrapperProxy.java index e59218f04..b160b2bb4 100644 --- a/src/com/engine/salary/wrapper/proxy/SalaryArchiveItemWrapperProxy.java +++ b/src/com/engine/salary/wrapper/proxy/SalaryArchiveItemWrapperProxy.java @@ -55,6 +55,8 @@ public interface SalaryArchiveItemWrapperProxy { PageInfo singleSalaryItemAdjustRecordList(SingleSalaryItemAdjustRecordQueryParam queryParam); + SingleSalaryItemAdjustRecordListDTO getSingleSalaryItemInfo(SingleSalaryItemAdjustRecordListDTO queryParam); + /** * @description 单个档案的薪资项目调整的编辑 * @return void From a3705c67a4469ed71ea634994ac714d5c6b6f71e Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 15 Nov 2022 11:37:55 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E8=B0=83=E8=96=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/SalaryArchiveItemFormDTO.java | 3 +++ .../salary/web/SalaryArchiveController.java | 2 +- .../wrapper/SalaryArchiveItemWrapper.java | 21 ++++++++++++++++--- .../proxy/SalaryArchiveItemWrapperProxy.java | 2 +- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveItemFormDTO.java b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveItemFormDTO.java index 441973350..086bd054a 100644 --- a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveItemFormDTO.java +++ b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveItemFormDTO.java @@ -30,4 +30,7 @@ public class SalaryArchiveItemFormDTO { //薪资项目调整明细") private Map salaryArchiveItemDetail; + + //是否可以编辑 + private boolean canOperator; } diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index 0222fbf4f..28e773578 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -730,7 +730,7 @@ public class SalaryArchiveController { @Produces(MediaType.APPLICATION_JSON) public String getSingleSalaryItemInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SingleSalaryItemAdjustRecordListDTO queryParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalaryArchiveItemWrapper(user)::getSingleSalaryItemInfo, queryParam); + return new ResponseResult(user).run(getSalaryArchiveItemWrapper(user)::getSingleSalaryItemInfo, queryParam); } /** diff --git a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java index 6853cb482..a1c86cebb 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java @@ -308,7 +308,7 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt * @author Harryxzy * @date 2022/11/11 14:39 */ - public SingleSalaryItemAdjustRecordListDTO getSingleSalaryItemInfo(SingleSalaryItemAdjustRecordListDTO queryParam) { + public SalaryArchiveItemFormDTO getSingleSalaryItemInfo(SingleSalaryItemAdjustRecordListDTO queryParam) { SalaryArchiveItemPO byId = getSalaryArchiveItemService(user).getById(queryParam.getId()); if(Objects.isNull(byId)){ throw new SalaryRunTimeException("该薪资项目调整信息不存在"); @@ -339,7 +339,7 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt }); List salaryItemPageIds = resultList.stream().map(SingleSalaryItemAdjustRecordListDTO::getSalaryItemId).collect(Collectors.toList()); - List effectiveSalaryItems = getSalaryArchiveItemService(user).getEffectiveSalaryItems(queryParam.getSalaryArchiveId(), salaryItemPageIds); + List effectiveSalaryItems = getSalaryArchiveItemService(user).getEffectiveSalaryItems(byId.getSalaryArchiveId(), salaryItemPageIds); // 行记录按钮权限控制 for (int i = 0; i < resultList.size(); i++) { SingleSalaryItemAdjustRecordListDTO singleSalaryItemAdjustRecord = resultList.get(i); @@ -351,7 +351,22 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt } else { singleSalaryItemAdjustRecord.setCanOperator(Boolean.TRUE); } - return singleSalaryItemAdjustRecord; + Map map = new HashMap<>(3); + map.put("salaryItem", String.valueOf(singleSalaryItemAdjustRecord.getSalaryItemId())); + map.put("salaryBefore", singleSalaryItemAdjustRecord.getAdjustBefore()); + map.put("adjustAfter", singleSalaryItemAdjustRecord.getAdjustAfter()); + + // 调整明细数据 + List> tableData = Lists.newArrayList(); + tableData.add(map); + + return SalaryArchiveItemFormDTO.builder() + .canOperator(singleSalaryItemAdjustRecord.getCanOperator()) + .salaryArchiveId(byId.getSalaryArchiveId()) + .salaryArchiveItemForm(buildSalaryArchiveItemForm(byId.getEffectiveTime(), byId.getAdjustReason(), byId.getDescription())) + .salaryArchiveItemDetail(buildSalaryArchiveItemAdjustDetailTable(tableData)) + .build(); + } } return null; diff --git a/src/com/engine/salary/wrapper/proxy/SalaryArchiveItemWrapperProxy.java b/src/com/engine/salary/wrapper/proxy/SalaryArchiveItemWrapperProxy.java index b160b2bb4..79ffa914a 100644 --- a/src/com/engine/salary/wrapper/proxy/SalaryArchiveItemWrapperProxy.java +++ b/src/com/engine/salary/wrapper/proxy/SalaryArchiveItemWrapperProxy.java @@ -55,7 +55,7 @@ public interface SalaryArchiveItemWrapperProxy { PageInfo singleSalaryItemAdjustRecordList(SingleSalaryItemAdjustRecordQueryParam queryParam); - SingleSalaryItemAdjustRecordListDTO getSingleSalaryItemInfo(SingleSalaryItemAdjustRecordListDTO queryParam); + SalaryArchiveItemFormDTO getSingleSalaryItemInfo(SingleSalaryItemAdjustRecordListDTO queryParam); /** * @description 单个档案的薪资项目调整的编辑 From 1bcb02d2e0ef3042700353da3550f5e56912ec46 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 16 Nov 2022 14:22:25 +0800 Subject: [PATCH 4/6] =?UTF-8?q?fix=E8=96=AA=E8=B5=84=E8=B4=A6=E5=A5=97?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E7=8A=B6=E6=80=81=E4=B8=8B=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=88=A0=E9=99=A4bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SalarySobServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index 85f80eeee..dfd10acd9 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -147,7 +147,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { @Override public List listByAdmin() { - List salarySobPOS = salarySobMapper.listSome(SalarySobPO.builder().disable(NumberUtils.INTEGER_ZERO).build()); + List salarySobPOS = salarySobMapper.listSome(SalarySobPO.builder().build()); return filterByAdmin(salarySobPOS); } From 9f17c6e99aa4c773cdb9438cfa35a181e30519dd Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 16 Nov 2022 17:22:22 +0800 Subject: [PATCH 5/6] fixBUG --- .../salaryarchive/param/SalaryArchiveItemSaveParam.java | 5 +++++ .../salary/service/impl/SalaryArchiveItemServiceImpl.java | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemSaveParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemSaveParam.java index a096f12ae..01329f8bc 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemSaveParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveItemSaveParam.java @@ -39,6 +39,9 @@ public class SalaryArchiveItemSaveParam { //生效时间 private Date effectiveTime; + // 是否允许编辑 + private Boolean canOperator; + /** * 调整原因 * @@ -52,6 +55,8 @@ public class SalaryArchiveItemSaveParam { //薪资项目 private List salaryArchiveItems; + + public static void checkParam(SalaryArchiveItemSaveParam saveParam) { if (saveParam.getSalaryArchiveId() == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100305, "薪资档案id必传")); diff --git a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java index d02a7a728..957399161 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java @@ -260,14 +260,18 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi } } - // 1.检验是否可以调整 if (effectiveSalaryItem != null) { // 当前已经生效的时间 Date effectiveTime = effectiveSalaryItem.getEffectiveTime(); // 1.1 如果保存的生效日期早于<当前已生效 if (saveEffectiveTime.before(effectiveTime)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100429, "生效日期不可早于当前已生效的调整日期")); + if(salaryArchiveItemSaveParam.getCanOperator() == Boolean.TRUE){ + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100429, "生效日期不可早于当前已生效的调整日期,仅修改备注")); + } + // 仅可编辑说明 + salaryArchiveItemMapper.updateIgnoreNull( SalaryArchiveItemPO.builder().id(salaryArchiveItemSaveParam.getSalaryArchiveItemId()) + .description(salaryArchiveItemSaveParam.getDescription()).build()); } } }); From 1eaef7fcd49a4091a4e3a27a11bd495280ac7747 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 17 Nov 2022 09:53:40 +0800 Subject: [PATCH 6/6] =?UTF-8?q?fix=E5=88=86=E9=A1=B5=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java index a1c86cebb..1a946e816 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveItemWrapper.java @@ -319,9 +319,8 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt //所有调整记录 List listAll = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam.builder().build(), salaryItemIds); - //根据条件分页查询调整记录 - PageInfo adjustlistByParamPage = getSalaryArchiveItemService(user).salaryItemAdjustRecordListPage(SalaryItemAdjustRecordQueryParam.builder().salaryArchiveId(byId.getSalaryArchiveId()).build(), salaryItemIds); - List adjustPageList = adjustlistByParamPage.getList(); + //根据条件查询调整记录 + List adjustPageList = getSalaryArchiveItemService(user).salaryItemAdjustRecordList(SalaryItemAdjustRecordQueryParam.builder().salaryArchiveId(byId.getSalaryArchiveId()).build(), salaryItemIds); List resultList = Lists.newArrayList(); adjustPageList.forEach(m -> {