sql公式

This commit is contained in:
钱涛 2022-04-28 15:02:11 +08:00
parent 5c2bb1bf58
commit 23da0fb5e4
13 changed files with 137 additions and 18 deletions

View File

@ -36,7 +36,6 @@ import com.engine.salary.mapper.sicategory.ICategoryMapper;
import com.engine.salary.mapper.sischeme.InsuranceSchemeDetailMapper;
import com.engine.salary.mapper.sischeme.InsuranceSchemeMapper;
import com.engine.salary.util.SalaryAssert;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryFormItemUtil;
import com.engine.salary.util.db.MapperProxyFactory;
@ -85,7 +84,7 @@ public class SIArchivesBiz {
.position(item.getJobtitleName())
.username(item.getUsername())
.telephone(item.getMobile())
.dimissionDate(SalaryDateUtil.getFormatLocalDate(item.getDissmissdate()))
.dimissionDate(item.getDissmissdate())
.build();
// if (item.getStatus() == UserStatusEnum.unavailable) {

View File

@ -6,8 +6,6 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* 员工基本信息
* <p>Copyright: Copyright (c) 2022</p>
@ -52,7 +50,7 @@ public class DataCollectionEmployee {
private String mobile;
//离职日期
private Date dissmissdate;
private String dissmissdate;
//状态
private String status;

View File

@ -17,7 +17,7 @@ import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveItemDataDTO;
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveTaxAgentDataDTO;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.salarysob.po.SalarySobAdjustRulePO;
import com.engine.salary.enums.SalaryFormulaReferenceEnum;
import com.engine.salary.enums.salaryformula.SalaryFormulaReferenceEnum;
import com.engine.salary.enums.salarysob.SalarySobAdjustRuleTypeEnum;
import com.engine.salary.util.JsonUtil;
import com.engine.salary.util.SalaryDateUtil;

View File

@ -5,7 +5,7 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO;
import com.engine.salary.entity.salaryformula.ExpressFormula;
import com.engine.salary.entity.salaryformula.po.FormulaVar;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.enums.SalaryFormulaReferenceEnum;
import com.engine.salary.enums.salaryformula.SalaryFormulaReferenceEnum;
import com.engine.salary.util.SalaryEntityUtil;
import com.google.common.collect.Maps;
import org.apache.commons.collections4.CollectionUtils;

View File

@ -5,7 +5,7 @@ import com.engine.salary.entity.salaryformula.ExpressFormula;
import com.engine.salary.entity.salaryformula.po.FormulaVar;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
import com.engine.salary.enums.SalaryFormulaReferenceEnum;
import com.engine.salary.enums.salaryformula.SalaryFormulaReferenceEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;

View File

@ -1,5 +1,6 @@
package com.engine.salary.entity.salaryacct.po;
import com.engine.salary.annotation.SalaryFormulaVar;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -38,21 +39,25 @@ public class SalaryAcctEmployeePO {
/**
* 薪资账套id
*/
@SalaryFormulaVar(defaultLabel = "薪资账套id", labelId = 86321, dataType = "number")
private Long salarySobId;
/**
* 人员id
*/
@SalaryFormulaVar(defaultLabel = "人员id", labelId = 86321, dataType = "number")
private Long employeeId;
/**
* 个税扣缴义务人id
*/
@SalaryFormulaVar(defaultLabel = "个税扣缴义务人id", labelId = 86321, dataType = "number")
private Long taxAgentId;
/**
* 薪资所属月
*/
@SalaryFormulaVar(defaultLabel = "薪资所属月", labelId = 86321, dataType = "string")
private Date salaryMonth;
/**

View File

@ -55,6 +55,7 @@ public class SalaryItemSaveParam {
*
* @see SalaryRoundingModeEnum
*/
@DataCheck(require = true, message = "舍入规则不允许为空")
private Integer roundingMode;
//保留小数位

View File

@ -1,6 +1,8 @@
package com.engine.salary.enums;
package com.engine.salary.enums.salaryformula;
import com.engine.salary.enums.BaseEnum;
import java.util.Objects;
/**

View File

@ -0,0 +1,55 @@
package com.engine.salary.enums.salaryformula;
import com.engine.salary.enums.BaseEnum;
import java.util.Objects;
/**
* 薪资项目SQL公式引用分类
* <p>Copyright: Copyright (c) 2022</p>
* <p>Company: 泛微软件</p>
*
* @author qiantao
* @version 1.0
**/
public enum SalarySQLReferenceEnum implements BaseEnum<String> {
EMPLOYEE_INFO("employeeInfo", "员工基本信息", 85366),
SALARY_ACCT_EMPLOYEE("salaryAcctEmployee", "核算人员信息", 85368);
private String value;
private String defaultLabel;
private int labelId;
SalarySQLReferenceEnum(String value, String defaultLabel, int labelId) {
this.value = value;
this.defaultLabel = defaultLabel;
this.labelId = labelId;
}
@Override
public String getValue() {
return value;
}
@Override
public String getDefaultLabel() {
return defaultLabel;
}
@Override
public Integer getLabelId() {
return labelId;
}
public static SalarySQLReferenceEnum parseByValue(String value) {
for (SalarySQLReferenceEnum referenceEnum : SalarySQLReferenceEnum.values()) {
if (Objects.equals(referenceEnum.getValue(), value)) {
return referenceEnum;
}
}
return null;
}
}

View File

@ -9,13 +9,16 @@ import com.engine.salary.entity.datacollection.AddUpSituation;
import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO;
import com.engine.salary.entity.datacollection.param.AttendQuoteFieldQueryParam;
import com.engine.salary.entity.datacollection.po.OtherDeductionPO;
import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO;
import com.engine.salary.entity.salaryformula.dto.SalaryFormulaEmployeeDTO;
import com.engine.salary.entity.salaryformula.dto.SalaryFormulaTaxRateDTO;
import com.engine.salary.entity.salaryformula.po.FormulaVar;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
import com.engine.salary.entity.taxrate.TaxRateBase;
import com.engine.salary.enums.SalaryFormulaReferenceEnum;
import com.engine.salary.enums.salaryformula.ReferenceTypeEnum;
import com.engine.salary.enums.salaryformula.SalaryFormulaReferenceEnum;
import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum;
import com.engine.salary.formlua.entity.parameter.DataType;
import com.engine.salary.mapper.datacollection.AttendQuoteFieldMapper;
import com.engine.salary.service.*;
@ -92,7 +95,30 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic
@Override
public List<FormulaVar> fieldList(String sourceId, Map<String, Object> extendParam) {
List<FormulaVar> vars = new ArrayList<>();
//sql
if (extendParam != null) {
String referenceType = extendParam.get("referenceType") == null ? "" : extendParam.get("referenceType").toString();
if (ReferenceTypeEnum.SQL.getValue().equals(referenceType)) {
SalarySQLReferenceEnum referenceEnum = SalarySQLReferenceEnum.parseByValue(sourceId);
if (referenceEnum != null) {
switch (referenceEnum) {
case EMPLOYEE_INFO:
vars = convert2FormulaVar(SalaryFormulaEmployeeDTO.class, referenceEnum.getValue() + "");
break;
case SALARY_ACCT_EMPLOYEE:
vars = convert2FormulaVar(SalaryAcctEmployeePO.class, referenceEnum.getValue() + "");
break;
default:
break;
}
return vars;
}
}
}
// 如果是其他数据源
SalaryFormulaReferenceEnum referenceEnum = SalaryFormulaReferenceEnum.parseByValue(sourceId);
if (referenceEnum != null) {
@ -135,6 +161,16 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic
@Override
public List<Map<String, Object>> fieldGroupList(Map<String, Object> extendParam) {
if (ReferenceTypeEnum.SQL.getValue().equals(extendParam.get("referenceType"))) {
return Arrays.stream(SalarySQLReferenceEnum.values()).map(e -> {
Map<String, Object> map = new HashMap<>();
map.put("key", e.getValue());
map.put("value", SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel()));
return map;
}).collect(Collectors.toList());
}
return Arrays.stream(SalaryFormulaReferenceEnum.values()).map(e -> {
Map<String, Object> map = new HashMap<>();
map.put("key", e.getValue());

View File

@ -20,7 +20,7 @@ import com.engine.salary.entity.salaryformula.po.FormulaVar;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
import com.engine.salary.enums.SalaryFormulaReferenceEnum;
import com.engine.salary.enums.salaryformula.SalaryFormulaReferenceEnum;
import com.engine.salary.enums.SalaryValueTypeEnum;
import com.engine.salary.service.*;
import com.engine.salary.util.SalaryEntityUtil;

View File

@ -6,7 +6,6 @@ import com.engine.salary.biz.TaxAgentBiz;
import com.engine.salary.common.LocalDateRange;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO;
import com.engine.salary.entity.salaryformula.ExpressFormula;
import com.engine.salary.entity.salaryacct.bo.SalaryAcctCalculateBO;
import com.engine.salary.entity.salaryacct.bo.SalaryAcctCalculatePriorityBO;
import com.engine.salary.entity.salaryacct.bo.SalaryAcctResultBO;
@ -21,6 +20,7 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO;
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO;
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultTempPO;
import com.engine.salary.entity.salaryformula.ExpressFormula;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
import com.engine.salary.entity.salarysob.po.SalarySobAdjustRulePO;
@ -39,7 +39,6 @@ import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.page.PageInfo;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.weaver.util.threadPool.ThreadPoolUtil;
import com.weaver.util.threadPool.constant.ModulePoolEnum;
import com.weaver.util.threadPool.entity.LocalRunnable;
@ -112,7 +111,9 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
}
// private LoggerTemplate salaryAcctRecordLoggerTemplate;
// private SIAccountService siAccountService;
private SIAccountService getSIAccountService(User user) {
return (SIAccountService) ServiceUtil.getService(SIAccountServiceImpl.class, user);
}
private AttendQuoteFieldService getAttendQuoteFieldService(User user) {
return (AttendQuoteFieldService) ServiceUtil.getService(AttendQuoteFieldServiceImpl.class, user);
@ -385,8 +386,8 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
List<SalaryItemPO> salaryItemPOS = getSalaryItemService(user).listAll();
// 5查询薪资核算记录所用薪资账套的调薪计薪规则
List<SalarySobAdjustRulePO> salarySobAdjustRulePOS = getSalarySobAdjustRuleService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId());
// todo 6查询社保福利的所有字段
Map<String, String> welfareColumns = Maps.newHashMap();//siAccountService.welfareColumns(tenantKey);
// 6查询社保福利的所有字段
Map<String, String> welfareColumns = getSIAccountService(user).welfareColumns();
// 7查询考勤引用的所有字段
List<AttendQuoteFieldListDTO> attendQuoteFieldListDTOS = getAttendQuoteFieldService(user).listAll();
// 8查询公式详情

View File

@ -14,6 +14,10 @@ import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.salaryitem.po.SysSalaryItemPO;
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
import com.engine.salary.enums.SalaryItemTypeEnum;
import com.engine.salary.enums.SalaryRoundingModeEnum;
import com.engine.salary.enums.SalarySystemTypeEnum;
import com.engine.salary.enums.SalaryValueTypeEnum;
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.service.SalaryFormulaService;
import com.engine.salary.service.SalaryItemService;
@ -92,8 +96,8 @@ public class SalaryItemWrapper extends Service {
salarySobItems = getSalarySobItemService(user).listBySalaryItemIds(salaryItemIds);
if (CollectionUtils.isNotEmpty(salarySobItems)) {
Set<Long> salaryItemIdsUseBySob = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId);
salaryItemListDTOS.forEach(dto->{
if (salaryItemIdsUseBySob.contains(dto.getId())){
salaryItemListDTOS.forEach(dto -> {
if (salaryItemIdsUseBySob.contains(dto.getId())) {
dto.setCanDelete(false);
}
});
@ -192,9 +196,26 @@ public class SalaryItemWrapper extends Service {
*/
public void save(SalaryItemSaveParam saveParam) {
ValidUtil.doValidator(saveParam);
validParam(saveParam);
getSalaryItemService(user).save(saveParam);
}
private void validParam(SalaryItemSaveParam saveParam) {
if (SalarySystemTypeEnum.parseByValue(saveParam.getSystemType()) == null) {
throw new SalaryRunTimeException("系统内置的薪资项目异常");
}
if (SalaryRoundingModeEnum.parseByValue(saveParam.getRoundingMode()) == null) {
throw new SalaryRunTimeException("舍入规则异常");
}
if (SalaryValueTypeEnum.parseByValue(saveParam.getValueType()) == null) {
throw new SalaryRunTimeException("取值方式异常");
}
if (SalaryDataTypeEnum.parseByValue(saveParam.getDataType()) == null) {
throw new SalaryRunTimeException("字段类型异常");
}
}
/**
* 编辑薪资项目
*
@ -202,6 +223,7 @@ public class SalaryItemWrapper extends Service {
*/
public void update(SalaryItemSaveParam saveParam) {
ValidUtil.doValidator(saveParam, RuntimeTypeEnum.UPDATE);
validParam(saveParam);
getSalaryItemService(user).update(saveParam);
}