From 299284872f57003fffdf808e9aab96bcf77c3d20 Mon Sep 17 00:00:00 2001 From: sy Date: Mon, 21 Aug 2023 14:58:01 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E6=96=B9=E6=A1=88=EF=BC=8C=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E6=96=B9=E6=A1=88=E6=98=8E=E7=BB=86=E6=95=B0=E6=8D=AE=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SISchemeBiz.java | 3 +- .../InsuranceSchemeDetailUpdateParam.java | 61 +++++++++++++++++ .../sischeme/InsuranceSchemeDetailMapper.java | 2 + .../sischeme/InsuranceSchemeDetailMapper.xml | 67 +++++++++++++++++++ .../salary/service/SISchemeService.java | 7 ++ .../service/impl/SISchemeServiceImpl.java | 52 ++++++++++++++ .../engine/salary/web/SISchemeController.java | 18 ++++- 7 files changed, 208 insertions(+), 2 deletions(-) create mode 100644 src/com/engine/salary/entity/sischeme/param/InsuranceSchemeDetailUpdateParam.java diff --git a/src/com/engine/salary/biz/SISchemeBiz.java b/src/com/engine/salary/biz/SISchemeBiz.java index 2c0f21f65..74dba143c 100644 --- a/src/com/engine/salary/biz/SISchemeBiz.java +++ b/src/com/engine/salary/biz/SISchemeBiz.java @@ -252,7 +252,8 @@ public class SISchemeBiz { InsuranceSchemeDetailMapper insuranceSchemeDetailMapper = sqlSession.getMapper(InsuranceSchemeDetailMapper.class); List insuranceSchemeDetailPOS = insuranceSchemeDetailMapper.queryListBySchemeId(primaryId); encryptUtil.decryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class); - return decryptSchemeDetailList(insuranceSchemeDetailPOS); +// return decryptSchemeDetailList(insuranceSchemeDetailPOS); + return insuranceSchemeDetailPOS; } finally { sqlSession.close(); } diff --git a/src/com/engine/salary/entity/sischeme/param/InsuranceSchemeDetailUpdateParam.java b/src/com/engine/salary/entity/sischeme/param/InsuranceSchemeDetailUpdateParam.java new file mode 100644 index 000000000..1fc83a32f --- /dev/null +++ b/src/com/engine/salary/entity/sischeme/param/InsuranceSchemeDetailUpdateParam.java @@ -0,0 +1,61 @@ +package com.engine.salary.entity.sischeme.param; + +import com.engine.salary.entity.sischeme.dto.InsuranceSchemeDTO; +import com.engine.salary.entity.sischeme.dto.InsuranceSchemeDetailDTO; +import com.engine.salary.enums.sicategory.WelfareTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + + +/** + * @Author sy + * @Description: 福利方案明细修改 + * @Date 2023/8/21 + * @Version V1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InsuranceSchemeDetailUpdateParam { + + /** + * 社保方案主表id + */ + private Long primaryId; + + /** + * 险种id + */ + private Long insuranceId; + + /** + * 是否缴费 + */ + private Integer isPayment; + + + /** + * 缴纳对象枚举value 1-公司 2-个人 + */ + private Integer paymentScope; + + + /** + * 缴纳比例 + */ + private String paymentProportion; + + /** + * 固定费用 + */ + private String fixedCost; + + + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java index 3b15f7eea..5f7060f35 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java @@ -75,4 +75,6 @@ public interface InsuranceSchemeDetailMapper { List listAll(); int batchUpdate(@Param("collection") List insuranceSchemeDetailPos); + + int batchUpdateAll(@Param("collection") List insuranceSchemeDetailPos); } diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml index fc81b31f1..3529f08c3 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml @@ -308,4 +308,71 @@ #{item.id} + + + update hrsa_scheme_detail + + + + + when id=#{item.id} then #{item.isPayment} + + + + + + + when id=#{item.id} then #{item.paymentScope} + + + + + + + when id=#{item.id} then #{item.paymentProportion} + + + + + + + when id=#{item.id} then #{item.updateTime} + + + + + + + when id=#{item.id} then #{item.upperLimit} + + + + + + + when id=#{item.id} then #{item.fixedCost} + + + + + + + when id=#{item.id} then #{item.lowerLimit} + + + + + + + when id=#{item.id} then #{item.deleteType} + + + + + where + id in + + #{item.id} + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SISchemeService.java b/src/com/engine/salary/service/SISchemeService.java index ebcf73858..d7a691b63 100644 --- a/src/com/engine/salary/service/SISchemeService.java +++ b/src/com/engine/salary/service/SISchemeService.java @@ -5,6 +5,7 @@ import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam; import com.engine.salary.entity.siarchives.param.SIArchiveImportActionParam; import com.engine.salary.entity.siarchives.po.InsuranceArchivesEmployeePO; import com.engine.salary.entity.sischeme.dto.InsuranceSchemeListDTO; +import com.engine.salary.entity.sischeme.param.InsuranceSchemeDetailUpdateParam; import com.engine.salary.entity.sischeme.param.InsuranceSchemeParam; import com.engine.salary.entity.sischeme.param.SISchemaImportParam; import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO; @@ -74,4 +75,10 @@ public interface SISchemeService { Map checkSIArchiveAdd(SIArchiveImportActionParam siArchiveImportActionParam); Map addSIArchive(SIArchiveImportActionParam siArchiveImportActionParam); + + /** + * 编辑方案明细表数据 + * @param schemeDetailList + */ + List updateSchemeDetail(List schemeDetailList); } diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index dca7cd0d5..f31ad4646 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -18,6 +18,7 @@ import com.engine.salary.entity.siarchives.param.SIArchiveImportActionParam; import com.engine.salary.entity.siarchives.po.*; import com.engine.salary.entity.sicategory.po.ICategoryPO; import com.engine.salary.entity.sischeme.dto.InsuranceSchemeListDTO; +import com.engine.salary.entity.sischeme.param.InsuranceSchemeDetailUpdateParam; import com.engine.salary.entity.sischeme.param.InsuranceSchemeParam; import com.engine.salary.entity.sischeme.param.SISchemaImportParam; import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO; @@ -57,12 +58,14 @@ import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import dm.jdbc.util.IdGenerator; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.BeanUtils; import weaver.file.ImageFileManager; import weaver.hrm.User; @@ -79,6 +82,7 @@ import static com.engine.salary.util.excel.ExcelSupport.EXCEL_TYPE_XLSX; * @Date 2022/3/7 * @Version V1.0 **/ +@Slf4j public class SISchemeServiceImpl extends Service implements SISchemeService { private EncryptUtil encryptUtil = new EncryptUtil(); @@ -124,6 +128,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { } private SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); + private SISchemeBiz siSchemeBiz = new SISchemeBiz(); private SalaryEmployeeService getSalaryEmployeeService(User user) { return (SalaryEmployeeService) ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); @@ -1513,4 +1518,51 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { } } + @Override + public List updateSchemeDetail(List schemeDetailList) { + List errorInfo = new ArrayList<>(); + if (schemeDetailList.size() > 0) { + log.info("待处理方明明细数量:{}", schemeDetailList.size()); + List toDealSchemeDetailList = schemeDetailList.stream().filter(f -> f.getPrimaryId() != null).collect(Collectors.toList()); + log.info("未设置方案id的方明明细无法处理,数量:{}", schemeDetailList.size() - toDealSchemeDetailList.size()); + + //按照方案id分组 + Map> schemeDetailMap = toDealSchemeDetailList + .stream().collect(Collectors.groupingBy(InsuranceSchemeDetailUpdateParam::getPrimaryId)); + + schemeDetailMap.forEach((k, v) -> { + updateSchemeDetailByPrimaryId(k, v, errorInfo); + }); + + } + return errorInfo; + } + + public List updateSchemeDetailByPrimaryId(Long primaryId, List schemeDetailList, List errorInfo) { + try { + Map schemeDetailUpdateMap = new HashMap<>(); + schemeDetailList.forEach(f -> { + schemeDetailUpdateMap.put(f.getInsuranceId() + "-" + f.getPaymentScope(), f); + }); + List schemeDetailPOS = siSchemeBiz.listByPrimaryId(primaryId); + //替换修改字段 + if (schemeDetailPOS.size() > 0) { + schemeDetailPOS.forEach(f -> { + if (schemeDetailUpdateMap.get(f.getInsuranceId() + "-" + f.getPaymentScope()) != null) { + InsuranceSchemeDetailUpdateParam schemeDetailUpdateParam = schemeDetailUpdateMap.get(f.getInsuranceId() + "-" + f.getPaymentScope()); + BeanUtils.copyProperties(schemeDetailUpdateParam, f); + } + }); + encryptUtil.encryptList(schemeDetailPOS, InsuranceSchemeDetailPO.class); + getInsuranceSchemeDetailMapper().batchUpdateAll(schemeDetailPOS); + + } else { + errorInfo.add("方案id:" + primaryId + "," + "表中不存在方案明细数据"); + } + } catch (Exception e) { + errorInfo.add("方案id:" + primaryId + "," + e.getMessage()); + } + return errorInfo; + } + } diff --git a/src/com/engine/salary/web/SISchemeController.java b/src/com/engine/salary/web/SISchemeController.java index a41f03415..d751b0acc 100644 --- a/src/com/engine/salary/web/SISchemeController.java +++ b/src/com/engine/salary/web/SISchemeController.java @@ -5,6 +5,7 @@ import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.siaccount.po.InsuranceAccountInspectPO; import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam; import com.engine.salary.entity.sischeme.dto.InsuranceSchemeListDTO; +import com.engine.salary.entity.sischeme.param.InsuranceSchemeDetailUpdateParam; import com.engine.salary.entity.sischeme.param.InsuranceSchemeParam; import com.engine.salary.entity.sischeme.param.InsuranceSchemeReqParam; import com.engine.salary.entity.sischeme.param.SISchemaImportParam; @@ -113,7 +114,7 @@ public class SISchemeController { } /** - * 编辑 + * 编辑方案主表和明细表数据 * @param request * @param response * @param insuranceSchemeReqParam @@ -129,6 +130,21 @@ public class SISchemeController { return new ResponseResult< Map, Map>(user).run(getService(user)::update,map); } + /** + * 编辑方案明细表数据 + * @param request + * @param response + * @param schemeDetailList + * @return + */ + @POST + @Path("/updateSchemeDetail") + @Produces(MediaType.APPLICATION_JSON) + public String updateSchemeDetail(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody List schemeDetailList) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult< List , List>(user).run(getService(user)::updateSchemeDetail,schemeDetailList); + } + /** * 删除(接口中暂无) * @param request From 5f9fbde35aa6848d53345016bb5ad7b9f0463c1c Mon Sep 17 00:00:00 2001 From: sy Date: Mon, 21 Aug 2023 16:48:17 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E6=96=B9=E6=A1=88=EF=BC=8C=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E6=96=B9=E6=A1=88=E6=98=8E=E7=BB=86=E6=95=B0=E6=8D=AE=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=9B=B4=E6=96=B0=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E4=BF=AE=E6=94=B9=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SISchemeServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index f31ad4646..16d7e6d59 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -1551,6 +1551,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { if (schemeDetailUpdateMap.get(f.getInsuranceId() + "-" + f.getPaymentScope()) != null) { InsuranceSchemeDetailUpdateParam schemeDetailUpdateParam = schemeDetailUpdateMap.get(f.getInsuranceId() + "-" + f.getPaymentScope()); BeanUtils.copyProperties(schemeDetailUpdateParam, f); + f.setUpdateTime(new Date()); } }); encryptUtil.encryptList(schemeDetailPOS, InsuranceSchemeDetailPO.class); From a3b67ab0916111ba5cc3c1595c98e73109c3b952 Mon Sep 17 00:00:00 2001 From: sy Date: Wed, 23 Aug 2023 18:39:02 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E6=96=B9=E6=A1=88=EF=BC=8C=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E6=96=B9=E6=A1=88=E6=98=8E=E7=BB=86=E6=95=B0=E6=8D=AE=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=98=8E=E7=BB=86=E8=A1=A8?= =?UTF-8?q?=E6=9B=B4=E7=BB=86sql=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sischeme/InsuranceSchemeDetailMapper.java | 2 +- .../sischeme/InsuranceSchemeDetailMapper.xml | 92 ++++++------------- .../service/impl/SISchemeServiceImpl.java | 2 +- 3 files changed, 30 insertions(+), 66 deletions(-) diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java index 5f7060f35..52c98c89d 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java @@ -76,5 +76,5 @@ public interface InsuranceSchemeDetailMapper { int batchUpdate(@Param("collection") List insuranceSchemeDetailPos); - int batchUpdateAll(@Param("collection") List insuranceSchemeDetailPos); + int updateAll(InsuranceSchemeDetailPO insuranceSchemeDetailPo); } diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml index 3529f08c3..132fd1c49 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml @@ -309,70 +309,34 @@ - + update hrsa_scheme_detail - - - - - when id=#{item.id} then #{item.isPayment} - - - - - - - when id=#{item.id} then #{item.paymentScope} - - - - - - - when id=#{item.id} then #{item.paymentProportion} - - - - - - - when id=#{item.id} then #{item.updateTime} - - - - - - - when id=#{item.id} then #{item.upperLimit} - - - - - - - when id=#{item.id} then #{item.fixedCost} - - - - - - - when id=#{item.id} then #{item.lowerLimit} - - - - - - - when id=#{item.id} then #{item.deleteType} - - - - - where - id in - - #{item.id} - + + + payment_scope=#{paymentScope}, + + + is_payment=#{isPayment}, + + + delete_type=#{deleteType}, + + + payment_proportion=#{paymentProportion}, + + + upper_limit=#{upperLimit}, + + + lower_limit=#{lowerLimit}, + + + update_time=#{updateTime}, + + + fixed_cost=#{fixedCost}, + + + WHERE id = #{id} AND delete_type = 0 \ No newline at end of file diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index 16d7e6d59..159b7a6a8 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -1555,7 +1555,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { } }); encryptUtil.encryptList(schemeDetailPOS, InsuranceSchemeDetailPO.class); - getInsuranceSchemeDetailMapper().batchUpdateAll(schemeDetailPOS); + schemeDetailPOS.forEach(getInsuranceSchemeDetailMapper()::updateAll); } else { errorInfo.add("方案id:" + primaryId + "," + "表中不存在方案明细数据");