Compare commits

...

24 Commits

Author SHA1 Message Date
钱涛 ea4f7fb79d Merge branch 'release/个税&业务线' into custom/杭州钱塘新区建设投资集团有限公司
# Conflicts:
#	resource/WEB-INF/prop/hrmSalary.properties
2026-02-03 17:43:31 +08:00
钱涛 829453fd05 Merge branch 'release/3.0.2.2504.01' into release/个税&业务线 2026-02-03 17:35:33 +08:00
钱涛 eeba5870bd Merge branch 'release/2.19.1.2501.01' into release/3.0.2.2504.01 2026-02-03 17:25:51 +08:00
钱涛 6de4a4f241 修复社保空指针 2026-02-03 15:37:24 +08:00
钱涛 acfb8cbfe4 Merge branch 'release/个税版本' into release/个税&业务线 2026-02-02 15:18:14 +08:00
钱涛 dee1ed1b9c 个税云升级 2026-02-02 15:17:38 +08:00
钱涛 37b42e75b9 Merge branch 'release/3.0.2.2504.01' into release/个税&业务线
# Conflicts:
#	resource/WEB-INF/prop/hrmSalary.properties
2026-01-29 10:45:06 +08:00
钱涛 d40fa67fc6 Merge branch 'release/2.19.1.2501.01' into release/个税版本 2026-01-29 10:44:13 +08:00
钱涛 1f910b28d3 Merge branch 'release/2.19.1.2501.01' into release/3.0.2.2504.01 2026-01-29 10:43:55 +08:00
钱涛 dee4e13c6c 考勤引用设置字段时取消引用考勤 2026-01-29 10:43:42 +08:00
钱涛 af03446628 个税云升级
取消:不再需要填写“人员状态”(原“正常/非正常”选项);
新增:是否离职后补发工资:员工有离职日期时可选择“是/否”;
2026-01-28 13:48:15 +08:00
钱涛 84f186e665 Merge branch 'release/个税版本' into release/个税&业务线 2026-01-26 14:34:27 +08:00
钱涛 9858d8e024 个税云升级
取消:不再需要填写“人员状态”(原“正常/非正常”选项);
新增:是否离职后补发工资:员工有离职日期时可选择“是/否”;
2026-01-26 14:32:10 +08:00
钱涛 b3531e4c9e Merge branch 'release/个税版本' into release/个税&业务线
# Conflicts:
#	resource/WEB-INF/prop/hrmSalary.properties
2026-01-16 14:46:55 +08:00
钱涛 84c504be59 Merge branch 'release/2.19.1.2501.01' into release/个税版本 2026-01-16 14:43:15 +08:00
钱涛 3b772e0f91 Merge branch 'release/2.19.1.2501.01' into release/3.0.2.2504.01
# Conflicts:
#	resource/WEB-INF/prop/hrmSalary.properties
2026-01-16 14:42:43 +08:00
钱涛 629ff298a6 版本 2026-01-16 13:58:58 +08:00
钱涛 8640398252 修改oracle token问题 2026-01-16 13:58:28 +08:00
钱涛 c0389245d4 Merge branch 'release/个税版本' into release/个税&业务线 2026-01-12 10:59:04 +08:00
钱涛 ae731d0bce 申报失败原因 2026-01-12 10:58:39 +08:00
钱涛 93708f5327 Merge branch 'release/2.19.1.2501.01' into release/个税版本 2026-01-07 15:44:23 +08:00
钱涛 21035c30f4 Merge branch 'release/3.0.2.2504.01' into release/个税&业务线 2026-01-07 15:10:09 +08:00
钱涛 bd4e0b14e8 Merge branch 'release/2.19.1.2501.01' into release/3.0.2.2504.01 2026-01-07 15:07:50 +08:00
钱涛 eb35dddfbd 修复查询问题 2026-01-07 15:07:11 +08:00
30 changed files with 249 additions and 40 deletions

View File

@ -1,5 +1,5 @@
log=false
defaultCloseNonStandard149=true
AESEncryptScrect=990EB004A1C862721C1513AE90038C9E
version=3.0.2.2510.01.ts
version=3.0.4.2510.01.ts
openFormulaForcedEditing=false

View File

@ -0,0 +1,6 @@
ALTER TABLE hrsa_employee_declare ADD reissue_salary number;
/
ALTER TABLE hrsa_employee_declare ADD reissue_tax_cycle DATE;
/

View File

@ -0,0 +1,6 @@
ALTER TABLE hrsa_employee_declare ADD reissue_salary number;
/
ALTER TABLE hrsa_employee_declare ADD reissue_tax_cycle DATE;
/

View File

@ -0,0 +1,6 @@
ALTER TABLE hrsa_employee_declare ADD reissue_salary number;
/
ALTER TABLE hrsa_employee_declare ADD reissue_tax_cycle DATE;
/

View File

@ -0,0 +1,3 @@
ALTER TABLE hrsa_employee_declare
ADD COLUMN reissue_salary tinyint(0) NULL,
ADD COLUMN reissue_tax_cycle date NULL;

View File

@ -0,0 +1,5 @@
ALTER TABLE hrsa_employee_declare ADD reissue_salary number
/
ALTER TABLE hrsa_employee_declare ADD reissue_tax_cycle DATE
/

View File

@ -0,0 +1,3 @@
alter table hrsa_employee_declare add reissue_salary int ;
alter table hrsa_employee_declare add reissue_tax_cycle timestamp ;

View File

@ -0,0 +1,5 @@
ALTER TABLE hrsa_employee_declare ADD reissue_salary int
GO
ALTER TABLE hrsa_employee_declare ADD reissue_tax_cycle datetime
GO

View File

@ -0,0 +1,6 @@
ALTER TABLE hrsa_employee_declare ADD reissue_salary number;
/
ALTER TABLE hrsa_employee_declare ADD reissue_tax_cycle DATE;
/

View File

@ -29,6 +29,8 @@ public class EmployeeDeclareBO {
.mobile(dto.getMobile())
.employmentDate(dto.getEmploymentDate())
.dismissDate(dto.getDismissDate())
.reissueSalary(dto.getReissueSalary())
.reissueTaxCycle(dto.getReissueTaxCycle())
.disability(dto.getDisability())
.disabilityCardNo(dto.getDisabilityCardNo())
.martyrDependents(dto.getMartyrDependents())

View File

@ -75,6 +75,11 @@ public class EmployeeDeclareRequest {
employeeInfoMap.put("rzsgrq", SalaryDateUtil.getFormatLocalDate(employeeDeclare.getEmploymentDate()));
// 离职日期
employeeInfoMap.put("lzrq", SalaryDateUtil.getFormatLocalDate(employeeDeclare.getDismissDate()));
//是否离职后补发工资
SalaryOnOffEnum reissueSalary = employeeDeclare.getReissueSalary() == null ? SalaryOnOffEnum.OFF : SalaryEnumUtil.enumMatchByValue(employeeDeclare.getReissueSalary(), SalaryOnOffEnum.class);
employeeInfoMap.put("sflzhbfgz", (reissueSalary != null && reissueSalary == SalaryOnOffEnum.ON) ? "" : "");
//补发税款所属月份
employeeInfoMap.put("bfskssyf", SalaryDateUtil.getFormatYYYYMM(employeeDeclare.getReissueTaxCycle()));
// 是否残疾
SalaryOnOffEnum disability = SalaryEnumUtil.enumMatchByValue(employeeDeclare.getDisability(), SalaryOnOffEnum.class);
employeeInfoMap.put("sfcj", disability == null ? "" : disability.getDefaultLabel());

View File

@ -126,6 +126,12 @@ public class EmployeeDeclareExcelDTO {
@TableTitle(title = "离职日期", dataIndex = "dismissDate", key = "dismissDate")
private Date dismissDate;
//是否离职后补发工资
private Integer reissueSalary;
//补发税期
private Date reissueTaxCycle;
/**
* 首次入境时间
*/

View File

@ -111,6 +111,15 @@ public class EmployeeDeclareFromDTO {
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date dismissDate;
// 是否离职后补发工资
@TableTitle(title = "是否离职后补发工资", dataIndex = "reissueSalary", key = "reissueSalary")
private SalaryOnOffEnum reissueSalary;
// 补发税款所属月份
@TableTitle(title = "补发税款所属月份", dataIndex = "reissueTaxCycle", key = "reissueTaxCycle")
@JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
private Date reissueTaxCycle;
// 首次入境时间
@TableTitle(title = "首次入境时间", dataIndex = "entryDate", key = "entryDate")

View File

@ -94,6 +94,18 @@ public class EmployeeDeclareSaveParam {
//离职日期
private LocalDate dismissDate;
/**
* 是否离职后补发工资
* 1是0否默认为0
*/
private SalaryOnOffEnum reissueSalary;
/**
* 补发税款所属月份
* 是否离职后补发工资时必填格式YYYY-MM2019年9月且不小于离职月份
*/
private LocalDate reissueTaxCycle;
//首次入境时间
private LocalDate entryDate;

View File

@ -80,6 +80,7 @@ public class EmployeeDeclarePO {
/**
* 证件类型
*
* @see CardTypeEnum
*/
@ElogTransform(name = "证件类型")
@ -105,6 +106,7 @@ public class EmployeeDeclarePO {
/**
* 性别
*
* @see GenderEnum
*/
@ElogTransform(name = "性别")
@ -170,6 +172,21 @@ public class EmployeeDeclarePO {
private Date dismissDate;
/**
* 是否离职后补发工资
* 1是0否默认为0
*/
private Integer reissueSalary;
/**
* 补发税款所属月份
* 是否离职后补发工资时必填格式YYYY-MM2019年9月且不小于离职月份
*/
@ElogTransform(name = "补发税款所属月份")
private Date reissueTaxCycle;
/**
* 首次入境时间
*/
@ -298,6 +315,8 @@ public class EmployeeDeclarePO {
", employmentFirstYear='" + employmentFirstYear + '\'' +
", employmentDate=" + employmentDate +
", dismissDate=" + dismissDate +
", reissueSalary=" + reissueSalary +
", reissueTaxCycle=" + reissueTaxCycle +
", entryDate=" + entryDate +
", departureDate=" + departureDate +
", disability=" + disability +

View File

@ -20,6 +20,8 @@
<result column="employment_first_year" property="employmentFirstYear"/>
<result column="employment_date" property="employmentDate"/>
<result column="dismiss_date" property="dismissDate"/>
<result column="reissue_salary" property="reissueSalary"/>
<result column="reissue_tax_cycle" property="reissueTaxCycle"/>
<result column="disability" property="disability"/>
<result column="entry_date" property="entryDate"/>
<result column="departure_date" property="departureDate"/>
@ -63,6 +65,8 @@
, t.employment_first_year
, t.employment_date
, t.dismiss_date
, t.reissue_salary
, t.reissue_tax_cycle
, t.entry_date
, t.departure_date
, t.disability
@ -161,6 +165,12 @@
<if test="dismissDate != null">
AND dismiss_date = #{dismissDate}
</if>
<if test="reissueSalary != null">
AND reissue_salary = #{reissueSalary}
</if>
<if test="reissueTaxCycle != null">
AND reissue_tax_cycle = #{reissueTaxCycle}
</if>
<if test="disability != null">
AND disability = #{disability}
</if>
@ -284,6 +294,12 @@
<if test="dismissDate != null">
dismiss_date,
</if>
<if test="reissueSalary != null">
reissue_salary,
</if>
<if test="reissueTaxCycle != null">
reissue_tax_cycle,
</if>
<if test="entryDate != null">
entry_date,
</if>
@ -397,6 +413,12 @@
<if test="dismissDate != null">
#{dismissDate},
</if>
<if test="reissueSalary != null">
#{reissueSalary},
</if>
<if test="reissueTaxCycle != null">
#{reissueTaxCycle},
</if>
<if test="entryDate != null">
#{entryDate},
</if>
@ -474,6 +496,8 @@
disability,
disability_card_no,
dismiss_date,
reissue_salary,
reissue_tax_cycle,
entry_date,
departure_date,
employee_id,
@ -514,6 +538,8 @@
#{item.disability},
#{item.disabilityCardNo},
#{item.dismissDate},
#{item.reissueSalary},
#{item.reissueTaxCycle},
#{item.entryDate},
#{item.departureDate},
#{item.employeeId},
@ -558,6 +584,8 @@
disability,
disability_card_no,
dismiss_date,
reissue_salary,
reissue_tax_cycle,
entry_date,
departure_date,
employee_id,
@ -599,6 +627,8 @@
#{item.disability,jdbcType=INTEGER},
#{item.disabilityCardNo,jdbcType=VARCHAR},
#{item.dismissDate,jdbcType=DATE},
#{item.reissueSalary,jdbcType=INTEGER},
#{item.reissueTaxCycle,jdbcType=DATE},
#{item.entryDate,jdbcType=DATE},
#{item.departureDate,jdbcType=DATE},
#{item.employeeId,jdbcType=DOUBLE},
@ -644,6 +674,8 @@
disability,
disability_card_no,
dismiss_date,
reissue_salary,
reissue_tax_cycle,
entry_date,
departure_date,
employee_id,
@ -684,6 +716,8 @@
#{item.disability},
#{item.disabilityCardNo},
#{item.dismissDate},
#{item.reissueSalary},
#{item.reissueTaxCycle},
#{item.entryDate},
#{item.departureDate},
#{item.employeeId},
@ -734,6 +768,8 @@
employment_first_year=#{employmentFirstYear},
employment_date=#{employmentDate},
dismiss_date=#{dismissDate},
reissue_salary=#{reissueSalary},
reissue_tax_cycle=#{reissueTaxCycle},
entry_date=#{entryDate},
departure_date=#{departureDate},
disability=#{disability},
@ -811,6 +847,8 @@
employment_date=#{employmentDate},
</if>
dismiss_date=#{dismissDate},
reissue_salary=#{reissueSalary},
reissue_tax_cycle=#{reissueTaxCycle},
entry_date=#{entryDate},
departure_date=#{departureDate},
birthplace=#{birthplace},

View File

@ -1196,7 +1196,7 @@
AND hed.tax_agent_id = #{param.taxAgentId}
AND hed.tax_cycle = #{param.taxCycle}
AND hed.successfully_declared = 1
AND hed.employment_status = 0
AND (hed.dismiss_date is null OR hed.dismiss_date <![CDATA[ >= ]]> #{param.taxCycle} OR hed.reissue_tax_cycle = #{param.taxCycle})
AND hed.declare_status IN (4)
)
</select>
@ -1214,7 +1214,7 @@
AND hed.tax_agent_id = #{param.taxAgentId}
AND hed.tax_cycle = #{param.taxCycle}
AND hed.successfully_declared = 1
AND hed.employment_status = 0
AND (hed.dismiss_date is null OR hed.dismiss_date <![CDATA[ >= ]]> #{param.taxCycle} OR hed.reissue_tax_cycle = #{param.taxCycle})
AND hed.declare_status IN (4)
)
</select>

View File

@ -377,7 +377,7 @@
WHERE
1=1
AND base.delete_type = 0
AND base.employee_type is null
AND (base.employee_type is null or base.employee_type = 0)
<include refid="condition"></include>
<if test="param.orderRule != null">
ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc}

View File

@ -411,7 +411,7 @@
AND hed.tax_agent_id = #{param.taxAgentId}
AND hed.tax_cycle = #{param.taxCycle}
AND hed.successfully_declared = 1
AND hed.employment_status = 0
AND (hed.dismiss_date is null OR hed.dismiss_date <![CDATA[ >= ]]> #{param.taxCycle} OR hed.reissue_tax_cycle = #{param.taxCycle})
AND hed.declare_status IN (4)
)
</sql>
@ -432,7 +432,7 @@
AND tax_agent_id = #{param.taxAgentId}
AND tax_cycle = #{param.taxCycle}
AND successfully_declared = 1
AND employment_status = 0
AND (dismiss_date is null OR dismiss_date <![CDATA[ >= ]]> #{param.taxCycle} OR reissue_tax_cycle = #{param.taxCycle})
AND employee_id NOT IN (
SELECT employee_id
FROM hrsa_tax_declaration_value htdv

View File

@ -194,4 +194,5 @@ public interface EmployeeDeclareService{
void batchInsert(List<EmployeeDeclarePO> insertList);
List<EmployeeDeclarePO> listReissueEmp(Long taxAgentId, Date taxCycle);
}

View File

@ -57,7 +57,7 @@ public class AttendQuoteFieldSettingServiceImpl extends Service implements Atten
@Override
public List<AttendQuoteFieldSettingListDTO> list(AttendQuoteFieldSettingQueryParam queryParam) {
//同步字段
getAttendQuoteFieldService(user).syncAttendFields();
// getAttendQuoteFieldService(user).syncAttendFields();
// 获取字段设置
List<AttendQuoteFieldSettingPO> list = biz.getAttendQuoteFieldSetting(queryParam.getSourceType());

View File

@ -109,6 +109,8 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee
row.add(employmentTypeEnum == null ? EmploymentTypeEnum.EMPLOYEE.getDefaultLabel() : employmentTypeEnum.getDefaultLabel());
row.add(SalaryDateUtil.getFormatDate(employeeDeclare.getEmploymentDate()));
row.add(SalaryDateUtil.getFormatDate(employeeDeclare.getDismissDate()));
row.add(Objects.equals(employeeDeclare.getReissueSalary(), 1) ? yesI18 : noI18);
row.add(SalaryDateUtil.getFormatYearMonth(employeeDeclare.getReissueTaxCycle()));
row.add(SalaryDateUtil.getFormatDate(employeeDeclare.getEntryDate()));
row.add(SalaryDateUtil.getFormatDate(employeeDeclare.getDepartureDate()));
row.add(employeeDeclare.getTaxReasons());
@ -139,7 +141,6 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee
InputStream fileInputStream = null;
try {
fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(param.getImageId()));
Sheet sheet = ExcelSupport.parseFile(fileInputStream, 0, EXCEL_TYPE_XLSX);
@ -396,6 +397,38 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee
employeeDeclareExcel.setDismissDate(SalaryDateUtil.dateStrToLocalDate(dataValue));
}
}
} else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "是否离职后补发工资"))) {
if (StringUtils.equals(dataValue, SalaryOnOffEnum.ON.getDefaultLabel())) {
employeeDeclareExcel.setReissueSalary(SalaryOnOffEnum.ON.getValue());
} else if (StringUtils.equals(dataValue, SalaryOnOffEnum.OFF.getDefaultLabel())) {
employeeDeclareExcel.setReissueSalary(SalaryOnOffEnum.OFF.getValue());
} else {
isError = true;
Map<String, String> errorMessageMap = Maps.newHashMap();
errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "是否离职后补发工资只能填写是与否"));
errorData.add(errorMessageMap);
}
} else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "补发税款所属月份"))) {
if (StringUtils.isEmpty(dataValue)) {
if (Objects.equals(employeeDeclareExcel.getReissueSalary(), SalaryOnOffEnum.ON.getValue())) {
isError = true;
Map<String, String> errorMessageMap = Maps.newHashMap();
errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "是否离职后补发工资为是时,补发税款所属月份必填"));
errorData.add(errorMessageMap);
}
} else {
if (StringUtils.isNotBlank(dataValue) && dataValue.length() >= 10) {
dataValue = dataValue.substring(0, 7);
}
if (SalaryDateUtil.parse(dataValue, SalaryDateUtil.MONTH_FORMATTER_PATTERN) == null) {
isError = true;
Map<String, String> errorMessageMap = Maps.newHashMap();
errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "补发税款所属月份不正确,正确示例2025-01"));
errorData.add(errorMessageMap);
} else {
employeeDeclareExcel.setReissueTaxCycle(SalaryDateUtil.yyyyMMDateStrToLocalDate(dataValue));
}
}
} else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "首次入境时间"))) {
if (StringUtils.isNotBlank(dataValue)) {
if (dataValue.length() >= 10) {
@ -1165,6 +1198,8 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee
headers.add(SalaryI18nUtil.getI18nLabel(111111, "任职受雇从业类型"));
headers.add(SalaryI18nUtil.getI18nLabel(111111, "任职受雇从业日期"));
headers.add(SalaryI18nUtil.getI18nLabel(111111, "离职日期"));
headers.add(SalaryI18nUtil.getI18nLabel(111111, "是否离职后补发工资"));
headers.add(SalaryI18nUtil.getI18nLabel(111111, "补发税款所属月份"));
headers.add(SalaryI18nUtil.getI18nLabel(111111, "首次入境时间"));
headers.add(SalaryI18nUtil.getI18nLabel(111111, "预计离境时间"));
headers.add(SalaryI18nUtil.getI18nLabel(111111, "涉税事由"));

View File

@ -225,6 +225,8 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
employeeDeclare.setEmploymentFirstYear("");
employeeDeclare.setEmploymentDate(SalaryDateUtil.localDateToDate(saveParam.getEmploymentDate()));
employeeDeclare.setDismissDate(SalaryDateUtil.localDateToDate(saveParam.getDismissDate()));
employeeDeclare.setReissueSalary(saveParam.getReissueSalary().getValue());
employeeDeclare.setReissueTaxCycle(SalaryDateUtil.localDateToDate(saveParam.getReissueTaxCycle()));
employeeDeclare.setEntryDate(SalaryDateUtil.localDateToDate(saveParam.getEntryDate()));
employeeDeclare.setDepartureDate(SalaryDateUtil.localDateToDate(saveParam.getDepartureDate()));
employeeDeclare.setDisability(saveParam.getDisability().getValue());
@ -764,4 +766,12 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
List<List<EmployeeDeclarePO>> partition = Lists.partition(insertList, 50);
partition.forEach(getEmployeeDeclareMapper()::batchInsert);
}
@Override
public List<EmployeeDeclarePO> listReissueEmp(Long taxAgentId, Date taxCycle) {
return getEmployeeDeclareMapper().listSome(EmployeeDeclarePO.builder()
.reissueTaxCycle(taxCycle)
.taxAgentId(taxAgentId)
.build());
}
}

View File

@ -387,11 +387,15 @@ public class SIRepairServiceImpl extends Service implements SIRepairService {
&& (projects.contains(ProjectTypeEnum.MEDICAL_INSURANCE.getValue()))) {
if (socialSchemePO != null && (StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString()) || StringUtils.isNotBlank(socialSchemePO.getSocialPaymentComBaseString()))) {
Map<String, String> socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap<String, String>().getClass());
socialMap = socialMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()) || "9002".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
if(socialMap!=null){
socialMap = socialMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()) || "9002".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
}
Map<String, String> socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap<String, String>().getClass());
socialComMap = socialComMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()) || "9002".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
if(socialComMap!=null){
socialComMap = socialComMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()) || "9002".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
}
List<String> socialIds = new ArrayList<>();
socialIds.addAll(socialMap == null ? Collections.emptyList() : socialMap.keySet());
socialIds.addAll(socialComMap == null ? Collections.emptyList() : socialMap.keySet());
@ -434,12 +438,16 @@ public class SIRepairServiceImpl extends Service implements SIRepairService {
&& (!projects.contains(ProjectTypeEnum.MEDICAL_INSURANCE.getValue()))) {
if (socialSchemePO != null && (StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString()) || StringUtils.isNotBlank(socialSchemePO.getSocialPaymentComBaseString()))) {
Map<String, String> socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap<String, String>().getClass());
socialMap = socialMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
if (socialMap != null) {
socialMap = socialMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
}
Map<String, String> socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap<String, String>().getClass());
socialComMap = socialComMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
if (socialComMap != null) {
socialComMap = socialComMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
}
List<String> socialIds = new ArrayList<>();
socialIds.addAll(socialMap == null ? Collections.emptyList() : socialMap.keySet());
socialIds.addAll(socialComMap == null ? Collections.emptyList() :socialComMap.keySet());
@ -482,8 +490,10 @@ public class SIRepairServiceImpl extends Service implements SIRepairService {
&& (projects.contains(ProjectTypeEnum.MEDICAL_INSURANCE.getValue()))) {
if (socialSchemePO != null && (StringUtils.isNotBlank(socialSchemePO.getSocialPaymentBaseString()) || StringUtils.isNotBlank(socialSchemePO.getSocialPaymentComBaseString()))) {
Map<String, String> socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap<String, String>().getClass());
socialMap = socialMap.entrySet().stream().filter(e -> "9002".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
if(socialMap!=null){
socialMap = socialMap.entrySet().stream().filter(e -> "9002".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
}
Map<String, String> socialComMap = JSON.parseObject(socialSchemePO.getSocialPaymentComBaseString(), new HashMap<String, String>().getClass());
if(socialComMap !=null){
socialComMap = socialComMap.entrySet().stream().filter(e -> "9002".equals(e.getKey()))

View File

@ -130,6 +130,10 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
return ServiceUtil.getService(SalaryAcctSobConfigServiceImpl.class, user);
}
private EmployeeDeclareService getEmployeeDeclareService(User user) {
return ServiceUtil.getService(EmployeeDeclareServiceImpl.class, user);
}
private boolean isRealOrg = "1".equals(getSalaryCacheService(user).get(REPORT_ORGANIZATIN_TYPE));
@ -870,6 +874,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
@Override
public PageInfo<AbnormalEmployeeListDTO> listPage4NotDeclareByParam(AbnormalEmployeeListQueryParam queryParam) {
List<AbnormalEmployeeListDTO> list = listPage4NotDeclare(queryParam);
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AbnormalEmployeeListDTO.class);
}
List<AbnormalEmployeeListDTO> listPage4NotDeclare(AbnormalEmployeeListQueryParam queryParam) {
Long recordId = queryParam.getRecordId();
SalaryAcctRecordPO recordPO = getSalaryAcctRecordService(user).getById(recordId);
@ -878,19 +887,13 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
queryParam.setTaxAgentId(sobPO.getTaxAgentId());
List<AbnormalEmployeeListDTO> list = getSalaryAcctEmployeeMapper().listPage4NotDeclareByParam(queryParam);
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AbnormalEmployeeListDTO.class);
return list;
}
@Override
public int countNotDeclareByParam(AbnormalEmployeeListQueryParam queryParam) {
Long recordId = queryParam.getRecordId();
SalaryAcctRecordPO recordPO = getSalaryAcctRecordService(user).getById(recordId);
SalarySobPO sobPO = getSalarySobService(user).getById(recordPO.getSalarySobId());
queryParam.setTaxCycle(recordPO.getTaxCycle());
queryParam.setTaxAgentId(sobPO.getTaxAgentId());
return getSalaryAcctEmployeeMapper().countNotDeclareByParam(queryParam);
List<AbnormalEmployeeListDTO> list = listPage4NotDeclare(queryParam);
return list.size();
}
@Override

View File

@ -64,7 +64,9 @@ public class TaxDeclareEmployeeServiceImpl extends Service implements TaxDeclare
@Override
public List<TaxDeclareEmployeePO> list4NotDeclareByParam(AbnormalEmployeeListQueryParam queryParam) {
return getTaxDeclarationValueMapper().list4NotDeclareByParam(queryParam);
//根据正常/非正常状态和离职日期查询是否有未报送的人员
List<TaxDeclareEmployeePO> list = getTaxDeclarationValueMapper().list4NotDeclareByParam(queryParam);
return list;
}
@Override

View File

@ -929,8 +929,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
employeeInfoMap.remove(employeeName + "-" + cardNum);
}
}
}
if (map.containsKey("employeeList")) {
} else if (map.containsKey("employeeList")) {
List<Map> emps = JsonUtil.parseList(map.get("employeeList"), Map.class);
if (emps != null) {
for (Map detail : emps) {
@ -963,6 +962,9 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe
employeeInfoMap.remove(employeeName + "-" + cardNum);
}
}
}else if (map.containsKey("msg")) {
String msg = Util.null2String(map.get("msg"));
errorMsg.add(msg);
}
}
declareStatus.setTaxDeclareErrorMsg(String.join(",", errorMsg));

View File

@ -247,7 +247,7 @@ public class SalaryDateUtil {
Calendar c = Calendar.getInstance();
c.setTime(localDate);
int year = c.get(Calendar.YEAR);
return year ;
return year;
}
public static LocalDateRange localDate2Range(Date localDate) {
@ -277,6 +277,7 @@ public class SalaryDateUtil {
cal.set(Calendar.DAY_OF_MONTH, last);
return cal.getTime();
}
public static Date getFirstDayDateOfMonthWithMinutesAndSeconds(final Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
@ -314,8 +315,6 @@ public class SalaryDateUtil {
}
public static String getMonthBegin(String specifiedDay) {
int year;
int month;
@ -544,6 +543,15 @@ public class SalaryDateUtil {
return localDate;
}
public static Date yyyyMMDateStrToLocalDate(String date) {
if (date.contains("/")) {
date = date + "/01";
} else if (date.contains("-")) {
date = date + "-01";
}
return dateStrToLocalDate(date);
}
public static Date dateStrToLocalTime(String date) {
Date localDate = null;
try {
@ -570,7 +578,7 @@ public class SalaryDateUtil {
if (StringUtils.isNotBlank(startMonth)) {
startMonth = startMonth + "-01";
Date socialStartDate = SalaryDateUtil.dateStrToLocalDate(startMonth);
if(socialStartDate == null) {
if (socialStartDate == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "年月解析异常,请检查档案中相关数据设置") + ":" + startMonth.substring(0, startMonth.length() - 3));
} else if (billMonthDate.before(socialStartDate)) {
inDataRange = false;
@ -579,7 +587,7 @@ public class SalaryDateUtil {
if (StringUtils.isNotBlank(endMonth)) {
endMonth = endMonth + "-01";
Date socialEndDate = SalaryDateUtil.dateStrToLocalDate(endMonth);
if(socialEndDate == null) {
if (socialEndDate == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "年月解析异常,请检查档案中相关数据设置") + ":" + endMonth.substring(0, endMonth.length() - 3));
} else if (billMonthDate.after(socialEndDate)) {
inDataRange = false;
@ -590,9 +598,10 @@ public class SalaryDateUtil {
/**
* 转换时间对象
* @see SalaryDateUtil#toDate(LocalDateTime, String)
*
* @param dateTime LocalDateTime
* @return Date
* @see SalaryDateUtil#toDate(LocalDateTime, String)
*/
public static Date toDate(LocalDateTime dateTime) {
return toDate(dateTime, null);
@ -601,8 +610,9 @@ public class SalaryDateUtil {
/**
* 转换时间对象
*
* @param dateTime LocalDateTime
* @param offset 时区e.g. +8
* @param offset 时区e.g. +8
* @return Date
*/
public static Date toDate(LocalDateTime dateTime, String offset) {

View File

@ -141,13 +141,16 @@ public class SalaryTokenUtil {
// 对秘钥进行加密传输防止篡改数据
secret = rsa.encrypt(null, (String) (datas.get("secrit")), null, "utf-8", spk, false);
// secret存库
String date = SalaryDateUtil.getFormatLocalDateTime(LocalDateTime.now());
sql = String.format("insert into hrsa_salary_sys_conf(id, conf_key, conf_value, title, module, order_weight, delete_type, create_time, update_time) values (%s,'%s','%s','%s','%s',%s,%s,'%s','%s')",
String date = "'"+SalaryDateUtil.getFormatLocalDateTime(LocalDateTime.now())+"'";
if(rs.getDBType().equalsIgnoreCase("oracle")){
date = String.format("to_date(%s,'yyyy-mm-dd hh24:mi:ss')", date);
}
sql = String.format("insert into hrsa_salary_sys_conf(id, conf_key, conf_value, title, module, order_weight, delete_type, create_time, update_time) values (%s,'%s','%s','%s','%s',%s,%s,%s,%s)",
IdGenerator.generate(), "SALARY_TOKEN_SECRET", secret, "token", "basic",0,0,date,date);
rs.execute(sql);
log.info("GetToken regist secret , sql: {}", sql);
// 保存spk
sql = String.format("insert into hrsa_salary_sys_conf(id, conf_key, conf_value, title, module, order_weight, delete_type, create_time, update_time) values (%s,'%s','%s','%s','%s',%s,%s,'%s','%s')",
sql = String.format("insert into hrsa_salary_sys_conf(id, conf_key, conf_value, title, module, order_weight, delete_type, create_time, update_time) values (%s,'%s','%s','%s','%s',%s,%s,%s,%s)",
IdGenerator.generate(), "SALARY_TOKEN_SPK", spk, "spk", "basic",0,0,date,date);
rs.execute(sql);
log.info("GetToken regist spk , sql: {}", sql);

View File

@ -282,6 +282,8 @@ public class EmployeeDeclareWrapper extends Service {
.setEmploymentType(SalaryEnumUtil.enumMatchByValue(employeeDeclare.getEmploymentType(), EmploymentTypeEnum.class))
.setEmploymentDate(employeeDeclare.getEmploymentDate())
.setDismissDate(employeeDeclare.getDismissDate())
.setReissueSalary(SalaryEnumUtil.enumMatchByValue(employeeDeclare.getReissueSalary(), SalaryOnOffEnum.class))
.setReissueTaxCycle(employeeDeclare.getReissueTaxCycle())
.setDisability(SalaryEnumUtil.enumMatchByValue(employeeDeclare.getDisability(), SalaryOnOffEnum.class))
.setDisabilityCardNo(employeeDeclare.getDisabilityCardNo())
.setLonelyOld(SalaryEnumUtil.enumMatchByValue(employeeDeclare.getLonelyOld(), SalaryOnOffEnum.class))