拓扑图
This commit is contained in:
parent
e8f124d58c
commit
cf1e1395f7
|
|
@ -1,9 +1,6 @@
|
||||||
package com.engine.salary.entity.salarysob.dto;
|
package com.engine.salary.entity.salarysob.dto;
|
||||||
|
|
||||||
import com.engine.salary.entity.salaryformula.ExpressFormula;
|
import com.engine.salary.entity.salaryformula.ExpressFormula;
|
||||||
import com.engine.salary.enums.SalaryRoundingModeEnum;
|
|
||||||
import com.engine.salary.enums.SalaryValueTypeEnum;
|
|
||||||
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -21,42 +18,16 @@ public class SalaryItemTopologyDTO {
|
||||||
*/
|
*/
|
||||||
private String salaryItemName;
|
private String salaryItemName;
|
||||||
|
|
||||||
/**
|
|
||||||
* 核算时隐藏
|
|
||||||
*/
|
|
||||||
private Integer itemHide;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 字段类型
|
|
||||||
*
|
|
||||||
* @see SalaryDataTypeEnum
|
|
||||||
*/
|
|
||||||
private String dataType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 舍入规则
|
|
||||||
*
|
|
||||||
* @see SalaryRoundingModeEnum
|
|
||||||
*/
|
|
||||||
private Integer roundingMode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 保留小数位
|
|
||||||
*/
|
|
||||||
private Integer pattern;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 取值方式
|
|
||||||
*
|
|
||||||
* @see SalaryValueTypeEnum
|
|
||||||
*/
|
|
||||||
private Integer valueType;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 公式
|
* 公式
|
||||||
*/
|
*/
|
||||||
ExpressFormula formula;
|
ExpressFormula formula;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 核算值
|
||||||
|
*/
|
||||||
|
private String result;
|
||||||
|
|
||||||
private List<SalaryItemTopologyDTO> children;
|
private List<SalaryItemTopologyDTO> children;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,10 +20,19 @@ import lombok.NoArgsConstructor;
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class SalaryItemTopologyQueryParam {
|
public class SalaryItemTopologyQueryParam {
|
||||||
|
|
||||||
//薪资账套id
|
/**
|
||||||
|
* 薪资账套id
|
||||||
|
*/
|
||||||
@DataCheck(require = true, message = "薪资账套的ID不允许为空")
|
@DataCheck(require = true, message = "薪资账套的ID不允许为空")
|
||||||
private Long salarySobId;
|
private Long salarySobId;
|
||||||
|
|
||||||
//薪资项目id
|
/**
|
||||||
|
* 薪资项目id
|
||||||
|
*/
|
||||||
private Long salaryItemId;
|
private Long salaryItemId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 薪资核算人员id
|
||||||
|
*/
|
||||||
|
private Long acctEmpId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package com.engine.salary.service;
|
package com.engine.salary.service;
|
||||||
|
|
||||||
import com.engine.salary.entity.salaryacct.bo.SalaryCalcItem;
|
|
||||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||||
import com.engine.salary.entity.salarysob.dto.SalaryItemTopologyDTO;
|
import com.engine.salary.entity.salarysob.dto.SalaryItemTopologyDTO;
|
||||||
import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
|
import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
|
||||||
|
|
@ -130,9 +129,16 @@ public interface SalarySobItemService {
|
||||||
*/
|
*/
|
||||||
SalarySobItemFormDTO getSalaryItemForm(SalarySobItemPO param);
|
SalarySobItemFormDTO getSalaryItemForm(SalarySobItemPO param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新
|
||||||
|
* @param po
|
||||||
|
*/
|
||||||
void update(SalarySobItemPO po);
|
void update(SalarySobItemPO po);
|
||||||
|
|
||||||
List<SalaryCalcItem> itemTopology(Long salarySobId);
|
/**
|
||||||
|
* 拓扑图
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
SalaryItemTopologyDTO topology(SalaryItemTopologyQueryParam param);
|
SalaryItemTopologyDTO topology(SalaryItemTopologyQueryParam param);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,7 @@ import com.engine.salary.biz.SalarySobItemBiz;
|
||||||
import com.engine.salary.biz.SalarySobItemGroupBiz;
|
import com.engine.salary.biz.SalarySobItemGroupBiz;
|
||||||
import com.engine.salary.biz.SalarySobItemHideBiz;
|
import com.engine.salary.biz.SalarySobItemHideBiz;
|
||||||
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
||||||
import com.engine.salary.entity.salaryacct.bo.SalaryCalcItem;
|
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO;
|
||||||
import com.engine.salary.entity.salaryacct.bo.SalaryCalcItemGraph;
|
|
||||||
import com.engine.salary.entity.salaryformula.ExpressFormula;
|
import com.engine.salary.entity.salaryformula.ExpressFormula;
|
||||||
import com.engine.salary.entity.salaryformula.po.FormulaVar;
|
import com.engine.salary.entity.salaryformula.po.FormulaVar;
|
||||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||||
|
|
@ -101,6 +100,10 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
private SalarySobDefaultItemMapper getSalarySobDefaultItemMapper() {
|
private SalarySobDefaultItemMapper getSalarySobDefaultItemMapper() {
|
||||||
return MapperProxyFactory.getProxy(SalarySobDefaultItemMapper.class);
|
return MapperProxyFactory.getProxy(SalarySobDefaultItemMapper.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private SalaryAcctResultService getSalaryAcctResultService(User user) {
|
||||||
|
return ServiceUtil.getService(SalaryAcctResultServiceImpl.class, user);
|
||||||
|
}
|
||||||
// private LoggerTemplate salarySobLoggerTemplate;
|
// private LoggerTemplate salarySobLoggerTemplate;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -807,31 +810,15 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
return salarySobItemFormDTO;
|
return salarySobItemFormDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
@Override
|
* 拓扑图
|
||||||
public List<SalaryCalcItem> itemTopology(Long salarySobId) {
|
*
|
||||||
// 3、查询薪资核算记录所用薪资账套的薪资项目副本
|
* @param param
|
||||||
List<SalarySobItemPO> salarySobItemPOS = listBySalarySobId(salarySobId);
|
* @return
|
||||||
if (CollectionUtils.isEmpty(salarySobItemPOS)) {
|
*/
|
||||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(99151, "当前所用的薪资账套未选择任何薪资项目,无法核算"));
|
|
||||||
}
|
|
||||||
// 4、查询当前租户的所有薪资项目
|
|
||||||
List<SalaryItemPO> salaryItemPOS = getSalaryItemService(user).listAll();
|
|
||||||
|
|
||||||
// 8、查询公式详情
|
|
||||||
Set<Long> formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId);
|
|
||||||
formulaIds.addAll(SalaryEntityUtil.properties(salaryItemPOS, SalaryItemPO::getFormulaId));
|
|
||||||
List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds);
|
|
||||||
// 9、计算薪资项目的运算优先级
|
|
||||||
SalaryCalcItemGraph salaryCalcItemGraph = new SalaryCalcItemGraph(salarySobItemPOS, salaryItemPOS, expressFormulas);
|
|
||||||
List<SalaryCalcItem> salaryCalcItems = salaryCalcItemGraph.sort();
|
|
||||||
return salaryCalcItems;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SalaryItemTopologyDTO topology(SalaryItemTopologyQueryParam param) {
|
public SalaryItemTopologyDTO topology(SalaryItemTopologyQueryParam param) {
|
||||||
|
|
||||||
|
|
||||||
// 查询薪资账套
|
// 查询薪资账套
|
||||||
SalarySobPO salarySobPO = salarySobBiz.getById(param.getSalarySobId());
|
SalarySobPO salarySobPO = salarySobBiz.getById(param.getSalarySobId());
|
||||||
if (Objects.isNull(salarySobPO)) {
|
if (Objects.isNull(salarySobPO)) {
|
||||||
|
|
@ -848,35 +835,30 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
//所有薪资项目
|
//所有薪资项目
|
||||||
TopologyData topologyData = init(param);
|
TopologyData topologyData = init(param);
|
||||||
SalaryItemPO salaryItemPO = topologyData.getSalaryItemPO();
|
SalaryItemPO salaryItemPO = topologyData.getSalaryItemPO();
|
||||||
Map<Long, SalaryItemPO> salaryItemIdMap = topologyData.getSalaryItemIdMap();
|
|
||||||
List<Long> hideItemIds = topologyData.getHideItemIds();
|
|
||||||
|
|
||||||
// 获取薪资项目公式
|
// 获取薪资项目公式
|
||||||
ExpressFormula expressFormula = getSalaryFormulaService(user).getExpressFormula(salarySobItemPO.getFormulaId());
|
ExpressFormula expressFormula = getSalaryFormulaService(user).getExpressFormula(salarySobItemPO.getFormulaId());
|
||||||
|
|
||||||
SalaryItemTopologyDTO salaryItemTopologyDTO = new SalaryItemTopologyDTO();
|
SalaryItemTopologyDTO salaryItemTopologyDTO = new SalaryItemTopologyDTO();
|
||||||
salaryItemTopologyDTO.setSalaryItemId(salarySobItemPO.getId());
|
salaryItemTopologyDTO.setSalaryItemId(salaryItemPO.getId());
|
||||||
salaryItemTopologyDTO.setSalaryItemName(salaryItemPO.getName());
|
salaryItemTopologyDTO.setSalaryItemName(salaryItemPO.getName());
|
||||||
salaryItemTopologyDTO.setItemHide(hideItemIds.contains(salaryItemPO.getId()) ? 1 : 0);
|
|
||||||
salaryItemTopologyDTO.setDataType(salaryItemPO.getDataType());
|
|
||||||
salaryItemTopologyDTO.setRoundingMode(salarySobItemPO.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : salarySobItemPO.getRoundingMode());
|
|
||||||
salaryItemTopologyDTO.setPattern(salarySobItemPO.getPattern() == null ? salaryItemPO.getPattern() : salarySobItemPO.getPattern());
|
|
||||||
salaryItemTopologyDTO.setValueType(salarySobItemPO.getValueType() == null ? salaryItemPO.getValueType() : salarySobItemPO.getValueType());
|
|
||||||
salaryItemTopologyDTO.setFormula(expressFormula);
|
salaryItemTopologyDTO.setFormula(expressFormula);
|
||||||
|
salaryItemTopologyDTO.setResult(topologyData.getResultItemMap().getOrDefault(salaryItemPO.getId(), ""));
|
||||||
|
|
||||||
topology(salaryItemTopologyDTO, topologyData);
|
topology(salaryItemTopologyDTO, topologyData);
|
||||||
|
|
||||||
|
|
||||||
return salaryItemTopologyDTO;
|
return salaryItemTopologyDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 递归拓扑
|
||||||
|
*
|
||||||
|
* @param salaryItemTopologyDTO
|
||||||
|
* @param topologyData
|
||||||
|
*/
|
||||||
private void topology(SalaryItemTopologyDTO salaryItemTopologyDTO, TopologyData topologyData) {
|
private void topology(SalaryItemTopologyDTO salaryItemTopologyDTO, TopologyData topologyData) {
|
||||||
|
|
||||||
List<Long> hideItemIds = topologyData.getHideItemIds();
|
|
||||||
Long salaryItemId = topologyData.getSalaryItemId();
|
Long salaryItemId = topologyData.getSalaryItemId();
|
||||||
Map<Long, SalaryItemPO> salaryItemIdMap = topologyData.getSalaryItemIdMap();
|
Map<Long, SalaryItemPO> salaryItemIdMap = topologyData.getSalaryItemIdMap();
|
||||||
SalaryItemPO salaryItemPO = salaryItemIdMap.get(salaryItemId);
|
|
||||||
Map<String, SalaryItemPO> salaryItemCodeMap = topologyData.getSalaryItemCodeMap();
|
Map<String, SalaryItemPO> salaryItemCodeMap = topologyData.getSalaryItemCodeMap();
|
||||||
Map<String, SalarySobItemPO> salarySobItemCodeMap = topologyData.getSalarySobItemCodeMap();
|
Map<String, SalarySobItemPO> salarySobItemCodeMap = topologyData.getSalarySobItemCodeMap();
|
||||||
Map<Long, ExpressFormula> expressFormulaIdMap = topologyData.getExpressFormulaIdMap();
|
Map<Long, ExpressFormula> expressFormulaIdMap = topologyData.getExpressFormulaIdMap();
|
||||||
|
|
@ -891,7 +873,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
String source = formulaVar.getSource();
|
String source = formulaVar.getSource();
|
||||||
String fieldId = formulaVar.getFieldId().replace(source + "_", "");
|
String fieldId = formulaVar.getFieldId().replace(source + "_", "");
|
||||||
String name = formulaVar.getName();
|
String name = formulaVar.getName();
|
||||||
|
String fieldName = formulaVar.getFieldName();
|
||||||
//是否是薪资项目
|
//是否是薪资项目
|
||||||
boolean isSalaryItemVar;
|
boolean isSalaryItemVar;
|
||||||
SalaryFormulaReferenceEnum salaryFormulaReferenceEnum = SalaryFormulaReferenceEnum.parseByValue(source);
|
SalaryFormulaReferenceEnum salaryFormulaReferenceEnum = SalaryFormulaReferenceEnum.parseByValue(source);
|
||||||
|
|
@ -909,26 +891,20 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
ExpressFormula expressFormula;
|
ExpressFormula expressFormula;
|
||||||
if (salarySobItemCodeMap.containsKey(fieldId)) {
|
if (salarySobItemCodeMap.containsKey(fieldId)) {
|
||||||
// 如果薪资账套下重新定义了薪资项目的公式,则使用薪资账套下的公式,否则使用薪资项目本身的公式
|
// 如果薪资账套下重新定义了薪资项目的公式,则使用薪资账套下的公式,否则使用薪资项目本身的公式
|
||||||
expressFormula = expressFormulaIdMap.get(salarySobItemCodeMap.get(salaryItemPO.getCode()).getFormulaId());
|
expressFormula = expressFormulaIdMap.get(salarySobItemCodeMap.get(fieldId).getFormulaId());
|
||||||
|
} else if (salaryItemCodeMap.containsKey(fieldId)) {
|
||||||
|
expressFormula = expressFormulaIdMap.get(salaryItemCodeMap.get(fieldId).getFormulaId());
|
||||||
} else {
|
} else {
|
||||||
expressFormula = expressFormulaIdMap.get(salaryItemPO.getFormulaId());
|
expressFormula = null;
|
||||||
}
|
}
|
||||||
SalaryItemPO salaryItemChild = isSalaryItemVar ? salaryItemCodeMap.get(fieldId) : new SalaryItemPO();
|
|
||||||
SalarySobItemPO salarySobItemChild = salarySobItemCodeMap.get(fieldId);
|
|
||||||
|
|
||||||
if (salarySobItemChild == null) {
|
SalaryItemPO salaryItemChild = isSalaryItemVar ? salaryItemCodeMap.get(fieldId) : new SalaryItemPO();
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
SalaryItemTopologyDTO salaryItemTopologyChild = new SalaryItemTopologyDTO();
|
SalaryItemTopologyDTO salaryItemTopologyChild = new SalaryItemTopologyDTO();
|
||||||
salaryItemTopologyChild.setSalaryItemId(salaryItemChild.getId());
|
salaryItemTopologyChild.setSalaryItemId(isSalaryItemVar ? salaryItemChild.getId() : null);
|
||||||
salaryItemTopologyChild.setSalaryItemName(salaryItemChild.getName());
|
salaryItemTopologyChild.setSalaryItemName(isSalaryItemVar ? salaryItemChild.getName() : fieldName);
|
||||||
salaryItemTopologyChild.setItemHide(hideItemIds.contains(salaryItemChild.getId()) ? 1 : 0);
|
|
||||||
salaryItemTopologyChild.setDataType(salaryItemChild.getDataType());
|
|
||||||
salaryItemTopologyChild.setRoundingMode(salarySobItemChild == null ? salaryItemChild.getRoundingMode() : salarySobItemChild.getRoundingMode());
|
|
||||||
salaryItemTopologyChild.setPattern(salarySobItemChild == null ? salaryItemChild.getPattern() : salarySobItemChild.getPattern());
|
|
||||||
salaryItemTopologyChild.setValueType(salarySobItemChild == null ? salaryItemChild.getValueType() : salarySobItemChild.getValueType());
|
|
||||||
salaryItemTopologyChild.setFormula(expressFormula);
|
salaryItemTopologyChild.setFormula(expressFormula);
|
||||||
|
salaryItemTopologyChild.setResult(isSalaryItemVar ? topologyData.getResultItemMap().getOrDefault(salaryItemChild.getId(), "") : "");
|
||||||
salaryItemTopologyDTOChildren.add(salaryItemTopologyChild);
|
salaryItemTopologyDTOChildren.add(salaryItemTopologyChild);
|
||||||
|
|
||||||
if (isSalaryItemVar) {
|
if (isSalaryItemVar) {
|
||||||
|
|
@ -949,18 +925,9 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
private TopologyData init(SalaryItemTopologyQueryParam param) {
|
private TopologyData init(SalaryItemTopologyQueryParam param) {
|
||||||
TopologyData topologyData = new TopologyData();
|
TopologyData topologyData = new TopologyData();
|
||||||
|
|
||||||
|
//薪资项目
|
||||||
topologyData.setSalaryItemId(param.getSalaryItemId());
|
topologyData.setSalaryItemId(param.getSalaryItemId());
|
||||||
|
|
||||||
// 获取核算时隐藏的薪资项目id
|
|
||||||
List<Long> hideItemIds = getSalarySobItemHideService(user).listHideGroupBysalarySobId(SalarySobItemHidePO.builder()
|
|
||||||
.salarySobId(param.getSalarySobId())
|
|
||||||
.isGroup(new Integer(0))
|
|
||||||
.salaryItemId(param.getSalaryItemId())
|
|
||||||
.build());
|
|
||||||
topologyData.setHideItemIds(hideItemIds);
|
|
||||||
|
|
||||||
List<SalaryItemPO> salaryItems = getSalaryItemService(user).listAll();
|
List<SalaryItemPO> salaryItems = getSalaryItemService(user).listAll();
|
||||||
topologyData.setSalaryItems(salaryItems);
|
|
||||||
|
|
||||||
Map<Long, SalaryItemPO> salaryItemIdMap = SalaryEntityUtil.convert2Map(salaryItems, SalaryItemPO::getId);
|
Map<Long, SalaryItemPO> salaryItemIdMap = SalaryEntityUtil.convert2Map(salaryItems, SalaryItemPO::getId);
|
||||||
topologyData.setSalaryItemIdMap(salaryItemIdMap);
|
topologyData.setSalaryItemIdMap(salaryItemIdMap);
|
||||||
|
|
@ -973,38 +940,56 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
||||||
|
|
||||||
//账套项目
|
//账套项目
|
||||||
List<SalarySobItemPO> salarySobItems = listBySalarySobId(param.getSalarySobId());
|
List<SalarySobItemPO> salarySobItems = listBySalarySobId(param.getSalarySobId());
|
||||||
topologyData.setSalarySobItems(salarySobItems);
|
|
||||||
|
|
||||||
Map<String, SalarySobItemPO> salarySobItemCodeMap = SalaryEntityUtil.convert2Map(salarySobItems, SalarySobItemPO::getSalaryItemCode);
|
Map<String, SalarySobItemPO> salarySobItemCodeMap = SalaryEntityUtil.convert2Map(salarySobItems, SalarySobItemPO::getSalaryItemCode);
|
||||||
topologyData.setSalarySobItemCodeMap(salarySobItemCodeMap);
|
topologyData.setSalarySobItemCodeMap(salarySobItemCodeMap);
|
||||||
|
|
||||||
//公式
|
//公式
|
||||||
List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listAllExpressFormula();
|
List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listAllExpressFormula();
|
||||||
topologyData.setExpressFormulas(expressFormulas);
|
|
||||||
|
|
||||||
Map<Long, ExpressFormula> expressFormulaIdMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId);
|
Map<Long, ExpressFormula> expressFormulaIdMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId);
|
||||||
topologyData.setExpressFormulaIdMap(expressFormulaIdMap);
|
topologyData.setExpressFormulaIdMap(expressFormulaIdMap);
|
||||||
|
|
||||||
|
//薪资结果
|
||||||
|
Long acctEmpId = param.getAcctEmpId();
|
||||||
|
if (acctEmpId != null) {
|
||||||
|
List<SalaryAcctResultPO> results = getSalaryAcctResultService(user).listBySalaryAcctEmployeeId(acctEmpId);
|
||||||
|
Map<Long, String> resultItemMap = SalaryEntityUtil.convert2Map(results, SalaryAcctResultPO::getSalaryItemId, SalaryAcctResultPO::getResultValue);
|
||||||
|
topologyData.setResultItemMap(resultItemMap);
|
||||||
|
} else {
|
||||||
|
topologyData.setResultItemMap(new HashMap<>());
|
||||||
|
}
|
||||||
return topologyData;
|
return topologyData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
class TopologyData {
|
class TopologyData {
|
||||||
|
/**
|
||||||
|
* 薪资项目id
|
||||||
|
*/
|
||||||
Long salaryItemId;
|
Long salaryItemId;
|
||||||
|
|
||||||
List<Long> hideItemIds;
|
/**
|
||||||
|
* 薪资项目
|
||||||
List<SalaryItemPO> salaryItems;
|
*/
|
||||||
Map<Long, SalaryItemPO> salaryItemIdMap;
|
Map<Long, SalaryItemPO> salaryItemIdMap;
|
||||||
Map<String, SalaryItemPO> salaryItemCodeMap;
|
Map<String, SalaryItemPO> salaryItemCodeMap;
|
||||||
|
|
||||||
//账套项目
|
/**
|
||||||
|
* 账套项目
|
||||||
|
*/
|
||||||
SalaryItemPO salaryItemPO;
|
SalaryItemPO salaryItemPO;
|
||||||
List<SalarySobItemPO> salarySobItems;
|
|
||||||
Map<String, SalarySobItemPO> salarySobItemCodeMap;
|
Map<String, SalarySobItemPO> salarySobItemCodeMap;
|
||||||
|
|
||||||
//公式
|
/**
|
||||||
List<ExpressFormula> expressFormulas;
|
* 公式
|
||||||
|
*/
|
||||||
Map<Long, ExpressFormula> expressFormulaIdMap;
|
Map<Long, ExpressFormula> expressFormulaIdMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 核算结果
|
||||||
|
*/
|
||||||
|
Map<Long, String> resultItemMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package com.engine.salary.web;
|
||||||
|
|
||||||
import com.engine.common.util.ServiceUtil;
|
import com.engine.common.util.ServiceUtil;
|
||||||
import com.engine.salary.entity.SalarySobExtRangePO;
|
import com.engine.salary.entity.SalarySobExtRangePO;
|
||||||
import com.engine.salary.entity.salaryacct.bo.SalaryCalcItem;
|
|
||||||
import com.engine.salary.entity.salaryitem.dto.SalaryItemSobListDTO;
|
import com.engine.salary.entity.salaryitem.dto.SalaryItemSobListDTO;
|
||||||
import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam;
|
import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam;
|
||||||
import com.engine.salary.entity.salarysob.dto.*;
|
import com.engine.salary.entity.salarysob.dto.*;
|
||||||
|
|
@ -388,19 +387,12 @@ public class SalarySobController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 账套项目拓扑图
|
* 账套项目拓扑图
|
||||||
|
*
|
||||||
* @param request
|
* @param request
|
||||||
* @param response
|
* @param response
|
||||||
* @param salarySobId
|
* @param param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GET
|
|
||||||
@Path("/item/topology")
|
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
|
||||||
public String topology(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salarySobId") Long salarySobId) {
|
|
||||||
User user = HrmUserVarify.getUser(request, response);
|
|
||||||
return new ResponseResult<Long, List<SalaryCalcItem>>(user).run(getSalarySobItemWrapper(user)::itemTopology, salarySobId);
|
|
||||||
}
|
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/item/topology")
|
@Path("/item/topology")
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
|
|
@ -486,7 +478,7 @@ public class SalarySobController {
|
||||||
@Produces(MediaType.APPLICATION_JSON)
|
@Produces(MediaType.APPLICATION_JSON)
|
||||||
public String saveSalarySobAddUp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobAddUpRuleSaveParam saveParam) {
|
public String saveSalarySobAddUp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalarySobAddUpRuleSaveParam saveParam) {
|
||||||
User user = HrmUserVarify.getUser(request, response);
|
User user = HrmUserVarify.getUser(request, response);
|
||||||
return new ResponseResult<SalarySobAddUpRuleSaveParam,String>(user).run(getSalarySobAddUpRuleWrapper(user)::save, saveParam);
|
return new ResponseResult<SalarySobAddUpRuleSaveParam, String>(user).run(getSalarySobAddUpRuleWrapper(user)::save, saveParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**********************************薪资账套的累计字段对应关系 end*********************************/
|
/**********************************薪资账套的累计字段对应关系 end*********************************/
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ package com.engine.salary.wrapper;
|
||||||
import com.engine.common.util.ServiceUtil;
|
import com.engine.common.util.ServiceUtil;
|
||||||
import com.engine.core.impl.Service;
|
import com.engine.core.impl.Service;
|
||||||
import com.engine.salary.annotation.SalaryFormulaVar;
|
import com.engine.salary.annotation.SalaryFormulaVar;
|
||||||
import com.engine.salary.entity.salaryacct.bo.SalaryCalcItem;
|
|
||||||
import com.engine.salary.entity.salaryformula.ExpressFormula;
|
import com.engine.salary.entity.salaryformula.ExpressFormula;
|
||||||
import com.engine.salary.entity.salaryformula.dto.SalaryFormulaEmployeeDTO;
|
import com.engine.salary.entity.salaryformula.dto.SalaryFormulaEmployeeDTO;
|
||||||
import com.engine.salary.entity.salaryitem.bo.SalaryItemBO;
|
import com.engine.salary.entity.salaryitem.bo.SalaryItemBO;
|
||||||
|
|
@ -181,12 +180,13 @@ public class SalarySobItemWrapper extends Service {
|
||||||
return getSalarySobItemService(user).getSalaryItemForm(param);
|
return getSalarySobItemService(user).getSalaryItemForm(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SalaryCalcItem> itemTopology(Long salarySobId) {
|
|
||||||
return getSalarySobItemService(user).itemTopology(salarySobId);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拓扑图
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public SalaryItemTopologyDTO topology(SalaryItemTopologyQueryParam param) {
|
public SalaryItemTopologyDTO topology(SalaryItemTopologyQueryParam param) {
|
||||||
|
|
||||||
return getSalarySobItemService(user).topology(param);
|
return getSalarySobItemService(user).topology(param);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue