diff --git a/src/com/engine/salary/entity/config/SalaryConfig.java b/src/com/engine/salary/entity/config/SalaryConfig.java index 5203a2ed2..c1bba915d 100644 --- a/src/com/engine/salary/entity/config/SalaryConfig.java +++ b/src/com/engine/salary/entity/config/SalaryConfig.java @@ -4,6 +4,7 @@ import com.engine.salary.entity.salaryarchive.config.ArchiveFieldConfig; import com.engine.salary.entity.salaryformula.config.FormluaConfig; import com.engine.salary.entity.salaryitem.config.SalaryItemAllConfig; import com.engine.salary.entity.taxagent.config.TaxAgentConfig; +import com.engine.salary.entity.taxagent.po.TaxAgentBasePO; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamImplicit; import lombok.AllArgsConstructor; @@ -42,6 +43,9 @@ public class SalaryConfig { @XStreamAlias("ArchiveFieldConfig") private ArchiveFieldConfig archiveFieldConfig; + @XStreamAlias("TaxAgentBaseConfig") + private TaxAgentBasePO taxAgentBaseConfig; + //扣缴义务人 @XStreamImplicit private List taxAgentConfigs; diff --git a/src/com/engine/salary/entity/salarysob/config/SalarySobConfig.java b/src/com/engine/salary/entity/salarysob/config/SalarySobConfig.java index 12d0455c8..b367cc5cf 100644 --- a/src/com/engine/salary/entity/salarysob/config/SalarySobConfig.java +++ b/src/com/engine/salary/entity/salarysob/config/SalarySobConfig.java @@ -17,7 +17,7 @@ import java.util.List; @XStreamAlias("SalarySobConfig") public class SalarySobConfig { - @XStreamAlias("salarySob") + @XStreamAlias("SalarySob") private SalarySobPO salarySob; @XStreamImplicit diff --git a/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java b/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java index b75eb5976..231d6f866 100644 --- a/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java +++ b/src/com/engine/salary/entity/salarysob/po/SalarySobPO.java @@ -4,6 +4,7 @@ import com.engine.hrmelog.annotation.ElogTransform; import com.engine.salary.util.valid.Compare; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; +import com.thoughtworks.xstream.annotations.XStreamOmitField; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -23,7 +24,7 @@ import java.util.Date; @AllArgsConstructor @ElogTransform( name="薪资账套" ) //hrsa_salary_sob -@XStreamAlias("SalarySobPO") +@XStreamAlias("SalarySob") public class SalarySobPO { /** @@ -31,8 +32,7 @@ public class SalarySobPO { */ @ElogTransform( name="主键" ) @Compare - @XStreamAlias("id") - @XStreamAsAttribute + @XStreamOmitField private Long id; /** diff --git a/src/com/engine/salary/entity/taxagent/config/TaxAgentConfig.java b/src/com/engine/salary/entity/taxagent/config/TaxAgentConfig.java index d22426bde..be17791cd 100644 --- a/src/com/engine/salary/entity/taxagent/config/TaxAgentConfig.java +++ b/src/com/engine/salary/entity/taxagent/config/TaxAgentConfig.java @@ -1,8 +1,8 @@ package com.engine.salary.entity.taxagent.config; import com.engine.salary.entity.salarysob.config.SalarySobConfig; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import com.thoughtworks.xstream.annotations.XStreamImplicit; import lombok.AllArgsConstructor; import lombok.Builder; @@ -18,35 +18,8 @@ import java.util.List; @XStreamAlias("TaxAgentConfig") public class TaxAgentConfig { - /** - * 主键id - */ - @XStreamAlias("id") - @XStreamAsAttribute - private Long id; - - /** - * 名称 - */ - @XStreamAlias("name") - @XStreamAsAttribute - private String name; - - - /** - * 备注 - */ - @XStreamAlias("description") - @XStreamAsAttribute - private String description; - - - /** - * 排序 - */ - @XStreamAlias("sortedIndex") - @XStreamAsAttribute - private Integer sortedIndex; + @XStreamAlias("TaxAgent") + private TaxAgentPO taxAgent; //薪资账套 @XStreamImplicit diff --git a/src/com/engine/salary/entity/taxagent/po/TaxAgentBasePO.java b/src/com/engine/salary/entity/taxagent/po/TaxAgentBasePO.java index 6930031f9..58e02c10e 100644 --- a/src/com/engine/salary/entity/taxagent/po/TaxAgentBasePO.java +++ b/src/com/engine/salary/entity/taxagent/po/TaxAgentBasePO.java @@ -1,5 +1,7 @@ package com.engine.salary.entity.taxagent.po; +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -21,41 +23,57 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor //hrsa_tax_agent_base") +@XStreamAlias("TaxAgentBase") public class TaxAgentBasePO { /** * 主键id */ + @XStreamAlias("id") + @XStreamAsAttribute private Long id; /** * 分权开关 */ + @XStreamAlias("devolutionStatus") + @XStreamAsAttribute private Integer devolutionStatus; /** * 租户key */ + @XStreamAlias("tenantKey") + @XStreamAsAttribute private String tenantKey; /** * 创建人id */ + @XStreamAlias("creator") + @XStreamAsAttribute private Long creator; /** * 是否删除 */ + @XStreamAlias("deleteType") + @XStreamAsAttribute private Integer deleteType; /** * 创建时间 */ + @XStreamAlias("createTime") + @XStreamAsAttribute private Date createTime; /** * 更新时间 */ + @XStreamAlias("updateTime") + @XStreamAsAttribute private Date updateTime; + private Collection ids; } diff --git a/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java b/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java index 819bf3aaf..65b688baa 100644 --- a/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java +++ b/src/com/engine/salary/entity/taxagent/po/TaxAgentPO.java @@ -1,6 +1,9 @@ package com.engine.salary.entity.taxagent.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamAsAttribute; +import com.thoughtworks.xstream.annotations.XStreamOmitField; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -24,64 +27,86 @@ import java.util.Date; //hrsa_tax_agent") //个税扣缴义务人表") @ElogTransform(name = "个税扣缴义务人") +@XStreamAlias("TaxAgent") public class TaxAgentPO { /** * 主键id */ @ElogTransform(name = "主键id") + @XStreamOmitField private Long id; /** * 名称 */ @ElogTransform(name = "名称") + @XStreamAlias("name") + @XStreamAsAttribute private String name; /** * 代缴机构 */ // @ElogTransform(name = "代缴机构") + @XStreamAlias("paymentAgency") + @XStreamAsAttribute private String paymentAgency; + + /** + * 排序 + */ + @XStreamAlias("sortedIndex") + @XStreamAsAttribute + private Integer sortedIndex; + /** * 备注 */ @ElogTransform(name = "备注") + @XStreamAlias("description") + @XStreamAsAttribute private String description; /** * 租户key */ + @XStreamAlias("tenantKey") + @XStreamAsAttribute private String tenantKey; /** * 创建人id */ @ElogTransform(name = "创建人id") + @XStreamAlias("creator") + @XStreamAsAttribute private Long creator; /** * 是否删除 */ + @XStreamAlias("deleteType") + @XStreamAsAttribute private Integer deleteType; /** * 创建时间 */ @ElogTransform(name = "创建时间") + @XStreamAlias("createTime") + @XStreamAsAttribute private Date createTime; /** * 更新时间 */ - @ElogTransform(name = "更新时间") + @ElogTransform(name = "updateTime") + @XStreamAlias("updateTime") + @XStreamAsAttribute private Date updateTime; - /** - * 排序 - */ - private Integer sortedIndex; private Collection ids; } diff --git a/src/com/engine/salary/service/SalarySobService.java b/src/com/engine/salary/service/SalarySobService.java index cd2689cc0..7fed5ee31 100644 --- a/src/com/engine/salary/service/SalarySobService.java +++ b/src/com/engine/salary/service/SalarySobService.java @@ -157,4 +157,6 @@ public interface SalarySobService { List listByTaxAgentIds(Collection taxAgentIds); List getConfig(Long taxAgentId); + + void parseConfig(Long taxAgentId, List salarySobConfigs); } diff --git a/src/com/engine/salary/service/TaxAgentBaseService.java b/src/com/engine/salary/service/TaxAgentBaseService.java index ab795d52c..6c70f4e4a 100644 --- a/src/com/engine/salary/service/TaxAgentBaseService.java +++ b/src/com/engine/salary/service/TaxAgentBaseService.java @@ -34,4 +34,8 @@ public interface TaxAgentBaseService { * @return */ String save(TaxAgentSaveBaseParam saveBaseParam); + + TaxAgentBasePO getConfig(); + + void parseConfig(TaxAgentBasePO config); } diff --git a/src/com/engine/salary/service/TaxAgentService.java b/src/com/engine/salary/service/TaxAgentService.java index 65ac2c77c..db580e8a0 100644 --- a/src/com/engine/salary/service/TaxAgentService.java +++ b/src/com/engine/salary/service/TaxAgentService.java @@ -261,5 +261,7 @@ public interface TaxAgentService { Collection listEmployeeIdsInTaxAgent(Long taxAgentId); - List getAllConfig(); + List getConfig(); + + void parseConfig(List configs); } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java index 3bc93be56..a40d8f8eb 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.SalaryArchiveBiz; @@ -23,6 +24,7 @@ import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.archive.SalaryArchiveItemMapper; +import com.engine.salary.mapper.salaryitem.SalaryItemMapper; import com.engine.salary.service.*; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -60,6 +62,10 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi return MapperProxyFactory.getProxy(SalaryArchiveItemMapper.class); } + private SalaryItemMapper getSalaryItemMapper() { + return SqlProxyHandle.getProxy(SalaryItemMapper.class); + } + @Override public SalaryArchiveItemPO getById(Long salaryArchiveItemId) { @@ -746,9 +752,25 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi @Override public void parseConfig(ArchiveFieldConfig config) { + List salaryItemPOList = getSalaryItemService(user).listAll(); + Set ids = SalaryEntityUtil.properties(salaryItemPOList, SalaryItemPO::getId); + Set names = SalaryEntityUtil.properties(salaryItemPOList, SalaryItemPO::getName); + Set codes = SalaryEntityUtil.properties(salaryItemPOList, SalaryItemPO::getCode); - Optional.ofNullable(config.getSalaryItems()).orElse(new ArrayList<>()) - .forEach(); + Optional.ofNullable(config.getSalaryItems()) + .orElse(new ArrayList<>()) + .forEach(itemPO -> { + //todo 异常提示 + if (ids.contains(itemPO.getId())) { + + }else if(names.contains(itemPO.getName())){ + + }else if(codes.contains(itemPO.getCode())){ + + }else { + getSalaryItemMapper().insertIgnoreNull(itemPO); + } + }); } } diff --git a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java index b6e851a91..04ca27940 100644 --- a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java @@ -794,6 +794,6 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService }else { getSalaryItemMapper().insertIgnoreNull(itemPO); } - }) + }); } } diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index bc10a146b..06af17fad 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -823,6 +823,61 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { }).collect(Collectors.toList()); } + @Override + public void parseConfig(Long taxAgentId, List salarySobConfigs) { + long uid = user.getUID(); + List salarySobPOS = listByTaxAgentId(taxAgentId); + Map sobPOMap = SalaryEntityUtil.convert2Map(salarySobPOS, SalarySobPO::getName); + + Optional.ofNullable(salarySobConfigs) + .orElse(new ArrayList<>()) + .forEach(salarySobConfig -> { + SalarySobPO salarySobPO = salarySobConfig.getSalarySob(); + String sobPOName = salarySobPO.getName(); + if (sobPOMap.containsKey(sobPOName)) { + salarySobPO = sobPOMap.get(sobPOName); + } else { + salarySobPO.setCreator(uid); + getSalarySobMapper().insertIgnoreNull(salarySobPO); + } + + List salarySobItems = salarySobConfig.getSalarySobItems(); + for (SalarySobItemPO salarySobItem : salarySobItems) { + salarySobItem.setSalarySobId(salarySobPO.getId()); + salarySobItem.setCreator(uid); + } + getSalarySobItemService(user).batchSave(salarySobItems); + + List salarySobEmpFields = salarySobConfig.getSalarySobEmpFields(); + for (SalarySobEmpFieldPO salarySobEmpField : salarySobEmpFields) { + salarySobEmpField.setSalarySobId(salarySobPO.getId()); + salarySobEmpField.setCreator(uid); + } + getSalarySobEmpFieldService(user).batchSave(salarySobEmpFields); + + List salarySobItemGroups = salarySobConfig.getSalarySobItemGroups(); + for (SalarySobItemGroupPO salarySobItemGroup : salarySobItemGroups) { + salarySobItemGroup.setSalarySobId(salarySobPO.getId()); + salarySobItemGroup.setCreator(uid); + } + getSalarySobItemGroupService(user).batchSave(salarySobItemGroups); + + List salarySobBackItems = salarySobConfig.getSalarySobBackItems(); + for (SalarySobBackItemPO salarySobBackItem : salarySobBackItems) { + salarySobBackItem.setSalarySobId(salarySobPO.getId()); + salarySobBackItem.setCreator(uid); + } + getSalarySobBackItemService(user).batchInsert(salarySobBackItems); + + List salarySobAdjustRules = salarySobConfig.getSalarySobAdjustRules(); + for (SalarySobAdjustRulePO salarySobAdjustRule : salarySobAdjustRules) { + salarySobAdjustRule.setSalarySobId(salarySobPO.getId()); + salarySobAdjustRule.setCreator(uid); + } + getSalarySobAdjustRuleService(user).batchSave(salarySobAdjustRules); + }); + } + public List filterByAdmin(List salarySobPOS) { long employeeId = user.getUID(); diff --git a/src/com/engine/salary/service/impl/TaxAgentBaseServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentBaseServiceImpl.java index d31a2a6de..b851cbeab 100644 --- a/src/com/engine/salary/service/impl/TaxAgentBaseServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentBaseServiceImpl.java @@ -95,6 +95,35 @@ public class TaxAgentBaseServiceImpl extends Service implements TaxAgentBaseServ return StringUtils.EMPTY; } + @Override + public TaxAgentBasePO getConfig() { + Date now = new Date(); + TaxAgentBasePO baseInfo = getBaseInfo(); + if (baseInfo == null) { + baseInfo = TaxAgentBasePO.builder() + .id(IdGenerator.generate()) + .devolutionStatus(0) + .createTime(now) + .updateTime(now) + .creator((long) user.getUID()) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); + } + return baseInfo; + } + + @Override + public void parseConfig(TaxAgentBasePO config) { + TaxAgentBasePO baseInfo = getBaseInfo(); + if (baseInfo == null) { + config.setCreator((long) user.getUID()); + getTaxAgentBaseMapper().insertIgnoreNull(config); + }else { + baseInfo.setDevolutionStatus(config.getDevolutionStatus()); + getTaxAgentBaseMapper().updateIgnoreNull(baseInfo); + } + } + /** * 检查是否有未归档数据 * diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index 9c004b049..4afc39341 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -475,7 +475,7 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { getTaxAgentMapper().deleteByIds(ids); // 记录日志 - taxAgents.forEach(e ->{ + taxAgents.forEach(e -> { LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setUser(user); loggerContext.setTargetId(e.getId().toString()); @@ -504,12 +504,12 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { } // 被社保福利档案引用 List socialByPaymentOrganization = getInsuranceBaseInfoMapper().getSocialByPaymentOrganization(id); - if(CollectionUtils.isNotEmpty(socialByPaymentOrganization)){ + if (CollectionUtils.isNotEmpty(socialByPaymentOrganization)) { throw new SalaryRunTimeException("存在社保福利档案引用"); } // 被社保福利台账引用 List insuranceArchiveList = getInsuranceAccountBatchMapper().list(InsuranceAccountBatchParam.builder().taxAgents(Collections.singletonList(id)).build()); - if(CollectionUtils.isNotEmpty(insuranceArchiveList)){ + if (CollectionUtils.isNotEmpty(insuranceArchiveList)) { throw new SalaryRunTimeException("存在社保福利台账引用"); } //被社保福利档案引用 @@ -796,22 +796,47 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { } - @Override public Collection listEmployeeIdsInTaxAgent(Long taxAgentId) { - List taxAgentEmpPOS = getTaxAgentEmpService(user).listByTaxAgentIds(Collections.singletonList(taxAgentId),UseEmployeeTypeEnum.ALL); + List taxAgentEmpPOS = getTaxAgentEmpService(user).listByTaxAgentIds(Collections.singletonList(taxAgentId), UseEmployeeTypeEnum.ALL); return SalaryEntityUtil.properties(taxAgentEmpPOS, TaxAgentEmpPO::getEmployeeId); } @Override - public List getAllConfig() { - List allConfig = getTaxAgentMapper().getAllConfig(); - allConfig.forEach(config->{ - List sobConfigs = getSalarySobService(user).getConfig(config.getId()); - config.setSalarySobConfigs(sobConfigs); - }); - return allConfig; + public List getConfig() { + List taxAgentPOS = getTaxAgentMapper().listAll(); + return taxAgentPOS.stream() + .map(taxAgentPO -> { + List sobConfigs = getSalarySobService(user).getConfig(taxAgentPO.getId()); + return TaxAgentConfig.builder().taxAgent(taxAgentPO).salarySobConfigs(sobConfigs).build(); + }) + .collect(Collectors.toList()); + } + + @Override + public void parseConfig(List configs) { + List taxAgentPOS = listAll(); + Map agentPOMap = SalaryEntityUtil.convert2Map(taxAgentPOS, TaxAgentPO::getName); + + Optional.ofNullable(configs) + .orElse(new ArrayList<>()) + .forEach(config -> { + TaxAgentPO taxAgent = config.getTaxAgent(); + String name = taxAgent.getName(); + if (agentPOMap.containsKey(name)) { + //存在扣缴义务人 + taxAgent = agentPOMap.get(name); + } else { + //新增扣缴义务人 + taxAgent.setId(null); + taxAgent.setCreator((long) user.getUID()); + getTaxAgentMapper().insertIgnoreNull(taxAgent); + } + + getSalarySobService(user).parseConfig(taxAgent.getId(), config.getSalarySobConfigs()); + + }); } diff --git a/src/com/engine/salary/wrapper/SalarySystemConfigWrapper.java b/src/com/engine/salary/wrapper/SalarySystemConfigWrapper.java index 764abe18d..eb25f376b 100644 --- a/src/com/engine/salary/wrapper/SalarySystemConfigWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySystemConfigWrapper.java @@ -7,14 +7,9 @@ import com.engine.salary.entity.salaryarchive.config.ArchiveFieldConfig; import com.engine.salary.entity.salaryformula.config.FormluaConfig; import com.engine.salary.entity.salaryitem.config.SalaryItemAllConfig; import com.engine.salary.entity.taxagent.config.TaxAgentConfig; -import com.engine.salary.service.SalaryArchiveItemService; -import com.engine.salary.service.SalaryFormulaService; -import com.engine.salary.service.SalaryItemService; -import com.engine.salary.service.TaxAgentService; -import com.engine.salary.service.impl.SalaryArchiveItemServiceImpl; -import com.engine.salary.service.impl.SalaryFormulaServiceImpl; -import com.engine.salary.service.impl.SalaryItemServiceImpl; -import com.engine.salary.service.impl.TaxAgentServiceImpl; +import com.engine.salary.entity.taxagent.po.TaxAgentBasePO; +import com.engine.salary.service.*; +import com.engine.salary.service.impl.*; import com.engine.salary.sys.entity.param.*; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.AppSettingVO; @@ -70,6 +65,10 @@ public class SalarySystemConfigWrapper extends Service { return ServiceUtil.getService(SalaryFormulaServiceImpl.class, user); } + private TaxAgentBaseService getTaxAgentBaseService(User user) { + return ServiceUtil.getService(TaxAgentBaseServiceImpl.class, user); + } + public Map info() { BaseBean baseBean = new BaseBean(); String log = baseBean.getPropValue("hrmSalary", "log"); @@ -213,7 +212,10 @@ public class SalarySystemConfigWrapper extends Service { ArchiveFieldConfig archiveFieldConfig = getSalaryArchiveItemService(user).getConfig(); salaryConfig.setArchiveFieldConfig(archiveFieldConfig); - List taxAgentConfigs = getTaxAgentService(user).getAllConfig(); + TaxAgentBasePO taxAgentBaseConfig = getTaxAgentBaseService(user).getConfig(); + salaryConfig.setTaxAgentBaseConfig(taxAgentBaseConfig); + + List taxAgentConfigs = getTaxAgentService(user).getConfig(); salaryConfig.setTaxAgentConfigs(taxAgentConfigs); return salaryConfig; @@ -233,148 +235,16 @@ public class SalarySystemConfigWrapper extends Service { SalaryConfig config = XStreamUtil.unmarshal(SalaryConfig.class, xml.toString()); - FormluaConfig formluaConfig = config.getFormluaConfig(); - getSalaryFormulaService(user).parseConfig(formluaConfig); + getSalaryFormulaService(user).parseConfig(config.getFormluaConfig()); - SalaryItemAllConfig salaryItemConfig = config.getSalaryItemConfig(); - getSalaryItemService(user).parseConfig(salaryItemConfig); + getSalaryItemService(user).parseConfig(config.getSalaryItemConfig()); - ArchiveFieldConfig archiveFieldConfig = config.getArchiveFieldConfig(); - getSalaryArchiveItemService(user).parseConfig(archiveFieldConfig); + getSalaryArchiveItemService(user).parseConfig(config.getArchiveFieldConfig()); - List taxAgentConfigs = config.getTaxAgentConfigs(); + getTaxAgentBaseService(user).parseConfig(config.getTaxAgentBaseConfig()); + getTaxAgentService(user).parseConfig(config.getTaxAgentConfigs()); -// List configs = ExcelParseHelper.parse2Map(fileInputStream, SalaryItemExcelConfig.class, 0, 1, 13, EXCEL_TYPE_XLSX); -// -// // 错误excel内容 -// ImportExcelResponse response = ImportExcelResponse.builder().totalCount(configs.size()).successCount(configs.size()).errorCount(0).errorData(new ArrayList<>()).build(); -// -// List sysSalaryItemPOS = sysSalaryItemBiz.listAll(); -// Set sysItems = SalaryEntityUtil.properties(sysSalaryItemPOS, SysSalaryItemPO::getName); -// -// List adds = new ArrayList<>(); -// List updates = new ArrayList<>(); -// Map> formulaItems = new HashMap<>(); -// for (int i = 0; i < configs.size(); i++) { -// String rowIndex = String.format("第%s行", i + 2); -// SalaryItemExcelConfig config = configs.get(i); -// String name = config.getName(); -// SalaryValueTypeEnum salaryValueTypeEnum = SalaryValueTypeEnum.parseByDefaultLabel(config.getValueType()); -// SalaryDataTypeEnum salaryDataTypeEnum = SalaryDataTypeEnum.parseByValue(config.getDataType()); -// SalaryItemPO itemPO = getByName(name); -// if (itemPO == null) { -// -// if (sysItems.contains(name)) { -// ImportExcelResponse.Error error = ImportExcelResponse.Error.builder().message(String.format("%s“%s”的名称与系统名称冲突", rowIndex, name)).build(); -// response.setSuccessCount(response.getSuccessCount() - 1); -// response.setErrorCount(response.getErrorCount() + 1); -// response.getErrorData().add(error); -// continue; -// } -// -// itemPO = SalaryItemPO.builder() -// .id(IdGenerator.generate()) -// .code(IdGenerator.getUUID()) -// .name(name) -// .systemType(SalarySystemTypeEnum.CUSTOM.getValue()) -// .sysSalaryItemId(org.apache.commons.lang3.math.NumberUtils.LONG_ZERO) -// .useDefault(SalaryOnOffEnum.parseByDefaultLabel(config.getUseDefault()).getValue()) -// .useInEmployeeSalary(SalaryOnOffEnum.OFF.getValue()) -// .hideDefault(SalaryOnOffEnum.parseByDefaultLabel(config.getHideDefault()).getValue()) -// .roundingMode(SalaryRoundingModeEnum.parseByDefaultLabel(config.getRoundingMode()).getValue()) -// .pattern(NumberUtil.isNumber(config.getPattern()) ? Integer.parseInt(config.getPattern()) : 2) -// .valueType(salaryValueTypeEnum.getValue()) -// .dataType(salaryDataTypeEnum.getValue()) -// //后补 -// .formulaId(0L) -// .description(config.getDescription()) -// .canEdit(org.apache.commons.lang3.math.NumberUtils.INTEGER_ONE) -// .creator((long) user.getUID()) -// .deleteType(0) -// .createTime(now) -// .updateTime(now) -// .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) -// .sharedType(0) -// .taxAgentIds("") -// .sortedIndex(NumberUtil.isNumber(config.getSortedIndex()) ? Integer.parseInt(config.getSortedIndex()) : null) -// .width(NumberUtil.isNumber(config.getWidth()) ? Integer.parseInt(config.getWidth()) : null) -// .defaultValue(config.getDefaultValue()) -// .build(); -// adds.add(itemPO); -// } else { -// -// if (SalarySystemTypeEnum.parseByValue(itemPO.getSystemType()) == SalarySystemTypeEnum.SYSTEM) { -// ImportExcelResponse.Error error = ImportExcelResponse.Error.builder().message(String.format("%s“%s”是系统薪资项目不支持修改", rowIndex, name)).build(); -// response.setSuccessCount(response.getSuccessCount() - 1); -// response.setErrorCount(response.getErrorCount() + 1); -// response.getErrorData().add(error); -// continue; -// } -// -// itemPO.setUseDefault(SalaryOnOffEnum.parseByDefaultLabel(config.getUseDefault()).getValue()); -// itemPO.setHideDefault(SalaryOnOffEnum.parseByDefaultLabel(config.getHideDefault()).getValue()); -// itemPO.setRoundingMode(SalaryRoundingModeEnum.parseByDefaultLabel(config.getRoundingMode()).getValue()); -// itemPO.setPattern(NumberUtil.isNumber(config.getPattern()) ? Integer.parseInt(config.getPattern()) : 2); -// itemPO.setValueType(salaryValueTypeEnum.getValue()); -// itemPO.setDataType(salaryDataTypeEnum.getValue()); -// //后补 -// itemPO.setFormulaId(0L); -// itemPO.setDescription(config.getDescription()); -// itemPO.setUpdateTime(now); -// itemPO.setSortedIndex(NumberUtil.isNumber(config.getSortedIndex()) ? Integer.parseInt(config.getSortedIndex()) : null); -// itemPO.setWidth(NumberUtil.isNumber(config.getWidth()) ? Integer.parseInt(config.getWidth()) : null); -// itemPO.setDefaultValue(config.getDefaultValue()); -// updates.add(itemPO); -// } -// -// //解析公式 -// if (salaryValueTypeEnum == SalaryValueTypeEnum.FORMULA || salaryValueTypeEnum == SalaryValueTypeEnum.SQL) { -// Long id = itemPO.getId(); -// String formula = config.getFormula(); -// String sqlReturnKey = config.getSqlReturnKey(); -// Map map = new HashMap<>(); -// map.put("rowIndex", rowIndex); -// map.put("formula", formula); -// map.put("sqlReturnKey", sqlReturnKey); -// formulaItems.put(id, map); -// } -// } -// -// adds.forEach(getSalaryItemMapper()::insertIgnoreNull); -// updates.forEach(getSalaryItemMapper()::updateIgnoreNull); -// -// for (Long id : formulaItems.keySet()) { -// SalaryItemPO itemPO = getById(id); -// Map map = formulaItems.get(id); -// String rowIndex = map.get("rowIndex"); -// String formula = map.get("formula"); -// String sqlReturnKey = map.get("sqlReturnKey"); -// SalaryValueTypeEnum salaryValueTypeEnum = SalaryValueTypeEnum.parseByValue(itemPO.getValueType()); -// SalaryDataTypeEnum salaryDataTypeEnum = SalaryDataTypeEnum.parseByValue(itemPO.getDataType()); -// SalaryFormulaSaveParam saveParam = SalaryFormulaSaveParam.builder() -// .name(itemPO.getName()) -// .module("salary") -// .useFor("salaryitem") -// .referenceType(salaryValueTypeEnum == SalaryValueTypeEnum.FORMULA ? ReferenceTypeEnum.FORMULA.getValue() : ReferenceTypeEnum.SQL.getValue()) -// .returnType(salaryDataTypeEnum == SalaryDataTypeEnum.STRING ? ReturnTypeEnum.STRING.getValue() : ReturnTypeEnum.NUMBER.getValue()) -// .validateType(salaryDataTypeEnum == SalaryDataTypeEnum.STRING ? ReturnTypeEnum.STRING.getValue() : ReturnTypeEnum.NUMBER.getValue()) -// .extendParam("{\"isCustomFunction\":\"0\",\"sqlReturnKey\":\"" + sqlReturnKey + "\",\"openDecrypt\":\"0\",\"datasource\":{\"datasourceId\":\"\"}}") -// .formula(formula) -// .build(); -// -// try { -// FormulaPO formulaPO = getSalaryFormulaService(user).save(saveParam); -// itemPO.setFormulaId(formulaPO.getId()); -// getSalaryItemMapper().updateIgnoreNull(itemPO); -// } catch (Exception e) { -// ImportExcelResponse.Error error = ImportExcelResponse.Error.builder().message(String.format("%s“%s”的公式设置有误:%s", rowIndex, itemPO.getName(), e.getMessage())).build(); -// response.setSuccessCount(response.getSuccessCount() - 1); -// response.setErrorCount(response.getErrorCount() + 1); -// response.getErrorData().add(error); -// } -// } -// return response; } catch (IOException e) { e.printStackTrace(); } finally {