个税申报开关
This commit is contained in:
parent
dc4f4d9032
commit
1fb96be58b
|
|
@ -9,9 +9,11 @@ Oracle数据库中常见报错问题
|
|||
-- 删除原表HRSA_SALARY_TEMPLATE数据
|
||||
delete from HRSA_SALARY_TEMPLATE;
|
||||
|
||||
alter TABLE HRSA_SALARY_TEMPLATE MODIFY SALARY_ITEM_SETTING NULL;
|
||||
alter table HRSA_SALARY_TEMPLATE modify salary_item_setting long;
|
||||
alter table HRSA_SALARY_TEMPLATE modify salary_item_setting CLOB;
|
||||
insert into HRSA_SALARY_TEMPLATE select * from HRSA_SALARY_TEMPLAT_TEMPT ;
|
||||
alter TABLE HRSA_SALARY_TEMPLATE MODIFY SALARY_ITEM_SETTING NOT NULL;
|
||||
drop table HRSA_SALARY_TEMPLAT_TEMPT;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
|
|||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper;
|
||||
import com.engine.salary.service.*;
|
||||
import com.engine.salary.sys.service.SalarySysConfService;
|
||||
import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl;
|
||||
import com.engine.salary.util.SalaryDateUtil;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
|
|
@ -65,6 +67,10 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
|||
return ServiceUtil.getService(SalarySendServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalarySysConfService getSalarySysConfService(User user){
|
||||
return ServiceUtil.getService(SalarySysConfServiceImpl.class,user);
|
||||
}
|
||||
|
||||
// private SalaryCheckResultService salaryCheckResultService;
|
||||
//
|
||||
// private SalaryCheckResultDetailService salaryCheckResultDetailService;
|
||||
|
|
@ -85,6 +91,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
|||
return ServiceUtil.getService(SalaryAcctReportServiceImpl.class, user);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public SalaryAcctRecordPO getById(Long id) {
|
||||
return getSalaryAcctRecordMapper().getById(id);
|
||||
|
|
@ -296,17 +303,8 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
|||
//获取账套下的所有核算结果
|
||||
List<SalaryAcctRecordPO> salaryAcctRecords = listByTaxCycle(taxCycleYearRange,salarySobIds);
|
||||
|
||||
// 如果某个月(税款所属期)还未申报,不可以新建之后月份的薪资核算
|
||||
SalaryAcctRecordPO notDeclaredSalaryAcctRecordPO = salaryAcctRecords.stream()
|
||||
.filter(e -> !Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue())
|
||||
&& e.getTaxCycle().before(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1))))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
if (Objects.nonNull(notDeclaredSalaryAcctRecordPO)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98751, "税款所属期{0}的薪资核算结果还未申报,不能新建税款所属期{1}的薪资核算")
|
||||
.replace("{0}", SalaryDateUtil.localDate2YearMonth(notDeclaredSalaryAcctRecordPO.getTaxCycle()).toString())
|
||||
.replace("{1}", salarySobCycleDTO.getTaxCycle().toString()));
|
||||
}
|
||||
// 是否关闭个税申报功能
|
||||
Boolean haveClosedTaxDeclaration = getSalarySysConfService(user).haveClosedTaxDeclaration();
|
||||
// 如果某个月(税款所属期)已经归档了,不可以新建之前月份的薪资核算
|
||||
SalaryAcctRecordPO hasArchivedSalaryAcctRecordPO = salaryAcctRecords.stream()
|
||||
.filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.ARCHIVED.getValue())
|
||||
|
|
@ -318,17 +316,33 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
|||
.replace("{0}", SalaryDateUtil.localDate2YearMonth(hasArchivedSalaryAcctRecordPO.getTaxCycle()).toString())
|
||||
.replace("{1}", salarySobCycleDTO.getTaxCycle().toString()));
|
||||
}
|
||||
// 如果某个月(税款所属期)已经申报了,不可以新建本月以及之前月份的薪资核算
|
||||
SalaryAcctRecordPO hasDeclaredSalaryAcctRecordPO = salaryAcctRecords.stream()
|
||||
.filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue())
|
||||
&& e.getTaxCycle().compareTo(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1))) >= 0)
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
if (Objects.nonNull(hasDeclaredSalaryAcctRecordPO)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98753, "税款所属期{0}的薪资核算结果已经申报,不能新建税款所属期{1}的薪资核算")
|
||||
.replace("{0}", SalaryDateUtil.localDate2YearMonth(hasDeclaredSalaryAcctRecordPO.getTaxCycle()).toString())
|
||||
.replace("{1}", salarySobCycleDTO.getTaxCycle().toString()));
|
||||
|
||||
if(!haveClosedTaxDeclaration){
|
||||
// 开启了个税申报功能
|
||||
// 如果某个月(税款所属期)还未申报,不可以新建之后月份的薪资核算
|
||||
SalaryAcctRecordPO notDeclaredSalaryAcctRecordPO = salaryAcctRecords.stream()
|
||||
.filter(e -> !Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue())
|
||||
&& e.getTaxCycle().before(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1))))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
if (Objects.nonNull(notDeclaredSalaryAcctRecordPO)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98751, "税款所属期{0}的薪资核算结果还未申报,不能新建税款所属期{1}的薪资核算")
|
||||
.replace("{0}", SalaryDateUtil.localDate2YearMonth(notDeclaredSalaryAcctRecordPO.getTaxCycle()).toString())
|
||||
.replace("{1}", salarySobCycleDTO.getTaxCycle().toString()));
|
||||
}
|
||||
// 如果某个月(税款所属期)已经申报了,不可以新建本月以及之前月份的薪资核算
|
||||
SalaryAcctRecordPO hasDeclaredSalaryAcctRecordPO = salaryAcctRecords.stream()
|
||||
.filter(e -> Objects.equals(e.getStatus(), SalaryAcctRecordStatusEnum.DECLARED.getValue())
|
||||
&& e.getTaxCycle().compareTo(SalaryDateUtil.localDateToDate(salarySobCycleDTO.getTaxCycle().atDay(1))) >= 0)
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
if (Objects.nonNull(hasDeclaredSalaryAcctRecordPO)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98753, "税款所属期{0}的薪资核算结果已经申报,不能新建税款所属期{1}的薪资核算")
|
||||
.replace("{0}", SalaryDateUtil.localDate2YearMonth(hasDeclaredSalaryAcctRecordPO.getTaxCycle()).toString())
|
||||
.replace("{1}", salarySobCycleDTO.getTaxCycle().toString()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -454,7 +468,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
|||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "薪资所属月为空"));
|
||||
}
|
||||
// 查询税款所在年的该个税扣缴义务人所有薪资核算记录
|
||||
//获取账套所属个税扣缴义务人的核算记录
|
||||
// 获取账套所属个税扣缴义务人的核算记录
|
||||
SalarySobPO salarySobPO = getSalarySobService(user).getById(salaryAcctRecordPO.getSalarySobId());
|
||||
Long taxAgentId = salarySobPO.getTaxAgentId();
|
||||
//查询扣缴义务人下的所有账套
|
||||
|
|
@ -474,8 +488,12 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
|||
}
|
||||
//撤回工资单
|
||||
getSalarySendService(user).revokeSalaryBill(salaryAcctRecordId);
|
||||
//删除个税申报表(个税申报表、个税申报表详情、往期累计情况)
|
||||
getTaxDeclarationService(user).delete(salaryAcctRecordPO);
|
||||
Boolean haveClosedTaxDeclaration = getSalarySysConfService(user).haveClosedTaxDeclaration();
|
||||
if(!haveClosedTaxDeclaration){
|
||||
// 开启了个税申报功能
|
||||
// 删除个税申报表(个税申报表、个税申报表详情、往期累计情况)
|
||||
getTaxDeclarationService(user).delete(salaryAcctRecordPO);
|
||||
}
|
||||
// 更新薪资核算记录的状态
|
||||
salaryAcctRecordPO.setStatus(SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue());
|
||||
salaryAcctRecordPO.setUpdateTime(new Date());
|
||||
|
|
|
|||
|
|
@ -45,4 +45,9 @@ public class SalarySysConstant {
|
|||
*/
|
||||
public static final String AES_ENCRYPT_IN_PROGRESS = "AES_ENCRYPT_IN_PROGRESS";
|
||||
public static final String ENCRYPT_IN_PROGRESS = "ENCRYPT_PROGRESS_";
|
||||
|
||||
/**
|
||||
* 需要申报功能
|
||||
*/
|
||||
public static final String TAX_DECLARATION_FUNCTION = "taxDeclarationFunction";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,4 +39,9 @@ public class AppSettingSaveParam {
|
|||
*/
|
||||
private String isOpenEncrypt;
|
||||
|
||||
/**
|
||||
* 是否关闭个税申报
|
||||
*/
|
||||
private String operateTaxDeclaration;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import org.apache.commons.lang3.StringUtils;
|
|||
* @version 1.0
|
||||
**/
|
||||
public enum TaxDeclarationFunctionEnum implements BaseEnum<String> {
|
||||
OPEN("OPEN", "开启", 1),
|
||||
CLOSURE("CLOSURE", "关闭", 1),
|
||||
OPEN("OPEN", "开启申报功能", 1),
|
||||
CLOSURE("CLOSURE", "关闭申报功能", 1),
|
||||
REBOOT("REBOOT", "重启", 1);
|
||||
|
||||
private String value;
|
||||
|
|
|
|||
|
|
@ -29,6 +29,12 @@ public interface SalarySysConfService {
|
|||
*/
|
||||
boolean operateTaxDeclarationFunction(TaxDeclarationFunctionEnum flag);
|
||||
|
||||
/**
|
||||
* 是否关闭了个税申报功能
|
||||
* @return BOOLEAN
|
||||
*/
|
||||
public Boolean haveClosedTaxDeclaration();
|
||||
|
||||
SalarySysConfPO getOneByCode(String code);
|
||||
|
||||
List<SalarySysConfPO> listSome(SalarySysConfPO build);
|
||||
|
|
|
|||
|
|
@ -138,9 +138,9 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe
|
|||
@Override
|
||||
public boolean operateTaxDeclarationFunction(TaxDeclarationFunctionEnum flag) {
|
||||
Date date = new Date();
|
||||
SalarySysConfPO taxDeclarationFunction = getSalarySysConfMapper().getOneByCode("taxDeclarationFunction");
|
||||
SalarySysConfPO taxDeclarationFunction = getSalarySysConfMapper().getOneByCode(TAX_DECLARATION_FUNCTION);
|
||||
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();
|
||||
taxDeclarationFunction = SalarySysConfPO.builder().id(IdGenerator.generate()).confKey(TAX_DECLARATION_FUNCTION).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());
|
||||
|
|
@ -165,6 +165,22 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 是否关闭需要申报功能
|
||||
* @return Boolean
|
||||
* @author Harryxzy
|
||||
* @date 2022/11/7 17:05
|
||||
*/
|
||||
public Boolean haveClosedTaxDeclaration(){
|
||||
SalarySysConfPO taxDeclarationFunction = salarySysConfService.getOneByCode(TAX_DECLARATION_FUNCTION);
|
||||
if(taxDeclarationFunction != null && taxDeclarationFunction.getConfValue().equals(TaxDeclarationFunctionEnum.CLOSURE.getValue())){
|
||||
// 关闭
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public SalarySysConfPO getOneByCode(String code) {
|
||||
return getSalarySysConfMapper().getOneByCode(code);
|
||||
|
|
|
|||
|
|
@ -51,16 +51,16 @@ public class SalarySystemConfigController {
|
|||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @param flag
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@POST
|
||||
@Path("/operateTaxDeclarationFunction")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String operateTaxDeclarationFunction(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody String flag) {
|
||||
public String operateTaxDeclarationFunction(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody AppSettingSaveParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
|
||||
return new ResponseResult<TaxDeclarationFunctionEnum, Boolean>(user).run(getSalarySystemConfigWrapper(user)::operateTaxDeclarationFunction, TaxDeclarationFunctionEnum.parseByValue(flag));
|
||||
return new ResponseResult<TaxDeclarationFunctionEnum, Boolean>(user).run(getSalarySystemConfigWrapper(user)::operateTaxDeclarationFunction, TaxDeclarationFunctionEnum.parseByValue(param.getOperateTaxDeclaration()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue