diff --git a/src/com/engine/salary/mapper/employeedeclare/EmployeeDeclareOptMapper.xml b/src/com/engine/salary/mapper/employeedeclare/EmployeeDeclareOptMapper.xml index 78049ea4a..d138a97d7 100644 --- a/src/com/engine/salary/mapper/employeedeclare/EmployeeDeclareOptMapper.xml +++ b/src/com/engine/salary/mapper/employeedeclare/EmployeeDeclareOptMapper.xml @@ -272,7 +272,7 @@ SELECT FROM hrsa_employee_declare_opt t - WHERE id = #{taxAgentId} AND delete_type = 0 + WHERE tax_agent_id = #{taxAgentId} AND delete_type = 0 \ No newline at end of file diff --git a/src/com/engine/salary/service/impl/EmployeeDeclareOptServiceImpl.java b/src/com/engine/salary/service/impl/EmployeeDeclareOptServiceImpl.java index 15ac91be2..f82182e85 100644 --- a/src/com/engine/salary/service/impl/EmployeeDeclareOptServiceImpl.java +++ b/src/com/engine/salary/service/impl/EmployeeDeclareOptServiceImpl.java @@ -58,6 +58,7 @@ public class EmployeeDeclareOptServiceImpl extends Service implements EmployeeDe optPO.setStatus(po.getStatus()); optPO.setLastOperate(po.getLastOperate()); optPO.setLastOperateTime(now); + optPO.setUpdateTime(now); getEmployeeDeclareOptMapper().updateIgnoreNull(optPO); } diff --git a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java index f175ece2c..a1fa051e4 100644 --- a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java +++ b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java @@ -417,26 +417,50 @@ public class TaxDeclareRecordWrapper extends Service { } public String batSave(TaxDeclarationSaveParam param) { - List taxAgentIds = param.getTaxAgentIds(); - int success = 0; - int fail = 0; - StringBuilder msg = new StringBuilder(); - for (Long taxAgentId : taxAgentIds) { - try { - param.setTaxAgentId(taxAgentId); - getTaxDeclareRecordService(user).save(param); - success++; - } catch (SalaryRunTimeException e) { - msg.append(e.getMessage()).append(";"); - fail++; - } catch (Exception e) { - log.error("个税申报表生成报错:{}", e.getMessage(), e); - msg.append(e.getMessage()).append(";"); - fail++; - } finally { + +// return "成功:" + success + "个,失败:" + fail + "个,失败原因:" + msg; + + + TaxDeclarationRateDTO taxDeclarationRate = new TaxDeclarationRateDTO().setStatus(true) + .setIndex(Util.null2String(IdGenerator.generate())) + .setMsg(SalaryI18nUtil.getI18nLabel(95836, "生成申报表")); + getSalaryCacheService(user).set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate); + LocalRunnable localRunnable = new LocalRunnable() { + @Override + public void execute() { + try { + List taxAgentIds = param.getTaxAgentIds(); + int success = 0; + int fail = 0; + StringBuilder msg = new StringBuilder(); + for (Long taxAgentId : taxAgentIds) { + try { + param.setTaxAgentId(taxAgentId); + getTaxDeclareRecordService(user).save(param); + success++; + } catch (SalaryRunTimeException e) { + msg.append(e.getMessage()).append(";"); + fail++; + } catch (Exception e) { + log.error("个税申报表生成报错:{}", e.getMessage(), e); + msg.append(e.getMessage()).append(";"); + fail++; + } finally { + } + } + taxDeclarationRate.setStatus(fail==0).setFinish(true).setMsg(msg.toString()); + } catch (SalaryRunTimeException e) { + taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage()); + } catch (Exception e) { + log.error("个税申报表生成报错:{}", e.getMessage(), e); + taxDeclarationRate.setStatus(false).setFinish(true).setMsg(SalaryI18nUtil.getI18nLabel(187276, "个税申报表生成报错:") + e.getMessage()); + } finally { + getSalaryCacheService(user).set(SalaryCacheKey.TAX_DECLARATION + taxDeclarationRate.getIndex(), taxDeclarationRate); + } } - } - return "成功:" + success + "个,失败:" + fail + "个,失败原因:" + msg; + }; + ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.OTHER, "saveTaxDeclaration", localRunnable); + return taxDeclarationRate.getIndex(); } /**