package com.engine.salary.sys.service.impl; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.core.impl.Service; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.sys.entity.param.OrderRuleParam; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.enums.AscOrDescEnum; import com.engine.salary.sys.enums.OrderRuleEnum; import com.engine.salary.sys.enums.TaxDeclarationFunctionEnum; import com.engine.salary.sys.service.SalarySysConfService; import dm.jdbc.util.IdGenerator; import java.util.Date; import java.util.List; import static com.engine.salary.sys.constant.SalarySysConstant.*; /** * 薪酬系统配置类 *

Copyright: Copyright (c) 2022

*

Company: 泛微软件

* * @author qiantao * @version 1.0 **/ public class SalarySysConfServiceImpl extends Service implements SalarySysConfService { private SalarySysConfMapper getSalarySysConfMapper() { return SqlProxyHandle.getProxy(SalarySysConfMapper.class); } /** * 操作是否需要申报功能 * * @param flag 开启 0/关闭 1/重新开启 2 * @return 执行结果 */ public boolean operateTaxDeclarationFunction(TaxDeclarationFunctionEnum flag) { Date date = new Date(); SalarySysConfPO taxDeclarationFunction = getSalarySysConfMapper().getOneByCode("taxDeclarationFunction"); if (taxDeclarationFunction == null) { taxDeclarationFunction = SalarySysConfPO.builder().id(IdGenerator.generate()).confKey("taxDeclarationFunction").confValue(flag.getValue()).title(flag.getDefaultLabel()).module("taxDeclaration").orderWeight(0).createTime(date).updateTime(date).deleteType(0).build(); getSalarySysConfMapper().insertIgnoreNull(taxDeclarationFunction); } else { TaxDeclarationFunctionEnum oldFunctionEnum = TaxDeclarationFunctionEnum.parseByValue(taxDeclarationFunction.getConfValue()); //不改变 if (flag == oldFunctionEnum) { return true; } //关闭 if (flag == TaxDeclarationFunctionEnum.CLOSURE) { taxDeclarationFunction.setConfValue(flag.getValue()); taxDeclarationFunction.setTitle(flag.getDefaultLabel()); taxDeclarationFunction.setUpdateTime(new Date()); } //重启 if (flag == TaxDeclarationFunctionEnum.OPEN && oldFunctionEnum == TaxDeclarationFunctionEnum.CLOSURE) { taxDeclarationFunction.setConfValue(flag.getValue()); taxDeclarationFunction.setTitle(flag.getDefaultLabel()); taxDeclarationFunction.setUpdateTime(new Date()); } getSalarySysConfMapper().updateIgnoreNull(taxDeclarationFunction); } return true; } @Override public SalarySysConfPO getOneByCode(String code) { return getSalarySysConfMapper().getOneByCode(code); } @Override public List listSome(SalarySysConfPO po) { return getSalarySysConfMapper().listSome(po); } @Override public void save(SalarySysConfPO salarySysConfPO) { salarySysConfPO.setId(IdGenerator.generate()); salarySysConfPO.setUpdateTime(new Date()); salarySysConfPO.setCreateTime(new Date()); salarySysConfPO.setDeleteType(0); salarySysConfPO.setOrderWeight(0); salarySysConfPO.setModule(CUSTOM_CODE); getSalarySysConfMapper().insertIgnoreNull(salarySysConfPO); } @Override public void update(SalarySysConfPO salarySysConfPO) { SalarySysConfPO po = getSalarySysConfMapper().getById(salarySysConfPO.getId()); if (po == null) { throw new SalaryRunTimeException("系统配置不存在"); } salarySysConfPO.setUpdateTime(new Date()); getSalarySysConfMapper().updateIgnoreNull(salarySysConfPO); } @Override public SalarySysConfPO getById(Long id) { SalarySysConfPO po = getSalarySysConfMapper().getById(id); if (po == null) { throw new SalaryRunTimeException("系统配置不存在"); } return po; } @Override public void updateByCode(SalarySysConfPO po) { SalarySysConfPO sysConfPO = getSalarySysConfMapper().getOneByCode(po.getConfKey()); if (sysConfPO == null) { throw new SalaryRunTimeException("系统配置不存在"); } sysConfPO.setConfValue(po.getConfValue()); sysConfPO.setUpdateTime(new Date()); getSalarySysConfMapper().updateIgnoreNull(sysConfPO); } @Override public OrderRuleVO orderRule() { SalarySysConfPO rulePO = getSalarySysConfMapper().getOneByCode(ORDER_RULE_CODE); SalarySysConfPO orderPO = getSalarySysConfMapper().getOneByCode(ASCORDESC_CODE); OrderRuleVO orderRuleVO = OrderRuleVO.builder().build(); if (rulePO == null) { orderRuleVO.setOrderRule(OrderRuleEnum.DSPORDER.getValue()); } else { orderRuleVO.setOrderRule(OrderRuleEnum.parseByValue(rulePO.getConfValue()).getValue()); } if (orderPO == null) { orderRuleVO.setAscOrDesc(AscOrDescEnum.ASC.getValue()); } else { orderRuleVO.setAscOrDesc(AscOrDescEnum.parseByValue(orderPO.getConfValue()).getValue()); } return orderRuleVO; } @Override public void updateOrderRule(OrderRuleParam param) { if (param == null || OrderRuleEnum.parseByValue(param.getOrderRule()) == null || AscOrDescEnum.parseByValue(param.getAscOrDesc()) == null) { throw new SalaryRunTimeException("配置内容异常!"); } //更新排序规则 SalarySysConfPO orderRulePo = getSalarySysConfMapper().getOneByCode(ORDER_RULE_CODE); if (orderRulePo == null) { SalarySysConfPO build = SalarySysConfPO.builder() .id(IdGenerator.generate()) .confKey(ORDER_RULE_CODE) .confValue(param.getOrderRule()) .title("排序规则") .orderWeight(0) .module("basic") .updateTime(new Date()) .createTime(new Date()) .deleteType(0) .build(); getSalarySysConfMapper().insertIgnoreNull(build); } else { orderRulePo.setConfValue(param.getOrderRule()); orderRulePo.setUpdateTime(new Date()); getSalarySysConfMapper().updateIgnoreNull(orderRulePo); } //更新顺序配置 SalarySysConfPO ascOrDescPo = getSalarySysConfMapper().getOneByCode(ASCORDESC_CODE); if (ascOrDescPo == null) { SalarySysConfPO build = SalarySysConfPO.builder() .id(IdGenerator.generate()) .confKey(ASCORDESC_CODE) .confValue(param.getAscOrDesc()) .title("排序顺序") .orderWeight(0) .module("basic") .updateTime(new Date()) .createTime(new Date()) .deleteType(0) .build(); getSalarySysConfMapper().insertIgnoreNull(build); } else { ascOrDescPo.setConfValue(param.getAscOrDesc()); ascOrDescPo.setUpdateTime(new Date()); getSalarySysConfMapper().updateIgnoreNull(ascOrDescPo); } } }