Commit 966e0ec1 authored by zhaji's avatar zhaji

Merge branch 'develop' into feature-zhaji

parents 7bc08476 2633e7b3
...@@ -462,4 +462,8 @@ public class TEmployeeContractInfo extends BaseEntity { ...@@ -462,4 +462,8 @@ public class TEmployeeContractInfo extends BaseEntity {
@Schema(description = "创建时间止") @Schema(description = "创建时间止")
private String createTimeEnd; private String createTimeEnd;
@TableField(exist = false)
@Schema(description = "归档列表查询标志,1:是归档,去除作废、终止两种")
private Integer isFilePage;
} }
package com.yifu.cloud.plus.v1.yifu.archives.vo; package com.yifu.cloud.plus.v1.yifu.archives.vo;
import lombok.Data;
import java.util.List; import java.util.List;
/** /**
...@@ -8,6 +10,7 @@ import java.util.List; ...@@ -8,6 +10,7 @@ import java.util.List;
* @Description 派单新增档案|项目档案|员工合同 * @Description 派单新增档案|项目档案|员工合同
* @Version 1.0 * @Version 1.0
*/ */
@Data
public class DispatchAddVo { public class DispatchAddVo {
/** /**
* 员工档案 * 员工档案
......
...@@ -172,18 +172,22 @@ public class FddContractAttachInfoController { ...@@ -172,18 +172,22 @@ public class FddContractAttachInfoController {
} else { } else {
if (null != util1.getEntityList()) { if (null != util1.getEntityList()) {
List<ErrorMessage> errorInfo = fddContractAttachInfoService.batchAdd(util1.getEntityList()); List<ErrorMessage> errorInfo = fddContractAttachInfoService.batchAdd(util1.getEntityList());
Map<String,Object> variableMap = new HashMap<>(); if (errorInfo.size() > CommonConstants.ZERO_INT) {
Map<Integer,Object> map = new HashMap<>(); Map<String, Object> variableMap = new HashMap<>();
boolean allExitContract = errorInfo.stream().allMatch(e-> e.getMessage().equals("存在“在用”的合同")); Map<Integer, Object> map = new HashMap<>();
if (allExitContract) { boolean allExitContract = errorInfo.stream().allMatch(e -> e.getMessage().equals("存在“在用”的合同"));
variableMap.put("allMatch","true"); if (allExitContract) {
for (ErrorMessage errorMessage :errorInfo){ variableMap.put("allMatch", "true");
map.put(errorMessage.getLineNum(),util1.getEntityList().get(errorMessage.getLineNum()-2)); for (ErrorMessage errorMessage : errorInfo) {
map.put(errorMessage.getLineNum(), util1.getEntityList().get(errorMessage.getLineNum() - 2));
}
variableMap.put("data", map);
return R.ok(variableMap, "存在“在用”的合同");
} }
variableMap.put("data",map); return R.failed(errorInfo);
return R.ok(variableMap,"存在“在用”的合同"); } else {
return R.ok(null,"保存成功");
} }
return R.failed(errorInfo,"");
} else { } else {
return R.ok(null,"无数据可导入"); return R.ok(null,"无数据可导入");
} }
...@@ -271,6 +275,9 @@ public class FddContractAttachInfoController { ...@@ -271,6 +275,9 @@ public class FddContractAttachInfoController {
return R.failed("数据为空!"); return R.failed("数据为空!");
} }
List<ErrorMessage> errorInfo = fddContractAttachInfoService.sendTask(entityList); List<ErrorMessage> errorInfo = fddContractAttachInfoService.sendTask(entityList);
return R.ok(errorInfo); if (errorInfo.size() > CommonConstants.ZERO_INT) {
return R.failed(errorInfo);
}
return R.ok(null,"保存成功");
} }
} }
...@@ -70,7 +70,7 @@ public class TEmployeeContractInfoController { ...@@ -70,7 +70,7 @@ public class TEmployeeContractInfoController {
@Operation(summary = "归档分页查询(审核通过的数据(后面加上权限:自己创建的))", description = "归档分页查询") @Operation(summary = "归档分页查询(审核通过的数据(后面加上权限:自己创建的))", description = "归档分页查询")
@GetMapping("/filingPage") @GetMapping("/filingPage")
public R<IPage<TEmployeeContractInfo>> getFilingPage(Page<TEmployeeContractInfo> page, TEmployeeContractInfo tEmployeeContractInfo) { public R<IPage<TEmployeeContractInfo>> getFilingPage(Page<TEmployeeContractInfo> page, TEmployeeContractInfo tEmployeeContractInfo) {
tEmployeeContractInfo.setSituation(EmployeeConstants.SITUATION_SIX); tEmployeeContractInfo.setIsFilePage(CommonConstants.ONE_INT);
tEmployeeContractInfo.setAuditStatus(CommonConstants.dingleDigitIntArray[2]); tEmployeeContractInfo.setAuditStatus(CommonConstants.dingleDigitIntArray[2]);
return new R<>(tEmployeeContractInfoService.getTEmployeeContractInfoPage(page, tEmployeeContractInfo)); return new R<>(tEmployeeContractInfoService.getTEmployeeContractInfoPage(page, tEmployeeContractInfo));
} }
......
...@@ -243,6 +243,19 @@ public class TEmployeeInfoController { ...@@ -243,6 +243,19 @@ public class TEmployeeInfoController {
return R.ok(tEmployeeInfoService.getById(id)); return R.ok(tEmployeeInfoService.getById(id));
} }
/**
* @param empId
* @Description: 内部接口获取档案基本信息
* @Author: hgw
* @Date: 2022/7/21 14:47
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo>
**/
@Inner
@GetMapping("/inner/getByEmpId")
public TEmployeeInfo getByEmpId(@RequestParam String empId) {
return tEmployeeInfoService.getById(empId);
}
/** /**
* @param empName 姓名 * @param empName 姓名
* @param empIdCard 身份证 * @param empIdCard 身份证
......
...@@ -22,11 +22,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -22,11 +22,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeProjectService; import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeProjectService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpDispatchAddVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeProjectExportVO; import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeProjectExportVO;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage; import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog; import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -276,4 +278,17 @@ public class TEmployeeProjectController { ...@@ -276,4 +278,17 @@ public class TEmployeeProjectController {
public R<Map<String,String>> getProjectByIdCard(@RequestParam String empIdCard) { public R<Map<String,String>> getProjectByIdCard(@RequestParam String empIdCard) {
return tEmployeeProjectService.getProjectByIdCard(empIdCard); return tEmployeeProjectService.getProjectByIdCard(empIdCard);
} }
/**
* @param employeeProject
* @Description: 获取项目档案
* @Author: hgw
* @Date: 2022/7/21 15:10
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject>
**/
@Inner
@PostMapping("/inner/getByEmpIdAndDeptId")
public TEmployeeProject getByEmpIdAndDeptId(@RequestBody TEmployeeProject employeeProject) {
return tEmployeeProjectService.getByEmpIdAndDeptId(employeeProject.getEmpId(), employeeProject.getDeptId());
}
} }
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
package com.yifu.cloud.plus.v1.yifu.archives.service; package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.FddContractAttachInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeLog; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeLog;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser; import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
...@@ -54,4 +55,17 @@ public interface TEmployeeLogService extends IService<TEmployeeLog> { ...@@ -54,4 +55,17 @@ public interface TEmployeeLogService extends IService<TEmployeeLog> {
* @return * @return
**/ **/
<T> TEmployeeLog saveModificationRecord(Integer type, String empId, String projectId, T oldInfo, T newInfo, YifuUser user); <T> TEmployeeLog saveModificationRecord(Integer type, String empId, String projectId, T oldInfo, T newInfo, YifuUser user);
/**
* 生成修改记录
* @Author pwang
* @Date 2022-06-22 11:32
* @param type 类型:0人员档案;1项目档案;2人员和项目档案;3员工合同更新
* @param empId 档案id
* @param projectId 项目id
* @param oldInfo
* @param newInfo
* @return
**/
<T> TEmployeeLog saveModificationRecord(Integer type, String empId, String projectId, T oldInfo, T newInfo, FddContractAttachInfo fddContractAttachInfo);
} }
...@@ -176,5 +176,15 @@ public interface TEmployeeProjectService extends IService<TEmployeeProject> { ...@@ -176,5 +176,15 @@ public interface TEmployeeProjectService extends IService<TEmployeeProject> {
R getItemByEmpNo(String empIdcard, String empNo); R getItemByEmpNo(String empIdcard, String empNo);
/**
* @param empId
* @param deptId
* @Description: 获取项目信息
* @Author: hgw
* @Date: 2022/7/21 15:09
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject>
**/
TEmployeeProject getByEmpIdAndDeptId(String empId, String deptId);
R<Map<String, String>> getProjectByIdCard(String empIdCard); R<Map<String, String>> getProjectByIdCard(String empIdCard);
} }
...@@ -197,7 +197,6 @@ public class FddContractAttachInfoServiceImpl extends ServiceImpl<FddContractAtt ...@@ -197,7 +197,6 @@ public class FddContractAttachInfoServiceImpl extends ServiceImpl<FddContractAtt
}); });
} }
i++; i++;
errorList.add(new ErrorMessage(i, "保存成功", CommonConstants.GREEN));
} }
return errorList; return errorList;
} }
...@@ -259,7 +258,7 @@ public class FddContractAttachInfoServiceImpl extends ServiceImpl<FddContractAtt ...@@ -259,7 +258,7 @@ public class FddContractAttachInfoServiceImpl extends ServiceImpl<FddContractAtt
tEmployeeProject.setContractStatus(CommonConstants.ONE_INT); tEmployeeProject.setContractStatus(CommonConstants.ONE_INT);
employeeProjectMapper.updateById(tEmployeeProject); employeeProjectMapper.updateById(tEmployeeProject);
//保存操作记录 //保存操作记录
tEmployeeLogService.saveModificationRecord(CommonConstants.dingleDigitIntArray[1], "", tEmployeeProject.getId(), tEmployeeProjectCompare, tEmployeeProject); tEmployeeLogService.saveModificationRecord(CommonConstants.dingleDigitIntArray[1], "", tEmployeeProject.getId(), tEmployeeProjectCompare, tEmployeeProject,fddContractAttachInfo);
//更新人员档案 //更新人员档案
tEmployeeInfo.setEmpPhone(fddContractAttachInfo.getEmpPhone()); tEmployeeInfo.setEmpPhone(fddContractAttachInfo.getEmpPhone());
...@@ -286,7 +285,7 @@ public class FddContractAttachInfoServiceImpl extends ServiceImpl<FddContractAtt ...@@ -286,7 +285,7 @@ public class FddContractAttachInfoServiceImpl extends ServiceImpl<FddContractAtt
//更新合同id //更新合同id
updateContractId(fddContractInfo, fddContractAttachInfo, newEmployeeContractInfo2); updateContractId(fddContractInfo, fddContractAttachInfo, newEmployeeContractInfo2);
} }
doJointTask.doUpdateEmployeeInfo(updateList, user); doJointTask.updateFddEmployeeInfo(updateList, fddContractAttachInfo);
} else { } else {
//判断人员档案是否存在,不存在就新增人员档案,存在则判断档案状态,如果是减档就复档 //判断人员档案是否存在,不存在就新增人员档案,存在则判断档案状态,如果是减档就复档
if (Common.isNotNull(tEmployeeInfo)) { if (Common.isNotNull(tEmployeeInfo)) {
...@@ -312,7 +311,7 @@ public class FddContractAttachInfoServiceImpl extends ServiceImpl<FddContractAtt ...@@ -312,7 +311,7 @@ public class FddContractAttachInfoServiceImpl extends ServiceImpl<FddContractAtt
saveTEmployeeContractInfo(newEmployeeContractInfo1, fddContractAttachInfo, settleDomain, fddContractTemplate, tEmployeeInfo, tCustomerInfo, project); saveTEmployeeContractInfo(newEmployeeContractInfo1, fddContractAttachInfo, settleDomain, fddContractTemplate, tEmployeeInfo, tCustomerInfo, project);
//更新合同id //更新合同id
updateContractId(fddContractInfo, fddContractAttachInfo, newEmployeeContractInfo1); updateContractId(fddContractInfo, fddContractAttachInfo, newEmployeeContractInfo1);
doJointTask.doUpdateEmployeeInfo(updateList, user); doJointTask.updateFddEmployeeInfo(updateList, fddContractAttachInfo);
} else { } else {
//新增人员档案 //新增人员档案
TEmployeeInfo newEmployeeInfo = new TEmployeeInfo(); TEmployeeInfo newEmployeeInfo = new TEmployeeInfo();
...@@ -479,7 +478,6 @@ public class FddContractAttachInfoServiceImpl extends ServiceImpl<FddContractAtt ...@@ -479,7 +478,6 @@ public class FddContractAttachInfoServiceImpl extends ServiceImpl<FddContractAtt
} }
}); });
} }
errorList.add(new ErrorMessage(i, "保存成功", CommonConstants.GREEN));
} }
} else { } else {
errorList.add(new ErrorMessage(i, "无数据保存")); errorList.add(new ErrorMessage(i, "无数据保存"));
......
...@@ -586,7 +586,7 @@ public class FddContractInfoServiceImpl extends ServiceImpl<FddContractInfoMappe ...@@ -586,7 +586,7 @@ public class FddContractInfoServiceImpl extends ServiceImpl<FddContractInfoMappe
// 1:保存为 // 1:保存为
TAttaInfo attaInfo = initUnitAttaForInsert(name, key, (long)rspData.getFileBytes().length); TAttaInfo attaInfo = initUnitAttaForInsert(name, key, (long)rspData.getFileBytes().length);
attaInfo.setRelationType(CommonConstants.FOUR_STRING); attaInfo.setRelationType(CommonConstants.FOUR_STRING);
attaInfo.setDomainId(fddContractInfo.getId()); attaInfo.setDomainId(entity.getContractId());
tAttaInfoService.save(attaInfo); tAttaInfoService.save(attaInfo);
FddContractAttachInfo fddContractAttachInfo = fddContractAttachInfoMapper.selectOne(Wrappers.<FddContractAttachInfo>query().lambda() FddContractAttachInfo fddContractAttachInfo = fddContractAttachInfoMapper.selectOne(Wrappers.<FddContractAttachInfo>query().lambda()
......
...@@ -29,10 +29,10 @@ import com.yifu.cloud.plus.v1.yifu.archives.constants.ArchivesConstants; ...@@ -29,10 +29,10 @@ import com.yifu.cloud.plus.v1.yifu.archives.constants.ArchivesConstants;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpBadRecord; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpBadRecord;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContractAlert; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContractAlert;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmpContractAlertMapper; import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmpContractAlertMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeContractInfoMapper; import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeContractInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeInfoMapper; import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeProjectMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpContractAlertService; import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpContractAlertService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo; import com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
...@@ -63,7 +63,7 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM ...@@ -63,7 +63,7 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
private final TEmployeeContractInfoMapper contractInfoMapper; private final TEmployeeContractInfoMapper contractInfoMapper;
private final TEmployeeInfoMapper employeeInfoMapper; private final TEmployeeProjectMapper projectMapper;
@Override @Override
public IPage<TEmpContractAlert> pageDiy(Page page, ContractAlertSearchVo searchVo) { public IPage<TEmpContractAlert> pageDiy(Page page, ContractAlertSearchVo searchVo) {
...@@ -216,6 +216,7 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM ...@@ -216,6 +216,7 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
.lambda().eq(TEmployeeContractInfo::getAuditStatus,CommonConstants.TWO_STRING) .lambda().eq(TEmployeeContractInfo::getAuditStatus,CommonConstants.TWO_STRING)
.isNotNull(TEmployeeContractInfo::getAuditTimeLast) .isNotNull(TEmployeeContractInfo::getAuditTimeLast)
.eq(TEmployeeContractInfo::getContractType,"1") .eq(TEmployeeContractInfo::getContractType,"1")
.eq(TEmployeeContractInfo::getInUse,CommonConstants.ZERO_STRING)
.eq(TEmployeeContractInfo::getWorkFlag,CommonConstants.ZERO_STRING) .eq(TEmployeeContractInfo::getWorkFlag,CommonConstants.ZERO_STRING)
.le(TEmployeeContractInfo::getContractEnd,DateUtil.dateIncreaseByDay( .le(TEmployeeContractInfo::getContractEnd,DateUtil.dateIncreaseByDay(
DateUtil.dateIncreaseByMonth(DateUtil.getCurrentDateTime(), DateUtil.dateIncreaseByMonth(DateUtil.getCurrentDateTime(),
...@@ -254,10 +255,13 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM ...@@ -254,10 +255,13 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
private void extracted(Date nowDate, private void extracted(Date nowDate,
TEmployeeContractInfo contract, TEmployeeContractInfo contract,
Map<String,TEmpContractAlert> alertMap) { Map<String,TEmpContractAlert> alertMap) {
TEmployeeInfo employeeInfo = employeeInfoMapper.selectById(contract.getEmpId()); TEmployeeProject project = projectMapper.selectOne(Wrappers.<TEmployeeProject>query().lambda()
if (Common.isNotNull(employeeInfo) .eq(TEmployeeProject::getEmpId,contract.getEmpId())
&& !CommonConstants.ZERO_STRING.equals(employeeInfo.getEmpNatrue()) .eq(TEmployeeProject::getDeptNo,contract.getDeptNo())
&& !CommonConstants.ONE_STRING.equals(employeeInfo.getEmpNatrue())){ .last(CommonConstants.LAST_ONE_SQL));
if (Common.isNotNull(project)
&& !CommonConstants.ZERO_STRING.equals(project.getEmpNatrue())
&& !CommonConstants.ONE_STRING.equals(project.getEmpNatrue())){
return; return;
} }
TEmpContractAlert alert = alertMap.get(contract.getEmpIdcard()); TEmpContractAlert alert = alertMap.get(contract.getEmpIdcard());
......
...@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.service.impl; ...@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.entity.FddContractAttachInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeLog; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeLog;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeLogMapper; import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeLogMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeLogService; import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeLogService;
...@@ -94,6 +95,36 @@ public class TEmployeeLogServiceImpl extends ServiceImpl<TEmployeeLogMapper, TEm ...@@ -94,6 +95,36 @@ public class TEmployeeLogServiceImpl extends ServiceImpl<TEmployeeLogMapper, TEm
return null; return null;
} }
@Override
public <T> TEmployeeLog saveModificationRecord(Integer type, String empId, String projectId, T oldInfo, T newInfo, FddContractAttachInfo fddContractAttachInfo) {
try{
//比较记录不影响业务逻辑,用try套住
//比较差异
String differenceKey = HrEquator.comparisonValue(oldInfo, newInfo);
//如果有差异保存差异
if(!Common.isEmpty(differenceKey)){
TEmployeeLog employeeLog = new TEmployeeLog();
employeeLog.setProjectId(projectId);
employeeLog.setType(type);
employeeLog.setEmpId(empId);
employeeLog.setCreateTime(LocalDateTime.now());
if (Common.isNotNull(fddContractAttachInfo)) {
employeeLog.setCreateBy(fddContractAttachInfo.getCreateBy());
employeeLog.setCreateName(fddContractAttachInfo.getCreateName());
employeeLog.setUpdateBy(fddContractAttachInfo.getUpdateBy());
}
employeeLog.setOldInfo(JSON.toJSONString(oldInfo,features));
employeeLog.setNewInfo(JSON.toJSONString(newInfo,features));
employeeLog.setDifferenceInfo(differenceKey);
baseMapper.insert(employeeLog);
return employeeLog;
}
}catch (Exception e){
log.error(JSON.toJSON(oldInfo)+"插入修改记录报错>>>",e);
}
return null;
}
private SerializerFeature[] features = new SerializerFeature[] { private SerializerFeature[] features = new SerializerFeature[] {
WriteMapNullValue, WriteNullNumberAsZero, WriteNullListAsEmpty, WriteMapNullValue, WriteNullNumberAsZero, WriteNullListAsEmpty,
WriteNullStringAsEmpty,WriteDateUseDateFormat WriteNullStringAsEmpty,WriteDateUseDateFormat
......
...@@ -1358,6 +1358,20 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap ...@@ -1358,6 +1358,20 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
return R.ok(map); return R.ok(map);
} }
@Override
public TEmployeeProject getByEmpIdAndDeptId(String empId, String deptId) {
TEmployeeProject employeeProject = null;
if (Common.isEmpty(empId) || Common.isEmpty(deptId)) {
return employeeProject;
}
employeeProject = this.getOne(Wrappers.<TEmployeeProject>query().lambda()
.eq(TEmployeeProject::getEmpId, empId)
.eq(TEmployeeProject::getDeptId, deptId)
.eq(TEmployeeProject::getProjectStatus, CommonConstants.ZERO_INT)
.eq(TEmployeeProject::getDeleteFlag, CommonConstants.ZERO_STRING).last(CommonConstants.LAST_ONE_SQL));
return employeeProject;
}
@Override @Override
public R<Map<String, String>> getProjectByIdCard(String empIdCard) { public R<Map<String, String>> getProjectByIdCard(String empIdCard) {
List<TEmployeeProject> projects = baseMapper.selectList(Wrappers.<TEmployeeProject>query().lambda() List<TEmployeeProject> projects = baseMapper.selectList(Wrappers.<TEmployeeProject>query().lambda()
......
package com.yifu.cloud.plus.v1.yifu.archives.utils; package com.yifu.cloud.plus.v1.yifu.archives.utils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yifu.cloud.plus.v1.yifu.archives.entity.FddContractAttachInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeInfoService; import com.yifu.cloud.plus.v1.yifu.archives.service.TEmployeeInfoService;
...@@ -77,4 +78,44 @@ public class DoJointTask { ...@@ -77,4 +78,44 @@ public class DoJointTask {
log.info("档案-批量更新人员档案结束"); log.info("档案-批量更新人员档案结束");
} }
/**
* @Description: 合同-批量更换负责人
* @Author: huyc
* @Date: 2022-7-8
* @return: void
**/
@Async
public void updateFddEmployeeInfo(List<TEmployeeInfo> tEmployeeInfoList, FddContractAttachInfo fddContractAttachInfo) {
log.info("法大大档案-批量更新人员档案-线程开始");
try {
for(TEmployeeInfo tEmployeeInfo:tEmployeeInfoList) {
TEmployeeInfo tEmployeeInfoOld = tEmployeeInfoService.getById(tEmployeeInfo.getId());
//查询该人员所有的项目档案
List<TEmployeeProject> list = tEmployeeProjectService.list(Wrappers.<TEmployeeProject>query().lambda()
.eq(TEmployeeProject::getEmpIdcard, tEmployeeInfo.getEmpIdcard())
.eq(TEmployeeProject::getDeleteFlag, CommonConstants.STATUS_NORMAL)
.eq(TEmployeeProject::getProjectStatus, CommonConstants.ZERO_INT));
if (Common.isNotNull(list)) {
Set<String> empNatrue = list.stream().map(TEmployeeProject::getEmpNatrue).collect(Collectors.toSet());
if (empNatrue.stream().anyMatch(e -> e.equals(CommonConstants.ZERO_STRING))) {
tEmployeeInfo.setEmpNatrue(CommonConstants.ZERO_STRING);
} else if (empNatrue.stream().anyMatch(e -> e.equals(CommonConstants.ONE_STRING))) {
tEmployeeInfo.setEmpNatrue(CommonConstants.ONE_STRING);
} else {
tEmployeeInfo.setEmpNatrue(CommonConstants.TWO_STRING);
}
tEmployeeInfo.setProjectNum(list.size());
} else {
tEmployeeInfo.setProjectNum(CommonConstants.ZERO_INT);
}
tEmployeeInfoService.updateById(tEmployeeInfo);
tEmployeeLogService.saveModificationRecord(CommonConstants.dingleDigitIntArray[0]
, tEmployeeInfo.getId(), "", tEmployeeInfoOld, tEmployeeInfo,fddContractAttachInfo);
}
} catch (Exception e) {
log.error("法大大档案-批量更新人员档案错误", e);
}
log.info("法大大档案-批量更新人员档案结束");
}
} }
...@@ -245,12 +245,10 @@ ...@@ -245,12 +245,10 @@
AND a.SUBJECT_UNIT = #{tEmployeeContractInfo.subjectUnit} AND a.SUBJECT_UNIT = #{tEmployeeContractInfo.subjectUnit}
</if> </if>
<if test="tEmployeeContractInfo.situation != null and tEmployeeContractInfo.situation.trim() != ''"> <if test="tEmployeeContractInfo.situation != null and tEmployeeContractInfo.situation.trim() != ''">
<if test="tEmployeeContractInfo.situation == '作废' "> AND a.SITUATION = #{tEmployeeContractInfo.situation}
AND a.SITUATION != '作废' AND a.SITUATION != '终止' </if>
</if> <if test="tEmployeeContractInfo.isFilePage != null">
<if test="tEmployeeContractInfo.situation != '作废' "> AND a.SITUATION != '作废' AND a.SITUATION != '终止'
AND a.SITUATION = #{tEmployeeContractInfo.situation}
</if>
</if> </if>
<if test="tEmployeeContractInfo.contractTerm != null"> <if test="tEmployeeContractInfo.contractTerm != null">
AND a.CONTRACT_TERM = #{tEmployeeContractInfo.contractTerm} AND a.CONTRACT_TERM = #{tEmployeeContractInfo.contractTerm}
......
...@@ -337,6 +337,12 @@ public interface CommonConstants { ...@@ -337,6 +337,12 @@ public interface CommonConstants {
*/ */
int ONE_INT_NEGATE = -1; int ONE_INT_NEGATE = -1;
/**
* 数字int -1
* @author fxj
*/
String ONE_STRING_NEGATE = "-1";
/** /**
* 数字int -1 * 数字int -1
* @author fxj * @author fxj
......
...@@ -382,4 +382,18 @@ public interface ErrorCodes { ...@@ -382,4 +382,18 @@ public interface ErrorCodes {
* 新增异常:未找到对应项目编码信息 * 新增异常:未找到对应项目编码信息
*/ */
String EMP_DISPATCH_PROJECT_NOT_FOUND = "emp.dispatch.project.not.found"; String EMP_DISPATCH_PROJECT_NOT_FOUND = "emp.dispatch.project.not.found";
/**
* 新增异常:派单新增档案失败,请重试
*/
String EMP_DISPATCH_ADD_EMP_ERROR = "emp.dispatch.add.emp.error";
/**
* 新增异常:派单新增合同失败,请重试
*/
String EMP_DISPATCH_ADD_CONTRACT_ERROR="emp.dispatch.add.contract.error";
/**
* 新增异常:派单新增项目档案失败,请重试
*/
String EMP_DISPATCH_ADD_PROJECT_ERROR="emp.dispatch.add.project.error";
} }
...@@ -6,6 +6,8 @@ import org.apache.commons.lang.StringUtils; ...@@ -6,6 +6,8 @@ import org.apache.commons.lang.StringUtils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.*; import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -345,4 +347,34 @@ public class Common { ...@@ -345,4 +347,34 @@ public class Common {
year = Integer.valueOf(endYear).intValue() - Integer.valueOf(startYear).intValue() ; year = Integer.valueOf(endYear).intValue() - Integer.valueOf(startYear).intValue() ;
return year < 0?0:year; return year < 0?0:year;
} }
/**
* 公积金单边小数点格式化
*
* @param money
* @param type
* @return
* @Author fxj
* @Date 2019-09-26
**/
public static BigDecimal formatMoneyForFund(BigDecimal money, int type) {
DecimalFormat formater = new DecimalFormat("#0.#");
if (type == 1) {//四舍五入取整
return BigDecimal.valueOf(money.doubleValue()).setScale(0, RoundingMode.HALF_UP);
}
if (type == 2) {//元一下全部舍去,取整
return BigDecimal.valueOf(Math.floor(money.doubleValue())).setScale(0, BigDecimal.ROUND_UP);
}
if (type == 3) {//见角进元
return BigDecimal.valueOf(Math.ceil(BigDecimal.valueOf(money.doubleValue()).setScale(1, RoundingMode.HALF_DOWN).doubleValue())).setScale(0, BigDecimal.ROUND_UP);
}
if (type == 4) {//保留两位小数
return BigDecimal.valueOf(money.doubleValue()).setScale(2, RoundingMode.HALF_UP);
}
if (type == 5) {//保留一位小数
return BigDecimal.valueOf(money.doubleValue()).setScale(1, RoundingMode.HALF_UP);
}
return money;
}
} }
package com.yifu.cloud.plus.v1.yifu.common.dapr.util; package com.yifu.cloud.plus.v1.yifu.common.dapr.util;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.vo.DispatchAddVo; import com.yifu.cloud.plus.v1.yifu.archives.vo.DispatchAddVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.DispatchCheckVo; import com.yifu.cloud.plus.v1.yifu.archives.vo.DispatchCheckVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpDispatchAddVo; import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpDispatchAddVo;
...@@ -100,11 +102,44 @@ public class ArchivesDaprUtil { ...@@ -100,11 +102,44 @@ public class ArchivesDaprUtil {
return res; return res;
} }
public R<DispatchAddVo> addDispatchInfo(EmpDispatchAddVo addVo) { public R<EmpDispatchAddVo> addDispatchInfo(EmpDispatchAddVo addVo) {
R<DispatchAddVo> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/temployeeinfo/addDispatchInfo" , JSON.toJSONString(addVo), DispatchAddVo.class, SecurityConstants.FROM_IN); R<EmpDispatchAddVo> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/temployeeinfo/addDispatchInfo" , JSON.toJSONString(addVo), EmpDispatchAddVo.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){ if (Common.isEmpty(res)){
return R.failed("新增档案|项目档案|合同信息失败!"); return R.failed("新增档案|项目档案|合同信息失败!");
} }
return res; return res;
} }
/**
* @param empId
* @Description: 获取档案基本信息
* @Author: hgw
* @Date: 2022/7/21 14:48
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo>
**/
public R<TEmployeeInfo> getTEmployeeInfoById(String empId) {
R<TEmployeeInfo> res = HttpDaprUtil.invokeMethodGet(
daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeinfo/inner/getByEmpId" , empId, TEmployeeInfo.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("获取档案信息失败!");
}
return res;
}
/**
* @Description: 获取项目档案基本信息
* @Author: hgw
* @Date: 2022/7/21 14:48
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo>
**/
public R<TEmployeeProject> getTEmployeeProjectById(TEmployeeProject employeeProject) {
R<TEmployeeProject> res = HttpDaprUtil.invokeMethodPost(
daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId()
,"/temployeeproject/inner/getByEmpIdAndDeptId" , JSON.toJSONString(employeeProject), TEmployeeProject.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("获取档案信息失败!");
}
return res;
}
} }
dapr.upms.appUrl=http://yifu-upms.qas-mvp.svc.cluster.local:3500/v1.0/invoke/ dapr.upms.appUrl=http://localhost:3500/v1.0/invoke/
dapr.upms.appId=yifu-upms dapr.upms.appId=yifu-upms
dapr.upms.appPort=4000
dapr.upms.httpPort=3500
dapr.upms.grpcPort=52000
dapr.upms.metricsPort=9094
#\u6D4B\u8BD5\u73AF\u5883 #\u6D4B\u8BD5\u73AF\u5883
dapr.check.appUrl=http://yifu-check.qas-mvp.svc.cluster.local:3500/v1.0/invoke/ #dapr.check.appUrl=http://yifu-check.qas-mvp.svc.cluster.local:3500/v1.0/invoke/
#\u672C\u5730 #\u672C\u5730
#dapr.check.appUrl=http://localhost:3502/v1.0/invoke/ dapr.check.appUrl=http://localhost:3507/v1.0/invoke/
dapr.check.appId=yifu-check dapr.check.appId=yifu-check
dapr.check.appPort=5022
dapr.check.httpPort=3502
dapr.check.grpcPort=52002 #\u672C\u5730
dapr.check.metricsPort=9092 dapr.archives.appUrl=http://localhost:3508/v1.0/invoke/
\ No newline at end of file dapr.archives.appId=yifu-archives
dapr.social.appUrl=http://localhost:3510/v1.0/invoke/
dapr.social.appId=yifu-social
...@@ -154,6 +154,32 @@ public class TInsuranceDetailController { ...@@ -154,6 +154,32 @@ public class TInsuranceDetailController {
return R.ok(tInsuranceDetailService.getInsuranceExportList(param)); return R.ok(tInsuranceDetailService.getInsuranceExportList(param));
} }
/**
* 投保退回
*
* @author licancan
* @param idList
* @return {@link R<String>}
*/
@Operation(summary = "投保退回", description = "投保退回")
@PostMapping("/rollBackInsurance")
public R<String> rollBackInsurance(@RequestBody @Valid @Size(min = 1,message = "集合不能为空") List<String> idList){
return tInsuranceDetailService.rollBackInsurance(idList);
}
/**
* 办理成功
*
* @author licancan
* @param idList
* @return {@link R<String>}
*/
@Operation(summary = "办理成功", description = "办理成功")
@PostMapping("/successfulInsurance")
public R<String> successfulInsurance(@RequestBody @Valid @Size(min = 1,message = "集合不能为空") List<String> idList){
return tInsuranceDetailService.successfulInsurance(idList);
}
/***********************减员办理********************************/ /***********************减员办理********************************/
/** /**
* 导入减员校验 * 导入减员校验
......
...@@ -99,6 +99,24 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> { ...@@ -99,6 +99,24 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> {
*/ */
List<InsuranceExportListVO> getInsuranceExportList(InsuranceExportListParam param); List<InsuranceExportListVO> getInsuranceExportList(InsuranceExportListParam param);
/**
* 投保退回
*
* @author licancan
* @param idList
* @return {@link R<String>}
*/
R<String> rollBackInsurance(List<String> idList);
/**
* 办理成功
*
* @author licancan
* @param idList
* @return {@link R<String>}
*/
R<String> successfulInsurance(List<String> idList);
/***********************减员办理********************************/ /***********************减员办理********************************/
/** /**
* 减员导入校验 * 减员导入校验
......
...@@ -458,6 +458,71 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -458,6 +458,71 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
return insuranceExportList; return insuranceExportList;
} }
/**
* 投保退回
*
* @param idList
* @return {@link R<String>}
* @author licancan
*/
@Override
public R<String> rollBackInsurance(List<String> idList) {
YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) {
return R.failed(CommonConstants.PLEASE_LOG_IN);
}
if (CollectionUtils.isEmpty(idList)){
return R.failed(CommonConstants.PARAM_IS_NOT_EMPTY);
}
List<TInsuranceDetail> detailList = baseMapper.selectBatchIds(idList);
if (CollectionUtils.isNotEmpty(detailList)){
detailList.stream().forEach(e ->{
// 记录状态置为「退回」
e.setBuyHandleStatus(CommonConstants.FOUR_INT);
e.setUpdateBy(user.getId());
e.setUpdateTime(LocalDateTime.now());
});
//更新
this.saveOrUpdateBatch(detailList);
}
return R.ok(InsurancesConstants.OPERATE_SUCCESS);
}
/**
* 办理成功
*
* @param idList
* @return {@link R<String>}
* @author licancan
*/
@Override
public R<String> successfulInsurance(List<String> idList) {
YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) {
return R.failed(CommonConstants.PLEASE_LOG_IN);
}
if (CollectionUtils.isEmpty(idList)){
return R.failed(CommonConstants.PARAM_IS_NOT_EMPTY);
}
List<TInsuranceDetail> detailList = baseMapper.selectBatchIds(idList);
if (CollectionUtils.isNotEmpty(detailList)){
for (TInsuranceDetail detail : detailList) {
if (detail.getBuyType() == CommonConstants.THREE_INT){
detail.setPolicyEffect(LocalDate.now().plusDays(CommonConstants.ONE_INT));
}
//记录状态均置为「已投保」
detail.setBuyHandleStatus(CommonConstants.THREE_INT);
//记录的有效状态,置为「有效」
detail.setIsEffect(CommonConstants.ZERO_INT);
detail.setIsOverdue(CommonConstants.ZERO_INT);
}
//更新
this.saveOrUpdateBatch(detailList);
//todo 根据结算类型推送ekp
}
return R.ok(InsurancesConstants.OPERATE_SUCCESS);
}
/** /**
* 商险新增校验 * 商险新增校验
* *
......
...@@ -109,38 +109,15 @@ public class TAuditInfo extends BaseEntity { ...@@ -109,38 +109,15 @@ public class TAuditInfo extends BaseEntity {
@Schema(description = "公积金ID" ) @Schema(description = "公积金ID" )
@ExcelProperty("公积金ID" ) @ExcelProperty("公积金ID" )
private String providentId; private String providentId;
/** /**
* 基数变更ID * 身份证
*/
@Length(max = 32, message = "基数变更ID 不能超过32个字符" )
@ExcelAttribute(name = "基数变更ID", maxLength = 32)
@Schema(description = "基数变更ID" )
@ExcelProperty("基数变更ID" )
private String cardinalId;
/**
* 社保代理结算信息ID
*/
@Length(max = 32, message = "社保代理结算信息ID 不能超过32个字符" )
@ExcelAttribute(name = "社保代理结算信息ID", maxLength = 32)
@Schema(description = "社保代理结算信息ID" )
@ExcelProperty("社保代理结算信息ID" )
private String forecastFormId;
/**
* 人员离职派单ID
*/
@Length(max = 32, message = "人员离职派单ID 不能超过32个字符" )
@ExcelAttribute(name = "人员离职派单ID", maxLength = 32)
@Schema(description = "人员离职派单ID" )
@ExcelProperty("人员离职派单ID" )
private String empLeaveId;
/**
* 社保、公积金核准表
*/ */
@Length(max = 32, message = "社保、公积金核准表 不能超过32个字符" ) @ExcelAttribute(name = "身份证", maxLength = 32)
@ExcelAttribute(name = "社保、公积金核准表", maxLength = 32) @Schema(description = "身份证" )
@Schema(description = "社保、公积金核准表" ) @ExcelProperty("身份证" )
@ExcelProperty("社保、公积金核准表" ) private String empIdcard;
private String aprovalFormId;
/** /**
* 派单id * 派单id
*/ */
...@@ -150,13 +127,13 @@ public class TAuditInfo extends BaseEntity { ...@@ -150,13 +127,13 @@ public class TAuditInfo extends BaseEntity {
@ExcelProperty("派单id" ) @ExcelProperty("派单id" )
private String dispatchInfoId; private String dispatchInfoId;
/** /**
* type类型:0:其他;1:社 保办理备注 * type类型:0:其他;1:社保 2.公积金
*/ */
@NotBlank(message = "type类型不能为空" ) @NotBlank(message = "type类型不能为空" )
@Length(max = 1, message = "type类型不能超过1个字符" ) @Length(max = 1, message = "type类型不能超过1个字符" )
@ExcelAttribute(name = "type类型", isNotEmpty = true, errorInfo = "type类型不能为空", maxLength = 1) @ExcelAttribute(name = "type类型", isNotEmpty = true, errorInfo = "type类型不能为空", maxLength = 1)
@Schema(description = "type类型:0:其他;1:社 保办理备注" ) @Schema(description = "ype类型:0:其他;1:社保 2.公积金" )
@ExcelProperty("type类型:0:其他;1:社 保办理备注" ) @ExcelProperty("type类型" )
private String type; private String type;
} }
...@@ -17,9 +17,7 @@ ...@@ -17,9 +17,7 @@
package com.yifu.cloud.plus.v1.yifu.social.entity; package com.yifu.cloud.plus.v1.yifu.social.entity;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute; import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity; import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
...@@ -371,13 +369,7 @@ public class TSocialFundInfo extends BaseEntity { ...@@ -371,13 +369,7 @@ public class TSocialFundInfo extends BaseEntity {
@Schema(description = "个人失业基数" ) @Schema(description = "个人失业基数" )
@ExcelProperty("个人失业基数" ) @ExcelProperty("个人失业基数" )
private BigDecimal personalUnemploymentCardinal; private BigDecimal personalUnemploymentCardinal;
/**
* 单位工伤基数
*/
@ExcelAttribute(name = "单位工伤基数" )
@Schema(description = "单位工伤基数" )
@ExcelProperty("单位工伤基数" )
private BigDecimal personalWorkInjuryCardinal;
/** /**
* 单位养老比例 * 单位养老比例
*/ */
...@@ -462,6 +454,7 @@ public class TSocialFundInfo extends BaseEntity { ...@@ -462,6 +454,7 @@ public class TSocialFundInfo extends BaseEntity {
*/ */
@ExcelAttribute(name = "社保停缴日期", isDate = true) @ExcelAttribute(name = "社保停缴日期", isDate = true)
@Schema(description = "社保停缴日期" ) @Schema(description = "社保停缴日期" )
@TableField(updateStrategy = FieldStrategy.IGNORED)
@ExcelProperty("社保停缴日期" ) @ExcelProperty("社保停缴日期" )
private Date socialReduceDate; private Date socialReduceDate;
/** /**
...@@ -914,18 +907,19 @@ public class TSocialFundInfo extends BaseEntity { ...@@ -914,18 +907,19 @@ public class TSocialFundInfo extends BaseEntity {
*/ */
@ExcelAttribute(name = "公积金停缴日期", isDate = true) @ExcelAttribute(name = "公积金停缴日期", isDate = true)
@Schema(description = "公积金停缴日期" ) @Schema(description = "公积金停缴日期" )
@TableField(updateStrategy = FieldStrategy.IGNORED)
@ExcelProperty("公积金停缴日期" ) @ExcelProperty("公积金停缴日期" )
private Date fundReduceDate; private Date fundReduceDate;
/** /**
* 单位补缴利息 * 单位补缴利息 逻辑不明确-暂无实现
*/ */
@ExcelAttribute(name = "单位补缴利息") @ExcelAttribute(name = "单位补缴利息")
@Schema(description = "单位补缴利息") @Schema(description = "单位补缴利息")
@ExcelProperty("单位补缴利息") @ExcelProperty("单位补缴利息")
private BigDecimal unitInterestFee; private BigDecimal unitInterestFee;
/** /**
* 个人补缴利息 * 个人补缴利息 逻辑不明确-暂无实现
*/ */
@ExcelAttribute(name = "个人补缴利息") @ExcelAttribute(name = "个人补缴利息")
@Schema(description = "个人补缴利息") @Schema(description = "个人补缴利息")
......
...@@ -48,11 +48,11 @@ public class TSocialLog extends BaseEntity { ...@@ -48,11 +48,11 @@ public class TSocialLog extends BaseEntity {
private String id; private String id;
/** /**
* 类型:1社保基数配置;2公积金基数配置 * 类型:1社保基数配置;2公积金基数配置;3:调基
*/ */
@ExcelAttribute(name = "类型:1社保基数配置;2公积金基数配置") @ExcelAttribute(name = "类型:1社保基数配置;2公积金基数配置;3:调基")
@Schema(description = "类型:1社保基数配置;2公积金基数配置") @Schema(description = "类型:1社保基数配置;2公积金基数配置;3:调基")
@ExcelProperty("类型:1社保基数配置;2公积金基数配置") @ExcelProperty("类型:1社保基数配置;2公积金基数配置;3:调基")
private Integer type; private Integer type;
/** /**
......
...@@ -24,6 +24,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.R; ...@@ -24,6 +24,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog; import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialFundInfo; import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialFundInfo;
import com.yifu.cloud.plus.v1.yifu.social.service.TSocialFundInfoService; import com.yifu.cloud.plus.v1.yifu.social.service.TSocialFundInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialFundInfoDetailVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialFundInfoSearchVo; import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialFundInfoSearchVo;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.security.SecurityRequirement;
...@@ -154,4 +155,18 @@ public class TSocialFundInfoController { ...@@ -154,4 +155,18 @@ public class TSocialFundInfoController {
public void export(HttpServletResponse response, @RequestBody TSocialFundInfoSearchVo searchVo) { public void export(HttpServletResponse response, @RequestBody TSocialFundInfoSearchVo searchVo) {
tSocialFundInfoService.listExport(response,searchVo); tSocialFundInfoService.listExport(response,searchVo);
} }
/**
* @param id 社保公积金查询表的主键
* @Description: 根据id查询详情
* @Author: hgw
* @Date: 2022/7/21 16:08
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.social.vo.TSocialFundInfoDetailVo>
**/
@Operation(description = "前端使用:根据id查询详情")
@PostMapping("/getDetailById")
public R<TSocialFundInfoDetailVo> getDetailById(@RequestParam String id) {
return R.ok(tSocialFundInfoService.getDetailById(id));
}
} }
...@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage; import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialFundInfo; import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialFundInfo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialFundInfoDetailVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialFundInfoSearchVo; import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialFundInfoSearchVo;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -48,4 +49,14 @@ public interface TSocialFundInfoService extends IService<TSocialFundInfo> { ...@@ -48,4 +49,14 @@ public interface TSocialFundInfoService extends IService<TSocialFundInfo> {
void listExport(HttpServletResponse response, TSocialFundInfoSearchVo searchVo); void listExport(HttpServletResponse response, TSocialFundInfoSearchVo searchVo);
List<TSocialFundInfo> noPageDiy(TSocialFundInfoSearchVo searchVo); List<TSocialFundInfo> noPageDiy(TSocialFundInfoSearchVo searchVo);
/**
* @param id
* @Description: 社保公积金查询的详情
* @Author: hgw
* @Date: 2022/7/21 16:05
* @return: com.yifu.cloud.plus.v1.yifu.social.vo.TSocialFundInfoDetailVo
**/
TSocialFundInfoDetailVo getDetailById(String id);
} }
...@@ -334,7 +334,7 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap ...@@ -334,7 +334,7 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
if (Common.isNotNull(fundList)) { if (Common.isNotNull(fundList)) {
for (TSocialFundInfo providentFund : fundList) { for (TSocialFundInfo providentFund : fundList) {
createMonth = ServiceUtil.initCreateMonth(providentFund.getCreateTime(), payMonth); createMonth = ServiceUtil.initCreateMonth(providentFund.getCreateTime(), payMonth);
sfMapKey = this.getMapKey(providentFund.getEmpIdcard(), providentFund.getSettleDomain(), payMonth, createMonth); sfMapKey = this.getMapKey(providentFund.getEmpIdcard(), providentFund.getSettleDomainFund(), payMonth, createMonth);
// 变更:已推送的,计算变更值 // 变更:已推送的,计算变更值
tForecastLibrary = fundPushMap.get(sfMapKey); tForecastLibrary = fundPushMap.get(sfMapKey);
if (null != tForecastLibrary) { if (null != tForecastLibrary) {
...@@ -1160,8 +1160,8 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap ...@@ -1160,8 +1160,8 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
lib.setFundCity(providentFund.getFundCity()); lib.setFundCity(providentFund.getFundCity());
lib.setFundTown(providentFund.getFundTown()); lib.setFundTown(providentFund.getFundTown());
lib.setProvidentId(providentFund.getId()); lib.setProvidentId(providentFund.getId());
lib.setUnitId(providentFund.getUnitId()); lib.setUnitId(providentFund.getUnitIdFund());
lib.setSettleDomainId(providentFund.getSettleDomain()); lib.setSettleDomainId(providentFund.getSettleDomainFund());
//判断是否允许补缴 是否可补缴 0:是 //判断是否允许补缴 是否可补缴 0:是
Integer monthT = null; Integer monthT = null;
......
...@@ -30,14 +30,25 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -30,14 +30,25 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*; import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.ArchivesDaprUtil;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity; import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import com.yifu.cloud.plus.v1.yifu.social.entity.TAuditInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TDispatchInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialFundInfo; import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialFundInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialLog;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialFundInfoMapper; import com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialFundInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.TAuditInfoService;
import com.yifu.cloud.plus.v1.yifu.social.service.TDispatchInfoService;
import com.yifu.cloud.plus.v1.yifu.social.service.TSocialFundInfoService; import com.yifu.cloud.plus.v1.yifu.social.service.TSocialFundInfoService;
import com.yifu.cloud.plus.v1.yifu.social.service.TSocialLogService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialFundInfoDetailVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialFundInfoSearchVo; import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialFundInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialFundInfoVo; import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialFundInfoVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -55,8 +66,15 @@ import java.util.List; ...@@ -55,8 +66,15 @@ import java.util.List;
* @date 2022-07-15 11:38:05 * @date 2022-07-15 11:38:05
*/ */
@Log4j2 @Log4j2
@RequiredArgsConstructor
@Service @Service
public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMapper, TSocialFundInfo> implements TSocialFundInfoService { public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMapper, TSocialFundInfo> implements TSocialFundInfoService {
private final ArchivesDaprUtil archivesDaprUtil;
private final TDispatchInfoService tDispatchInfoService;
private final TSocialLogService tSocialLogService;
private final TAuditInfoService tAuditInfoService;
/** /**
* 社保公积金查询表简单分页查询 * 社保公积金查询表简单分页查询
* @param tSocialFundInfo 社保公积金查询表 * @param tSocialFundInfo 社保公积金查询表
...@@ -243,4 +261,73 @@ public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMappe ...@@ -243,4 +261,73 @@ public class TSocialFundInfoServiceImpl extends ServiceImpl<TSocialFundInfoMappe
BeanUtil.copyProperties(excel, insert); BeanUtil.copyProperties(excel, insert);
this.save(insert); this.save(insert);
} }
}
@Override
public TSocialFundInfoDetailVo getDetailById(String id) {
TSocialFundInfoDetailVo detailVo = new TSocialFundInfoDetailVo();
TSocialFundInfo socialFundInfo = this.getById(id);
if (socialFundInfo != null) {
// 主表信息
detailVo.setSocialFundInfo(socialFundInfo);
// 人员信息
if (Common.isNotNull(socialFundInfo.getEmpId())) {
R<TEmployeeInfo> employeeInfoR = archivesDaprUtil.getTEmployeeInfoById(socialFundInfo.getEmpId());
if (employeeInfoR != null && employeeInfoR.getCode() == CommonConstants.SUCCESS) {
detailVo.setEmployeeInfo(employeeInfoR.getData());
}
// 社保所属项目
if (Common.isNotNull(socialFundInfo.getSettleDomain())) {
TEmployeeProject employeeProject = new TEmployeeProject();
employeeProject.setEmpId(socialFundInfo.getEmpId());
employeeProject.setDeptId(socialFundInfo.getSettleDomain());
R<TEmployeeProject> employeeProjectR = archivesDaprUtil.getTEmployeeProjectById(employeeProject);
if (employeeProjectR != null && employeeProjectR.getCode() == CommonConstants.SUCCESS) {
detailVo.setSocialProject(employeeProjectR.getData());
}
}
// 公积金所属项目
if (Common.isNotNull(socialFundInfo.getSettleDomainFund())) {
TEmployeeProject employeeProject = new TEmployeeProject();
employeeProject.setEmpId(socialFundInfo.getEmpId());
employeeProject.setDeptId(socialFundInfo.getSettleDomainFund());
R<TEmployeeProject> employeeProjectR = archivesDaprUtil.getTEmployeeProjectById(employeeProject);
if (employeeProjectR != null && employeeProjectR.getCode() == CommonConstants.SUCCESS) {
detailVo.setFundProject(employeeProjectR.getData());
}
}
}
// 2022-7-21 12:00
// 倩倩已确认,社保公积金详情里的合同,采用社保/公积金对应的派单的合同信息(去除状态)
// 另外,基数sheet,采用变更日志,不是调基表。
// 社保所属合同
if (Common.isNotNull(socialFundInfo.getSocialId())) {
TDispatchInfo dispatchInfo = tDispatchInfoService.getOne(Wrappers.<TDispatchInfo>query().lambda()
.eq(TDispatchInfo::getSocialId, socialFundInfo.getSocialId())
.eq(TDispatchInfo::getType, CommonConstants.ZERO_STRING)
.orderByDesc(TDispatchInfo::getCreateTime).last(CommonConstants.LAST_ONE_SQL));
detailVo.setSocialContract(dispatchInfo);
}
// 公积金所属合同
if (Common.isNotNull(socialFundInfo.getFundId())) {
TDispatchInfo dispatchInfo = tDispatchInfoService.getOne(Wrappers.<TDispatchInfo>query().lambda()
.eq(TDispatchInfo::getFundId, socialFundInfo.getFundId())
.eq(TDispatchInfo::getType, CommonConstants.ZERO_STRING)
.orderByDesc(TDispatchInfo::getCreateTime).last(CommonConstants.LAST_ONE_SQL));
detailVo.setFundContract(dispatchInfo);
}
// 调基记录
List<TSocialLog> socialLogList = tSocialLogService.list(Wrappers.<TSocialLog>query().lambda()
.eq(TSocialLog::getType, CommonConstants.THREE_INT)
.eq(TSocialLog::getMainId, socialFundInfo.getId())
.orderByDesc(TSocialLog::getCreateTime));
detailVo.setLogList(socialLogList);
// 流程进展明细
List<TAuditInfo> auditInfoList = tAuditInfoService.list(Wrappers.<TAuditInfo>query().lambda()
.eq(TAuditInfo::getEmpIdcard, socialFundInfo.getEmpIdcard())
.orderByDesc(TAuditInfo::getCreateTime));
detailVo.setAuditList(auditInfoList);
}
return detailVo;
}
}
\ No newline at end of file
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.social.entity.TAuditInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TDispatchInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialFundInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialLog;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 社保公积金查询表
*
* @author fxj
* @date 2022-07-15 11:38:05
*/
@Data
public class TSocialFundInfoDetailVo implements Serializable {
@Schema(description = "主表信息")
private TSocialFundInfo socialFundInfo;
@Schema(description = "人员信息")
private TEmployeeInfo employeeInfo;
@Schema(description = "社保所属项目")
private TEmployeeProject socialProject;
@Schema(description = "公积金所属项目")
private TEmployeeProject fundProject;
@Schema(description = "社保所属合同(社保对应的派单里的合同信息)")
private TDispatchInfo socialContract;
@Schema(description = "公积金所属合同")
private TDispatchInfo fundContract;
@Schema(description = "调基记录")
private List<TSocialLog> logList;
@Schema(description = "流程进展明细")
private List<TAuditInfo> auditList;
}
...@@ -32,28 +32,23 @@ ...@@ -32,28 +32,23 @@
<result property="auditTime" column="AUDIT_TIME"/> <result property="auditTime" column="AUDIT_TIME"/>
<result property="isCommision" column="IS_COMMISION"/> <result property="isCommision" column="IS_COMMISION"/>
<result property="providentId" column="PROVIDENT_ID"/> <result property="providentId" column="PROVIDENT_ID"/>
<result property="cardinalId" column="CARDINAL_ID"/>
<result property="forecastFormId" column="FORECAST_FORM_ID"/>
<result property="empLeaveId" column="EMP_LEAVE_ID"/>
<result property="aprovalFormId" column="APROVAL_FORM_ID"/>
<result property="dispatchInfoId" column="DISPATCH_INFO_ID"/> <result property="dispatchInfoId" column="DISPATCH_INFO_ID"/>
<result property="type" column="TYPE"/> <result property="type" column="TYPE"/>
<result property="empIdcard" column="EMP_IDCARD"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
a.ID, a.ID,
a.SOCIAL_ID, a.SOCIAL_ID,
a.AUDIT_STATUS, a.AUDIT_STATUS,
a.AUDIT_REMARK, a.AUDIT_REMARK,
a.AUDIT_USER, a.AUDIT_USER,
a.AUDIT_TIME, a.AUDIT_TIME,
a.IS_COMMISION, a.IS_COMMISION,
a.PROVIDENT_ID, a.PROVIDENT_ID,
a.CARDINAL_ID, a.DISPATCH_INFO_ID,
a.FORECAST_FORM_ID, a.TYPE,
a.EMP_LEAVE_ID, a.EMP_IDCARD
a.APROVAL_FORM_ID,
a.DISPATCH_INFO_ID,
a.TYPE
</sql> </sql>
<sql id="tAuditInfo_where"> <sql id="tAuditInfo_where">
<if test="tAuditInfo != null"> <if test="tAuditInfo != null">
...@@ -81,18 +76,6 @@ ...@@ -81,18 +76,6 @@
<if test="tAuditInfo.providentId != null and tAuditInfo.providentId.trim() != ''"> <if test="tAuditInfo.providentId != null and tAuditInfo.providentId.trim() != ''">
AND a.PROVIDENT_ID = #{tAuditInfo.providentId} AND a.PROVIDENT_ID = #{tAuditInfo.providentId}
</if> </if>
<if test="tAuditInfo.cardinalId != null and tAuditInfo.cardinalId.trim() != ''">
AND a.CARDINAL_ID = #{tAuditInfo.cardinalId}
</if>
<if test="tAuditInfo.forecastFormId != null and tAuditInfo.forecastFormId.trim() != ''">
AND a.FORECAST_FORM_ID = #{tAuditInfo.forecastFormId}
</if>
<if test="tAuditInfo.empLeaveId != null and tAuditInfo.empLeaveId.trim() != ''">
AND a.EMP_LEAVE_ID = #{tAuditInfo.empLeaveId}
</if>
<if test="tAuditInfo.aprovalFormId != null and tAuditInfo.aprovalFormId.trim() != ''">
AND a.APROVAL_FORM_ID = #{tAuditInfo.aprovalFormId}
</if>
<if test="tAuditInfo.dispatchInfoId != null and tAuditInfo.dispatchInfoId.trim() != ''"> <if test="tAuditInfo.dispatchInfoId != null and tAuditInfo.dispatchInfoId.trim() != ''">
AND a.DISPATCH_INFO_ID = #{tAuditInfo.dispatchInfoId} AND a.DISPATCH_INFO_ID = #{tAuditInfo.dispatchInfoId}
</if> </if>
......
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