Commit 7467fee0 authored by fangxinjiang's avatar fangxinjiang

Merge remote-tracking branch 'origin/MVP1.7.9' into MVP1.7.9

parents 5f69222b 6af7b9cb
......@@ -55,4 +55,13 @@ public interface TEmployeePreLogService extends IService<TEmployeePreLog> {
void saveModifyAndUpdateInsurance(String empPreId, EmployeeRegistrationPre oldInfo
, EmployeeRegistrationPre newInfo, YifuUser user, Map<String, TEmployeeInsurancePre> oldMap);
/**
* @Description: 添加日志并修改商险list
* @Author: huych
* @Date: 2025/4/11 18:12
* @return: void
**/
void saveUpdateInsurance(String empPreId, EmployeeRegistrationPre oldInfo
, EmployeeRegistrationPre newInfo,String userId, String nickName,Map<String, TEmployeeInsurancePre> oldMap);
}
......@@ -256,7 +256,34 @@ public class EmployeeRegistrationPreServiceImpl extends ServiceImpl<EmployeeRegi
baseMapper.deleteById(preExit);
}
baseMapper.insert(pre);
Map<String, TEmployeeInsurancePre> oldMap = new HashMap<>();
if (Common.isNotNull(preExit)) {
if (Common.isNotNull(preVo.getServerItem()) && preVo.getServerItem().contains("商险")) {
List<TEmployeeInsurancePreVo> newList = preVo.getEmployeeInsurancePreVos();
String newKey;
Map<String,String> map = new HashMap<>();
if (null != newList && !newList.isEmpty()) {
for (TEmployeeInsurancePreVo preVo1 : newList) {
newKey = this.getPreFiveKey(preVo1);
map.put(newKey,"1");
}
}
// 查原商险,来对比
R<EmployeePreLogListVo> sdr = HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(), daprInsurancesProperties.getAppId()
, "/temployeeinsurancepre/inner/getListByEmpPreId", preExit.getId(), EmployeePreLogListVo.class, SecurityConstants.FROM_IN);
List<TEmployeeInsurancePre> oldList = null;
if (sdr != null && sdr.getData() != null && sdr.getData().getPreList() != null && !sdr.getData().getPreList().isEmpty()) {
oldList = sdr.getData().getPreList();
}
if (null != oldList && !oldList.isEmpty()) {
for (TEmployeeInsurancePre oldInsurance : oldList) {
// 1:判断是否变更 商险待办 的项目
if (null != map.get(this.getFiveKey(oldInsurance))) {
oldMap.put(oldInsurance.getId(), oldInsurance);
}
}
}
}
String natureItemBefore = null;
String natureItemAfter = null;
String contractItemBefore = null;
......@@ -352,8 +379,9 @@ public class EmployeeRegistrationPreServiceImpl extends ServiceImpl<EmployeeRegi
if (null != contractXfAfter) {
pre.setContractSubName(contractXfAfter);
}
tEmployeeLogService.saveModificationRecord(CommonConstants.dingleDigitIntArray[4],
pre.getId(), "", preExit, pre, pre.getCreateBy(), pre.getCreateName());
// 添加日志并修改商险list
tEmployeePreLogService.saveUpdateInsurance(preExit.getId(), preExit
, pre, preVo.getCreateBy(),preVo.getCreateName(), oldMap);
}
if (Common.isNotNull(preVo.getExpectedCollectionTime())) {
// 事务提交后触发调度
......@@ -707,6 +735,21 @@ public class EmployeeRegistrationPreServiceImpl extends ServiceImpl<EmployeeRegi
+ isNullToEmpty(insurancePreVo.getPolicyStart()) + CommonConstants.DOWN_LINE_STRING + isNullToEmpty(insurancePreVo.getPolicyEnd());
}
/**
* @param insurancePreVo
* @Description: 获取5个字段构成的关键字
* @Author: hgw
* @Date: 2025/4/9 11:23
* @return: java.lang.String
**/
private String getPreFiveKey(TEmployeeInsurancePreVo insurancePreVo) {
// 1:重复性判断
return isNullToEmpty(insurancePreVo.getBuyStandard()) + CommonConstants.DOWN_LINE_STRING
+ isNullToEmpty(insurancePreVo.getInsuranceTypeName()) + CommonConstants.DOWN_LINE_STRING
+ isNullToEmpty(insurancePreVo.getInsuranceCompanyName()) + CommonConstants.DOWN_LINE_STRING
+ isNullToEmpty(insurancePreVo.getPolicyStart()) + CommonConstants.DOWN_LINE_STRING + isNullToEmpty(insurancePreVo.getPolicyEnd());
}
/**
* @param str
* @Description: 空转化为空字符
......
......@@ -260,6 +260,84 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
}
}
@Override
public void saveUpdateInsurance(String empPreId, EmployeeRegistrationPre oldInfo
, EmployeeRegistrationPre newInfo, String userId, String nickName, Map<String, TEmployeeInsurancePre> oldMap) {
try {
//比较记录不影响业务逻辑,用try套住
//比较差异
String differenceKey = HrEquator.comparisonValue(oldInfo, newInfo);
//如果有差异保存差异
List<TEmployeeInsurancePre> newList = newInfo.getInsurancePreList();
String diffTitle = null;
String logId = String.valueOf(UUID.randomUUID()).replaceAll("-", "");
// 要保存的明细
List<TEmployeePreLogDetail> detailList = new ArrayList<>();
// 档案信息修改
TEmployeePreLogDetail detailEmpLog = null;
if (Common.isNotNull(differenceKey) && !"insurancePreList".equals(differenceKey)) {
differenceKey = differenceKey.replace("insurancePreList","");
diffTitle = "档案信息";
detailEmpLog = new TEmployeePreLogDetail();
detailEmpLog.setModelType(CommonConstants.TWO_STRING);
detailEmpLog.setType(CommonConstants.ONE_STRING);
this.setPreLogBaseInfo(empPreId, oldInfo, newInfo, userId, nickName, differenceKey, logId, detailEmpLog);
detailList.add(detailEmpLog);
}
if (newList != null && !newList.isEmpty()) {
// 是否修改了商险
boolean isModifyInsurance = false;
TEmployeeInsurancePre oldInsurance;
String differenceInsuranceKey;
TEmployeePreLogDetail detailInsuranceLog;
for (TEmployeeInsurancePre newInsurance : newList) {
differenceInsuranceKey = null;
// 2:修改有老ID
if (Common.isNotNull(newInsurance.getId())) {
oldInsurance = oldMap.get(newInsurance.getId());
if (oldInsurance != null) {
differenceInsuranceKey = HrEquator.comparisonValue(oldInsurance, newInsurance);
}
if (Common.isNotNull(differenceInsuranceKey) || oldInsurance == null) {
detailInsuranceLog = new TEmployeePreLogDetail();
detailInsuranceLog.setModelType(CommonConstants.TWO_STRING);
detailInsuranceLog.setType(CommonConstants.TWO_STRING);
this.setPreLogBaseInfo(empPreId, oldInsurance, newInsurance, userId, nickName, differenceInsuranceKey, logId, detailInsuranceLog);
isModifyInsurance = true;
detailList.add(detailInsuranceLog);
}
}
}
// 如果变更了
if (isModifyInsurance) {
if (Common.isNotNull(diffTitle)) {
diffTitle += "、商险信息";
} else {
diffTitle = "商险信息";
}
}
}
// 有修改,则加日志
if (Common.isNotNull(diffTitle)) {
TEmployeePreLog empPreLog = new TEmployeePreLog();
empPreLog.setId(logId);
empPreLog.setPreId(empPreId);
empPreLog.setDiffTitle(diffTitle);
empPreLog.setCreateTime(LocalDateTime.now());
if (Common.isNotNull(userId) && Common.isNotNull(nickName)) {
empPreLog.setCreateBy(userId);
empPreLog.setCreateName(nickName);
}
baseMapper.insert(empPreLog);
if (!detailList.isEmpty()) {
tEmployeePreLogDetailService.saveBatch(detailList);
}
}
} catch (Exception e) {
log.error(JSON.toJSON(newInfo) + "插入修改记录报错>>>", e);
}
}
/**
* @Description: 填充基本信息
* @Author: hgw
......@@ -284,4 +362,26 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
}
}
/**
* @Description: 填充基本信息
* @Author: huyc
* @Date: 2025/4/11 10:49
* @return: void
**/
private void setPreLogBaseInfo(String empPreId, Object oldInfo, Object newInfo
, String userId, String nickName, String differenceKey, String logId, TEmployeePreLogDetail detailEmpLog) {
detailEmpLog.setPreId(empPreId);
detailEmpLog.setPreLogId(logId);
detailEmpLog.setDifferenceInfo(differenceKey);
detailEmpLog.setCreateTime(LocalDateTime.now());
detailEmpLog.setCreateBy(userId);
detailEmpLog.setCreateName(nickName);
if (Common.isNotNull(oldInfo)) {
detailEmpLog.setOldInfo(JSON.toJSONString(oldInfo, features));
}
if (Common.isNotNull(newInfo)) {
detailEmpLog.setNewInfo(JSON.toJSONString(newInfo, features));
}
}
}
......@@ -546,6 +546,15 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
*/
@Override
public R confirmReceive(EmployeeRegistrationPreVo preVo) {
YifuUser user = SecurityUtils.getUser();
if (Common.isEmpty(preVo)) {
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
EmployeeRegistration registration = baseMapper.selectById(preVo.getId());
if (Common.isEmpty(registration) || (Common.isNotNull(registration) &&
!CommonConstants.ONE_STRING.equals(registration.getProcessStatus()))) {
return R.failed(CommonConstants.NO_DATA_TO_HANDLE);
}
if (preVo.getServerItem().contains("商险") && !preVo.getEmployeeInsurancePreVos().isEmpty()) {
List<TEmployeeInsuranceExitCheckVo> errorList = new ArrayList<>();
TEmployeeInsuranceExitCheckVo checkVo;
......@@ -553,13 +562,6 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
// 判断重复性MAP
Map<String, Integer> keyMap = new HashMap<>();
for (TEmployeeInsurancePreVo insurancePreVo : preVo.getEmployeeInsurancePreVos()) {
insurancePreVo.setEmpIdcard(preVo.getEmpIdcard());
insurancePreVo.setDeptNo(preVo.getDeptNo());
//商险是否存在判断
checkVo = checkInsuranceExit(insurancePreVo,preVo.getEmployeeName(),preVo.getEmpIdcard());
if (null != checkVo) {
errorList.add(checkVo);
}
// 1:重复性判断
key = this.getFiveKey(insurancePreVo);
if (keyMap.get(key) == null) {
......@@ -567,22 +569,19 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
} else {
return R.other(CommonConstants.TWO_INT,null,"保险公司、险种、购买标准、保单起、止日期不可同时重复;");
}
insurancePreVo.setEmpIdcard(preVo.getEmpIdcard());
insurancePreVo.setDeptNo(preVo.getDeptNo());
//商险是否存在判断
checkVo = checkInsuranceExit(insurancePreVo,preVo.getEmployeeName(),preVo.getEmpIdcard());
if (null != checkVo) {
errorList.add(checkVo);
}
}
if (!errorList.isEmpty()) {
return R.other(CommonConstants.TWO_INT,null,errorList);
}
}
YifuUser user = SecurityUtils.getUser();
if (Common.isEmpty(preVo)) {
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
EmployeeRegistration registration = baseMapper.selectById(preVo.getId());
if (Common.isEmpty(registration) || (Common.isNotNull(registration) &&
!CommonConstants.ONE_STRING.equals(registration.getProcessStatus()))) {
return R.failed(CommonConstants.NO_DATA_TO_HANDLE);
}
//点击“接收确认”的时候,监测到该人员该项目下已有在项的档案时,再次提醒:该人员已在项,
//状态将更新成“已处理”;处理记录中,针对此情况,记录真实的进项时间,备注:先于登记入项
EmpProjectStatusVo vo = new EmpProjectStatusVo();
......@@ -1261,7 +1260,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
return null;
}
//商险是否存在判断 type 1 单个接收 2 批量接收
//商险是否存在判断
private TEmployeeInsuranceExitCheckVo checkInsuranceExit(TEmployeeInsurancePreVo preVo,String empName,String empIdcard) {
//查询入职确认信息数据
TEmployeeInsuranceExitCheckVo exitCheckVo = new TEmployeeInsuranceExitCheckVo();
......@@ -1319,6 +1318,8 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
} else if (insuranceDetail.getBuyHandleStatus() == CommonConstants.FOUR_INT) {
preVo.setProcessStatus(CommonConstants.FIVE_STRING);
}
//是否地市自购
preVo.setIsAddress(insuranceDetail.getIsAdress());
}
}
}
......
......@@ -41,6 +41,7 @@ public class TEmployeeInsurancePre extends BaseEntity {
@Schema(description = "手机号码")
private String empPhone;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
@Schema(description = "入职日期")
private Date joinLeaveDate;
......@@ -81,12 +82,15 @@ public class TEmployeeInsurancePre extends BaseEntity {
@Schema(description = "购买类型, 1新增、3批增、4替换")
private Integer buyType;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
@Schema(description = "保单开始时间")
private Date policyStart;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
@Schema(description = "保单结束时间")
private Date policyEnd;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
@Schema(description = "预计生效日期")
private Date policyEffect;
......
......@@ -118,6 +118,12 @@ public class InsuranceAddParam implements Serializable {
@Schema(description = "错误信息")
private String errorMessage;
/**
* 商险待购买id
*/
@Schema(description = "商险待购买id")
private String insurancePreId;
/***********************************以下字段由系统算出,前端不用传,是为了方便入库***********************************/
/**
* 结算类型 (1、单独结算 2、合并结算-和工资一起结算)
......
......@@ -113,6 +113,12 @@ public class InsuranceBatchParam implements Serializable {
@Schema(description = "错误信息")
private String errorMessage;
/**
* 商险待购买id
*/
@Schema(description = "商险待购买id")
private String insurancePreId;
/***********************************以下字段由系统算出,前端不用传,是为了方便入库***********************************/
/**
* 结算类型 (1、单独结算 2、合并结算-和工资一起结算)
......
......@@ -101,6 +101,12 @@ public class InsuranceReplaceParam implements Serializable {
@Schema(description = "错误信息")
private String errorMessage;
/**
* 商险待购买id
*/
@Schema(description = "商险待购买id")
private String insurancePreId;
/**
* 数据传递对象
*/
......
......@@ -138,6 +138,8 @@ public class TEmployeeInsurancePreController {
@Operation(description = "导出商险待办任务表")
@PostMapping("/export")
public void export(HttpServletResponse response, @RequestBody TEmployeeInsurancePreSearchVo searchVo) {
YifuUser user = SecurityUtils.getUser();
menuUtil.setAuthSql(user, searchVo);
tEmployeeInsurancePreService.listExport(response,searchVo);
}
......
......@@ -45,8 +45,8 @@ public class TInsuranceTypeStandardController {
*/
@Operation(summary = "根据险种ID查询购买标准列表(未删除,未禁用)", description = "购买标准列表2 传参险种ID riskId")
@GetMapping("/listEnable" )
public R<List<TInsuranceTypeStandard>> getInsuranceTypeStandardList(String riskId) {
return insuranceTypeStandardService.getInsuranceTypeStandardList(riskId);
public R<List<TInsuranceTypeStandard>> getInsuranceTypeStandardList(@RequestParam String riskTypeId) {
return insuranceTypeStandardService.getInsuranceTypeStandardList(riskTypeId);
}
/**
* 删除购买标准信息
......
......@@ -35,6 +35,8 @@ public interface TEmployeeInsurancePreMapper extends BaseMapper<TEmployeeInsuran
long selectExportCount(@Param("tEmployeeInsurancePre") TEmployeeInsurancePreSearchVo employeeRegistration);
void updateBatchById(@Param("idList") List<String> idList);
List<TEmployeeInsurancePreExportVo> selectExportList(@Param("employeeRegistration") TEmployeeInsurancePreSearchVo employeeRegistration);
List<TEmployeeInsurancePre> getAllUnconfimData();
......
......@@ -70,14 +70,6 @@ public interface TEmployeeInsurancePreService extends IService<TEmployeeInsuranc
*/
Boolean saveInsurancePreInfo(EmployeeRegistrationPreVo preVo);
/**
* 更新商险待购买状态
* @param id
* @param status 状态
* @return
*/
void updateInsurancePreInfo(String id,String status);
TEmployeeInsuranceSelectVo selectInsurancePreInfoList(TEmployeeInsurancePreVo preVo);
void updateInsurancePreCustomerName(EmployeeRegistrationCustomerUserUpdateVo updateVo);
......
......@@ -120,6 +120,11 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
String fileName = "商险待办任务表批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<TEmployeeInsurancePreExportVo> list = new ArrayList<>();
if (null == searchVo.getStatusList()) {
searchVo.setStatusList(CommonConstants.processListPreArchivesStatus);
}
//权限赋值
initSearchVo(searchVo);
long count = baseMapper.selectExportCount(searchVo);
try (ServletOutputStream out= response.getOutputStream();){
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
......@@ -201,6 +206,7 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
addParam.setSettleMonth(CommonConstants.EMPTY_STRING);
addParam.setPost(insurancePre.getPosition());
addParam.setRemark(CommonConstants.EMPTY_STRING);
addParam.setInsurancePreId(insurancePre.getId());
addParamList.add(addParam);
}
if (CommonConstants.TWO_INT == insurancePre.getBuyType()) {
......@@ -217,6 +223,7 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
addParam.setSettleMonth(CommonConstants.EMPTY_STRING);
addParam.setPost(insurancePre.getPosition());
addParam.setRemark(CommonConstants.EMPTY_STRING);
addParam.setInsurancePreId(insurancePre.getId());
batchAddParamList.add(addParam);
}
if (CommonConstants.THREE_INT == insurancePre.getBuyType()) {
......@@ -234,6 +241,7 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
addParam.setReplaceDeptNo(insurancePre.getReplaceDeptNo());
addParam.setReplaceEmpIdcardNo(insurancePre.getReplaceEmpIdcard());
addParam.setRemark(CommonConstants.EMPTY_STRING);
addParam.setInsurancePreId(insurancePre.getId());
replaceAddParamList.add(addParam);
}
}
......@@ -325,6 +333,7 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
for (TEmployeeInsurancePreVo preVo : employeeInsurancePreVos) {
//判断是否存在商险待购买信息
preExit = baseMapper.selectOne(Wrappers.<TEmployeeInsurancePre>query().lambda()
.eq(TEmployeeInsurancePre::getRegisterId, preVo.getRegisterId())
.eq(TEmployeeInsurancePre::getEmpIdcard, preVo.getEmpIdcard())
.eq(TEmployeeInsurancePre::getBuyStandard, preVo.getBuyStandard())
.eq(TEmployeeInsurancePre::getInsuranceTypeName, preVo.getInsuranceTypeName())
......@@ -341,7 +350,6 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
pre.setId(preExit.getId());
baseMapper.insert(pre);
baseMapper.deleteById(preExit);
//todo 操作记录
} else {
baseMapper.insert(pre);
//暂时不需要,先注释,后续可能会需要
......@@ -365,17 +373,6 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
return true;
}
@Override
public void updateInsurancePreInfo(String id, String status) {
if (Common.isNotNull(id) && Common.isNotNull(status)) {
TEmployeeInsurancePre preExit = baseMapper.selectById(id);
if (Common.isNotNull(preExit)) {
preExit.setProcessStatus(status);
baseMapper.updateById(preExit);
}
}
}
@Override
public TEmployeeInsuranceSelectVo selectInsurancePreInfoList(TEmployeeInsurancePreVo preVo) {
TEmployeeInsuranceSelectVo selectVo = new TEmployeeInsuranceSelectVo();
......
......@@ -150,8 +150,11 @@
<if test="tEmployeeInsurancePre.expectedCollectionTime != null">
AND a.expected_collection_time = #{tEmployeeInsurancePre.expectedCollectionTime}
</if>
<if test="tEmployeeInsurancePre.joinTimeStart != null">
AND a.regist_time <![CDATA[ >= ]]> #{tEmployeeInsurancePre.registTimeStart}
</if>
<if test="tEmployeeInsurancePre.registTimeEnd != null">
and a.regist_time <![CDATA[ <= ]]> concat(#{tEmployeeInsurancePre.registTimeEnd}, ' 23:59:59')
and a.regist_time <![CDATA[ <= ]]> #{tEmployeeInsurancePre.registTimeEnd}
</if>
<if test="tEmployeeInsurancePre.insuranceCompanyName != null and tEmployeeInsurancePre.insuranceCompanyName.trim() != ''">
AND a.insurance_company_name = #{tEmployeeInsurancePre.insuranceCompanyName}
......@@ -257,6 +260,15 @@
</where>
</select>
<update id="updateBatchById">
update t_employee_insurance_pre a
set a.process_status = '2'
where a.process_status in ('0','1') and a.id in
<foreach item="idStr" index="index" collection="idList" open="(" separator="," close=")">
#{idStr}
</foreach>
</update>
<select id="selectExportList" resultMap="tEmployeeInsurancePreExportMap">
SELECT
a.dept_name,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment