Merge branch 'release/个税&业务线' into custom/联特

# Conflicts:
#	resource/WEB-INF/prop/hrmSalary.properties
This commit is contained in:
钱涛 2026-02-10 17:51:21 +08:00
commit 1d27ad85c3
30 changed files with 247 additions and 45 deletions

View File

@ -1,5 +1,5 @@
log=false
defaultCloseNonStandard149=true
AESEncryptScrect=990EB004A1C862721C1513AE90038C9E
version=3.0.6.2510.01.ts
version=3.0.7.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

@ -29,11 +29,11 @@ public class TaxDeclarationApiFlowStatisticDetailListDTO {
private Long taxAgentId;
@JsonIgnore
@TableTitle(title = "个税扣缴义务人",key = "taxAgentName",dataIndex = "taxAgentName")
// @TableTitle(title = "个税扣缴义务人",key = "taxAgentName",dataIndex = "taxAgentName")
private String taxAgentName;
//税款所属期
@TableTitle(title = "",key = "",dataIndex = "")
@TableTitle(title = "税款所属期",key = "taxMonth",dataIndex = "taxMonth")
private String taxMonth;
//月使用流量数

View File

@ -620,9 +620,7 @@
</trim>
<trim prefix="pay_end_date =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.payEndDate!=null">
when id=#{item.id} then #{item.payEndDate}
</if>
</foreach>
</trim>
<trim prefix="update_time =case" suffix="end,">
@ -650,9 +648,7 @@
<if test="item.payStartDate != null">
pay_start_date=#{item.payStartDate},
</if>
<if test="item.payEndDate != null">
pay_end_date=#{item.payEndDate},
</if>
</set>
WHERE id = #{item.id} AND delete_type = 0

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

@ -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) {
@ -1185,6 +1218,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());
@ -666,9 +668,13 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla
DeclareEmployeeFeedbackResponse declareEmployeeFeedbackResponse = JsonUtil.parseObject(res, DeclareEmployeeFeedbackResponse.class);
if (Objects.isNull(declareEmployeeFeedbackResponse) || Objects.isNull(declareEmployeeFeedbackResponse.getHead())) {
log.error("服务异常:" + res);
// 删除原来的人员报送记录
getEmployeeDeclareRecordService(user).deleteByTaxCycleAndTaxAgentId(param.getTaxCycle(), param.getTaxAgentId());
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156449, "服务异常"));
}
if (!Objects.equals(declareEmployeeFeedbackResponse.getHead().getCode(), SzyhApiConstant.SUCCESS_CODE)) {
// 删除原来的人员报送记录
getEmployeeDeclareRecordService(user).deleteByTaxCycleAndTaxAgentId(param.getTaxCycle(), param.getTaxAgentId());
throw new SalaryRunTimeException(declareEmployeeFeedbackResponse.getHead().getMsg());
}
DeclareEmployeeFeedbackResponse.DeclareEmployeeFeedbackResponseBody declareEmployeeFeedbackResponseBody = declareEmployeeFeedbackResponse.getBody();
@ -766,4 +772,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());
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());
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());
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());
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());
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

@ -248,7 +248,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) {
@ -278,6 +278,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);
@ -315,8 +316,6 @@ public class SalaryDateUtil {
}
public static String getMonthBegin(String specifiedDay) {
int year;
int month;
@ -545,6 +544,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 {
@ -571,7 +579,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;
@ -580,7 +588,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;
@ -591,9 +599,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);
@ -602,6 +611,7 @@ public class SalaryDateUtil {
/**
* 转换时间对象
*
* @param dateTime LocalDateTime
* @param offset 时区e.g. +8
* @return Date

View File

@ -285,6 +285,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))

View File

@ -9,8 +9,6 @@ import com.engine.salary.entity.taxapiflow.dto.TaxDeclarationApiFlowTotalDTO;
import com.engine.salary.entity.taxapiflow.param.TaxDeclarationApiFlowMonthQueryParam;
import com.engine.salary.service.TaxDeclarationApiFlowStatisticService;
import com.engine.salary.service.impl.TaxDeclarationApiFlowStatisticServiceImpl;
import com.engine.salary.util.SalaryAssert;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.page.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@ -47,13 +45,13 @@ public class TaxDeclarationApiFlowStatisticWrapper extends Service {
public XSSFWorkbook exportFlowStatistics() {
List<TaxDeclarationApiFlowStatisticListDTO> dtoList = getTaxDeclarationApiFlowStatisticService(user).listFlowStatistic();
SalaryAssert.notEmpty(dtoList, SalaryI18nUtil.getI18nLabel(95795, "数据不存在"));
// SalaryAssert.notEmpty(dtoList, SalaryI18nUtil.getI18nLabel(95795, "数据不存在"));
return getTaxDeclarationApiFlowStatisticService(user).exportFlowStatistics(dtoList);
}
public XSSFWorkbook exportFlowStatisticsDetail(TaxDeclarationApiFlowMonthQueryParam queryParam) {
List<TaxDeclarationApiFlowStatisticDetailListDTO> dtoList = getTaxDeclarationApiFlowStatisticService(user).listFlowStatisticDetail(queryParam);
SalaryAssert.notEmpty(dtoList, SalaryI18nUtil.getI18nLabel(95795, "数据不存在"));
// SalaryAssert.notEmpty(dtoList, SalaryI18nUtil.getI18nLabel(95795, "数据不存在"));
return getTaxDeclarationApiFlowStatisticService(user).exportFlowStatisticsDetail(dtoList);
}