Commit 08ec0f5a authored by fangxinjiang's avatar fangxinjiang

项目配置默认限制项-fxj

parent 283d10a3
......@@ -29,7 +29,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.icbc.api.request.EiopCustomerGroupSaveRequestV1;
import com.yifu.cloud.plus.v1.yifu.archives.entity.*;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.*;
import com.yifu.cloud.plus.v1.yifu.archives.service.TAutoMainRelService;
......@@ -138,6 +137,10 @@ public class TAutoMainRelServiceImpl extends ServiceImpl<TAutoMainRelMapper, TAu
@Autowired
private TAutoMainRelRefreshLogMapper refreshLogMapper;
// 项目表Mapper,用于查询服务事项
@Autowired
private TSettleDomainMapper settleDomainMapper;
public static final String itemsLabel = "label,description,disable";
public static final String itemsLabelRepeat = "同一项目岗位名称不可重复";
......@@ -421,36 +424,40 @@ public class TAutoMainRelServiceImpl extends ServiceImpl<TAutoMainRelMapper, TAu
if (PARAM_IS_NOT_ERROR != null){
return PARAM_IS_NOT_ERROR;
}
//校验公积金规则主表信息
TAutoFundRuleInfo autoFundRuleInfo = entity.getFundRuleInfo();
if (Common.isNotNull(autoFundRuleInfo)){
if (Common.isNotNull(autoFundRuleInfo)) {
ExcelUtil<TAutoFundRuleInfo> excelUtil = new ExcelUtil<>(TAutoFundRuleInfo.class);
ErrorMessage errorMessage = excelUtil.checkEntity(autoFundRuleInfo,0);
if (Common.isNotNull(errorMessage)){
ErrorMessage errorMessage = excelUtil.checkEntity(autoFundRuleInfo, 0);
if (Common.isNotNull(errorMessage)) {
return R.failed(errorMessage.getMessage());
}
}
//校验公积金规则明细表信息
List<TAutoFundRuleRel> fundRuleRels = entity.getFundRuleRels();
PARAM_IS_NOT_ERROR = checkFundRuleRels(fundRuleRels);
if (PARAM_IS_NOT_ERROR != null){
if (PARAM_IS_NOT_ERROR != null) {
return PARAM_IS_NOT_ERROR;
}
// 根据服务事项设置默认限制项(仅新增时处理)
setDefaultRestrictItemsByServerItem(autoMainRel);
//自动计算自动化配置项(设置5个独立字段)- 根据TAutoMainRelAddVo中的属性设置
generateAutoConfigItems(entity, autoMainRel);
//新增主表
autoMainRel.setRuleUpdatePerson(user.getNickname());
autoMainRel.setRuleUpdateTime(DateUtil.getCurrentDateTime());
int res = baseMapper.insert(autoMainRel);
if (res <= CommonConstants.ZERO_INT){
if (res <= CommonConstants.ZERO_INT) {
return R.failed(CommonConstants.SAVE_FAILED);
}
// 新增字典项
if (Common.isNotNull(autoDictItems)) {
for (SysAutoDictItem sysAutoDictItem:autoDictItems){
for (SysAutoDictItem sysAutoDictItem : autoDictItems) {
//初始化字典信息
initDictItem(sysAutoDictItem, user, autoDict, autoMainRel);
sysAutoDictItem.setCreateTime(LocalDateTime.now());
......@@ -460,22 +467,22 @@ public class TAutoMainRelServiceImpl extends ServiceImpl<TAutoMainRelMapper, TAu
}
}
//新增档案规则
if (Common.isNotNull(autoEmpRuleInfo)){
if (Common.isNotNull(autoEmpRuleInfo)) {
autoEmpRuleInfo.setDeptNo(autoMainRel.getDeptNo());
autoEmpRuleInfo.setDeptId(autoMainRel.getDeptId());
autoEmpRuleInfo.setMainId(autoMainRel.getId());
autoEmpRuleInfoMapper.insert(autoEmpRuleInfo);
}
//新增商险规则
if (Common.isNotNull(autoInsurRuleInfo)){
if (Common.isNotNull(autoInsurRuleInfo)) {
autoInsurRuleInfo.setDeptNo(autoMainRel.getDeptNo());
autoInsurRuleInfo.setDeptId(autoMainRel.getDeptId());
autoInsurRuleInfo.setMainId(autoMainRel.getId());
autoInsurRuleInfoMapper.insert(autoInsurRuleInfo);
}
//新增商险购买标准
if (Common.isNotNull(insurStandards)){
for (TAutoInsurStandard standard:insurStandards){
if (Common.isNotNull(insurStandards)) {
for (TAutoInsurStandard standard : insurStandards) {
standard.setMainId(autoInsurRuleInfo.getId());
autoInsurStandardMapper.insert(standard);
//新增购买标准子表
......@@ -483,15 +490,15 @@ public class TAutoMainRelServiceImpl extends ServiceImpl<TAutoMainRelMapper, TAu
}
}
//新增员工合同签订规则配置表
if (Common.isNotNull(autoContractRuleInfo)){
if (Common.isNotNull(autoContractRuleInfo)) {
autoContractRuleInfo.setDeptNo(autoMainRel.getDeptNo());
autoContractRuleInfo.setDeptId(autoMainRel.getDeptId());
autoContractRuleInfo.setMainId(autoMainRel.getId());
autoContractRuleInfoMapper.insert(autoContractRuleInfo);
}
//新增员工合同签订规则配置方案子表
if (Common.isNotNull(contractSchemes)){
for (TAutoContractScheme scheme:contractSchemes){
if (Common.isNotNull(contractSchemes)) {
for (TAutoContractScheme scheme : contractSchemes) {
scheme.setMainId(autoContractRuleInfo.getId());
scheme.setDeptNo(autoMainRel.getDeptNo());
scheme.setDeptId(autoMainRel.getDeptId());
......@@ -499,7 +506,7 @@ public class TAutoMainRelServiceImpl extends ServiceImpl<TAutoMainRelMapper, TAu
}
}
//新增社保规则主表
if (Common.isNotNull(autoSocialRuleInfo)){
if (Common.isNotNull(autoSocialRuleInfo)) {
autoSocialRuleInfo.setDeptNo(autoMainRel.getDeptNo());
autoSocialRuleInfo.setDeptId(autoMainRel.getDeptId());
autoSocialRuleInfo.setMainId(autoMainRel.getId());
......@@ -509,8 +516,8 @@ public class TAutoMainRelServiceImpl extends ServiceImpl<TAutoMainRelMapper, TAu
autoSocialRuleInfoMapper.insert(autoSocialRuleInfo);
}
//新增社保规则明细表
if (Common.isNotNull(socialRuleRels)){
for (TAutoSocialRuleRel rel:socialRuleRels){
if (Common.isNotNull(socialRuleRels)) {
for (TAutoSocialRuleRel rel : socialRuleRels) {
rel.setMainId(autoSocialRuleInfo.getId());
rel.setDeptNo(autoMainRel.getDeptNo());
rel.setDeptId(autoMainRel.getDeptId());
......@@ -521,7 +528,7 @@ public class TAutoMainRelServiceImpl extends ServiceImpl<TAutoMainRelMapper, TAu
}
}
//新增公积金规则主表
if (Common.isNotNull(autoFundRuleInfo)){
if (Common.isNotNull(autoFundRuleInfo)) {
autoFundRuleInfo.setDeptNo(autoMainRel.getDeptNo());
autoFundRuleInfo.setDeptId(autoMainRel.getDeptId());
autoFundRuleInfo.setMainId(autoMainRel.getId());
......@@ -531,8 +538,8 @@ public class TAutoMainRelServiceImpl extends ServiceImpl<TAutoMainRelMapper, TAu
autoFundRuleInfoMapper.insert(autoFundRuleInfo);
}
//新增公积金规则明细表
if (Common.isNotNull(fundRuleRels)){
for (TAutoFundRuleRel rel:fundRuleRels){
if (Common.isNotNull(fundRuleRels)) {
for (TAutoFundRuleRel rel : fundRuleRels) {
rel.setMainId(autoFundRuleInfo.getId());
rel.setDeptNo(autoMainRel.getDeptNo());
rel.setDeptId(autoMainRel.getDeptId());
......@@ -543,7 +550,7 @@ public class TAutoMainRelServiceImpl extends ServiceImpl<TAutoMainRelMapper, TAu
}
}
return R.ok();
}catch (Exception e){
}catch(Exception e){
// 捕获异常并返回友好提示
return R.failed("系统异常:" + e.getMessage());
}
......@@ -2516,4 +2523,81 @@ private R<Boolean> checkItemRepeat(List<SysAutoDictItem> autoDictItems, Map<Stri
refreshLogMapper.insert(log);
}
/**
* 根据服务事项设置默认限制项(仅新增时调用)
* 规则:
* 1. restrictArchive 始终为 "0"(档案不限制)
* 2. 根据服务事项设置其他限制项:
* - 服务事项包含"社保"或"公积金" → restrictSocialFund = "1"
* - 服务事项包含"合同" → restrictContract = "1"
* - 服务事项包含"商险" → restrictInsurance = "1"
*
* @param entity 项目配置实体
*/
private void setDefaultRestrictItemsByServerItem(TAutoMainRel entity) {
if (Common.isEmpty(entity) || Common.isEmpty(entity.getDeptNo())) {
return;
}
// 1. 查询项目的服务事项
String serverItem = getServerItemByDeptNo(entity.getDeptNo());
// 2. 档案默认不限制
entity.setRestrictArchive(CommonConstants.ZERO_STRING);
// 3. 如果服务事项为空,所有限制项默认为不限制
if (Common.isEmpty(serverItem)) {
entity.setRestrictInsurance(CommonConstants.ZERO_STRING);
entity.setRestrictContract(CommonConstants.ZERO_STRING);
entity.setRestrictSocialFund(CommonConstants.ZERO_STRING);
return;
}
// 4. 根据服务事项设置限制项
// 判断是否包含社保或公积金
if (serverItem.contains("社保") || serverItem.contains("公积金")) {
entity.setRestrictSocialFund(CommonConstants.ONE_STRING);
} else {
entity.setRestrictSocialFund(CommonConstants.ZERO_STRING);
}
// 判断是否包含合同
if (serverItem.contains("合同")) {
entity.setRestrictContract(CommonConstants.ONE_STRING);
} else {
entity.setRestrictContract(CommonConstants.ZERO_STRING);
}
// 判断是否包含商险
if (serverItem.contains("商险")) {
entity.setRestrictInsurance(CommonConstants.ONE_STRING);
} else {
entity.setRestrictInsurance(CommonConstants.ZERO_STRING);
}
}
/**
* 根据项目编码查询服务事项
*
* @param deptNo 项目编码
* @return 服务事项字符串,如"社保、公积金、合同、商险"
*/
private String getServerItemByDeptNo(String deptNo) {
if (Common.isEmpty(deptNo)) {
return null;
}
// 从 TSettleDomain 表查询 serverItem
LambdaQueryWrapper<TSettleDomain> wrapper = Wrappers.lambdaQuery();
wrapper.eq(TSettleDomain::getDepartNo, deptNo)
.eq(TSettleDomain::getDeleteFlag, CommonConstants.ZERO_STRING)
.last(CommonConstants.LAST_ONE_SQL);
TSettleDomain settleDomain = settleDomainMapper.selectOne(wrapper);
if (Common.isNotNull(settleDomain)) {
return settleDomain.getServerItem();
}
return null;
}
}
\ No newline at end of file
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