Merge branch 'feature/230802-福利方案-修改方案明细接口' into custom/艾志工业

This commit is contained in:
Harryxzy 2023-08-24 16:51:16 +08:00
commit bc3cddfe38
7 changed files with 173 additions and 2 deletions

View File

@ -252,7 +252,8 @@ public class SISchemeBiz {
InsuranceSchemeDetailMapper insuranceSchemeDetailMapper = sqlSession.getMapper(InsuranceSchemeDetailMapper.class);
List<InsuranceSchemeDetailPO> insuranceSchemeDetailPOS = insuranceSchemeDetailMapper.queryListBySchemeId(primaryId);
encryptUtil.decryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class);
return decryptSchemeDetailList(insuranceSchemeDetailPOS);
// return decryptSchemeDetailList(insuranceSchemeDetailPOS);
return insuranceSchemeDetailPOS;
} finally {
sqlSession.close();
}

View File

@ -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;
}

View File

@ -75,4 +75,6 @@ public interface InsuranceSchemeDetailMapper {
List<InsuranceSchemeDetailPO> listAll();
int batchUpdate(@Param("collection") List<InsuranceSchemeDetailPO> insuranceSchemeDetailPos);
int updateAll(InsuranceSchemeDetailPO insuranceSchemeDetailPo);
}

View File

@ -308,4 +308,35 @@
#{item.id}
</foreach>
</update>
<update id="updateAll" parameterType="com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO">
update hrsa_scheme_detail
<set>
<if test="paymentScope != null" >
payment_scope=#{paymentScope},
</if>
<if test="isPayment != null" >
is_payment=#{isPayment},
</if>
<if test="deleteType != null" >
delete_type=#{deleteType},
</if>
<if test="paymentProportion != null" >
payment_proportion=#{paymentProportion},
</if>
<if test="upperLimit != null" >
upper_limit=#{upperLimit},
</if>
<if test="lowerLimit != null" >
lower_limit=#{lowerLimit},
</if>
<if test="updateTime != null" >
update_time=#{updateTime},
</if>
<if test="fixedCost != null" >
fixed_cost=#{fixedCost},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
</mapper>

View File

@ -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<String, Object> checkSIArchiveAdd(SIArchiveImportActionParam siArchiveImportActionParam);
Map<String, Object> addSIArchive(SIArchiveImportActionParam siArchiveImportActionParam);
/**
* 编辑方案明细表数据
* @param schemeDetailList
*/
List<String> updateSchemeDetail(List<InsuranceSchemeDetailUpdateParam> schemeDetailList);
}

View File

@ -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<String> updateSchemeDetail(List<InsuranceSchemeDetailUpdateParam> schemeDetailList) {
List<String> errorInfo = new ArrayList<>();
if (schemeDetailList.size() > 0) {
log.info("待处理方明明细数量:{}", schemeDetailList.size());
List<InsuranceSchemeDetailUpdateParam> toDealSchemeDetailList = schemeDetailList.stream().filter(f -> f.getPrimaryId() != null).collect(Collectors.toList());
log.info("未设置方案id的方明明细无法处理数量:{}", schemeDetailList.size() - toDealSchemeDetailList.size());
//按照方案id分组
Map<Long, List<InsuranceSchemeDetailUpdateParam>> schemeDetailMap = toDealSchemeDetailList
.stream().collect(Collectors.groupingBy(InsuranceSchemeDetailUpdateParam::getPrimaryId));
schemeDetailMap.forEach((k, v) -> {
updateSchemeDetailByPrimaryId(k, v, errorInfo);
});
}
return errorInfo;
}
public List<String> updateSchemeDetailByPrimaryId(Long primaryId, List<InsuranceSchemeDetailUpdateParam> schemeDetailList, List<String> errorInfo) {
try {
Map<String, InsuranceSchemeDetailUpdateParam> schemeDetailUpdateMap = new HashMap<>();
schemeDetailList.forEach(f -> {
schemeDetailUpdateMap.put(f.getInsuranceId() + "-" + f.getPaymentScope(), f);
});
List<InsuranceSchemeDetailPO> 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;
}
}

View File

@ -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<String, Object>, Map<String, Object>>(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<InsuranceSchemeDetailUpdateParam> schemeDetailList) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult< List<InsuranceSchemeDetailUpdateParam> , List<String>>(user).run(getService(user)::updateSchemeDetail,schemeDetailList);
}
/**
* 删除(接口中暂无)
* @param request