weaver-hrm-organization/src/com/engine/organization/service/impl/CodeSettingServiceImpl.java

137 lines
5.8 KiB
Java
Raw Normal View History

2022-05-31 09:19:04 +08:00
package com.engine.organization.service.impl;
2022-06-06 13:17:35 +08:00
import com.alibaba.fastjson.JSONObject;
2022-05-31 17:56:00 +08:00
import com.engine.common.util.ServiceUtil;
2022-05-31 09:19:04 +08:00
import com.engine.core.impl.Service;
2022-05-31 10:39:07 +08:00
import com.engine.hrm.entity.RuleCodeType;
2022-05-31 17:56:00 +08:00
import com.engine.organization.entity.codesetting.bo.CodeSettingBO;
import com.engine.organization.entity.codesetting.param.CodeSaveParam;
import com.engine.organization.entity.codesetting.po.CodeRuleDetailPO;
import com.engine.organization.entity.codesetting.po.CodeRulePO;
import com.engine.organization.mapper.codesetting.CodeRuleDetailMapper;
import com.engine.organization.mapper.codesetting.CodeRuleMapper;
2022-05-31 09:19:04 +08:00
import com.engine.organization.service.CodeSettingService;
2022-05-31 17:56:00 +08:00
import com.engine.organization.util.OrganizationAssert;
import com.engine.organization.util.db.MapperProxyFactory;
2022-05-31 10:39:07 +08:00
import com.engine.organization.util.response.ReturnResult;
2022-06-06 13:17:35 +08:00
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.general.Util;
2022-05-31 10:39:07 +08:00
import weaver.hrm.HrmUserVarify;
2022-05-31 17:56:00 +08:00
import weaver.hrm.User;
2022-05-31 10:39:07 +08:00
import java.util.HashMap;
2022-05-31 17:56:00 +08:00
import java.util.List;
2022-05-31 10:39:07 +08:00
import java.util.Map;
2022-05-31 09:19:04 +08:00
/**
* @Author weaver_cl
2022-06-14 11:07:48 +08:00
* @description:
2022-05-31 09:19:04 +08:00
* @Date 2022/5/30
* @Version V1.0
**/
public class CodeSettingServiceImpl extends Service implements CodeSettingService {
2022-05-31 10:39:07 +08:00
2022-05-31 17:56:00 +08:00
public CodeSettingService getCodeSettingService(User user) {
2022-06-06 13:17:35 +08:00
return ServiceUtil.getService(CodeSettingServiceImpl.class, user);
2022-05-31 17:56:00 +08:00
}
2022-05-31 10:39:07 +08:00
@Override
public ReturnResult getHasRight(String serialtype) {
boolean hasRight = false;
Map<String, Object> retmap = new HashMap<>();
switch (RuleCodeType.getByValue(serialtype)) {
case SUBCOMPANY:
hasRight = HrmUserVarify.checkUserRight("HrmCodeRuleSubcompany:All", user);
break;
case DEPARTMENT:
hasRight = HrmUserVarify.checkUserRight("HrmCodeRuleDepartment:All", user);
break;
case JOBTITLES:
hasRight = HrmUserVarify.checkUserRight("HrmCodeRuleJobtitles:All", user);
break;
case USER:
hasRight = HrmUserVarify.checkUserRight("HrmCodeRuleUser:All", user);
break;
}
retmap.put("hasRight", hasRight);
return ReturnResult.successed(retmap);
}
2022-05-31 17:56:00 +08:00
@Override
2022-06-06 13:17:35 +08:00
public String saveOrUpdateCodeSetting(CodeSaveParam params) {
OrganizationAssert.notNull(params, "参数不能为空");
2022-05-31 17:56:00 +08:00
Long codeRuleId = getCodeSettingService(user).getCodeRuleId(params.getSerialType());
2022-06-06 13:17:35 +08:00
CodeRulePO codeRulePO = CodeSettingBO.buildCodeRule(params, (long) user.getUID(), codeRuleId);
2022-05-31 17:56:00 +08:00
//1.新增或更新主表
2022-06-06 13:17:35 +08:00
if (codeRuleId != null) {
2022-05-31 17:56:00 +08:00
MapperProxyFactory.getProxy(CodeRuleMapper.class).updateCodeRule(codeRulePO);
2022-06-06 13:17:35 +08:00
} else {
2022-05-31 17:56:00 +08:00
MapperProxyFactory.getProxy(CodeRuleMapper.class).insertCodeRule(codeRulePO);
}
//2.插入明细表
codeRuleId = getCodeSettingService(user).getCodeRuleId(params.getSerialType());
MapperProxyFactory.getProxy(CodeRuleDetailMapper.class).delete(codeRuleId);
2022-06-06 13:17:35 +08:00
List<CodeRuleDetailPO> codeRuleDetailPOs = CodeSettingBO.bulidCodeDetailList(params.getCodeSaveDetailParams(), (long) user.getUID(), codeRuleId);
if (CollectionUtils.isEmpty(codeRuleDetailPOs)) {
MapperProxyFactory.getProxy(CodeRuleDetailMapper.class).batchInsert(codeRuleDetailPOs);
}
Map<String, Object> apidatas = new HashMap<>();
apidatas.put("coderuleid", codeRuleId);
return JSONObject.toJSONString(apidatas);
2022-05-31 17:56:00 +08:00
}
@Override
public Long getCodeRuleId(String serialType) {
return MapperProxyFactory.getProxy(CodeRuleMapper.class).getCodeRuleId(serialType);
}
2022-06-06 13:17:35 +08:00
@Override
public String getCodeSetting(String serialType) {
Map<String, Object> datas = new HashMap<>();
CodeRulePO codeRulePO = MapperProxyFactory.getProxy(CodeRuleMapper.class).getCodeRuleByType(serialType);
if (null != codeRulePO) {
datas.put("serialtype", serialType);
datas.put("serialenable", Util.null2String(codeRulePO.getSerialEnable(), "0"));
String oneselftype = Util.null2String(codeRulePO.getOneselfType(), "");
if (StringUtils.isNotEmpty(oneselftype)) {
String[] oneselftypes = oneselftype.split(",");
// 日期流水
Map<String, String> dateSerialMap = new HashMap<>();
dateSerialMap.put("enable", "0");
// 机构流水
Map<String, String> deptSerialMap = new HashMap<>();
deptSerialMap.put("enable", "0");
// 岗位
Map<String, String> jobtitlesSerialMap = new HashMap<>();
jobtitlesSerialMap.put("enable", "0");
for (String type : oneselftypes) {
switch (RuleCodeType.getByValue(type)) {
case YEAR:
case MONTH:
case DAY:
dateSerialMap.put("enable", "1");
dateSerialMap.put("key", type);
break;
case SUBCOMPANY:
case DEPARTMENT:
deptSerialMap.put("enable", "1");
deptSerialMap.put("key", type);
break;
case JOBTITLES:
jobtitlesSerialMap.put("enable", "1");
jobtitlesSerialMap.put("key", type);
break;
}
}
datas.put("dateSerial", dateSerialMap);
datas.put("deptSerial", deptSerialMap);
datas.put("jobtitlesSerial", jobtitlesSerialMap);
}
}
return null;
}
2022-05-31 09:19:04 +08:00
}