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..52c98c89d 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 updateAll(InsuranceSchemeDetailPO insuranceSchemeDetailPo); } diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml index fc81b31f1..132fd1c49 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml @@ -308,4 +308,35 @@ #{item.id} + + + update hrsa_scheme_detail + + + 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/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 f444f8f03..03fe793b2 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; @@ -54,12 +55,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; @@ -76,6 +79,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(); @@ -121,6 +125,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); @@ -1518,4 +1523,52 @@ 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); + f.setUpdateTime(new Date()); + } + }); + encryptUtil.encryptList(schemeDetailPOS, InsuranceSchemeDetailPO.class); + schemeDetailPOS.forEach(getInsuranceSchemeDetailMapper()::updateAll); + + } 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