diff --git a/yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceExportListParam.java b/yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceExportListParam.java new file mode 100644 index 0000000000000000000000000000000000000000..d01529f846af10e76ee4dbfea3aa204bc472aa83 --- /dev/null +++ b/yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceExportListParam.java @@ -0,0 +1,48 @@ +package com.yifu.cloud.plus.v1.yifu.insurances.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author licancan + * @description 导出办ç†è¯·æ±‚å‚æ•° + * @date 2022-07-21 14:21:06 + */ +@Data +@Schema(description = "导出办ç†è¯·æ±‚å‚æ•°") +public class InsuranceExportListParam implements Serializable { + private static final long serialVersionUID = 3623027153213352936L; + + /** + * 员工姓å + */ + @Schema(description = "员工姓å") + private String empName; + + /** + * 员工身份è¯å· + */ + @Schema(description = "员工身份è¯å·") + private String empIdcardNo; + + /** + * 项目编ç + */ + @Schema(description = "项目编ç ") + private String deptNo; + + /** + * ä¿é™©å…¬å¸å称 + */ + @Schema(description = "ä¿é™©å…¬å¸å称") + private String insuranceCompanyName; + + /** + * 商险idé›†åˆ + */ + @Schema(description = "商险id集åˆ") + private List<String> idList; +} diff --git a/yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceExportListVO.java b/yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceExportListVO.java new file mode 100644 index 0000000000000000000000000000000000000000..f3e2687e0f000b90aa96812fe4bdec739c59d8d9 --- /dev/null +++ b/yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceExportListVO.java @@ -0,0 +1,159 @@ +package com.yifu.cloud.plus.v1.yifu.insurances.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDate; + +/** + * @author licancan + * @description 导出办ç†VO + * @date 2022-07-21 14:21:39 + */ +@Data +@Schema(description = "导出办ç†VO") +public class InsuranceExportListVO implements Serializable { + private static final long serialVersionUID = -8159190612104775933L; + + /** + * 主键 + */ + private String id; + + /** + * 订å•ç¼–å· + */ + @Schema(description = "订å•ç¼–å·") + private String orderNo; + + /** + * 项目å称 + */ + @Schema(description = "项目å称") + private String projectName; + + /** + * 项目编ç + */ + @Schema(description = "项目编ç ") + private String deptNo; + + /** + * 员工姓å + */ + @Schema(description = "员工姓å") + private String empName; + + /** + * 员工身份è¯å· + */ + @Schema(description = "员工身份è¯å·") + private String empIdcardNo; + + /** + * 投ä¿ç±»åž‹ï¼Œ 1新增ã€3批增ã€4æ›¿æ¢ + */ + @Schema(description = " 投ä¿ç±»åž‹ï¼Œ 1新增ã€3批增ã€4替æ¢") + private Integer buyType; + + /** + * 投ä¿å²—ä½ + */ + @Schema(description = "投ä¿å²—ä½") + private String post; + + /** + * 商险è´ä¹°åœ°çœ + */ + @Schema(description = "商险è´ä¹°åœ°çœ") + private String insuranceProvinceName; + + /** + * 商险è´ä¹°åœ°å¸‚ + */ + @Schema(description = "商险è´ä¹°åœ°å¸‚") + private String insuranceCityName; + + /** + * 商险办ç†çœ + */ + @Schema(description = "商险办ç†çœ") + private String insuranceHandleProvinceName; + + /** + * 商险办ç†åŸŽå¸‚ + */ + @Schema(description = "商险办ç†åŸŽå¸‚") + private String insuranceHandleCityName; + + /** + * ä¿å•å¼€å§‹æ—¶é—´ + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd") + @Schema(description = "ä¿å•å¼€å§‹æ—¶é—´") + private LocalDate policyStart; + + /** + * ä¿å•ç»“æŸæ—¶é—´ + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd") + @Schema(description = "ä¿å•ç»“æŸæ—¶é—´") + private LocalDate policyEnd; + + /** + * ä¿é™©å…¬å¸å称(冗余å—段) + */ + @Schema(description = "ä¿é™©å…¬å¸å称") + private String insuranceCompanyName; + + /** + * 险ç§å称 + */ + @Schema(description = "险ç§å称") + private String insuranceTypeName; + + /** + * è´ä¹°æ ‡å‡† + */ + @Schema(description = "è´ä¹°æ ‡å‡†") + private String buyStandard; + + /** + * 医疗é¢åº¦ + */ + @Schema(description = "医疗é¢åº¦") + private String medicalQuota; + + /** + * 身故或残疾é¢åº¦ + */ + @Schema(description = "身故或残疾é¢åº¦") + private String dieDisableQuota; + + /** + * 结算月 + */ + @Schema(description = "结算月") + private String settleMonth; + + /** + * 结算类型 (0ã€é¢„ä¼° 1ã€å®žç¼´) + */ + @Schema(description = "结算类型 (0ã€é¢„ä¼° 1ã€å®žç¼´)") + private Integer settleType; + + /** + * 创建人姓å + */ + @Schema(description = "创建人(æ´¾å•äºº)") + private String createName; + + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; + +} diff --git a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TInsuranceDetailController.java b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TInsuranceDetailController.java index 4ab99b845d6f5061262f68ad08a2c983a3db893b..740b76b25dd1858b20c62d55a8facaade8edd4b4 100644 --- a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TInsuranceDetailController.java +++ b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TInsuranceDetailController.java @@ -141,6 +141,19 @@ public class TInsuranceDetailController { return R.ok(tInsuranceDetailService.getInsuranceDetailById(id)); } + /** + * å¯¼å‡ºåŠžç† + * + * @author licancan + * @param param + * @return {@link R<List<InsuranceExportListVO>>} + */ + @Operation(summary = "导出办ç†", description = "导出办ç†") + @PostMapping("/getInsuranceExportList") + public R<List<InsuranceExportListVO>> getInsuranceExportList(@RequestBody InsuranceExportListParam param) { + return R.ok(tInsuranceDetailService.getInsuranceExportList(param)); + } + /***********************å‡å‘˜åŠžç†********************************/ /** * 导入å‡å‘˜æ ¡éªŒ diff --git a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/mapper/TInsuranceDetailMapper.java b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/mapper/TInsuranceDetailMapper.java index d512ae9024bf5fb496e286edde2010b605a61244..6bbd3384d5a2d68b9dd1dd2efc306fdb5aa59ced 100644 --- a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/mapper/TInsuranceDetailMapper.java +++ b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/mapper/TInsuranceDetailMapper.java @@ -46,6 +46,24 @@ public interface TInsuranceDetailMapper extends BaseMapper<TInsuranceDetail> { */ InsuranceDetailVO getInsuranceDetailById(@Param("id") String id); + /** + * 导出办ç†å‹¾é€‰æŸ¥è¯¢ç»“æžœ + * + * @author licancan + * @param idList + * @return {@link List<InsuranceExportListVO>} + */ + List<InsuranceExportListVO> getInsuranceExportListBySelect(@Param("idList") List<String> idList); + + /** + * 导出办ç†éžå‹¾é€‰æŸ¥è¯¢ç»“æžœ + * + * @author licancan + * @param param + * @return {@link List< InsuranceExportListVO>} + */ + List<InsuranceExportListVO> getInsuranceExportList(@Param("param") InsuranceExportListParam param); + /***********************å‡å‘˜åŠžç†********************************/ /** diff --git a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/TInsuranceDetailService.java b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/TInsuranceDetailService.java index 64cbbac01e2d8a2b1fa0b90c60de88adcdd3ec87..d9883cd84baafc82b4fa35278911c276b3dd5c96 100644 --- a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/TInsuranceDetailService.java +++ b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/TInsuranceDetailService.java @@ -90,6 +90,15 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> { */ InsuranceDetailVO getInsuranceDetailById(String id); + /** + * å¯¼å‡ºåŠžç† + * + * @author licancan + * @param param + * @return {@link List<InsuranceExportListVO>} + */ + List<InsuranceExportListVO> getInsuranceExportList(InsuranceExportListParam param); + /***********************å‡å‘˜åŠžç†********************************/ /** * å‡å‘˜å¯¼å…¥æ ¡éªŒ diff --git a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/impl/TInsuranceDetailServiceImpl.java b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/impl/TInsuranceDetailServiceImpl.java index 5862c877b4f4abd49a19adecb4ba034a8b00f3ae..04220612bec993c645dced8ec50cf8b8a04cd0f7 100644 --- a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/impl/TInsuranceDetailServiceImpl.java +++ b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/impl/TInsuranceDetailServiceImpl.java @@ -28,6 +28,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; @@ -405,6 +406,58 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap return insuranceDetailVO; } + /** + * å¯¼å‡ºåŠžç† + * + * @param param + * @return {@link List<InsuranceExportListVO>} + * @author licancan + */ + @Override + public List<InsuranceExportListVO> getInsuranceExportList(InsuranceExportListParam param) { + YifuUser user = SecurityUtils.getUser(); + List<InsuranceExportListVO> insuranceExportList; + //todo æ ¹æ®ç™»å½•äººèŽ·å–æ•°æ®æƒé™ + + //如勾选项ä¸ä¸ºç©ºï¼Œåˆ™å¯¼å‡ºå‹¾é€‰è®°å½•ï¼›å¦åˆ™å¯¼å‡ºå½“å‰ç›é€‰æ¡ä»¶ä¸‹ && 「待投ä¿ã€çš„结果集 + if (CollectionUtils.isNotEmpty(param.getIdList())){ + insuranceExportList = baseMapper.getInsuranceExportListBySelect(param.getIdList()); + }else { + insuranceExportList = baseMapper.getInsuranceExportList(param); + } + if (CollectionUtils.isNotEmpty(insuranceExportList)){ + List<TInsuranceDetail> detailList = new ArrayList<>(); + //æ ¹æ®é¡¹ç›®ç¼–ç 获å–项目å称 + List<String> collect = insuranceExportList.stream().map(e -> e.getDeptNo()).distinct().collect(Collectors.toList()); + R<Map> setInfoByCodes = archivesDaprUtil.getSetInfoByCodes(collect); + if (null != setInfoByCodes && setInfoByCodes.getCode() != CommonConstants.SUCCESS && MapUtils.isNotEmpty(setInfoByCodes.getData())) { + Map data = setInfoByCodes.getData(); + for (InsuranceExportListVO record : insuranceExportList) { + JSONObject jsonObject = (JSONObject) data.get(record.getDeptNo()); + if (null != jsonObject){ + record.setProjectName(Optional.ofNullable(jsonObject.getString("departName")).orElse("")); + } + TInsuranceDetail detail = new TInsuranceDetail(); + detail.setId(record.getId()); + //update状æ€ç”±ã€Œå¾…投ä¿ã€ç½®ä¸ºã€ŒæŠ•ä¿ä¸ã€ + detail.setBuyHandleStatus(CommonConstants.TWO_INT); + if (record.getBuyType() == CommonConstants.ONE_INT){ + // if 投ä¿ç±»åž‹ == 新增,then æ›´æ–°ä¿å•ç”Ÿæ•ˆæ—¥æœŸä¸ºï¼šT+1ï¼Œæ— éœ€è€ƒè™‘èŠ‚å‡æ—¥ + detail.setPolicyEffect(LocalDate.now().plusDays(CommonConstants.ONE_INT)); + } + detail.setUpdateBy(user.getId()); + detail.setUpdateTime(LocalDateTime.now()); + detailList.add(detail); + } + } + //批é‡æ›´æ–° + if (CollectionUtils.isNotEmpty(detailList)){ + this.saveOrUpdateBatch(detailList); + } + } + return insuranceExportList; + } + /** * å•†é™©æ–°å¢žæ ¡éªŒ * diff --git a/yifu-insurances/yifu-insurances-biz/src/main/resources/mapper/TInsuranceDetailMapper.xml b/yifu-insurances/yifu-insurances-biz/src/main/resources/mapper/TInsuranceDetailMapper.xml index 338a2aefe635d40cae3ba816b7877c09e54a6c55..54d6a1b82bcfb609f2a1ca70457ebf9780f96e6b 100644 --- a/yifu-insurances/yifu-insurances-biz/src/main/resources/mapper/TInsuranceDetailMapper.xml +++ b/yifu-insurances/yifu-insurances-biz/src/main/resources/mapper/TInsuranceDetailMapper.xml @@ -183,6 +183,78 @@ where detail.ID = #{id} </select> + <select id="getInsuranceExportListBySelect" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceExportListVO"> + select detail.id as id, + detail.ORDER_NO as orderNo, + detail.DEPT_NO as deptNo, + detail.EMP_NAME as empName, + detail.EMP_IDCARD_NO as empIdcardNo, + detail.BUY_TYPE as buyType, + detail.POST as post, + detail.INSURANCE_PROVINCE_NAME as insuranceProvinceName, + detail.INSURANCE_CITY_NAME as insuranceCityName, + detail.INSURANCE_HANDLE_PROVINCE_NAME as insuranceHandleProvinceName, + detail.INSURANCE_HANDLE_CITY_NAME as insuranceHandleCityName, + detail.POLICY_START as policyStart, + detail.POLICY_END as policyEnd, + detail.INSURANCE_COMPANY_NAME as insuranceCompanyName, + detail.INSURANCE_TYPE_NAME as insuranceTypeName, + detail.BUY_STANDARD as buyStandard, + detail.MEDICAL_QUOTA as medicalQuota, + detail.DIE_DISABLE_QUOTA as dieDisableQuota, + detail.SETTLE_MONTH as settleMonth, + detail.SETTLE_TYPE as settleType, + detail.CREATE_NAME as createName, + detail.REMARK as remark + from t_insurance_detail detail + where detail.id in + <foreach collection="idList" index="index" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + ORDER BY detail.CREATE_TIME DESC + </select> + + <select id="getInsuranceExportList" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceExportListVO"> + select detail.id as id, + detail.ORDER_NO as orderNo, + detail.DEPT_NO as deptNo, + detail.EMP_NAME as empName, + detail.EMP_IDCARD_NO as empIdcardNo, + detail.BUY_TYPE as buyType, + detail.POST as post, + detail.INSURANCE_PROVINCE_NAME as insuranceProvinceName, + detail.INSURANCE_CITY_NAME as insuranceCityName, + detail.INSURANCE_HANDLE_PROVINCE_NAME as insuranceHandleProvinceName, + detail.INSURANCE_HANDLE_CITY_NAME as insuranceHandleCityName, + detail.POLICY_START as policyStart, + detail.POLICY_END as policyEnd, + detail.INSURANCE_COMPANY_NAME as insuranceCompanyName, + detail.INSURANCE_TYPE_NAME as insuranceTypeName, + detail.BUY_STANDARD as buyStandard, + detail.MEDICAL_QUOTA as medicalQuota, + detail.DIE_DISABLE_QUOTA as dieDisableQuota, + detail.SETTLE_MONTH as settleMonth, + detail.SETTLE_TYPE as settleType, + detail.CREATE_NAME as createName, + detail.REMARK as remark + from t_insurance_detail detail + where detail.DELETE_FLAG = 0 and detail.BUY_HANDLE_STATUS = 1 + <if test="param.empName != null and param.empName.trim() != ''"> + and detail.EMP_NAME like concat('%',replace(replace(#{param.empName},'_','\_'),'%','\%'),'%') + </if> + <if test="param.empIdcardNo != null and param.empIdcardNo.trim() != ''"> + and detail.EMP_IDCARD_NO like concat('%',replace(replace(#{param.empIdcardNo},'_','\_'),'%','\%'),'%') + </if> + <if test="param.deptNo != null and param.deptNo.trim() != ''"> + and detail.DEPT_NO like concat('%',replace(replace(#{deptNo},'_','\_'),'%','\%'),'%') + </if> + <if test="param.insuranceCompanyName != null and param.insuranceCompanyName.trim() != ''"> + and detail.INSURANCE_COMPANY_NAME like concat('%',replace(replace(#{param.insuranceCompanyName},'_','\_'),'%','\%'),'%') + </if> + ORDER BY detail.CREATE_TIME DESC + </select> + + <!-- ***********************å‡å‘˜åŠžç†******************************** --> <select id="getInsuredListPage" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuredListVo"> select detail.id as id, @@ -220,6 +292,7 @@ </if> ORDER BY detail.CREATE_TIME DESC </select> + <select id="getInsuredList" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuredListVo"> select detail.id as id, detail.ORDER_NO as orderNo, @@ -256,4 +329,5 @@ </if> ORDER BY detail.CREATE_TIME DESC </select> + </mapper>