diff --git a/resource/sqlupgrade/DM/sql202403193303.sql b/resource/sqlupgrade/DM/sql202403193303.sql new file mode 100644 index 000000000..4238b2123 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202403193303.sql @@ -0,0 +1,12 @@ +ALTER TABLE hrsa_employee_declare ADD ( +nationality varchar2(255) NULL , +birthplace varchar2(255) NULL , +tax_reasons varchar2(255) NULL , +entry_date date NULL , +departure_date date NULL +); +/ + +update hrsa_employee_declare set nationality = '中国' where nationality is null; +/ + diff --git a/resource/sqlupgrade/DM/sql202404120303.sql b/resource/sqlupgrade/DM/sql202404120303.sql new file mode 100644 index 000000000..3ce4e54d0 --- /dev/null +++ b/resource/sqlupgrade/DM/sql202404120303.sql @@ -0,0 +1,18 @@ +CREATE TABLE hrsa_tax_declare_status ( +id NUMBER(38,0) primary key NOT NULL, +tax_declare_record_id NUMBER(38,0) NULL , +report_type number NULL , +request_id varchar2(100) , +tax_declare_type number NULL , +tax_declare_status number NULL , +display_update_icon number NULL , +tax_declare_error_msg varchar2(1000) , +person_num number NULL , +tax_pay_amount varchar2(255) , +tax_paid_amount varchar2(255) , +tax_pure_paid_amount varchar2(255) , +declare_request_id varchar2(100) , +delete_type number NULL +); +/ + diff --git a/resource/sqlupgrade/GS/sql202403193303.sql b/resource/sqlupgrade/GS/sql202403193303.sql new file mode 100644 index 000000000..4238b2123 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202403193303.sql @@ -0,0 +1,12 @@ +ALTER TABLE hrsa_employee_declare ADD ( +nationality varchar2(255) NULL , +birthplace varchar2(255) NULL , +tax_reasons varchar2(255) NULL , +entry_date date NULL , +departure_date date NULL +); +/ + +update hrsa_employee_declare set nationality = '中国' where nationality is null; +/ + diff --git a/resource/sqlupgrade/GS/sql202404120303.sql b/resource/sqlupgrade/GS/sql202404120303.sql new file mode 100644 index 000000000..3ce4e54d0 --- /dev/null +++ b/resource/sqlupgrade/GS/sql202404120303.sql @@ -0,0 +1,18 @@ +CREATE TABLE hrsa_tax_declare_status ( +id NUMBER(38,0) primary key NOT NULL, +tax_declare_record_id NUMBER(38,0) NULL , +report_type number NULL , +request_id varchar2(100) , +tax_declare_type number NULL , +tax_declare_status number NULL , +display_update_icon number NULL , +tax_declare_error_msg varchar2(1000) , +person_num number NULL , +tax_pay_amount varchar2(255) , +tax_paid_amount varchar2(255) , +tax_pure_paid_amount varchar2(255) , +declare_request_id varchar2(100) , +delete_type number NULL +); +/ + diff --git a/resource/sqlupgrade/JC/sql202403193303.sql b/resource/sqlupgrade/JC/sql202403193303.sql new file mode 100644 index 000000000..4238b2123 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202403193303.sql @@ -0,0 +1,12 @@ +ALTER TABLE hrsa_employee_declare ADD ( +nationality varchar2(255) NULL , +birthplace varchar2(255) NULL , +tax_reasons varchar2(255) NULL , +entry_date date NULL , +departure_date date NULL +); +/ + +update hrsa_employee_declare set nationality = '中国' where nationality is null; +/ + diff --git a/resource/sqlupgrade/JC/sql202404120303.sql b/resource/sqlupgrade/JC/sql202404120303.sql new file mode 100644 index 000000000..3ce4e54d0 --- /dev/null +++ b/resource/sqlupgrade/JC/sql202404120303.sql @@ -0,0 +1,18 @@ +CREATE TABLE hrsa_tax_declare_status ( +id NUMBER(38,0) primary key NOT NULL, +tax_declare_record_id NUMBER(38,0) NULL , +report_type number NULL , +request_id varchar2(100) , +tax_declare_type number NULL , +tax_declare_status number NULL , +display_update_icon number NULL , +tax_declare_error_msg varchar2(1000) , +person_num number NULL , +tax_pay_amount varchar2(255) , +tax_paid_amount varchar2(255) , +tax_pure_paid_amount varchar2(255) , +declare_request_id varchar2(100) , +delete_type number NULL +); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202403193303.sql b/resource/sqlupgrade/Mysql/sql202403193303.sql new file mode 100644 index 000000000..8a2735c24 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202403193303.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_employee_declare +ADD COLUMN nationality varchar(255) NULL, +ADD COLUMN birthplace varchar(255) NULL, +ADD COLUMN tax_reasons varchar(255) NULL, +ADD COLUMN entry_date date NULL, +ADD COLUMN departure_date date NULL ; + +update hrsa_employee_declare set nationality = '中国' where nationality is null; diff --git a/resource/sqlupgrade/Mysql/sql202404120303.sql b/resource/sqlupgrade/Mysql/sql202404120303.sql new file mode 100644 index 000000000..67da1a7d2 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202404120303.sql @@ -0,0 +1,17 @@ +CREATE TABLE hrsa_tax_declare_status ( +id bigint(0) NOT NULL , +tax_declare_record_id bigint(0) NULL , +report_type int(0) NULL , +request_id varchar(100) , +tax_declare_type tinyint(0) NULL , +tax_declare_status tinyint(0) NULL , +display_update_icon tinyint(0) NULL , +tax_declare_error_msg varchar(1000) , +person_num int(0) NULL , +tax_pay_amount varchar(255) , +tax_paid_amount varchar(255) , +tax_pure_paid_amount varchar(255) , +declare_request_id varchar(100) , +delete_type int(0) NULL, +PRIMARY KEY (id) +); \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202403193303.sql b/resource/sqlupgrade/Oracle/sql202403193303.sql new file mode 100644 index 000000000..d8a365183 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202403193303.sql @@ -0,0 +1,11 @@ +ALTER TABLE hrsa_employee_declare ADD ( +nationality varchar2(255) NULL , +birthplace varchar2(255) NULL , +tax_reasons varchar2(255) NULL , +entry_date date NULL , +departure_date date NULL +); +/ + +update hrsa_employee_declare set nationality = '中国' where nationality is null +/ \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202404120303.sql b/resource/sqlupgrade/Oracle/sql202404120303.sql new file mode 100644 index 000000000..c024ae2a7 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202404120303.sql @@ -0,0 +1,17 @@ +CREATE TABLE hrsa_tax_declare_status ( +id NUMBER(38,0) primary key NOT NULL, +tax_declare_record_id NUMBER(38,0) NULL , +report_type number NULL , +request_id varchar2(100) , +tax_declare_type number NULL , +tax_declare_status number NULL , +display_update_icon number NULL , +tax_declare_error_msg varchar2(1000) , +person_num number NULL , +tax_pay_amount varchar2(255) , +tax_paid_amount varchar2(255) , +tax_pure_paid_amount varchar2(255) , +declare_request_id varchar2(100) , +delete_type number NULL +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202403193303.sql b/resource/sqlupgrade/PG/sql202403193303.sql new file mode 100644 index 000000000..2e000d661 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202403193303.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_employee_declare +ADD COLUMN nationality varchar(255) NULL , +ADD COLUMN birthplace varchar(255) NULL , +ADD COLUMN tax_reasons varchar(255) NULL , +ADD COLUMN entry_date timestamp NULL DEFAULT NULL , +ADD COLUMN departure_date timestamp NULL DEFAULT NULL ; + +update hrsa_employee_declare set nationality = '中国' where nationality is null; \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202404120303.sql b/resource/sqlupgrade/PG/sql202404120303.sql new file mode 100644 index 000000000..6bad5c7fb --- /dev/null +++ b/resource/sqlupgrade/PG/sql202404120303.sql @@ -0,0 +1,17 @@ +CREATE TABLE hrsa_tax_declare_status ( +id bigserial NOT NULL , +tax_declare_record_id bigint NULL , +report_type int NULL , +request_id varchar(100) , +tax_declare_type int NULL , +tax_declare_status int NULL , +display_update_icon int NULL , +tax_declare_error_msg varchar(1000) , +person_num int NULL , +tax_pay_amount varchar(255) , +tax_paid_amount varchar(255) , +tax_pure_paid_amount varchar(255) , +declare_request_id varchar(100) , +delete_type int NULL, +PRIMARY KEY (id) +); \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202403193303.sql b/resource/sqlupgrade/SQLServer/sql202403193303.sql new file mode 100644 index 000000000..a1f345591 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202403193303.sql @@ -0,0 +1,10 @@ +ALTER TABLE hrsa_employee_declare +ADD nationality varchar(255) NULL , +ADD birthplace varchar(255) NULL , +ADD tax_reasons varchar(255) NULL , +entry_date datetime NULL , +departure_date datetime NULL +GO + +update hrsa_employee_declare set nationality = '中国' where nationality is null +GO \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202404120303.sql b/resource/sqlupgrade/SQLServer/sql202404120303.sql new file mode 100644 index 000000000..2a9169a28 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202404120303.sql @@ -0,0 +1,18 @@ +create table hrsa_tax_declare_status +( +id bigint primary key , +tax_declare_record_id bigint NULL , +report_type int NULL , +request_id varchar(100) , +tax_declare_type tinyint NULL , +tax_declare_status tinyint NULL , +display_update_icon tinyint NULL , +tax_declare_error_msg varchar(1000) , +person_num int NULL , +tax_pay_amount varchar(255) , +tax_paid_amount varchar(255) , +tax_pure_paid_amount varchar(255) , +declare_request_id varchar(100) , +delete_type int NULL +) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202403193303.sql b/resource/sqlupgrade/ST/sql202403193303.sql new file mode 100644 index 000000000..4238b2123 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202403193303.sql @@ -0,0 +1,12 @@ +ALTER TABLE hrsa_employee_declare ADD ( +nationality varchar2(255) NULL , +birthplace varchar2(255) NULL , +tax_reasons varchar2(255) NULL , +entry_date date NULL , +departure_date date NULL +); +/ + +update hrsa_employee_declare set nationality = '中国' where nationality is null; +/ + diff --git a/resource/sqlupgrade/ST/sql202404120303.sql b/resource/sqlupgrade/ST/sql202404120303.sql new file mode 100644 index 000000000..3ce4e54d0 --- /dev/null +++ b/resource/sqlupgrade/ST/sql202404120303.sql @@ -0,0 +1,18 @@ +CREATE TABLE hrsa_tax_declare_status ( +id NUMBER(38,0) primary key NOT NULL, +tax_declare_record_id NUMBER(38,0) NULL , +report_type number NULL , +request_id varchar2(100) , +tax_declare_type number NULL , +tax_declare_status number NULL , +display_update_icon number NULL , +tax_declare_error_msg varchar2(1000) , +person_num number NULL , +tax_pay_amount varchar2(255) , +tax_paid_amount varchar2(255) , +tax_pure_paid_amount varchar2(255) , +declare_request_id varchar2(100) , +delete_type number NULL +); +/ + diff --git a/resource/wiki/寰呮坊鍔爏ql b/resource/wiki/寰呮坊鍔爏ql new file mode 100644 index 000000000..44d2fbec2 --- /dev/null +++ b/resource/wiki/寰呮坊鍔爏ql @@ -0,0 +1,5 @@ +INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (700000000000000001, NULL, NULL, NULL, 0, 'all_teams', '1', '700', '褰撴湡鏀跺叆棰', 'royaltiesIncome', 'number', 'sre', NULL, 0); +INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (700000000000000002, NULL, NULL, NULL, 0, 'all_teams', '1', '700', '鍏嶇◣鏀跺叆', 'royaltiesTaxFreeIncome', 'number', 'mssd', NULL, 0); +INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (700000000000000003, NULL, NULL, NULL, 0, 'all_teams', '1', '700', '鍏朵粬', 'royaltiesOther', 'number', 'qt', NULL, 0); +INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (700000000000000004, NULL, NULL, NULL, 0, 'all_teams', '1', '700', '澶囨敞', 'royaltiesRemark', 'string', 'bz', NULL, 0); +INSERT INTO hrsa_tax_report_column(id, create_time, update_time, creator, delete_type, tenant_key, tax_report_type, income_category, report_column_name, report_column_data_index, data_type, request_param_key, report_column_label, contrast_type) VALUES (700000000000000005, NULL, NULL, NULL, 0, 'all_teams', '1', '700', '鍑忓厤绋庨', 'royaltiesTaxDeduction', 'number', 'jmse', NULL, 0); diff --git a/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareBO.java b/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareBO.java index 48898d83d..1e3b7243c 100644 --- a/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareBO.java +++ b/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareBO.java @@ -2,11 +2,8 @@ package com.engine.salary.entity.employeedeclare.bo; import com.engine.salary.entity.employeedeclare.dto.EmployeeDeclareExcelDTO; import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO; -import com.engine.salary.enums.employeedeclare.CardTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; -import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryI18nUtil; -import org.apache.commons.lang3.StringUtils; /** * @author Harryxzy @@ -23,22 +20,27 @@ public class EmployeeDeclareBO { EmployeeDeclarePO po = EmployeeDeclarePO.builder() .jobNum(dto.getJobNum()) .employeeName(dto.getEmployeeName()) - .cardType(dto.getCardType() == null ? null :CardTypeEnum.RESIDENT_IDENTITY_CARDS.getValue()) + .cardType(dto.getCardType()) .cardNum(dto.getCardNum()) - .employmentStatus(StringUtils.isBlank(dto.getEmploymentStatus()) ? null : new Integer(dto.getEmploymentStatus())) - .employmentType(StringUtils.isBlank(dto.getEmploymentType()) ? null : new Integer(dto.getEmploymentType())) + .nationality(dto.getNationality()) + .employmentStatus(dto.getEmploymentStatus()) + .employmentType(dto.getEmploymentType()) .employmentFirstYear(dto.getEmploymentFirstYear()) .mobile(dto.getMobile()) - .employmentDate(StringUtils.isBlank(dto.getEmploymentDate()) ? null : SalaryDateUtil.stringToDate(dto.getEmploymentDate()) ) - .dismissDate(StringUtils.isBlank(dto.getDismissDate()) ? null : SalaryDateUtil.stringToDate(dto.getDismissDate())) + .employmentDate(dto.getEmploymentDate()) + .dismissDate(dto.getDismissDate()) .disability(dto.getDisability()) .disabilityCardNo(dto.getDisabilityCardNo()) .martyrDependents(dto.getMartyrDependents()) .martyrDependentsCardNo(dto.getMartyrDependentsCardNo()) .lonelyOld(dto.getLonelyOld()) .deductExpenses(dto.getDeductExpenses()) - .gender(StringUtils.isBlank(dto.getGender()) ? null : new Integer(dto.getGender())) - .birthday(StringUtils.isBlank(dto.getBirthday()) ? null : SalaryDateUtil.stringToDate(dto.getBirthday())) + .entryDate(dto.getEntryDate()) + .departureDate(dto.getDepartureDate()) + .gender(dto.getGender()) + .birthplace(dto.getBirthplace()) + .birthday(dto.getBirthday()) + .taxReasons(dto.getTaxReasons()) .build(); return po; } diff --git a/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareList.java b/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareList.java index c63a55817..84cdfddff 100644 --- a/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareList.java +++ b/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareList.java @@ -55,6 +55,7 @@ public class EmployeeDeclareList { .setEmployeeName(employeeDeclare.getEmployeeName()) .setJobNum(employeeDeclare.getJobNum()) .setTaxAgentName(taxAgentNameMap.get(employeeDeclare.getTaxAgentId())) + .setNationality(employeeDeclare.getNationality()) .setCardType(cardTypeEnum == null ? "" : SalaryI18nUtil.getI18nLabel(cardTypeEnum.getLabelId(), cardTypeEnum.getDefaultLabel())) .setCardNum(employeeDeclare.getCardNum()) .setGender(genderEnum == null ? "" : genderEnum.getDefaultLabel()) diff --git a/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRefresh.java b/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRefresh.java index cccd8520e..78d1f5874 100644 --- a/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRefresh.java +++ b/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRefresh.java @@ -15,9 +15,9 @@ import com.engine.salary.enums.sicategory.DeleteTypeEnum; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.valid.SalaryCardUtil; import com.google.common.collect.Lists; -import com.engine.salary.util.db.IdGenerator; import lombok.Data; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -30,8 +30,6 @@ public class EmployeeDeclareRefresh { Result result = new Result(); // 鏈湀宸叉湁鐨勯渶瑕佹姤閫佺殑浜哄憳 Set employeeIds = SalaryEntityUtil.properties(dto.getEmployeeDeclares(), EmployeeDeclarePO::getEmployeeId); - // 鍛樺伐鐨勪釜浜轰俊鎭 - Map simpleUserInfoMap = SalaryEntityUtil.convert2Map(dto.getHrmEmployeeComInfos(), DataCollectionEmployee::getEmployeeId); // 钖祫妗f鐨勬暟鎹紙浠昏亴鍙楅泧浠庝笟绫诲瀷銆佽捣濮嬪彂钖棩鏈熴佹渶鍚庡彂钖棩鏈燂級 Map salaryArchiveMap = SalaryEntityUtil.convert2Map(dto.getSalaryArchives(), SalaryArchivePO::getEmployeeId); // 闈炵郴缁熶汉鍛樼殑鏁版嵁锛堜换鑱屽彈闆囦粠涓氱被鍨嬶級 @@ -103,26 +101,35 @@ public class EmployeeDeclareRefresh { if (employeeIds.contains(hrmEmployeeComInfo.getEmployeeId())) { continue; } - EmployeeDeclarePO employeeDeclare = initEmployeeDeclare(dto.getTaxAgentId(), dto.getTaxCycle(), now, employeeId); - DataCollectionEmployee simpleUserInfo = simpleUserInfoMap.get(hrmEmployeeComInfo.getEmployeeId()); - String idNum = simpleUserInfo != null && simpleUserInfo.getIdNo() != null ? simpleUserInfo.getIdNo().toUpperCase() : ""; + //鏄惁涓哄绫嶄汉鍛橈紝閫氳繃璇佷欢鍙风爜鍒ゆ柇 + String idNum = hrmEmployeeComInfo.getIdNo() != null ? hrmEmployeeComInfo.getIdNo().toUpperCase() : ""; + CardTypeEnum cardType = CardTypeEnum.RESIDENT_IDENTITY_CARDS; + if (!SalaryCardUtil.checkIdNum(idNum)) { + cardType = CardTypeEnum.FOREIGN_PASSPORT; + } + EmployeeDeclarePO employeeDeclare = initEmployeeDeclare(dto.getTaxAgentId(), dto.getTaxCycle(), employeeId); employeeDeclare.setEmployeeId(hrmEmployeeComInfo.getEmployeeId()); employeeDeclare.setEmployeeType(EmployeeTypeEnum.ORGANIZATION.getValue()); employeeDeclare.setEmployeeName(hrmEmployeeComInfo.getUsername()); employeeDeclare.setJobNum(hrmEmployeeComInfo.getWorkcode()); + employeeDeclare.setCardType(cardType.getValue()); employeeDeclare.setCardNum(idNum); - employeeDeclare.setGender(StringUtils.equalsIgnoreCase(hrmEmployeeComInfo.getSex(), GenderEnum.MALE.name()) ? GenderEnum.MALE.getValue() : GenderEnum.FEMALE.getValue()); - employeeDeclare.setBirthday(simpleUserInfo == null || simpleUserInfo.getBirthday() == null ? null : SalaryDateUtil.dateStrToLocalDate(simpleUserInfo.getBirthday())); + employeeDeclare.setGender(StringUtils.equalsIgnoreCase(hrmEmployeeComInfo.getSex(), GenderEnum.MALE.getValue().toString()) ? GenderEnum.MALE.getValue() : GenderEnum.FEMALE.getValue()); + employeeDeclare.setBirthday(hrmEmployeeComInfo.getBirthday() == null ? null : SalaryDateUtil.dateStrToLocalDate(hrmEmployeeComInfo.getBirthday())); employeeDeclare.setMobile(hrmEmployeeComInfo.getMobile()); if (StringUtils.isEmpty(idNum)) { employeeDeclare.setDeclareStatus(DeclareStatusEnum.DECLARE_FAIL.getValue()); - employeeDeclare.setDeclareErrorMsg(SalaryI18nUtil.getI18nLabel(187460, "韬唤璇佸彿涓嶈兘涓虹┖")); - } else if (!SalaryCardUtil.checkIdNum(idNum)) { - employeeDeclare.setDeclareStatus(DeclareStatusEnum.DECLARE_FAIL.getValue()); - employeeDeclare.setDeclareErrorMsg(SalaryI18nUtil.getI18nLabel(156510, "韬唤璇佸彿鏍煎紡閿欒")); - } else { + employeeDeclare.setDeclareErrorMsg(SalaryI18nUtil.getI18nLabel(187460, "璇佷欢鍙风爜涓嶈兘涓虹┖")); + } + if (cardType == CardTypeEnum.RESIDENT_IDENTITY_CARDS) { employeeDeclare.setGender(SalaryCardUtil.judgeGender(idNum).getValue()); employeeDeclare.setBirthday(SalaryDateUtil.localDateToDate(SalaryCardUtil.judgeBirthday(idNum))); + employeeDeclare.setNationality("涓浗"); + } else { + // fixme 闃垮瘜姹 +// employeeDeclare.setNationality("闃垮瘜姹"); +// employeeDeclare.setEntryDate(); +// employeeDeclare.setDepartureDate(); } // 瀵逛汉鍛樺鐞嗐屼汉鍛樼姸鎬併嶃併岀鑱屾棩鏈熴 SalaryArchivePO salaryArchive = salaryArchiveMap.get(employeeDeclare.getEmployeeId()); @@ -167,13 +174,11 @@ public class EmployeeDeclareRefresh { return result; } - private static EmployeeDeclarePO initEmployeeDeclare(Long taxAgentId, Date taxCycle, Date now, Long employeeId) { + private static EmployeeDeclarePO initEmployeeDeclare(Long taxAgentId, Date taxCycle, Long employeeId) { EmployeeDeclarePO employeeDeclarePO = new EmployeeDeclarePO(); employeeDeclarePO.setId(IdGenerator.generate()); employeeDeclarePO.setTaxAgentId(taxAgentId); employeeDeclarePO.setTaxCycle(taxCycle); - employeeDeclarePO.setCardType(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getValue()); - employeeDeclarePO.setGender(GenderEnum.MALE.getValue()); employeeDeclarePO.setEmploymentStatus(EmploymentStatusEnum.NORMAL.getValue()); employeeDeclarePO.setEmploymentType(EmploymentTypeEnum.EMPLOYEE.getValue()); employeeDeclarePO.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue()); @@ -190,8 +195,8 @@ public class EmployeeDeclareRefresh { employeeDeclarePO.setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY); employeeDeclarePO.setCreator(employeeId); employeeDeclarePO.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); - employeeDeclarePO.setCreateTime(now); - employeeDeclarePO.setUpdateTime(now); + employeeDeclarePO.setCreateTime(new Date()); + employeeDeclarePO.setUpdateTime(new Date()); return employeeDeclarePO; } diff --git a/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRequest.java b/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRequest.java index c40bcae9d..5527df49e 100644 --- a/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRequest.java +++ b/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRequest.java @@ -10,6 +10,7 @@ import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEnumUtil; import lombok.Data; import org.apache.commons.compress.utils.Lists; +import weaver.general.Util; import java.util.HashMap; import java.util.List; @@ -41,17 +42,20 @@ public class EmployeeDeclareRequest { // *濮撳悕 employeeInfoMap.put("xm", employeeDeclare.getEmployeeName()); // *璇佷欢绫诲瀷 - CardTypeEnum cardTypeEnum = SalaryEnumUtil.enumMatchByValue(employeeDeclare.getCardType(), CardTypeEnum.class); - employeeInfoMap.put("zzlx", cardTypeEnum == null ? "" : cardTypeEnum.getDefaultLabel()); + CardTypeEnum cardTypeEnum = CardTypeEnum.getByValue(employeeDeclare.getCardType()); + employeeInfoMap.put("zzlx", cardTypeEnum.getDefaultLabel()); // *璇佷欢鍙风爜 employeeInfoMap.put("zzhm", employeeDeclare.getCardNum()); // *鍥界睄 - employeeInfoMap.put("gj", "涓浗"); + String nationality = employeeDeclare.getNationality(); + employeeInfoMap.put("gj", nationality); + // 浜哄憳鍦板尯 + employeeInfoMap.put("rydq", cardTypeEnum == CardTypeEnum.RESIDENT_IDENTITY_CARDS ? "澧冨唴" : "澧冨"); // *鎬у埆 GenderEnum genderEnum = SalaryEnumUtil.enumMatchByValue(employeeDeclare.getGender(), GenderEnum.class); employeeInfoMap.put("xb", genderEnum == null ? "" : genderEnum.getDefaultLabel()); // *鍑虹敓鏃ユ湡 - employeeInfoMap.put("csny", employeeDeclare.getBirthday()); + employeeInfoMap.put("csny", SalaryDateUtil.getFormatLocalDate(employeeDeclare.getBirthday())); // *浜哄憳鐘舵 EmploymentStatusEnum employmentStatusEnum = SalaryEnumUtil.enumMatchByValue(employeeDeclare.getEmploymentStatus(), EmploymentStatusEnum.class); employeeInfoMap.put("nsrzt", employmentStatusEnum == null ? "" : employmentStatusEnum.getDefaultLabel()); @@ -88,18 +92,16 @@ public class EmployeeDeclareRequest { employeeInfoMap.put("grgbbl", ""); // 澶囨敞 employeeInfoMap.put("bz", ""); - // 浜哄憳鍦板尯 - employeeInfoMap.put("rydq", "澧冨唴"); // 涓枃鍚 employeeInfoMap.put("xmzw", ""); // 鍑虹敓鍦帮細 - employeeInfoMap.put("csd", ""); + employeeInfoMap.put("csd", Util.null2String(employeeDeclare.getBirthplace())); // 娑夌◣浜嬬敱 - employeeInfoMap.put("sssx", ""); + employeeInfoMap.put("sssx", Util.null2String(employeeDeclare.getTaxReasons())); // 棣栨鍏ュ鏃堕棿 - employeeInfoMap.put("scrjsj", ""); + employeeInfoMap.put("scrjsj", SalaryDateUtil.getFormatLocalDate(employeeDeclare.getEntryDate())); // 棰勮绂诲鏃堕棿 - employeeInfoMap.put("yjljsj", ""); + employeeInfoMap.put("yjljsj", SalaryDateUtil.getFormatLocalDate(employeeDeclare.getDepartureDate())); // 鍏朵粬璇佷欢绫诲瀷 employeeInfoMap.put("qtzzlx", ""); // 鍏朵粬璇佷欢鍙风爜 diff --git a/src/com/engine/salary/entity/employeedeclare/dto/EmployeeDeclareExcelDTO.java b/src/com/engine/salary/entity/employeedeclare/dto/EmployeeDeclareExcelDTO.java index 8880ce557..0da6dea75 100644 --- a/src/com/engine/salary/entity/employeedeclare/dto/EmployeeDeclareExcelDTO.java +++ b/src/com/engine/salary/entity/employeedeclare/dto/EmployeeDeclareExcelDTO.java @@ -11,6 +11,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import java.util.Date; import java.util.Set; /** @@ -67,27 +68,39 @@ public class EmployeeDeclareExcelDTO { // 璇佷欢绫诲瀷 @SalaryTableColumn(text = "璇佷欢绫诲瀷", width = "10%", column = "cardType") @TableTitle(title = "璇佷欢绫诲瀷", dataIndex = "cardType", key = "cardType") - private String cardType; + private Integer cardType; // 璇佷欢鍙风爜 @SalaryTableColumn(text = "璇佷欢鍙风爜", width = "10%", column = "cardNum") @TableTitle(title = "璇佷欢鍙风爜", dataIndex = "cardNum", key = "cardNum") private String cardNum; + // 鎬у埆 + @SalaryTableColumn(text = "鍥界睄", width = "10%", column = "nationality") + @TableTitle(title = "鍥界睄", dataIndex = "nationality", key = "nationality") + private String nationality; + // 鎬у埆 @SalaryTableColumn(text = "鎬у埆", width = "10%", column = "gender") @TableTitle(title = "鎬у埆", dataIndex = "gender", key = "gender") - private String gender; + private Integer gender; + + /** + * 鍑虹敓鍦 + */ + @SalaryTableColumn(text = "鍑虹敓鍦", width = "10%", column = "birthplace") + @TableTitle(title = "鍑虹敓鍦", dataIndex = "birthplace", key = "birthplace") + private String birthplace; // 鍑虹敓鏃ユ湡 @SalaryTableColumn(text = "鍑虹敓鏃ユ湡", width = "10%", column = "birthday") @TableTitle(title = "鍑虹敓鏃ユ湡", dataIndex = "birthday", key = "birthday") - private String birthday; + private Date birthday; // 浜哄憳鐘舵 @SalaryTableColumn(text = "浜哄憳鐘舵", width = "10%", column = "employmentStatus") @TableTitle(title = "浜哄憳鐘舵", dataIndex = "employmentStatus", key = "employmentStatus") - private String employmentStatus; + private Integer employmentStatus; // 鎵嬫満鍙风爜 @SalaryTableColumn(text = "鎵嬫満鍙风爜", width = "10%", column = "mobile") @@ -97,12 +110,12 @@ public class EmployeeDeclareExcelDTO { // 浠昏亴鍙楅泧浠庝笟绫诲瀷 @SalaryTableColumn(text = "浠昏亴鍙楅泧浠庝笟绫诲瀷", width = "10%", column = "employmentType") @TableTitle(title = "浠昏亴鍙楅泧浠庝笟绫诲瀷", dataIndex = "employmentType", key = "employmentType") - private String employmentType; + private Integer employmentType; // 浠昏亴鍙楅泧浠庝笟鏃ユ湡 @SalaryTableColumn(text = "浠昏亴鍙楅泧浠庝笟鏃ユ湡", width = "10%", column = "employmentDate") @TableTitle(title = "浠昏亴鍙楅泧浠庝笟鏃ユ湡", dataIndex = "employmentDate", key = "employmentDate") - private String employmentDate; + private Date employmentDate; // 鍏ヨ亴骞村害灏变笟鎯呭舰 private String employmentFirstYear; @@ -111,7 +124,33 @@ public class EmployeeDeclareExcelDTO { // 绂昏亴鏃ユ湡 @SalaryTableColumn(text = "绂昏亴鏃ユ湡", width = "10%", column = "dismissDate") @TableTitle(title = "绂昏亴鏃ユ湡", dataIndex = "dismissDate", key = "dismissDate") - private String dismissDate; + private Date dismissDate; + + /** + * 棣栨鍏ュ鏃堕棿 + */ + @SalaryTableColumn(text = "棣栨鍏ュ鏃堕棿", width = "10%", column = "entryDate") + @TableTitle(title = "棣栨鍏ュ鏃堕棿", dataIndex = "entryDate", key = "entryDate") + private Date entryDate; + + /** + * 棰勮绂诲鏃堕棿 + */ + @SalaryTableColumn(text = "棰勮绂诲鏃堕棿", width = "10%", column = "departureDate") + @TableTitle(title = "棰勮绂诲鏃堕棿", dataIndex = "departureDate", key = "departureDate") + private Date departureDate; + + /** + * 娑夌◣浜嬬敱锛 + * 浠昏亴鍙楅泧 + * 鎻愪緵涓存椂鍔冲姟 + * 杞璐骇 + * 浠庝簨鎶曡祫鍜岀粡钀ユ椿鍔 + * 鍏朵粬 + */ + @SalaryTableColumn(text = "娑夌◣浜嬬敱", width = "10%", column = "taxReasons") + @TableTitle(title = "娑夌◣浜嬬敱", dataIndex = "taxReasons", key = "taxReasons") + private String taxReasons; // 鏄惁娈嬬柧 private Integer disability; diff --git a/src/com/engine/salary/entity/employeedeclare/dto/EmployeeDeclareFromDTO.java b/src/com/engine/salary/entity/employeedeclare/dto/EmployeeDeclareFromDTO.java index 21aedf5d9..3abbb76d7 100644 --- a/src/com/engine/salary/entity/employeedeclare/dto/EmployeeDeclareFromDTO.java +++ b/src/com/engine/salary/entity/employeedeclare/dto/EmployeeDeclareFromDTO.java @@ -67,6 +67,23 @@ public class EmployeeDeclareFromDTO { @TableTitle(title = "鎬у埆", dataIndex = "gender", key = "gender") private GenderEnum gender; + /** + * 娑夌◣浜嬬敱锛 + * 浠昏亴鍙楅泧 + * 鎻愪緵涓存椂鍔冲姟 + * 杞璐骇 + * 浠庝簨鎶曡祫鍜岀粡钀ユ椿鍔 + * 鍏朵粬 + */ + @TableTitle(title = "娑夌◣浜嬬敱", dataIndex = "taxReasons", key = "taxReasons") + private String taxReasons; + + /** + * 鍑虹敓鍦 + */ + @TableTitle(title = "鍑虹敓鍦", dataIndex = "birthplace", key = "birthplace") + private String birthplace; + // 鍑虹敓鏃ユ湡 @TableTitle(title = "鍑虹敓鏃ユ湡", dataIndex = "birthday", key = "birthday") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @@ -94,6 +111,19 @@ public class EmployeeDeclareFromDTO { @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date dismissDate; + + // 棣栨鍏ュ鏃堕棿 + @TableTitle(title = "棣栨鍏ュ鏃堕棿", dataIndex = "entryDate", key = "entryDate") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date entryDate; + + // 棰勮绂诲鏃堕棿 + @TableTitle(title = "棰勮绂诲鏃堕棿", dataIndex = "departureDate", key = "departureDate") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date departureDate; + + + // 鏄惁娈嬬柧 @TableTitle(title = "鏄惁娈嬬柧", dataIndex = "disability", key = "disability") private SalaryOnOffEnum disability; diff --git a/src/com/engine/salary/entity/employeedeclare/dto/EmployeeDeclareListDTO.java b/src/com/engine/salary/entity/employeedeclare/dto/EmployeeDeclareListDTO.java index 76af21666..c56d8db93 100644 --- a/src/com/engine/salary/entity/employeedeclare/dto/EmployeeDeclareListDTO.java +++ b/src/com/engine/salary/entity/employeedeclare/dto/EmployeeDeclareListDTO.java @@ -70,6 +70,12 @@ public class EmployeeDeclareListDTO { @ExcelHead(title = "宸ュ彿", dataIndex = "jobNum") private String jobNum; + // 鍥界睄 + @SalaryTableColumn(text = "鍥界睄", width = "10%", column = "nationality") + @TableTitle(title = "鍥界睄", dataIndex = "nationality", key = "nationality") + @ExcelHead(title = "鍥界睄", dataIndex = "nationality") + private String nationality; + // 璇佷欢绫诲瀷 @SalaryTableColumn(text = "璇佷欢绫诲瀷", width = "10%", column = "cardType") @TableTitle(title = "璇佷欢绫诲瀷", dataIndex = "cardType", key = "cardType") diff --git a/src/com/engine/salary/entity/employeedeclare/param/EmployeeDeclareSaveParam.java b/src/com/engine/salary/entity/employeedeclare/param/EmployeeDeclareSaveParam.java index b61c2e713..02df109dd 100644 --- a/src/com/engine/salary/entity/employeedeclare/param/EmployeeDeclareSaveParam.java +++ b/src/com/engine/salary/entity/employeedeclare/param/EmployeeDeclareSaveParam.java @@ -22,75 +22,99 @@ import java.util.Date; @Data public class EmployeeDeclareSaveParam { - //涓婚敭id") + //涓婚敭id private Long id; /** * 鍙傛暟閿欒锛屼釜绋庢墸缂翠箟鍔′汉id涓嶈兘涓虹┖ */ - //涓◣鎵g即涔夊姟浜篿d") + //涓◣鎵g即涔夊姟浜篿d private Long taxAgentId; /** * 鍙傛暟閿欒锛岀◣娆炬墍灞炴湡鍙傛暟鏍煎紡閿欒 */ - //绋庢鎵灞炴湡") + //绋庢鎵灞炴湡 private Date taxCycle; - //鍛樺伐id") + //鍛樺伐id private Long employeeId; - //鍛樺伐绫诲瀷") + //鍛樺伐绫诲瀷 private EmployeeTypeEnum employeeType; - //濮撳悕") + //濮撳悕 private String employeeName; - //宸ュ彿") + //宸ュ彿 private String jobNum; - //璇佷欢绫诲瀷") + //鍥界睄 + private String nationality; + + /** + * 鍑虹敓鍦 + */ + private String birthplace; + + /** + * 娑夌◣浜嬬敱锛 + * 浠昏亴鍙楅泧 + * 鎻愪緵涓存椂鍔冲姟 + * 杞璐骇 + * 浠庝簨鎶曡祫鍜岀粡钀ユ椿鍔 + * 鍏朵粬 + */ + private String taxReasons; + + //璇佷欢绫诲瀷 private CardTypeEnum cardType; - //璇佷欢鍙风爜") + //璇佷欢鍙风爜 private String cardNum; - //鎬у埆") + //鎬у埆 private GenderEnum gender; - //鍑虹敓鏃ユ湡") + //鍑虹敓鏃ユ湡 private LocalDate birthday; - //鐘舵") + //鐘舵 private EmploymentStatusEnum employmentStatus; - //鎵嬫満鍙风爜") + //鎵嬫満鍙风爜 private String mobile; - //浠昏亴鍙楅泧浠庝笟绫诲瀷") + //浠昏亴鍙楅泧浠庝笟绫诲瀷 private EmploymentTypeEnum employmentType; - //浠昏亴鍙楅泧浠庝笟鏃ユ湡") + //浠昏亴鍙楅泧浠庝笟鏃ユ湡 private LocalDate employmentDate; - //绂昏亴鏃ユ湡") + //绂昏亴鏃ユ湡 private LocalDate dismissDate; - //鏄惁娈嬬柧") + //棣栨鍏ュ鏃堕棿 + private LocalDate entryDate; + + //棰勮绂诲鏃堕棿 + private LocalDate departureDate; + + //鏄惁娈嬬柧 private SalaryOnOffEnum disability; - //娈嬬柧璇佸彿") + //娈嬬柧璇佸彿 private String disabilityCardNo; - //鏄惁瀛よ") + //鏄惁瀛よ private SalaryOnOffEnum lonelyOld; - //鏄惁鏄儓灞") + //鏄惁鏄儓灞 private SalaryOnOffEnum martyrDependents; - //鐑堝睘璇佸彿") + //鐑堝睘璇佸彿 private String martyrDependentsCardNo; - //鏄惁鎵i櫎鍑忛櫎璐圭敤") + //鏄惁鎵i櫎鍑忛櫎璐圭敤 private SalaryOnOffEnum deductExpenses; } diff --git a/src/com/engine/salary/entity/employeedeclare/param/EmployeeInformationChangeParam.java b/src/com/engine/salary/entity/employeedeclare/param/EmployeeInformationChangeParam.java new file mode 100644 index 000000000..7809661f7 --- /dev/null +++ b/src/com/engine/salary/entity/employeedeclare/param/EmployeeInformationChangeParam.java @@ -0,0 +1,43 @@ +package com.engine.salary.entity.employeedeclare.param; + +import com.engine.salary.common.BaseQueryParam; +import com.engine.salary.enums.employeedeclare.CardTypeEnum; +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 浜哄憳鎶ラ + *

Copyright: Copyright (c) 2023

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class EmployeeInformationChangeParam extends BaseQueryParam { + + /** + * 浜哄憳璁板綍id + */ + @DataCheck(require = true,message = "鍙傛暟閿欒锛宨d涓嶈兘涓虹┖") + private Long id; + + /** + * + */ + private String name; + + //璇佷欢绫诲瀷 + private CardTypeEnum cardType; + + //璇佷欢鍙风爜 + private String cardNum; + + +} diff --git a/src/com/engine/salary/entity/employeedeclare/param/EmployeeInvalidParam.java b/src/com/engine/salary/entity/employeedeclare/param/EmployeeInvalidParam.java new file mode 100644 index 000000000..fa67731ce --- /dev/null +++ b/src/com/engine/salary/entity/employeedeclare/param/EmployeeInvalidParam.java @@ -0,0 +1,31 @@ +package com.engine.salary.entity.employeedeclare.param; + +import com.engine.salary.common.BaseQueryParam; +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 浜哄憳鎶ラ + *

Copyright: Copyright (c) 2023

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class EmployeeInvalidParam extends BaseQueryParam { + + /** + * 浜哄憳璁板綍id + */ + @DataCheck(require = true,message = "鍙傛暟閿欒锛宨d涓嶈兘涓虹┖") + private Long id; + + +} diff --git a/src/com/engine/salary/entity/employeedeclare/po/EmployeeDeclarePO.java b/src/com/engine/salary/entity/employeedeclare/po/EmployeeDeclarePO.java index 780eb90db..b282f68a8 100644 --- a/src/com/engine/salary/entity/employeedeclare/po/EmployeeDeclarePO.java +++ b/src/com/engine/salary/entity/employeedeclare/po/EmployeeDeclarePO.java @@ -2,6 +2,8 @@ package com.engine.salary.entity.employeedeclare.po; import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.enums.employeedeclare.CardTypeEnum; +import com.engine.salary.enums.employeedeclare.GenderEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -63,6 +65,13 @@ public class EmployeeDeclarePO { @ElogTransform(name = "浜哄憳鍚嶇О") private String employeeName; + /** + * 鍥界睄 + */ + @ElogTransform(name = "鍥界睄") + private String nationality; + + /** * 宸ュ彿 */ @@ -71,6 +80,7 @@ public class EmployeeDeclarePO { /** * 璇佷欢绫诲瀷 + * @see CardTypeEnum */ @ElogTransform(name = "璇佷欢绫诲瀷") private Integer cardType; @@ -80,9 +90,22 @@ public class EmployeeDeclarePO { */ @ElogTransform(name = "璇佷欢鍙风爜") private String cardNum; +// +// /** +// * 鍏朵粬璇佷欢绫诲瀷 +// */ +// @ElogTransform(name = "鍏朵粬璇佷欢绫诲瀷") +// private Integer otherCardType; +// +// /** +// * 鍏朵粬璇佷欢鍙风爜 +// */ +// @ElogTransform(name = "鍏朵粬璇佷欢鍙风爜") +// private String otherCardNum; /** * 鎬у埆 + * @see GenderEnum */ @ElogTransform(name = "鎬у埆") private Integer gender; @@ -93,6 +116,23 @@ public class EmployeeDeclarePO { @ElogTransform(name = "鍑虹敓鏃ユ湡") private Date birthday; + /** + * 鍑虹敓鍦 + */ + @ElogTransform(name = "鍑虹敓鍦") + private String birthplace; + + /** + * 娑夌◣浜嬬敱锛 + * 浠昏亴鍙楅泧 + * 鎻愪緵涓存椂鍔冲姟 + * 杞璐骇 + * 浠庝簨鎶曡祫鍜岀粡钀ユ椿鍔 + * 鍏朵粬 + */ + @ElogTransform(name = "娑夌◣浜嬬敱") + private String taxReasons; + /** * 鐘舵 */ @@ -129,6 +169,19 @@ public class EmployeeDeclarePO { @ElogTransform(name = "绂昏亴鏃ユ湡") private Date dismissDate; + + /** + * 棣栨鍏ュ鏃堕棿 + */ + @ElogTransform(name = "棣栨鍏ュ鏃堕棿") + private Date entryDate; + + /** + * 棰勮绂诲鏃堕棿 + */ + @ElogTransform(name = "棰勮绂诲鏃堕棿") + private Date departureDate; + /** * 鏄惁娈嬬柧 */ @@ -231,17 +284,22 @@ public class EmployeeDeclarePO { ", employeeId=" + employeeId + ", employeeType=" + employeeType + ", employeeName='" + employeeName + '\'' + + ", nationality='" + nationality + '\'' + ", jobNum='" + jobNum + '\'' + ", cardType=" + cardType + ", cardNum='" + cardNum + '\'' + ", gender=" + gender + ", birthday=" + birthday + + ", birthplace='" + birthplace + '\'' + + ", taxReasons='" + taxReasons + '\'' + ", employmentStatus=" + employmentStatus + ", mobile='" + mobile + '\'' + ", employmentType=" + employmentType + ", employmentFirstYear='" + employmentFirstYear + '\'' + ", employmentDate=" + employmentDate + ", dismissDate=" + dismissDate + + ", entryDate=" + entryDate + + ", departureDate=" + departureDate + ", disability=" + disability + ", disabilityCardNo='" + disabilityCardNo + '\'' + ", lonelyOld=" + lonelyOld + diff --git a/src/com/engine/salary/entity/taxagent/po/TaxAgentTaxReturnPO.java b/src/com/engine/salary/entity/taxagent/po/TaxAgentTaxReturnPO.java index b20fd8d43..ccbf1716c 100644 --- a/src/com/engine/salary/entity/taxagent/po/TaxAgentTaxReturnPO.java +++ b/src/com/engine/salary/entity/taxagent/po/TaxAgentTaxReturnPO.java @@ -41,7 +41,7 @@ public class TaxAgentTaxReturnPO implements Serializable { /** * 浼佷笟鍚嶇О */ - private Long taxAgentName; + private String taxAgentName; /** * 绋庡彿 diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java index 4879c1abb..b64ac8b12 100644 --- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java +++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationRequest.java @@ -6,7 +6,7 @@ import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO; import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO; import com.engine.salary.enums.employeedeclare.CardTypeEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; -import com.engine.salary.report.enums.IncomeCategoryEnum; +import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.util.SalaryEntityUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -146,7 +146,7 @@ public class TaxDeclarationRequest { // 濮撳悕 requestParam.put("xm", employeeDeclare.getEmployeeName()); // 璇佷欢绫诲瀷 - requestParam.put("zzlx", CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()); + requestParam.put("zzlx", CardTypeEnum.getByValue(employeeDeclare.getCardType()).getDefaultLabel()); // 璇佷欢鍙风爜 requestParam.put("zzhm", employeeDeclare.getCardNum()); // 鎵寰楅」鐩 @@ -162,4 +162,50 @@ public class TaxDeclarationRequest { } return requestParam; } + + + public static Map convert2fjmsdRequestParam(List taxReportColumns, + List taxDeclarations, + List taxDeclarationValues, + List employeeDeclares) { + Map> objRequestParam = Maps.newHashMap(); + Map>> listRequestParam = Maps.newHashMap(); + Map> taxReportColumnMap = SalaryEntityUtil.group2Map(taxReportColumns, TaxReportColumnPO::getIncomeCategory); + Map employeeDeclareMap = SalaryEntityUtil.convert2Map(employeeDeclares, EmployeeDeclarePO::getEmployeeId); + Map> taxDeclarationValueMap = SalaryEntityUtil.group2Map(taxDeclarationValues, TaxDeclarationValuePO::getTaxDeclarationId); + for (TaxDeclarationPO taxDeclaration : taxDeclarations) { + List values = taxDeclarationValueMap.get(taxDeclaration.getId()); + for (TaxDeclarationValuePO taxDeclarationValue : values) { + EmployeeDeclarePO employeeDeclare = employeeDeclareMap.get(taxDeclarationValue.getEmployeeId()); + IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory()); + if (employeeDeclare == null || incomeCategoryEnum == null) { + continue; + } + List taxReportColumnList = taxReportColumnMap.get(Util.null2String(incomeCategoryEnum.getValue())); + Map employeeRequestParam = convert2RequestParam(incomeCategoryEnum, taxReportColumnList, taxDeclarationValue, employeeDeclare); + if (incomeCategoryEnum == IncomeCategoryEnum.NON_RESIDENT_INCOME_WAGES_AND_SALARIES) { + // 鏃犱綇鎵涓汉姝e父宸ヨ祫钖噾 + List> employeeRequestParams = listRequestParam.computeIfAbsent("wjgzxjlb", k -> Lists.newArrayList()); + employeeRequestParams.add(employeeRequestParam); + } else if (incomeCategoryEnum == IncomeCategoryEnum.NON_RESIDENT_INCOME_MONTHLY_BONUS) { + // 鍏ㄥ勾涓娆℃у閲戞敹鍏 + List> employeeRequestParams = listRequestParam.computeIfAbsent("wjrysyjjlb", k -> Lists.newArrayList()); + employeeRequestParams.add(employeeRequestParam); + } else if (incomeCategoryEnum == IncomeCategoryEnum.NON_RESIDENT_INCOME_REMUNERATION_FOR_LABOR) { + // 鍐呴涓娆℃цˉ鍋块噾 + List> employeeRequestParams = listRequestParam.computeIfAbsent("lwbclb", k -> Lists.newArrayList()); + employeeRequestParams.add(employeeRequestParam); + } else if (incomeCategoryEnum == IncomeCategoryEnum.NON_RESIDENT_INCOME_COMPENSATION_FOR_DISMISS) { + // 瑙i櫎鍔冲姩鍚堝悓涓娆℃цˉ鍋块噾 + List> employeeRequestParams = listRequestParam.computeIfAbsent("jcldhtycxbcjlb", k -> Lists.newArrayList()); + employeeRequestParams.add(employeeRequestParam); + } + } + } + + Map requestParam = Maps.newHashMap(); + requestParam.putAll(objRequestParam); + requestParam.putAll(listRequestParam); + return requestParam; + } } diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationValueList.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationValueList.java index fd5a44593..f5e8acf8c 100644 --- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationValueList.java +++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationValueList.java @@ -92,7 +92,7 @@ public class TaxDeclarationValueList { if (employeeDeclare != null) { dataMap.put(cnKey ? "宸ュ彿" : "jobNum", employeeDeclare.getJobNum()); dataMap.put(cnKey ? "濮撳悕" : "username", employeeDeclare.getEmployeeName()); - dataMap.put(cnKey ? "璇佷欢绫诲瀷" : "cardType", SalaryI18nUtil.getI18nLabel(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getLabelId(), CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel())); + dataMap.put(cnKey ? "璇佷欢绫诲瀷" : "cardType",CardTypeEnum.getByValue(employeeDeclare.getCardType()).getDefaultLabel() ); dataMap.put(cnKey ? "璇佷欢鍙风爜" : "cardNum", employeeDeclare.getCardNum()); } else if (taxDeclarationValue.getEmployeeType() == null || Objects.equals(taxDeclarationValue.getEmployeeType(), EmployeeTypeEnum.ORGANIZATION.getValue())) { DataCollectionEmployee simpleEmployee = simpleEmployeeMap.get(taxDeclarationValue.getEmployeeId()); diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclareEmployeeBO.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclareEmployeeBO.java index 709b797df..1765ddc65 100644 --- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclareEmployeeBO.java +++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclareEmployeeBO.java @@ -56,7 +56,7 @@ public class TaxDeclareEmployeeBO { abnormalEmployeeListDTO .setEmployeeName(employeeDeclare.getEmployeeName()) .setJobNum(employeeDeclare.getJobNum()) - .setCardType(SalaryI18nUtil.getI18nLabel(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getLabelId(), CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel())) + .setCardType(CardTypeEnum.getByValue(employeeDeclare.getCardType()).getDefaultLabel()) .setCardNum(employeeDeclare.getCardNum()) .setDeclareStatus(declareStatusEnum) .setDeclareStatusDesc(declareStatusEnum == null ? "" : SalaryI18nUtil.getI18nLabel(declareStatusEnum.getLabelId(), declareStatusEnum.getDefaultLabel())); diff --git a/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationReportDTO.java b/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationReportDTO.java new file mode 100644 index 000000000..dbebb32bb --- /dev/null +++ b/src/com/engine/salary/entity/taxdeclaration/dto/TaxDeclarationReportDTO.java @@ -0,0 +1,33 @@ +package com.engine.salary.entity.taxdeclaration.dto; + +import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO; +import com.engine.salary.entity.taxdeclaration.po.TaxDeclareStatusPO; +import com.engine.salary.enums.salarysob.DeclareReportTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 涓◣鐢虫姤绫诲瀷 + *

Copyright: Copyright (c) 2023

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TaxDeclarationReportDTO { + + private DeclareReportTypeEnum reportType; + + private TaxDeclareStatusPO status; + + private List taxDeclarations; + +} diff --git a/src/com/engine/salary/entity/taxdeclaration/param/DeclareTaxResultFeedbackQueryParam.java b/src/com/engine/salary/entity/taxdeclaration/param/DeclareTaxResultFeedbackQueryParam.java index 7ce6c69c7..dbcdfccc8 100644 --- a/src/com/engine/salary/entity/taxdeclaration/param/DeclareTaxResultFeedbackQueryParam.java +++ b/src/com/engine/salary/entity/taxdeclaration/param/DeclareTaxResultFeedbackQueryParam.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.taxdeclaration.param; +import com.engine.salary.util.valid.DataCheck; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -12,7 +13,12 @@ import lombok.experimental.Accessors; @NoArgsConstructor @AllArgsConstructor public class DeclareTaxResultFeedbackQueryParam { + + @DataCheck(require = true, message = "涓◣鐢虫姤璁板綍id涓嶈兘涓虹┖锛") Long id; + @DataCheck(require = true, message = "鐢虫姤绫诲瀷涓嶈兘涓虹┖锛") + Integer reportType; + String requestId; } diff --git a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordParam.java b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordParam.java index 673fd4aa8..54b1ee11a 100644 --- a/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordParam.java +++ b/src/com/engine/salary/entity/taxdeclaration/param/TaxDeclareRecordParam.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.taxdeclaration.param; +import com.engine.salary.enums.salarysob.DeclareReportTypeEnum; import com.engine.salary.util.valid.DataCheck; import lombok.Data; @@ -14,6 +15,16 @@ import lombok.Data; @Data public class TaxDeclareRecordParam { - //涓◣鐢虫姤璁板綍id") + /** + * 涓◣鐢虫姤璁板綍id + */ + @DataCheck(require = true,message = "涓◣鐢虫姤璁板綍id涓嶈兘涓虹┖锛") private Long taxDeclareRecordId; + + /** + * 鐢虫姤绫诲瀷 + * @see DeclareReportTypeEnum + */ + @DataCheck(require = true,message = "鐢虫姤绫诲瀷涓嶈兘涓虹┖锛") + private Integer reportType; } diff --git a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclareRecordPO.java b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclareRecordPO.java index 6a6440435..d25ee490c 100644 --- a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclareRecordPO.java +++ b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclareRecordPO.java @@ -48,25 +48,32 @@ public class TaxDeclareRecordPO implements Serializable { private Date taxCycle; /** * 鐢虫姤绫诲瀷 + * * @see TaxDeclareTypeEnum */ + @Deprecated private Integer taxDeclareType; /** * 鐢虫姤鐘舵 + * * @see TaxDeclareStatusEnum */ + @Deprecated private Integer taxDeclareStatus; /** * 鐢虫姤澶辫触鐨勯敊璇俊鎭 */ + @Deprecated private String taxDeclareErrorMsg; /** * 璇锋眰鐨剅equestId */ + @Deprecated private String requestId; /** * 鐢虫姤鐨剅equestId锛岀敤浜庝笅杞界敵鎶ヨ繃绋 */ + @Deprecated private String declareRequestId; /** * 澶囨敞 @@ -74,15 +81,19 @@ public class TaxDeclareRecordPO implements Serializable { private String remark; //搴旂即閲戦 + @Deprecated private String taxPayAmount; //瀹炵即鎬婚 + @Deprecated private String taxPaidAmount; //瀹炵即绋庨锛堜笉鍚粸绾抽噾绛夛級 + @Deprecated private String taxPurePaidAmount; //鐢虫姤浜烘暟 + @Deprecated private Integer personNum; /** diff --git a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclareStatusPO.java b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclareStatusPO.java new file mode 100644 index 000000000..8919ed2f1 --- /dev/null +++ b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclareStatusPO.java @@ -0,0 +1,79 @@ +package com.engine.salary.entity.taxdeclaration.po; + +import com.engine.salary.enums.salarysob.DeclareReportTypeEnum; +import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TaxDeclareStatusPO { + /** + * ID + */ + private Long id; + /** + * 鐢虫姤璁板綍id + */ + private Long taxDeclareRecordId; + /** + * 鐢虫姤绫诲瀷 1锛氱患鍚堟墍寰; 2: 鍒嗙被鎵寰楋紱3锛氶潪灞呮皯鎵寰;4:闄愬敭鑲℃墍寰 + * @see DeclareReportTypeEnum + */ + private Integer reportType; + /** + * 渚涘簲鍟嗙涓夋柟绯荤粺杩斿洖鐨剅equestid + */ + private String requestId; + /** + * 鐢虫姤绫诲瀷 + */ + private Integer taxDeclareType; + /** + * 鐢虫姤鐘舵 + * @see TaxDeclareStatusEnum + */ + private Integer taxDeclareStatus; + /** + * 鍒锋柊鏍囪瘑 + */ + private Integer displayUpdateIcon; + /** + * 閿欒淇℃伅 + */ + private String taxDeclareErrorMsg; + /** + * 鐢虫姤浜烘暟 + */ + private Integer personNum; + /** + * 搴旂即 + */ + private String taxPayAmount; + /** + * 瀹炵即鎬婚 + */ + private String taxPaidAmount; + /** + * 瀹炵即锛堜笉鍚粸绾抽噾锛 + */ + private String taxPurePaidAmount; + /** + * 璁板綍鐢虫姤涓氬姟id锛岀敤浜庝笅杞藉唴缃畻绋庤繃绋 + */ + private String declareRequestId; + /** + * 鏄惁鍒犻櫎 + */ + private Integer deleteType; + + //涓婚敭id闆嗗悎 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/taxpayment/param/TaxPaymentQueryParam.java b/src/com/engine/salary/entity/taxpayment/param/TaxPaymentQueryParam.java index 6338da065..8e3fbbfef 100644 --- a/src/com/engine/salary/entity/taxpayment/param/TaxPaymentQueryParam.java +++ b/src/com/engine/salary/entity/taxpayment/param/TaxPaymentQueryParam.java @@ -44,4 +44,7 @@ public class TaxPaymentQueryParam { //鏄惁涓哄弽棣堟牎楠 0鍚 1鏄") private Integer checkFeedback; + + //鐢虫姤琛ㄧ被鍨 + private Integer reportType; } diff --git a/src/com/engine/salary/enums/employeedeclare/CardTypeEnum.java b/src/com/engine/salary/enums/employeedeclare/CardTypeEnum.java index a7f0de9d3..4b0af0325 100644 --- a/src/com/engine/salary/enums/employeedeclare/CardTypeEnum.java +++ b/src/com/engine/salary/enums/employeedeclare/CardTypeEnum.java @@ -2,6 +2,9 @@ package com.engine.salary.enums.employeedeclare; import com.engine.salary.enums.BaseEnum; +import java.util.Arrays; +import java.util.Objects; + /** * 璇佷欢绫诲瀷 *

Copyright: Copyright (c) 2023

@@ -12,7 +15,8 @@ import com.engine.salary.enums.BaseEnum; **/ public enum CardTypeEnum implements BaseEnum { - RESIDENT_IDENTITY_CARDS(0, "灞呮皯韬唤璇", 105564); + RESIDENT_IDENTITY_CARDS(0, "灞呮皯韬唤璇", 105564), + FOREIGN_PASSPORT(1, "澶栧浗鎶ょ収", 105564); CardTypeEnum(int value, String defaultLabel, int labelId) { this.value = value; @@ -40,4 +44,26 @@ public enum CardTypeEnum implements BaseEnum { public Integer getLabelId() { return labelId; } + + public static CardTypeEnum getByValue(Integer value) { + for (CardTypeEnum e : CardTypeEnum.values()) { + if (Objects.equals(e.getValue(), value)) { + return e; + } + } + return RESIDENT_IDENTITY_CARDS; + } + + public static CardTypeEnum getByDefaultLabel(String defaultLabel) { + if (defaultLabel == null) { + return null; + } + CardTypeEnum[] enumAry = CardTypeEnum.values(); + for(int i = 0; i < Arrays.asList(enumAry).size(); i++){ + if (enumAry[i].getDefaultLabel().equals(defaultLabel)) { + return enumAry[i]; + } + } + return null; + } } diff --git a/src/com/engine/salary/enums/employeedeclare/GenderEnum.java b/src/com/engine/salary/enums/employeedeclare/GenderEnum.java index a4849d129..f6590e131 100644 --- a/src/com/engine/salary/enums/employeedeclare/GenderEnum.java +++ b/src/com/engine/salary/enums/employeedeclare/GenderEnum.java @@ -3,6 +3,7 @@ package com.engine.salary.enums.employeedeclare; import com.engine.salary.enums.BaseEnum; import java.util.Arrays; +import java.util.Objects; /** * 鎬у埆 @@ -56,4 +57,13 @@ public enum GenderEnum implements BaseEnum { } return null; } + + public static GenderEnum getDefaultLabelByValue(Integer value) { + for (GenderEnum e : GenderEnum.values()) { + if (Objects.equals(e.getValue(), value)) { + return e; + } + } + return MALE; + } } diff --git a/src/com/engine/salary/enums/employeedeclare/TaxReasonEnum.java b/src/com/engine/salary/enums/employeedeclare/TaxReasonEnum.java new file mode 100644 index 000000000..26dc055d8 --- /dev/null +++ b/src/com/engine/salary/enums/employeedeclare/TaxReasonEnum.java @@ -0,0 +1,58 @@ +package com.engine.salary.enums.employeedeclare; + +import com.engine.salary.enums.BaseEnum; + +import java.util.Objects; + +/** + * 娑夌◣浜嬬敱 + *

Copyright: Copyright (c) 2023

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public enum TaxReasonEnum implements BaseEnum { + + Employment("浠昏亴鍙楅泧", "浠昏亴鍙楅泧", 105564), + PROVIDE_TEMPORARY_LABOR_SERVICES("鎻愪緵涓存椂鍔冲姟", "鎻愪緵涓存椂鍔冲姟", 105564), + TRANSFER_OF_PROPERTY("杞璐骇", "杞璐骇", 105564), + ENGAGE_IN_INVESTMENT_AND_BUSINESS_ACTIVITIES("浠庝簨鎶曡祫鍜岀粡钀ユ椿鍔", "浠庝簨鎶曡祫鍜岀粡钀ユ椿鍔", 105564), + OTHER("鍏朵粬", "鍏朵粬", 105564); + + TaxReasonEnum(String value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + private String value; + + private String defaultLabel; + + private int labelId; + + @Override + public String getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static TaxReasonEnum getDefaultLabelByValue(Integer value) { + for (TaxReasonEnum e : TaxReasonEnum.values()) { + if (Objects.equals(e.getValue(), value)) { + return e; + } + } + return Employment; + } +} diff --git a/src/com/engine/salary/enums/salarysob/DeclareReportTypeEnum.java b/src/com/engine/salary/enums/salarysob/DeclareReportTypeEnum.java new file mode 100644 index 000000000..2d99b4ebc --- /dev/null +++ b/src/com/engine/salary/enums/salarysob/DeclareReportTypeEnum.java @@ -0,0 +1,58 @@ +package com.engine.salary.enums.salarysob; + + +import com.engine.salary.enums.BaseEnum; + +import java.util.Objects; + +/** + * 鐢虫姤绫诲瀷 1锛氱患鍚堟墍寰; 2: 鍒嗙被鎵寰楋紱3锛氶潪灞呮皯鎵寰;4:闄愬敭鑲℃墍寰 + *

Copyright: Copyright (c) 2022

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public enum DeclareReportTypeEnum implements BaseEnum { + COMPREHENSIVE_INCOME(1, "缁煎悎鎵寰", 100133), + CLASSIFIED_INCOME(2, "鍒嗙被鎵寰", 86185), + NONRESIDENT_INCOME(3, "闈炲眳姘戞墍寰", 107369), + RESTRICTED_SHARES_INCOME(4, "闄愬敭鑲℃墍寰", 90633); + + private int value; + + private String defaultLabel; + + private int labelId; + + DeclareReportTypeEnum(int value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + + @Override + public Integer getValue() { + return value; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + public static DeclareReportTypeEnum parseByValue(Integer value) { + for (DeclareReportTypeEnum targetTypeEnum : DeclareReportTypeEnum.values()) { + if (Objects.equals(targetTypeEnum.getValue(), value)) { + return targetTypeEnum; + } + } + return null; + } +} diff --git a/src/com/engine/salary/enums/salarysob/IncomeCategoryEnum.java b/src/com/engine/salary/enums/salarysob/IncomeCategoryEnum.java index 71009b4e6..fbce1c59b 100644 --- a/src/com/engine/salary/enums/salarysob/IncomeCategoryEnum.java +++ b/src/com/engine/salary/enums/salarysob/IncomeCategoryEnum.java @@ -1,7 +1,7 @@ package com.engine.salary.enums.salarysob; import com.engine.salary.enums.BaseEnum; -import com.engine.salary.remote.tax.response.employee.GetDeclareTaxResultFeedbackResponse; +import com.engine.salary.remote.tax.response.declare.GetDeclareTaxResultFeedbackResponse; import com.engine.salary.util.excel.ExcelUtil; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; @@ -19,7 +19,7 @@ import java.util.*; public enum IncomeCategoryEnum implements BaseEnum { // todo 澶氳瑷 - WAGES_AND_SALARIES(1, "0101", "姝e父宸ヨ祫钖噾", 160487) { + WAGES_AND_SALARIES(1, "0101", "姝e父宸ヨ祫钖噾", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 160487) { @Override public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getZcgzxj().getSscglb(); @@ -28,7 +28,7 @@ public enum IncomeCategoryEnum implements BaseEnum { return result; } }, - REMUNERATION_FOR_LABOR(4, "0400", "涓鑸姵鍔℃姤閰墍寰", 160488) { + REMUNERATION_FOR_LABOR(4, "0400", "涓鑸姵鍔℃姤閰墍寰", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 160488) { @Override public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getLwbclb().getSscglb(); @@ -37,7 +37,7 @@ public enum IncomeCategoryEnum implements BaseEnum { return result; } }, - ONETIME_ANNUAL_BONUS(2, "0103", "鍏ㄥ勾涓娆℃у閲戞敹鍏", 160489) { + ONETIME_ANNUAL_BONUS(2, "0103", "鍏ㄥ勾涓娆℃у閲戞敹鍏", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 160489) { @Override public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getQnycxjjsslb().getSscglb(); @@ -46,7 +46,7 @@ public enum IncomeCategoryEnum implements BaseEnum { return result; } }, - COMPENSATION_FOR_RETIRE(107, "0107", "鍐呴涓娆℃цˉ鍋块噾", 181936) { + COMPENSATION_FOR_RETIRE(107, "0107", "鍐呴涓娆℃цˉ鍋块噾", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 181936) { @Override public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getNtycxbcjlb().getSscglb(); @@ -55,7 +55,7 @@ public enum IncomeCategoryEnum implements BaseEnum { return result; } }, - COMPENSATION_FOR_DISMISS(108, "0108", "瑙i櫎鍔冲姩鍚堝悓涓娆℃цˉ鍋块噾", 181937) { + COMPENSATION_FOR_DISMISS(108, "0108", "瑙i櫎鍔冲姩鍚堝悓涓娆℃цˉ鍋块噾", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 181937) { @Override public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getJcldhtycxbcjlb().getSscglb(); @@ -64,7 +64,7 @@ public enum IncomeCategoryEnum implements BaseEnum { return result; } }, - INCOME_FOR_INDIVIDUAL_EQUITY_INCENTIVE(109, "0109", "涓汉鑲℃潈婵鍔辨敹鍏", 181938) { + INCOME_FOR_INDIVIDUAL_EQUITY_INCENTIVE(109, "0109", "涓汉鑲℃潈婵鍔辨敹鍏", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 181938) { @Override public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getGrgqjl().getSscglb(); @@ -73,7 +73,7 @@ public enum IncomeCategoryEnum implements BaseEnum { return result; } }, - ANNUITY_RECEIPT(110, "0110", "骞撮噾棰嗗彇", 181939) { + ANNUITY_RECEIPT(110, "0110", "骞撮噾棰嗗彇", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 181939) { @Override public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getQynj().getSscglb(); @@ -82,7 +82,7 @@ public enum IncomeCategoryEnum implements BaseEnum { return result; } }, - INCOME_FOR_INSURANCE_SALESMAN(402, "0402", "淇濋櫓钀ラ攢鍛樹剑閲戞敹鍏", 181940) { + INCOME_FOR_INSURANCE_SALESMAN(402, "0402", "淇濋櫓钀ラ攢鍛樹剑閲戞敹鍏", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 181940) { @Override public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getBxyxy().getSscglb(); @@ -91,7 +91,7 @@ public enum IncomeCategoryEnum implements BaseEnum { return result; } }, - INCOME_FOR_SECURITIES_BROKER(403, "0403", "璇佸埜缁忕邯浜轰剑閲戞敹鍏", 181942) { + INCOME_FOR_SECURITIES_BROKER(403, "0403", "璇佸埜缁忕邯浜轰剑閲戞敹鍏", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 181942) { @Override public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getZqjjr().getSscglb(); @@ -100,7 +100,7 @@ public enum IncomeCategoryEnum implements BaseEnum { return result; } }, - REMUNERATION_FOR_OTHER_CONTINUOUS_LABOR(489, "0489", "鍏朵粬杩炵画鍔冲姟鎶ラ叕鎵寰", 181943) { + REMUNERATION_FOR_OTHER_CONTINUOUS_LABOR(489, "0489", "鍏朵粬杩炵画鍔冲姟鎶ラ叕鎵寰", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 181943) { @Override public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getQtlxlwbc().getSscglb(); @@ -109,7 +109,7 @@ public enum IncomeCategoryEnum implements BaseEnum { return result; } }, - REMUNERATION_FOR_OTHER_LABOR(499, "0499", "鍏朵粬闈炶繛缁姵鍔℃姤閰墍寰", 175330) { + REMUNERATION_FOR_OTHER_LABOR(499, "0499", "鍏朵粬闈炶繛缁姵鍔℃姤閰墍寰", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 175330) { @Override public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getQtflxlwbc().getSscglb(); @@ -118,7 +118,7 @@ public enum IncomeCategoryEnum implements BaseEnum { return result; } }, - REMUNERATION_FOR_AUTHOR(500, "0500", "绋块叕鎵寰", 181944) { + REMUNERATION_FOR_AUTHOR(500, "0500", "绋块叕鎵寰", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 181944) { @Override public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getGcsdlb().getSscglb(); @@ -127,7 +127,7 @@ public enum IncomeCategoryEnum implements BaseEnum { return result; } }, - ROYALTIES(600, "0600", "鐗硅鏉冧娇鐢ㄨ垂鎵寰", 181945) { + ROYALTIES(600, "0600", "鐗硅鏉冧娇鐢ㄨ垂鎵寰", DeclareReportTypeEnum.COMPREHENSIVE_INCOME, 181945) { @Override public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { List zhsd = declareTaxResultFeedbackResponse.getBody().getZhsd().getTxq().getSscglb(); @@ -136,25 +136,63 @@ public enum IncomeCategoryEnum implements BaseEnum { return result; } }, - ; + NON_RESIDENT_INCOME_WAGES_AND_SALARIES(700, "0700", "鏃犱綇鎵涓汉姝e父宸ヨ祫钖噾", DeclareReportTypeEnum.NONRESIDENT_INCOME, 181945) { + @Override + public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { + List fjmsd = declareTaxResultFeedbackResponse.getBody().getFjmsd().getWjgzxjlb().getSscglb(); + List> sheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.fjmsd.fjmsdssjgdx.fjmsdscbw.class, fjmsd); + result.put(this.getDefaultLabel(), sheetData); + return result; + } + }, + NON_RESIDENT_INCOME_MONTHLY_BONUS(710, "0710", "鏃犱綇鎵涓汉鏁版湀濂栭噾", DeclareReportTypeEnum.NONRESIDENT_INCOME, 181945) { + @Override + public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { + List fjmsd = declareTaxResultFeedbackResponse.getBody().getFjmsd().getWjrysyjjlb().getSscglb(); + List> sheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.fjmsd.fjmsdssjgdx.fjmsdscbw.class, fjmsd); + result.put(this.getDefaultLabel(), sheetData); + return result; + } + }, + NON_RESIDENT_INCOME_REMUNERATION_FOR_LABOR(720, "0720", "涓鑸姵鍔℃姤閰墍寰", DeclareReportTypeEnum.NONRESIDENT_INCOME, 181945) { + @Override + public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { + List fjmsd = declareTaxResultFeedbackResponse.getBody().getFjmsd().getLwbclb().getSscglb(); + List> sheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.fjmsd.fjmsdssjgdx.fjmsdscbw.class, fjmsd); + result.put(this.getDefaultLabel(), sheetData); + return result; + } + }, + NON_RESIDENT_INCOME_COMPENSATION_FOR_DISMISS(730, "0730", "瑙i櫎鍔冲姩鍚堝悓涓娆℃цˉ鍋块噾", DeclareReportTypeEnum.NONRESIDENT_INCOME, 181945) { + @Override + public Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse) { + List fjmsd = declareTaxResultFeedbackResponse.getBody().getFjmsd().getJcldhtycxbcjlb().getSscglb(); + List> sheetData = ExcelUtil.getExcelSheetData(GetDeclareTaxResultFeedbackResponse.Body.fjmsd.fjmsdssjgdx.fjmsdscbw.class, fjmsd); + result.put(this.getDefaultLabel(), sheetData); + return result; + } + }; private int value; private String code; + private DeclareReportTypeEnum reportType; + private String defaultLabel; private int labelId; - IncomeCategoryEnum(int value, String code, String defaultLabel, int labelId) { + IncomeCategoryEnum(int value, String code, String defaultLabel, DeclareReportTypeEnum reportType, int labelId) { this.value = value; this.code = code; this.defaultLabel = defaultLabel; + this.reportType = reportType; this.labelId = labelId; } - public abstract Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse); + public abstract Map>> parseGetDeclareTaxResultFeedbackResponse(Map>> result, GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse); @Override public Integer getValue() { @@ -175,6 +213,10 @@ public enum IncomeCategoryEnum implements BaseEnum { return defaultLabel; } + public DeclareReportTypeEnum getReportType() { + return reportType; + } + public static IncomeCategoryEnum parseByValue(Integer value) { for (IncomeCategoryEnum incomeCategoryEnum : IncomeCategoryEnum.values()) { diff --git a/src/com/engine/salary/mapper/employeedeclare/EmployeeDeclareMapper.xml b/src/com/engine/salary/mapper/employeedeclare/EmployeeDeclareMapper.xml index 008deae95..c5d985ffc 100644 --- a/src/com/engine/salary/mapper/employeedeclare/EmployeeDeclareMapper.xml +++ b/src/com/engine/salary/mapper/employeedeclare/EmployeeDeclareMapper.xml @@ -9,6 +9,7 @@ + @@ -20,6 +21,8 @@ + + @@ -34,6 +37,8 @@ + + @@ -47,6 +52,7 @@ , t.employee_type , t.employee_name , t.job_num + , t.nationality , t.card_type , t.card_num , t.gender @@ -57,6 +63,8 @@ , t.employment_first_year , t.employment_date , t.dismiss_date + , t.entry_date + , t.departure_date , t.disability , t.disability_card_no , t.lonely_old @@ -72,6 +80,8 @@ , t.delete_type , t.create_time , t.update_time + , t.birthplace + , t.tax_reasons @@ -118,6 +128,9 @@ AND job_num = #{jobNum} + + AND nationality = #{nationality} + AND card_type = #{cardType} @@ -238,6 +251,9 @@ job_num, + + nationality, + card_type, @@ -268,6 +284,12 @@ dismiss_date, + + entry_date, + + + departure_date, + disability, @@ -313,6 +335,12 @@ update_time, + + birthplace, + + + tax_reasons, + @@ -336,6 +364,9 @@ #{jobNum}, + + #{nationality}, + #{cardType}, @@ -366,6 +397,12 @@ #{dismissDate}, + + #{entryDate}, + + + #{departureDate}, + #{disability}, @@ -411,6 +448,12 @@ #{updateTime}, + + #{birthplace}, + + + #{taxReasons}, + @@ -420,6 +463,7 @@ ( birthday, card_num, + nationality, card_type, create_time, creator, @@ -430,6 +474,8 @@ disability, disability_card_no, dismiss_date, + entry_date, + departure_date, employee_id, employee_name, employee_type, @@ -449,12 +495,15 @@ tax_agent_id, tax_cycle, tenant_key, - update_time + update_time, + birthplace, + tax_reasons ) VALUES ( #{item.birthday}, #{item.cardNum}, + #{item.nationality}, #{item.cardType}, #{item.createTime}, #{item.creator}, @@ -465,6 +514,8 @@ #{item.disability}, #{item.disabilityCardNo}, #{item.dismissDate}, + #{item.entryDate}, + #{item.departureDate}, #{item.employeeId}, #{item.employeeName}, #{item.employeeType}, @@ -484,7 +535,9 @@ #{item.taxAgentId}, #{item.taxCycle}, #{item.tenantKey}, - #{item.updateTime} + #{item.updateTime}, + #{item.birthplace}, + #{item.taxReasons} ) @@ -494,6 +547,7 @@ INSERT INTO hrsa_employee_declare ( birthday, card_num, + nationality, card_type, create_time, creator, @@ -504,6 +558,8 @@ disability, disability_card_no, dismiss_date, + entry_date, + departure_date, employee_id, employee_name, employee_type, @@ -523,14 +579,17 @@ tax_agent_id, tax_cycle, tenant_key, - update_time + update_time, + birthplace, + tax_reasons ) select #{item.birthday,jdbcType=DATE}, #{item.cardNum,jdbcType=VARCHAR}, - #{item.cardType,jdbcType=}, + #{item.nationality,jdbcType=VARCHAR}, + #{item.cardType,jdbcType=INTEGER}, #{item.createTime,jdbcType=DATE}, #{item.creator,jdbcType=DOUBLE}, #{item.declareErrorMsg,jdbcType=VARCHAR}, @@ -540,6 +599,8 @@ #{item.disability,jdbcType=INTEGER}, #{item.disabilityCardNo,jdbcType=VARCHAR}, #{item.dismissDate,jdbcType=DATE}, + #{item.entryDate,jdbcType=DATE}, + #{item.departureDate,jdbcType=DATE}, #{item.employeeId,jdbcType=DOUBLE}, #{item.employeeName,jdbcType=VARCHAR}, #{item.employeeType,jdbcType=INTEGER}, @@ -559,7 +620,9 @@ #{item.taxAgentId,jdbcType=DOUBLE}, #{item.taxCycle,jdbcType=DATE}, #{item.tenantKey,jdbcType=VARCHAR}, - #{item.updateTime,jdbcType=DATE} + #{item.updateTime,jdbcType=DATE}, + #{item.birthplace,jdbcType=VARCHAR}, + #{item.taxReasons,jdbcType=VARCHAR} from dual @@ -570,6 +633,7 @@ INSERT INTO hrsa_employee_declare ( birthday, card_num, + nationality, card_type, create_time, creator, @@ -580,6 +644,8 @@ disability, disability_card_no, dismiss_date, + entry_date, + departure_date, employee_id, employee_name, employee_type, @@ -599,12 +665,15 @@ tax_agent_id, tax_cycle, tenant_key, - update_time + update_time, + birthplace, + tax_reasons ) VALUES ( #{item.birthday}, #{item.cardNum}, + #{item.nationality}, #{item.cardType}, #{item.createTime}, #{item.creator}, @@ -615,6 +684,8 @@ #{item.disability}, #{item.disabilityCardNo}, #{item.dismissDate}, + #{item.entryDate}, + #{item.departureDate}, #{item.employeeId}, #{item.employeeName}, #{item.employeeType}, @@ -634,7 +705,9 @@ #{item.taxAgentId}, #{item.taxCycle}, #{item.tenantKey}, - #{item.updateTime} + #{item.updateTime}, + #{item.birthplace}, + #{item.taxReasons} ) @@ -650,6 +723,7 @@ employee_type=#{employeeType}, employee_name=#{employeeName}, job_num=#{jobNum}, + nationality=#{nationality}, card_type=#{cardType}, card_num=#{cardNum}, gender=#{gender}, @@ -660,6 +734,8 @@ employment_first_year=#{employmentFirstYear}, employment_date=#{employmentDate}, dismiss_date=#{dismissDate}, + entry_date=#{entryDate}, + departure_date=#{departureDate}, disability=#{disability}, disability_card_no=#{disabilityCardNo}, lonely_old=#{lonelyOld}, @@ -675,6 +751,8 @@ delete_type=#{deleteType}, create_time=#{createTime}, update_time=#{updateTime}, + birthplace=#{birthplace}, + tax_reasons=#{taxReasons}, WHERE id = #{id} AND delete_type = 0 @@ -702,6 +780,9 @@ job_num=#{jobNum}, + + nationality=#{nationality}, + card_type=#{cardType}, @@ -730,6 +811,10 @@ employment_date=#{employmentDate}, dismiss_date=#{dismissDate}, + entry_date=#{entryDate}, + departure_date=#{departureDate}, + birthplace=#{birthplace}, + tax_reasons=#{taxReasons}, disability=#{disability}, diff --git a/src/com/engine/salary/mapper/taxagent/TaxAgentTaxReturnMapper.xml b/src/com/engine/salary/mapper/taxagent/TaxAgentTaxReturnMapper.xml index d5ecfdbe5..da28243a6 100644 --- a/src/com/engine/salary/mapper/taxagent/TaxAgentTaxReturnMapper.xml +++ b/src/com/engine/salary/mapper/taxagent/TaxAgentTaxReturnMapper.xml @@ -19,6 +19,7 @@ + @@ -69,7 +70,8 @@ - SELECT FROM hrsa_tax_agent_tax_return t @@ -401,8 +403,11 @@ diff --git a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclareStatusMapper.java b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclareStatusMapper.java new file mode 100644 index 000000000..21c269d52 --- /dev/null +++ b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclareStatusMapper.java @@ -0,0 +1,74 @@ +package com.engine.salary.mapper.taxdeclaration; + +import com.engine.salary.entity.taxdeclaration.po.TaxDeclareStatusPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface TaxDeclareStatusMapper { + + /** + * 鏌ヨ鎵鏈夎褰 + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listAll(); + + /** + * 鏉′欢鏌ヨ + * + * @return 杩斿洖闆嗗悎锛屾病鏈夎繑鍥炵┖List + */ + List listSome(TaxDeclareStatusPO taxDeclareStatus); + + + /** + * 鏍规嵁涓婚敭鏌ヨ + * + * @param id 涓婚敭 + * @return 杩斿洖璁板綍锛屾病鏈夎繑鍥瀗ull + */ + TaxDeclareStatusPO getById(Long id); + + TaxDeclareStatusPO getDeclareStatus(@Param("taxDeclareRecordId")Long taxDeclareRecordId,@Param("reportType")Integer reportType); + + /** + * 鏂板锛屽拷鐣ull瀛楁 + * + * @param taxDeclareStatus 鏂板鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int insertIgnoreNull(TaxDeclareStatusPO taxDeclareStatus); + + /** + * 淇敼锛屼慨鏀规墍鏈夊瓧娈 + * + * @param taxDeclareStatus 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int update(TaxDeclareStatusPO taxDeclareStatus); + + /** + * 淇敼锛屽拷鐣ull瀛楁 + * + * @param taxDeclareStatus 淇敼鐨勮褰 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int updateIgnoreNull(TaxDeclareStatusPO taxDeclareStatus); + + /** + * 鍒犻櫎璁板綍 + * + * @param taxDeclareStatus 寰呭垹闄ょ殑璁板綍 + * @return 杩斿洖褰卞搷琛屾暟 + */ + int delete(TaxDeclareStatusPO taxDeclareStatus); + + /** + * 鎵归噺鍒犻櫎璁板綍 + * @param ids 涓婚敭id闆嗗悎 + */ + void deleteByIds(@Param("ids") Collection ids); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/taxdeclaration/TaxDeclareStatusMapper.xml b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclareStatusMapper.xml new file mode 100644 index 000000000..8257acf88 --- /dev/null +++ b/src/com/engine/salary/mapper/taxdeclaration/TaxDeclareStatusMapper.xml @@ -0,0 +1,311 @@ + + + + + + + + + + + + + + + + + + + + + + + t + . + id + , t.tax_declare_record_id + , t.report_type + , t.request_id + , t.tax_declare_type + , t.tax_declare_status + , t.display_update_icon + , t.tax_declare_error_msg + , t.person_num + , t.tax_pay_amount + , t.tax_paid_amount + , t.tax_pure_paid_amount + , t.declare_request_id + , t.delete_type + + + + + + + + + + + + + + + + + + INSERT INTO hrsa_tax_declare_status + + + + id, + + + tax_declare_record_id, + + + report_type, + + + request_id, + + + tax_declare_type, + + + tax_declare_status, + + + display_update_icon, + + + tax_declare_error_msg, + + + person_num, + + + tax_pay_amount, + + + tax_paid_amount, + + + tax_pure_paid_amount, + + + declare_request_id, + + + delete_type, + + + + + #{id}, + + + #{taxDeclareRecordId}, + + + #{reportType}, + + + #{requestId}, + + + #{taxDeclareType}, + + + #{taxDeclareStatus}, + + + #{displayUpdateIcon}, + + + #{taxDeclareErrorMsg}, + + + #{personNum}, + + + #{taxPayAmount}, + + + #{taxPaidAmount}, + + + #{taxPurePaidAmount}, + + + #{declareRequestId}, + + + #{deleteType}, + + + + + + + + + UPDATE hrsa_tax_declare_status + + tax_declare_record_id=#{taxDeclareRecordId}, + report_type=#{reportType}, + request_id=#{requestId}, + tax_declare_type=#{taxDeclareType}, + tax_declare_status=#{taxDeclareStatus}, + display_update_icon=#{displayUpdateIcon}, + tax_declare_error_msg=#{taxDeclareErrorMsg}, + person_num=#{personNum}, + tax_pay_amount=#{taxPayAmount}, + tax_paid_amount=#{taxPaidAmount}, + tax_pure_paid_amount=#{taxPurePaidAmount}, + declare_request_id=#{declareRequestId}, + delete_type=#{deleteType}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_tax_declare_status + + + tax_declare_record_id=#{taxDeclareRecordId}, + + + report_type=#{reportType}, + + + request_id=#{requestId}, + + + tax_declare_type=#{taxDeclareType}, + + + tax_declare_status=#{taxDeclareStatus}, + + + display_update_icon=#{displayUpdateIcon}, + + + tax_declare_error_msg=#{taxDeclareErrorMsg}, + + + person_num=#{personNum}, + + + tax_pay_amount=#{taxPayAmount}, + + + tax_paid_amount=#{taxPaidAmount}, + + + tax_pure_paid_amount=#{taxPurePaidAmount}, + + + declare_request_id=#{declareRequestId}, + + + delete_type=#{deleteType}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_tax_declare_status + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_tax_declare_status + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/remote/tax/client/DeclareClient.java b/src/com/engine/salary/remote/tax/client/DeclareClient.java index bd7a500da..532affabd 100644 --- a/src/com/engine/salary/remote/tax/client/DeclareClient.java +++ b/src/com/engine/salary/remote/tax/client/DeclareClient.java @@ -1,6 +1,6 @@ package com.engine.salary.remote.tax.client; -import com.engine.salary.remote.tax.response.employee.GetDeclareTaxResultFeedbackResponse; +import com.engine.salary.remote.tax.response.declare.GetDeclareTaxResultFeedbackResponse; import com.engine.salary.util.HttpUtil; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.SingnatureData; diff --git a/src/com/engine/salary/remote/tax/client/EmployeeClient.java b/src/com/engine/salary/remote/tax/client/EmployeeClient.java index 90da29385..0bbee002f 100644 --- a/src/com/engine/salary/remote/tax/client/EmployeeClient.java +++ b/src/com/engine/salary/remote/tax/client/EmployeeClient.java @@ -2,7 +2,10 @@ package com.engine.salary.remote.tax.client; import com.engine.salary.entity.employeedeclare.param.EmployeeDeclareParam; import com.engine.salary.enums.taxagent.TaxAgentTaxReturnPasswordTypeEnum; +import com.engine.salary.remote.tax.request.employee.BatchInvalidSubmissionRequest; import com.engine.salary.remote.tax.request.employee.GetCompanyEmployeeRequest; +import com.engine.salary.remote.tax.request.employee.InformationChangeRequest; +import com.engine.salary.remote.tax.request.employee.MergedEmployeeArchivesRequest; import com.engine.salary.remote.tax.response.employee.GetCompanyEmployeeResponse; import com.engine.salary.util.HttpUtil; import com.engine.salary.util.JsonUtil; @@ -11,8 +14,10 @@ import com.engine.salary.util.SingnatureData; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import java.util.Collections; import java.util.HashMap; import java.util.Map; +import java.util.UUID; /** * 浜哄憳淇℃伅鐧昏鎶ラ佸鎴风 @@ -34,8 +39,8 @@ public class EmployeeClient extends TaxBaseClient { String url = super.apiConfig.getHost() + "gateway/iit/data/getCompanyEmployee"; GetCompanyEmployeeRequest getCompanyEmployeeRequest = new GetCompanyEmployeeRequest(); - getCompanyEmployeeRequest.setNsrsbh( returnPO.getTaxCode()); - getCompanyEmployeeRequest.setQymc(""); + getCompanyEmployeeRequest.setNsrsbh(returnPO.getTaxCode()); + getCompanyEmployeeRequest.setQymc(returnPO.getTaxAgentName()); getCompanyEmployeeRequest.setDjxhid(StringUtils.isNotEmpty(returnPO.getTaxRegistrationNumber()) ? returnPO.getTaxRegistrationNumber() : null); getCompanyEmployeeRequest.setAreaid(returnPO.getAreaCode()); getCompanyEmployeeRequest.setBmbh(StringUtils.isNotEmpty(returnPO.getDepartmentCode()) ? returnPO.getDepartmentCode() : null); @@ -45,10 +50,10 @@ public class EmployeeClient extends TaxBaseClient { getCompanyEmployeeRequest.setSmzh(realNamePwd ? returnPO.getRealAccount() : null); getCompanyEmployeeRequest.setSmmm(realNamePwd ? returnPO.getPwd() : null); getCompanyEmployeeRequest.setJmsmmm("0"); - getCompanyEmployeeRequest.setMmlx(""+returnPO.getPasswordType()); + getCompanyEmployeeRequest.setMmlx("" + returnPO.getPasswordType()); getCompanyEmployeeRequest.setSsyf(SalaryDateUtil.getFormatYYYYMM(param.getTaxCycle())); - getCompanyEmployeeRequest.setPageNo(""+param.getCurrent()); - getCompanyEmployeeRequest.setPageSize(""+param.getPageSize()); + getCompanyEmployeeRequest.setPageNo("" + param.getCurrent()); + getCompanyEmployeeRequest.setPageSize("" + param.getPageSize()); String reqJson = JsonUtil.toJsonString(getCompanyEmployeeRequest); log.info("getCompanyEmployee params --- \n{}\n", reqJson); @@ -62,4 +67,107 @@ public class EmployeeClient extends TaxBaseClient { } + public String batchInvalidSubmission(BatchInvalidSubmissionRequest batchInvalidSubmissionRequest) { + + String url = super.apiConfig.getHost() + "gateway/iit/declare/batchInvalidSubmission"; + batchInvalidSubmissionRequest.setNsrsbh(returnPO.getTaxCode()); + batchInvalidSubmissionRequest.setBizNo(UUID.randomUUID().toString().replace("-", "")); + batchInvalidSubmissionRequest.setQymc(returnPO.getTaxAgentName()); + batchInvalidSubmissionRequest.setDjxhid(StringUtils.isNotEmpty(returnPO.getTaxRegistrationNumber()) ? returnPO.getTaxRegistrationNumber() : null); + batchInvalidSubmissionRequest.setAreaid(returnPO.getAreaCode()); + batchInvalidSubmissionRequest.setBmbh(StringUtils.isNotEmpty(returnPO.getDepartmentCode()) ? returnPO.getDepartmentCode() : null); + boolean realNamePwd = TaxAgentTaxReturnPasswordTypeEnum.REAL_NAME_PASSWORD.getValue().equals(returnPO.getPasswordType()); + batchInvalidSubmissionRequest.setSbmm(realNamePwd ? null : returnPO.getPwd()); + batchInvalidSubmissionRequest.setJmsbmm("0"); + batchInvalidSubmissionRequest.setSmzh(realNamePwd ? returnPO.getRealAccount() : null); + batchInvalidSubmissionRequest.setSmmm(realNamePwd ? returnPO.getPwd() : null); + batchInvalidSubmissionRequest.setJmsmmm("0"); + batchInvalidSubmissionRequest.setMmlx("" + returnPO.getPasswordType()); + + + String reqJson = JsonUtil.toJsonString(batchInvalidSubmissionRequest); + log.info("batchInvalidSubmission params --- \n{}\n", reqJson); + Map params = new HashMap<>(1); + Map header = SingnatureData.initHeader(params, apiConfig.getAppKey(), apiConfig.getAppSecret()); + + // 寮濮嬭姹 + String res = HttpUtil.doPost(url, header, reqJson, HttpUtil.JSON_TYPE); + log.info("batchInvalidSubmission res --- {}", res); +// return JsonUtil.parseObject(res, GetCompanyEmployeeResponse.class); + return res; + } + + public String informationChange(InformationChangeRequest informationChangeRequest) { + + String url = super.apiConfig.getHost() + "gateway/iit/employee/informationChange"; + informationChangeRequest.setNsrsbh(returnPO.getTaxCode()); + informationChangeRequest.setBizNo(UUID.randomUUID().toString().replace("-", "")); + informationChangeRequest.setQymc(returnPO.getTaxAgentName()); + informationChangeRequest.setDjxhid(StringUtils.isNotEmpty(returnPO.getTaxRegistrationNumber()) ? returnPO.getTaxRegistrationNumber() : null); + informationChangeRequest.setAreaid(returnPO.getAreaCode()); + informationChangeRequest.setBmbh(StringUtils.isNotEmpty(returnPO.getDepartmentCode()) ? returnPO.getDepartmentCode() : null); + boolean realNamePwd = TaxAgentTaxReturnPasswordTypeEnum.REAL_NAME_PASSWORD.getValue().equals(returnPO.getPasswordType()); + informationChangeRequest.setSbmm(realNamePwd ? null : returnPO.getPwd()); + informationChangeRequest.setJmsbmm("0"); + informationChangeRequest.setSmzh(realNamePwd ? returnPO.getRealAccount() : null); + informationChangeRequest.setSmmm(realNamePwd ? returnPO.getPwd() : null); + informationChangeRequest.setJmsmmm("0"); + informationChangeRequest.setMmlx("" + returnPO.getPasswordType()); + + + String reqJson = JsonUtil.toJsonString(informationChangeRequest); + log.info("informationChangeRequest params --- \n{}\n", reqJson); + Map params = new HashMap<>(1); + Map header = SingnatureData.initHeader(params, apiConfig.getAppKey(), apiConfig.getAppSecret()); + + // 寮濮嬭姹 + String res = HttpUtil.doPost(url, header, reqJson, HttpUtil.JSON_TYPE); + log.info("informationChangeRequest res --- {}", res); +// return JsonUtil.parseObject(res, GetCompanyEmployeeResponse.class); + return res; + } + + + public String mergedEmployeeArchives(MergedEmployeeArchivesRequest mergedEmployeeArchivesRequest) { + + String url = super.apiConfig.getHost() + "gateway/iit/mergedEmployeeArchives/query"; + mergedEmployeeArchivesRequest.setNsrsbh(returnPO.getTaxCode()); + mergedEmployeeArchivesRequest.setBizNo(UUID.randomUUID().toString().replace("-", "")); + mergedEmployeeArchivesRequest.setQymc(returnPO.getTaxAgentName()); + mergedEmployeeArchivesRequest.setDjxhid(StringUtils.isNotEmpty(returnPO.getTaxRegistrationNumber()) ? returnPO.getTaxRegistrationNumber() : null); + mergedEmployeeArchivesRequest.setAreaid(returnPO.getAreaCode()); + mergedEmployeeArchivesRequest.setBmbh(StringUtils.isNotEmpty(returnPO.getDepartmentCode()) ? returnPO.getDepartmentCode() : null); + boolean realNamePwd = TaxAgentTaxReturnPasswordTypeEnum.REAL_NAME_PASSWORD.getValue().equals(returnPO.getPasswordType()); + mergedEmployeeArchivesRequest.setSbmm(realNamePwd ? null : returnPO.getPwd()); + mergedEmployeeArchivesRequest.setJmsbmm("0"); + mergedEmployeeArchivesRequest.setSmzh(realNamePwd ? returnPO.getRealAccount() : null); + mergedEmployeeArchivesRequest.setSmmm(realNamePwd ? returnPO.getPwd() : null); + mergedEmployeeArchivesRequest.setJmsmmm("0"); + mergedEmployeeArchivesRequest.setMmlx("" + returnPO.getPasswordType()); + + + String reqJson = JsonUtil.toJsonString(mergedEmployeeArchivesRequest); + log.info("mergedEmployeeArchivesRequest params --- \n{}\n", reqJson); + Map params = new HashMap<>(1); + Map header = SingnatureData.initHeader(params, apiConfig.getAppKey(), apiConfig.getAppSecret()); + + // 寮濮嬭姹 + String res = HttpUtil.doPost(url, header, reqJson, HttpUtil.JSON_TYPE); + log.info("mergedEmployeeArchivesRequest res --- {}", res); +// return JsonUtil.parseObject(res, GetCompanyEmployeeResponse.class); + return res; + } + + public String mergedEmployeeArchivesFeedback(String requestId) { + + String url = super.apiConfig.getHost() + "gateway/iit/mergedEmployeeArchives/getFeedback"; + Map params = new HashMap<>(1); + params.put("requestId", requestId); + log.info("mergedEmployeeArchivesFeedback requestId --- \n{}\n", requestId); + Map header = SingnatureData.initHeader(Collections.emptyMap(), apiConfig.getAppKey(), apiConfig.getAppSecret()); + String res = HttpUtil.getRequest(url, header, params); + log.info("mergedEmployeeArchivesFeedback res --- {}", res); +// return JsonUtil.parseObject(res, GetCompanyEmployeeResponse.class); + return res; + } } diff --git a/src/com/engine/salary/remote/tax/client/PaymentClient.java b/src/com/engine/salary/remote/tax/client/PaymentClient.java new file mode 100644 index 000000000..8c9571071 --- /dev/null +++ b/src/com/engine/salary/remote/tax/client/PaymentClient.java @@ -0,0 +1,62 @@ +package com.engine.salary.remote.tax.client; + +import com.engine.salary.enums.taxagent.TaxAgentTaxReturnPasswordTypeEnum; +import com.engine.salary.remote.tax.request.payment.QueryArrearageRequest; +import com.engine.salary.util.HttpUtil; +import com.engine.salary.util.JsonUtil; +import com.engine.salary.util.SingnatureData; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +@Slf4j +public class PaymentClient extends TaxBaseClient { + public PaymentClient(Long taxAgentId) { + super(taxAgentId); + } + + public void queryArrearage(String taxCycle) { + QueryArrearageRequest queryArrearageRequest = new QueryArrearageRequest(); + queryArrearageRequest.setNsrsbh(returnPO.getTaxCode()); + queryArrearageRequest.setQymc(returnPO.getTaxAgentName()); + queryArrearageRequest.setDjxhid(StringUtils.isNotEmpty(returnPO.getTaxRegistrationNumber()) ? returnPO.getTaxRegistrationNumber() : null); + queryArrearageRequest.setAreaid(returnPO.getAreaCode()); + queryArrearageRequest.setBmbh(StringUtils.isNotEmpty(returnPO.getDepartmentCode()) ? returnPO.getDepartmentCode() : null); + boolean realNamePwd = TaxAgentTaxReturnPasswordTypeEnum.REAL_NAME_PASSWORD.getValue().equals(returnPO.getPasswordType()); + queryArrearageRequest.setSbmm(realNamePwd ? null : returnPO.getPwd()); + queryArrearageRequest.setJmsbmm("0"); + queryArrearageRequest.setSmzh(realNamePwd ? returnPO.getRealAccount() : null); + queryArrearageRequest.setSmmm(realNamePwd ? returnPO.getPwd() : null); + queryArrearageRequest.setJmsmmm("0"); + queryArrearageRequest.setMmlx("" + returnPO.getPasswordType()); + + queryArrearageRequest.setBizNo(UUID.randomUUID().toString()); + queryArrearageRequest.setSkssq(taxCycle); + + + String reqJson = JsonUtil.toJsonString(queryArrearageRequest); + + String url = super.apiConfig.getHost() + "/gateway/iit/payment/queryArrearage"; + Map params = new HashMap<>(1); + Map header = SingnatureData.initHeader(params, apiConfig.getAppKey(), apiConfig.getAppSecret()); + String res = HttpUtil.doPost(url, header, reqJson, HttpUtil.JSON_TYPE); + System.out.println(res); + + getArrearageQueryFeedback(""); + } + + public void getArrearageQueryFeedback(String requestId) { + Map params = new HashMap<>(1); + params.put("requestId", "43dd5abf686946f59cfea50a51f8183a"); + Map header = SingnatureData.initHeader(Collections.emptyMap(), apiConfig.getAppKey(), apiConfig.getAppSecret()); + String url = super.apiConfig.getHost() + "/gateway/iit/payment/getArrearageQueryFeedback"; + String res = HttpUtil.getRequest(url, header, params); + + System.out.println(res); + } + +} diff --git a/src/com/engine/salary/remote/tax/request/employee/BatchInvalidSubmissionRequest.java b/src/com/engine/salary/remote/tax/request/employee/BatchInvalidSubmissionRequest.java new file mode 100644 index 000000000..a56c5103f --- /dev/null +++ b/src/com/engine/salary/remote/tax/request/employee/BatchInvalidSubmissionRequest.java @@ -0,0 +1,71 @@ +package com.engine.salary.remote.tax.request.employee; + +import lombok.Data; + +import java.util.List; + +@Data +public class BatchInvalidSubmissionRequest { + + + private String bizNo; + + /** + * 绋庡彿 蹇呭~锛氭槸 鎵g即鍗曚綅绾崇◣浜鸿瘑鍒彿 + */ + private String nsrsbh; + /** + * 浼佷笟鍚嶇О 蹇呭~锛氭槸 鎵g即涔夊姟浜哄悕绉帮細渚嬪锛氭祴璇曠綉缁滅鎶鏈夐檺鍏徃 + */ + private String qymc; + /** + * 鐧昏搴忓彿 蹇呭~锛氭潯浠跺繀濉 瀛樺湪澶氫釜鐧昏搴忓彿鏃讹紝闇瑕佹寚瀹氫紶鍏ヤ竴涓.渚嬶細10117440105249764755 + */ + private String djxhid; + /** + * 鍦板尯缂栧彿 蹇呭~锛氭槸 6浣嶈鏀垮尯鍒掍唬鐮,绮剧‘鍒板競绾э紝渚嬪锛440100,,鍙傝冪渷甯傚尯缂栫爜 + */ + private String areaid; + /** + * 閮ㄩ棬缂栧彿 蹇呭~锛氭潯浠跺繀濉 鍒嗛儴闂ㄤ唬鎶ユ椂蹇呬紶 + */ + private String bmbh; + /** + * 鐢虫姤瀵嗙爜 蹇呭~锛氭潯浠跺繀濉 褰搈mlx=0鏃讹紝蹇呭~ + */ + private String sbmm; + /** + * 鍔犲瘑瀹炲悕瀵嗙爜 蹇呭~锛氬惁 榛樿涓嶄紶鍒欒缃负0锛0琛ㄧず涓嶅姞瀵嗭紱1琛ㄧず鍔犲瘑 + */ + private String jmsbmm; + /** + * 瀹炲悕璐﹀彿 蹇呭~锛氭槸 + */ + private String smzh; + /** + * 瀹炲悕瀵嗙爜 蹇呭~锛氭槸 + */ + private String smmm; + /** + * 鍔犲瘑瀹炲悕瀵嗙爜 蹇呭~锛氬惁 榛樿涓嶄紶鍒欒缃负0锛0琛ㄧず涓嶅姞瀵嗭紱1琛ㄧず鍔犲瘑 鍙傝3.4浠f姤銆佸疄鍚嶅瘑鐮佸姞瀵嗚鏄 + */ + private String jmsmmm; + + /** + * 瀵嗙爜绫诲瀷 蹇呭~锛氭槸 0琛ㄧず鐢虫姤瀵嗙爜锛 2琛ㄧず瀹炲悕璐﹀彿瀹炲悕瀵嗙爜 + */ + private String mmlx; + + /** + * 浜哄憳鍒楄〃 蹇呭~锛氭槸 + */ + protected List rylb; + + + @Data + public static class RY { + private String xm; + private String zzhm; + private String zzlx; + } +} diff --git a/src/com/engine/salary/remote/tax/request/employee/InformationChangeRequest.java b/src/com/engine/salary/remote/tax/request/employee/InformationChangeRequest.java new file mode 100644 index 000000000..32d364545 --- /dev/null +++ b/src/com/engine/salary/remote/tax/request/employee/InformationChangeRequest.java @@ -0,0 +1,60 @@ +package com.engine.salary.remote.tax.request.employee; + +import lombok.Data; + +@Data +public class InformationChangeRequest { + + + private String bizNo; + + /** + * 绋庡彿 蹇呭~锛氭槸 鎵g即鍗曚綅绾崇◣浜鸿瘑鍒彿 + */ + private String nsrsbh; + /** + * 浼佷笟鍚嶇О 蹇呭~锛氭槸 鎵g即涔夊姟浜哄悕绉帮細渚嬪锛氭祴璇曠綉缁滅鎶鏈夐檺鍏徃 + */ + private String qymc; + /** + * 鐧昏搴忓彿 蹇呭~锛氭潯浠跺繀濉 瀛樺湪澶氫釜鐧昏搴忓彿鏃讹紝闇瑕佹寚瀹氫紶鍏ヤ竴涓.渚嬶細10117440105249764755 + */ + private String djxhid; + /** + * 鍦板尯缂栧彿 蹇呭~锛氭槸 6浣嶈鏀垮尯鍒掍唬鐮,绮剧‘鍒板競绾э紝渚嬪锛440100,,鍙傝冪渷甯傚尯缂栫爜 + */ + private String areaid; + /** + * 閮ㄩ棬缂栧彿 蹇呭~锛氭潯浠跺繀濉 鍒嗛儴闂ㄤ唬鎶ユ椂蹇呬紶 + */ + private String bmbh; + /** + * 鐢虫姤瀵嗙爜 蹇呭~锛氭潯浠跺繀濉 褰搈mlx=0鏃讹紝蹇呭~ + */ + private String sbmm; + /** + * 鍔犲瘑瀹炲悕瀵嗙爜 蹇呭~锛氬惁 榛樿涓嶄紶鍒欒缃负0锛0琛ㄧず涓嶅姞瀵嗭紱1琛ㄧず鍔犲瘑 + */ + private String jmsbmm; + /** + * 瀹炲悕璐﹀彿 蹇呭~锛氭槸 + */ + private String smzh; + /** + * 瀹炲悕瀵嗙爜 蹇呭~锛氭槸 + */ + private String smmm; + /** + * 鍔犲瘑瀹炲悕瀵嗙爜 蹇呭~锛氬惁 榛樿涓嶄紶鍒欒缃负0锛0琛ㄧず涓嶅姞瀵嗭紱1琛ㄧず鍔犲瘑 鍙傝3.4浠f姤銆佸疄鍚嶅瘑鐮佸姞瀵嗚鏄 + */ + private String jmsmmm; + + /** + * 瀵嗙爜绫诲瀷 蹇呭~锛氭槸 0琛ㄧず鐢虫姤瀵嗙爜锛 2琛ㄧず瀹炲悕璐﹀彿瀹炲悕瀵嗙爜 + */ + private String mmlx; + + private String xm; + private String zzlx; + private String zzhm; +} diff --git a/src/com/engine/salary/remote/tax/request/employee/MergedEmployeeArchivesRequest.java b/src/com/engine/salary/remote/tax/request/employee/MergedEmployeeArchivesRequest.java new file mode 100644 index 000000000..fa6c67adf --- /dev/null +++ b/src/com/engine/salary/remote/tax/request/employee/MergedEmployeeArchivesRequest.java @@ -0,0 +1,71 @@ +package com.engine.salary.remote.tax.request.employee; + +import lombok.Data; + +import java.util.List; + +@Data +public class MergedEmployeeArchivesRequest { + + + private String bizNo; + + /** + * 绋庡彿 蹇呭~锛氭槸 鎵g即鍗曚綅绾崇◣浜鸿瘑鍒彿 + */ + private String nsrsbh; + /** + * 浼佷笟鍚嶇О 蹇呭~锛氭槸 鎵g即涔夊姟浜哄悕绉帮細渚嬪锛氭祴璇曠綉缁滅鎶鏈夐檺鍏徃 + */ + private String qymc; + /** + * 鐧昏搴忓彿 蹇呭~锛氭潯浠跺繀濉 瀛樺湪澶氫釜鐧昏搴忓彿鏃讹紝闇瑕佹寚瀹氫紶鍏ヤ竴涓.渚嬶細10117440105249764755 + */ + private String djxhid; + /** + * 鍦板尯缂栧彿 蹇呭~锛氭槸 6浣嶈鏀垮尯鍒掍唬鐮,绮剧‘鍒板競绾э紝渚嬪锛440100,,鍙傝冪渷甯傚尯缂栫爜 + */ + private String areaid; + /** + * 閮ㄩ棬缂栧彿 蹇呭~锛氭潯浠跺繀濉 鍒嗛儴闂ㄤ唬鎶ユ椂蹇呬紶 + */ + private String bmbh; + /** + * 鐢虫姤瀵嗙爜 蹇呭~锛氭潯浠跺繀濉 褰搈mlx=0鏃讹紝蹇呭~ + */ + private String sbmm; + /** + * 鍔犲瘑瀹炲悕瀵嗙爜 蹇呭~锛氬惁 榛樿涓嶄紶鍒欒缃负0锛0琛ㄧず涓嶅姞瀵嗭紱1琛ㄧず鍔犲瘑 + */ + private String jmsbmm; + /** + * 瀹炲悕璐﹀彿 蹇呭~锛氭槸 + */ + private String smzh; + /** + * 瀹炲悕瀵嗙爜 蹇呭~锛氭槸 + */ + private String smmm; + /** + * 鍔犲瘑瀹炲悕瀵嗙爜 蹇呭~锛氬惁 榛樿涓嶄紶鍒欒缃负0锛0琛ㄧず涓嶅姞瀵嗭紱1琛ㄧず鍔犲瘑 鍙傝3.4浠f姤銆佸疄鍚嶅瘑鐮佸姞瀵嗚鏄 + */ + private String jmsmmm; + + /** + * 瀵嗙爜绫诲瀷 蹇呭~锛氭槸 0琛ㄧず鐢虫姤瀵嗙爜锛 2琛ㄧず瀹炲悕璐﹀彿瀹炲悕瀵嗙爜 + */ + private String mmlx; + + /** + * 浜哄憳鍒楄〃 蹇呭~锛氭槸 + */ + protected List bdrys; + + + @Data + public static class RY { + private String xm; + private String zzlx; + private String zzhm; + } +} diff --git a/src/com/engine/salary/remote/tax/request/payment/QueryArrearageRequest.java b/src/com/engine/salary/remote/tax/request/payment/QueryArrearageRequest.java new file mode 100644 index 000000000..e61c59ec2 --- /dev/null +++ b/src/com/engine/salary/remote/tax/request/payment/QueryArrearageRequest.java @@ -0,0 +1,64 @@ +package com.engine.salary.remote.tax.request.payment; + +import lombok.Data; + +@Data +public class QueryArrearageRequest { + /** + * 澶栭儴涓氬姟缂栧彿 蹇呭~锛氭槸 澶栭儴涓氬姟缂栧彿锛屽敮涓锛屽箓绛夐渶瑕侊紝鏈闀64浣,寤鸿浣跨敤UUID + */ + private String bizNo; + /** + * 浼佷笟鍚嶇О 蹇呭~锛氭槸 浠f姤浼佷笟鍏ㄧО + */ + private String qymc; + /** + * 瀵嗙爜绫诲瀷 蹇呭~锛氬惁 榛樿涓嶄紶鍒欒缃负0锛 0琛ㄧず鐢虫姤瀵嗙爜锛2琛ㄧず瀹炲悕璐﹀彿瀹炲悕瀵嗙爜 + */ + private String mmlx; + /** + * 瀹炲悕璐﹀彿 蹇呭~锛氶夋嫨蹇呭~ 褰搈mlx=2鏃讹紝蹇呭~ + */ + private String smzh; + /** + * 瀹炲悕瀵嗙爜 蹇呭~锛氶夋嫨蹇呭~ 褰搈mlx=2鏃讹紝蹇呭~ + */ + private String smmm; + /** + * 鍔犲瘑瀹炲悕瀵嗙爜 蹇呭~锛氬惁 榛樿涓嶄紶鍒欒缃负0锛0琛ㄧず涓嶅姞瀵嗭紱1琛ㄧず鍔犲瘑 鍙傝3.4浠f姤銆佸疄鍚嶅瘑鐮佸姞瀵嗚鏄 + */ + private String jmsmmm; + + /** + * 鐧昏搴忓彿 蹇呭~锛氬惁 瀛樺湪澶氫釜鐧昏搴忓彿鏃讹紝闇瑕佹寚瀹氫紶鍏ヤ竴涓.渚嬶細10117440105249764755 + */ + private String djxhid; + /** + * 绋庡彿 蹇呭~锛氭槸 鎵g即鍗曚綅绾崇◣浜鸿瘑鍒彿 + */ + private String nsrsbh; + /** + * 绋庢鎵灞炴湡 蹇呭~锛氭槸 榛樿涓哄綋鍓嶆湀浠斤紝鏍煎紡YYYYMM + */ + private String skssq; + /** + * 鍦板尯缂栧彿 蹇呭~锛氭槸 6浣嶈鏀垮尯鍒掍唬鐮,绮剧‘鍒板競绾э紝渚嬪锛440100,鍙傝冪渷甯傚尯缂栫爜 + */ + private String areaid; + /** + * 閮ㄩ棬缂栧彿 蹇呭~锛氬惁 鍒嗛儴闂ㄤ唬鎶ユ椂蹇呬紶 + */ + private String bmbh; + /** + * 閮ㄩ棬鍚嶇О 蹇呭~锛氬惁 + */ + private String bmmc; + /** + * 鐢虫姤瀵嗙爜 蹇呭~锛氭潯浠跺繀濉 褰搈mlx=0鏃讹紝蹇呭~ + */ + private String sbmm; + /** + * 鍔犲瘑鐢虫姤瀵嗙爜 蹇呭~锛氬惁 榛樿涓嶄紶鍒欒缃负0锛0琛ㄧず涓嶅姞瀵嗭紱1琛ㄧず鍔犲瘑 + */ + private String jmsbmm; +} diff --git a/src/com/engine/salary/remote/tax/response/employee/GetDeclareTaxResultFeedbackResponse.java b/src/com/engine/salary/remote/tax/response/declare/GetDeclareTaxResultFeedbackResponse.java similarity index 73% rename from src/com/engine/salary/remote/tax/response/employee/GetDeclareTaxResultFeedbackResponse.java rename to src/com/engine/salary/remote/tax/response/declare/GetDeclareTaxResultFeedbackResponse.java index 43995fb0c..6691cdb96 100644 --- a/src/com/engine/salary/remote/tax/response/employee/GetDeclareTaxResultFeedbackResponse.java +++ b/src/com/engine/salary/remote/tax/response/declare/GetDeclareTaxResultFeedbackResponse.java @@ -1,4 +1,4 @@ -package com.engine.salary.remote.tax.response.employee; +package com.engine.salary.remote.tax.response.declare; import com.engine.salary.annotation.SalaryTableColumn; import com.engine.salary.entity.taxpayment.response.BaseResponse; @@ -51,19 +51,16 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse { // * 鍒嗙被鎵寰 蹇呭~锛氭槸 瑙佸垎绫绘墍寰楄绠楃粨鏋 // */ // private 瀵硅薄 flsd; -// /** -// * 闈炲眳姘戞墍寰 蹇呭~锛氭槸 瑙侀潪灞呮皯鎵寰楄绠楃粨鏋 -// */ -// private 瀵硅薄 fjmsd; -// /** + /** + * 闈炲眳姘戞墍寰 蹇呭~锛氭槸 瑙侀潪灞呮皯鎵寰楄绠楃粨鏋 + */ + private fjmsd fjmsd; + + // /** // * 闄愬敭鑲℃墍寰 蹇呭~锛氭槸 瑙侀檺鍞偂鎵寰楄绠楃粨鏋 // */ // private 瀵硅薄 xsgsd; - /** - * 浜哄憳鐢虫姤澶辫触鍒楄〃 蹇呭~锛氭槸 鍙傝冧汉鍛樹唬鎶ョ粨鏋滃璞 - */ - private List rysbsblb; @Data public static class zhsd { @@ -660,6 +657,248 @@ public class GetDeclareTaxResultFeedbackResponse extends BaseResponse { } + + @Data + public static class fjmsd { + /** + * 姝e父宸ヨ祫钖噾锛堟棤浣忔墍涓汉姝e父宸ヨ祫钖噾锛夋墍寰楀垪琛 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx wjgzxjlb; + /** + * 鏃犱綇鎵涓汉鏁版湀濂栭噾鍒楄〃 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx wjrysyjjlb; + /** + * 鍔冲姟鎶ラ叕鍒楄〃 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx lwbclb; + /** + * 绋块叕鎵寰楀垪琛 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx gcsdlb; + /** + * 鍒╂伅濮戞伅绾㈠埄鎵寰楀垪琛 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx lxgxhllb; + /** + * 鑲℃潈杞鍒楄〃 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx gqzrlb; + /** + * 鍏朵粬璐骇杞鍒楄〃 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx qtcczrlb; + /** + * 鍋剁劧鎵寰楀垪琛 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx orsdlb; + /** + * 瑙i櫎鍔冲姩鍚堝悓涓娆℃цˉ鍋块噾鍒楄〃 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx jcldhtycxbcjlb; + /** + * 淇濋櫓钀ラ攢鍛樿柂閲戠畻绋庣粨鏋滃璞 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx bxyxy; + /** + * 璇佸埜缁忕邯浜鸿柂閲戠畻绋庣粨鏋滃璞 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx zqjjr; + /** + * 涓汉鑲℃潈婵鍔辩粨鏋滃璞 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx grgqjl; + /** + * 鐗硅鏉冧娇鐢ㄨ垂鎵寰 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx txqsyfsd; + /** + * 涓汉鎴垮眿鍑虹鎵寰 鍙傝冮潪灞呮皯鎵寰楃畻绋庣粨鏋滃璞 + */ + private fjmsdssjgdx grfwczsd; + + /** + * 闈炲眳姘戞墍寰楃畻绋庣粨鏋滃璞 + */ + @Data + public static class fjmsdssjgdx { + /** + * 闈炲眳姘戠畻绋庢垚鍔熷垪琛 鍙傝冭緭鍏ユ姤鏂囬潪灞呮皯鎵寰楄緭鍑虹粨鏋滄姤鏂 + */ + private List sscglb; + /** + * 闈炲眳姘戠畻绋庡け璐ュ垪琛 鍙傝冭緭鍏ユ姤鏂囬潪灞呮皯鎵寰楄緭鍑虹粨鏋滄姤鏂 + */ + private List sssblb; + /** + * 闈炲眳姘戠畻绋庡け璐ュ師鍥犲垪琛 鍙傝冪畻绋庡け璐ュ師鍥犲璞 + */ + private List sssbyylb; + /** + * 鍙備笌闈炲眳姘戠畻绋庢讳汉鏁 + */ + private int sszrs; + /** + * 闈炲眳姘戠畻绋庡け璐ユ讳汉鏁 + */ + private int sssbrs; + + /** + * 4.4.1.3.4.2闈炲眳姘戞墍寰楄緭鍑虹粨鏋滄姤鏂 + */ + @Data + public static class fjmsdscbw { + /** + * 濮撳悕 蹇呭~锛氭槸 + */ + @SalaryTableColumn(text = "濮撳悕", width = "10%", column = "xm") + @ExcelHead(title = "濮撳悕", dataIndex = "xm") + private String xm; + + /** + * 璇佷欢绫诲瀷鍚嶇О 蹇呭~锛氭槸 + */ + @SalaryTableColumn(text = "璇佷欢绫诲瀷", width = "10%", column = "zzlx") + @ExcelHead(title = "璇佷欢绫诲瀷", dataIndex = "zzlx") + private String zzlx; + + /** + * 璇佷欢鍙风爜 蹇呭~锛氭槸 + */ + @SalaryTableColumn(text = "璇佷欢鍙风爜", width = "10%", column = "zzhm") + @ExcelHead(title = "璇佷欢鍙风爜", dataIndex = "zzhm") + private String zzhm; + + /** + * 鏀跺叆棰 蹇呭~锛氭槸 + */ + @SalaryTableColumn(text = "鏀跺叆棰", width = "10%", column = "sre") + @ExcelHead(title = "鏀跺叆棰", dataIndex = "sre") + private String sre; + + /** + * 绱鏀跺叆锛堜笉鍚湰娆★級 蹇呭~锛氭槸 + */ + @SalaryTableColumn(text = "绱鏀跺叆锛堜笉鍚湰娆★級", width = "10%", column = "ljsre") + @ExcelHead(title = "绱鏀跺叆锛堜笉鍚湰娆★級", dataIndex = "ljsre") + private String ljsre; + + /** + * 鍏嶇◣鏀跺叆 蹇呭~锛氭槸 + */ + @SalaryTableColumn(text = "鍏嶇◣鏀跺叆", width = "10%", column = "mssd") + @ExcelHead(title = "鍏嶇◣鏀跺叆", dataIndex = "mssd") + private String mssd; + /** + * 璐骇鍘熷 蹇呭~锛氭槸 + */ + private String ccyz; + /** + * 鍏佽鎵i櫎鐨勭◣璐 蹇呭~锛氭槸 + */ + private String yxkcsf; + /** + * 鎶曡祫鎶垫墸 蹇呭~锛氭槸 + */ + private String tzdk; + /** + * 鍏朵粬 蹇呭~锛氭槸 + */ + private String qt; + /** + * 澶囨敞 蹇呭~锛氭槸 + */ + private String bz; + /** + * 瀹為檯宸ヤ綔骞撮檺 蹇呭~锛氭槸 + */ + private String sjgznxs; + /** + * 鍑忛櫎璐圭敤 蹇呭~锛氭槸 + */ + private String jcfy; + /** + * 鍑嗕簣鎵i櫎鐨勬崘璧犻 蹇呭~锛氭槸 + */ + @SalaryTableColumn(text = "鍑嗕簣鎵i櫎鐨勬崘璧犻", width = "10%", column = "zykcjze") + @ExcelHead(title = "鍑嗕簣鎵i櫎鐨勬崘璧犻", dataIndex = "zykcjze") + private String zykcjze; + /** + * 绋庡墠鎵i櫎椤圭洰鍚堣 蹇呭~锛氭槸 + */ + private String sqkcxmhj; + /** + * 搴旂撼绋庨鎵寰楅 蹇呭~锛氭槸 + */ + @SalaryTableColumn(text = "搴旂撼绋庨鎵寰楅", width = "10%", column = "ynssde") + @ExcelHead(title = "搴旂撼绋庨鎵寰楅", dataIndex = "ynssde") + private String ynssde; + /** + * 搴旂撼绋庨 蹇呭~锛氭槸 + */ + @SalaryTableColumn(text = "搴旂撼绋庨", width = "10%", column = "ynse") + @ExcelHead(title = "搴旂撼绋庨", dataIndex = "ynse") + private String ynse; + /** + * 鍑忓厤绋庨 蹇呭~锛氭槸 + */ + private String jmse; + /** + * 搴旀墸缂寸◣棰 蹇呭~锛氭槸 + */ + @SalaryTableColumn(text = "搴旀墸缂寸◣棰", width = "10%", column = "yingkjse") + @ExcelHead(title = "搴旀墸缂寸◣棰", dataIndex = "yingkjse") + private String yingkjse; + /** + * 宸叉墸缂寸◣棰 蹇呭~锛氭槸 鏃犻渶濉啓璇ュ硷紝鎸0澶勭悊 + */ + @SalaryTableColumn(text = "宸叉墸缂寸◣棰", width = "10%", column = "ykjse") + @ExcelHead(title = "宸叉墸缂寸◣棰", dataIndex = "ykjse") + private String ykjse; + /** + * 绋庣巼 蹇呭~锛氭槸 + */ + @SalaryTableColumn(text = "绋庣巼", width = "10%", column = "sl") + @ExcelHead(title = "绋庣巼", dataIndex = "sl") + private String sl; + /** + * 閫熺畻鎵i櫎鏁 蹇呭~锛氭槸 + */ + @SalaryTableColumn(text = "閫熺畻鎵i櫎鏁", width = "10%", column = "sskcs") + @ExcelHead(title = "閫熺畻鎵i櫎鏁", dataIndex = "sskcs") + private String sskcs; + /** + * 浠f姤鏂瑰紡 蹇呭~锛氭槸 + */ + private String sbfs; + /** + * 搴旇ˉ閫绋庨 蹇呭~锛氭槸 + */ + @SalaryTableColumn(text = "搴旇ˉ閫绋庨", width = "10%", column = "ybtse") + @ExcelHead(title = "搴旇ˉ閫绋庨", dataIndex = "ybtse") + private String ybtse; + /** + * 闈炲眳姘戞墍寰楅」鐩悕瀛 蹇呭~锛氭槸闈炲眳姘戞墍寰楄柂閲戠被鍒-鏃犱綇鎵涓汉姝e父宸ヨ祫钖噾銆佸叏骞翠竴娆℃у閲戞敹鍏 + */ + private String sdxm; + /** + * 鎵寰楁湡闂磋捣 蹇呭~锛氭槸 YYYY-MM + */ + private String sdqjq; + /** + * 鎵寰楁湡闂存 蹇呭~锛氭槸 YYYY-MM + */ + private String sdqjz; + } + } + } + + + /** + * 浜哄憳鐢虫姤澶辫触鍒楄〃 蹇呭~锛氭槸 鍙傝冧汉鍛樹唬鎶ョ粨鏋滃璞 + */ + private List rysbsblb; + /** * 4.4.1.3.1.1浜哄憳浠f姤缁撴灉瀵硅薄 */ diff --git a/src/com/engine/salary/service/EmployeeDeclareService.java b/src/com/engine/salary/service/EmployeeDeclareService.java index ed184159a..3243a0234 100644 --- a/src/com/engine/salary/service/EmployeeDeclareService.java +++ b/src/com/engine/salary/service/EmployeeDeclareService.java @@ -176,6 +176,19 @@ public interface EmployeeDeclareService{ */ void getDeclareFeedback(EmployeeDeclareParam param, EmployeeDeclareRateDTO employeeDeclareRate); + /** + * 浣滃簾浜哄憳 + * @param param + */ + String invalid(EmployeeInvalidParam param); + + /** + * 鍏抽敭淇℃伅鍙樻洿 + * @param param + * @return + */ + String informationChange(EmployeeInformationChangeParam param); + /** * 鍚屾浠昏亴鍙楅泧鏃ユ湡涓哄叆鑱屾棩鏈 * @@ -184,4 +197,5 @@ public interface EmployeeDeclareService{ String syncEmploymentDate(EmployeeDeclareSyncStartDateParam param); void batchInsert(List insertList); + } diff --git a/src/com/engine/salary/service/TaxDeclareRecordService.java b/src/com/engine/salary/service/TaxDeclareRecordService.java index 25906560f..424e296d4 100644 --- a/src/com/engine/salary/service/TaxDeclareRecordService.java +++ b/src/com/engine/salary/service/TaxDeclareRecordService.java @@ -5,6 +5,7 @@ import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationRateDTO; import com.engine.salary.entity.taxdeclaration.param.DeclareTaxResultFeedbackQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationListQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam; +import com.engine.salary.entity.taxdeclaration.param.TaxDeclareRecordParam; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO; import com.engine.salary.util.page.PageInfo; @@ -84,9 +85,8 @@ public interface TaxDeclareRecordService { /** * 绋庡眬绔敵鎶ユ槑缁嗘煡璇 * - * @param id */ - String queryCompanyIncomes(Long id); + String queryCompanyIncomes(TaxDeclareRecordParam taxDeclareRecordParam); /** @@ -131,14 +131,14 @@ public interface TaxDeclareRecordService { * * @param id */ - void declare(Long id); + void declare(Long id, Integer reportType); /** * 涓◣鐢虫姤鑾峰彇鍙嶉 * * @param id */ - void getDeclareFeedback(Long id, TaxDeclarationRateDTO taxDeclarationRate); + void getDeclareFeedback(Long id, Integer reportType, TaxDeclarationRateDTO taxDeclarationRate); /** @@ -156,21 +156,21 @@ public interface TaxDeclareRecordService { * * @param id */ - void cancelDeclare(Long id); + void cancelDeclare(Long id, Integer reportType); /** * 鑾峰彇浣滃簾鍙嶉 * * @param id */ - void getCancelFeedback(Long id, TaxDeclarationRateDTO taxDeclarationRate); + void getCancelFeedback(Long id, Integer reportType, TaxDeclarationRateDTO taxDeclarationRate); /** * 鏇存鐢虫姤 * * @param id */ - void updateDeclare(Long id); + void updateDeclare(Long id, Integer reportType); /** * 鎾ら攢鐢虫姤 @@ -186,8 +186,6 @@ public interface TaxDeclareRecordService { */ String queryDeclareStatus(Long id); - - void updateById(TaxDeclareRecordPO taxDeclareRecord); } diff --git a/src/com/engine/salary/service/TaxDeclareStatusService.java b/src/com/engine/salary/service/TaxDeclareStatusService.java new file mode 100644 index 000000000..f6f6674b0 --- /dev/null +++ b/src/com/engine/salary/service/TaxDeclareStatusService.java @@ -0,0 +1,40 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.taxdeclaration.po.TaxDeclareStatusPO; + +import java.util.List; + +/** + * 涓◣鐢虫姤琛ㄧ姸鎬 + *

Copyright: Copyright (c) 2023

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +public interface TaxDeclareStatusService { + + List getTaxDeclareStatusByTaxDeclareRecordId(Long taxDeclareRecordId); + + + /** + * 鑾峰彇鐢虫姤璁板綍鐘舵 + * @param taxDeclareRecordId + * @param reportType + * @return + */ + TaxDeclareStatusPO getTaxDeclareStatus(Long taxDeclareRecordId, Integer reportType); + + /** + * 鏇存柊涓昏褰曪紝杩斿洖鐢虫姤璁板綍鐘舵佸垪琛 + * @param id + * @return + */ + List updateRecord(Long id); + + /** + * 鏇存柊鐢虫姤鐘舵侊紝鍚屾椂鏇存柊涓昏褰 + * @param declareStatus + */ + void updateTaxDeclareStatus(TaxDeclareStatusPO declareStatus,boolean updateRecord); +} diff --git a/src/com/engine/salary/service/impl/AbstractTaxPaymentService.java b/src/com/engine/salary/service/impl/AbstractTaxPaymentService.java index cad15ebc3..25078bcf0 100644 --- a/src/com/engine/salary/service/impl/AbstractTaxPaymentService.java +++ b/src/com/engine/salary/service/impl/AbstractTaxPaymentService.java @@ -26,13 +26,12 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.taxpayment.TaxPaymentRequestMapper; import com.engine.salary.service.*; import com.engine.salary.util.*; -import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.springframework.transaction.annotation.Transactional; import weaver.hrm.User; import java.math.BigDecimal; @@ -52,6 +51,9 @@ public abstract class AbstractTaxPaymentService extends Service implements TaxPa return ServiceUtil.getService(TaxAgentTaxReturnServiceImpl.class, user); } + protected TaxDeclareStatusService getTaxDeclareStatusService(User user) { + return ServiceUtil.getService(TaxDeclareStatusServiceImpl.class, user); + } protected TaxAgentService getTaxAgentService(User user) { return ServiceUtil.getService(TaxAgentServiceImpl.class, user); } @@ -142,7 +144,6 @@ public abstract class AbstractTaxPaymentService extends Service implements TaxPa return new TempWrapper(apiConfigPO, taxReturnPO, taxAgentPO, taxDeclareRecord); } - @Transactional(rollbackFor = Exception.class) public String getRequestId(TaxPaymentQueryParam param) { TempWrapper tempWrapper = checkBeforeGetRequestIdResponse(param); QuerySpecialAmountResponse queryResponse = getRequestIdResponse(tempWrapper.taxReturnPO, tempWrapper.taxAgentPO.getName(), diff --git a/src/com/engine/salary/service/impl/EmployeeDeclareExcelServiceImpl.java b/src/com/engine/salary/service/impl/EmployeeDeclareExcelServiceImpl.java index de5a7a82a..98589a15f 100644 --- a/src/com/engine/salary/service/impl/EmployeeDeclareExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/EmployeeDeclareExcelServiceImpl.java @@ -16,10 +16,7 @@ import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.SalaryOnOffEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; -import com.engine.salary.enums.employeedeclare.CardTypeEnum; -import com.engine.salary.enums.employeedeclare.DeclareStatusEnum; -import com.engine.salary.enums.employeedeclare.EmploymentStatusEnum; -import com.engine.salary.enums.employeedeclare.EmploymentTypeEnum; +import com.engine.salary.enums.employeedeclare.*; import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum; import com.engine.salary.enums.sicategory.DeleteTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; @@ -101,14 +98,20 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee List row = Lists.newArrayList(); row.add(employeeDeclare.getJobNum()); row.add(employeeDeclare.getEmployeeName()); - row.add(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getDefaultLabel()); + row.add(CardTypeEnum.getByValue(employeeDeclare.getCardType()).getDefaultLabel()); row.add(employeeDeclare.getCardNum()); + row.add(employeeDeclare.getNationality()); + row.add(GenderEnum.getDefaultLabelByValue(employeeDeclare.getGender()).getDefaultLabel()); + row.add(employeeDeclare.getBirthplace()); + row.add(employeeDeclare.getBirthday()); row.add(employmentStatusEnum == null ? "" : employmentStatusEnum.getDefaultLabel()); - row.add(employmentTypeEnum == null ? EmploymentTypeEnum.EMPLOYEE.getDefaultLabel() : employmentTypeEnum.getDefaultLabel()); - row.add(employeeDeclare.getEmploymentFirstYear()); row.add(employeeDeclare.getMobile()); + row.add(employmentTypeEnum == null ? EmploymentTypeEnum.EMPLOYEE.getDefaultLabel() : employmentTypeEnum.getDefaultLabel()); row.add(SalaryDateUtil.getFormatDate(employeeDeclare.getEmploymentDate())); row.add(SalaryDateUtil.getFormatDate(employeeDeclare.getDismissDate())); + row.add(SalaryDateUtil.getFormatDate(employeeDeclare.getEntryDate())); + row.add(SalaryDateUtil.getFormatDate(employeeDeclare.getDepartureDate())); + row.add(employeeDeclare.getTaxReasons()); row.add(Objects.equals(employeeDeclare.getDisability(), 1) ? yesI18 : noI18); row.add(employeeDeclare.getDisabilityCardNo()); row.add(Objects.equals(employeeDeclare.getMartyrDependents(), 1) ? yesI18 : noI18); @@ -211,7 +214,7 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee Sheet sheet = ExcelSupport.parseFile(fileInputStream, 0, EXCEL_TYPE_XLSX); // 琛ㄥご List headers = ExcelSupport.getSheetHeader(sheet, 0); - + // 妫鏌ヨ〃澶 String isCorrectHeader = checkHeader(headers, headerList); if (isCorrectHeader != null) { @@ -235,7 +238,7 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee EmployeeDeclareExcelDTO employeeDeclareExcel = new EmployeeDeclareExcelDTO(); for (String dataKey : headerList) { String dataValue = Util.null2String(map.get(dataKey)); - if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel( 0, "宸ュ彿"))) { + if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "宸ュ彿"))) { if (StringUtils.equals(checkType, "jobNum") && StringUtils.isEmpty(dataValue)) { isError = true; Map errorMessageMap = Maps.newHashMap(); @@ -253,30 +256,66 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee employeeDeclareExcel.setEmployeeName(dataValue); } } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "璇佷欢绫诲瀷"))) { - employeeDeclareExcel.setCardType(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getValue().toString()); + if (StringUtils.isEmpty(dataValue)) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "璇佷欢绫诲瀷涓嶈兘涓虹┖")); + errorData.add(errorMessageMap); + } else { + CardTypeEnum cardTypeEnum = CardTypeEnum.getByDefaultLabel(dataValue); + if (cardTypeEnum == null) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "璇佷欢绫诲瀷濉啓閿欒锛屽彧鑳藉~鍐欏眳姘戣韩浠借瘉銆佸鍥芥姢鐓")); + errorData.add(errorMessageMap); + } else { + employeeDeclareExcel.setCardType(cardTypeEnum.getValue()); + } + } } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "璇佷欢鍙风爜"))) { if (StringUtils.isEmpty(dataValue)) { isError = true; Map errorMessageMap = Maps.newHashMap(); errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "璇佷欢鍙风爜涓嶈兘涓虹┖")); errorData.add(errorMessageMap); - } else if (!SalaryCardUtil.checkIdNum(dataValue)) { - isError = true; - Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "璇佷欢鍙风爜鏍煎紡涓嶆纭")); - errorData.add(errorMessageMap); } else { // 韬唤璇佸彿鍏ㄩ儴杞负澶у啓 employeeDeclareExcel.setCardNum(dataValue.toUpperCase()); - employeeDeclareExcel.setGender(SalaryCardUtil.judgeGender(dataValue).getValue().toString()); - employeeDeclareExcel.setBirthday(SalaryCardUtil.judgeBirthday(dataValue).toString()); +// employeeDeclareExcel.setGender(SalaryCardUtil.judgeGender(dataValue).getValue().toString()); +// employeeDeclareExcel.setBirthday(SalaryCardUtil.judgeBirthday(dataValue).toString()); } - } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "浜哄憳鐘舵"))) { + } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "鍥界睄"))) { + employeeDeclareExcel.setNationality(dataValue); + } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "鎬у埆"))) { + Integer gender = GenderEnum.getValueByDefaultLabel(dataValue); + if (gender == null) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "鎬у埆濉啓鏈夎锛")); + errorData.add(errorMessageMap); + } else { + employeeDeclareExcel.setGender(gender); + } + } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "鍑虹敓鍦"))) { + employeeDeclareExcel.setBirthplace(dataValue); + } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "鍑虹敓鏃ユ湡"))) { + if (StringUtils.isNotBlank(dataValue) && dataValue.length() >= 10) { + dataValue = dataValue.substring(0, 10); + } + if (!SalaryDateUtil.checkDay(dataValue)) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "鏃ユ湡鏍煎紡涓嶆纭")); + errorData.add(errorMessageMap); + } else { + employeeDeclareExcel.setBirthday(SalaryDateUtil.dateStrToLocalDate(dataValue)); + } + } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "鐘舵"))) { boolean legalDataValue = false; for (EmploymentStatusEnum employmentStatusEnum : EmploymentStatusEnum.values()) { if (StringUtils.equals(dataValue, employmentStatusEnum.getDefaultLabel())) { legalDataValue = true; - employeeDeclareExcel.setEmploymentStatus(employmentStatusEnum.getValue().toString()); + employeeDeclareExcel.setEmploymentStatus(employmentStatusEnum.getValue()); break; } } @@ -286,23 +325,6 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "浜哄憳鐘舵佸彧鑳藉~鍐欐甯告垨闈炴甯")); errorData.add(errorMessageMap); } - } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "浠昏亴鍙楅泧浠庝笟绫诲瀷"))) { - boolean legalDataValue = false; - for (EmploymentTypeEnum employmentTypeEnum : EmploymentTypeEnum.values()) { - if (StringUtils.equals(dataValue, employmentTypeEnum.getDefaultLabel())) { - legalDataValue = true; - employeeDeclareExcel.setEmploymentType(employmentTypeEnum.getValue().toString()); - break; - } - } - if (!legalDataValue) { - isError = true; - Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "浠昏亴鍙楅泧浠庝笟绫诲瀷濉啓閿欒")); - errorData.add(errorMessageMap); - } - } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "鍏ヨ亴骞村害灏变笟鎯呭舰"))) { - employeeDeclareExcel.setEmploymentFirstYear(dataValue); } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "鎵嬫満鍙风爜"))) { if (StringUtils.isEmpty(dataValue)) { isError = true; @@ -317,6 +339,21 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee } else { employeeDeclareExcel.setMobile(dataValue); } + } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "浠昏亴鍙楅泧浠庝笟绫诲瀷"))) { + boolean legalDataValue = false; + for (EmploymentTypeEnum employmentTypeEnum : EmploymentTypeEnum.values()) { + if (StringUtils.equals(dataValue, employmentTypeEnum.getDefaultLabel())) { + legalDataValue = true; + employeeDeclareExcel.setEmploymentType(employmentTypeEnum.getValue()); + break; + } + } + if (!legalDataValue) { + isError = true; + Map 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.getEmploymentType(), EmploymentTypeEnum.OTHER.getValue().toString())) { @@ -327,7 +364,7 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee } } else { if (StringUtils.isNotBlank(dataValue) && dataValue.length() >= 10) { - dataValue = dataValue.substring(0,10); + dataValue = dataValue.substring(0, 10); } if (!SalaryDateUtil.checkDay(dataValue)) { isError = true; @@ -335,7 +372,7 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "鏃ユ湡鏍煎紡涓嶆纭")); errorData.add(errorMessageMap); } else { - employeeDeclareExcel.setEmploymentDate(SalaryDateUtil.getFormatDate(SalaryDateUtil.dateStrToLocalDate(dataValue))); + employeeDeclareExcel.setEmploymentDate(SalaryDateUtil.dateStrToLocalDate(dataValue)); } } } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "绂昏亴鏃ユ湡"))) { @@ -348,7 +385,7 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee } } else { if (StringUtils.isNotBlank(dataValue) && dataValue.length() >= 10) { - dataValue = dataValue.substring(0,10); + dataValue = dataValue.substring(0, 10); } if (!SalaryDateUtil.checkDay(dataValue)) { isError = true; @@ -356,9 +393,35 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "鏃ユ湡鏍煎紡涓嶆纭")); errorData.add(errorMessageMap); } else { - employeeDeclareExcel.setDismissDate(SalaryDateUtil.getFormatDate(SalaryDateUtil.dateStrToLocalDate(dataValue))); + employeeDeclareExcel.setDismissDate(SalaryDateUtil.dateStrToLocalDate(dataValue)); } } + } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "棣栨鍏ュ鏃堕棿"))) { + if (StringUtils.isNotBlank(dataValue) && dataValue.length() >= 10) { + dataValue = dataValue.substring(0, 10); + } + if (!SalaryDateUtil.checkDay(dataValue)) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "鏃ユ湡鏍煎紡涓嶆纭")); + errorData.add(errorMessageMap); + } else { + employeeDeclareExcel.setEntryDate(SalaryDateUtil.dateStrToLocalDate(dataValue)); + } + } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "棰勮绂诲鏃堕棿"))) { + if (StringUtils.isNotBlank(dataValue) && dataValue.length() >= 10) { + dataValue = dataValue.substring(0, 10); + } + if (!SalaryDateUtil.checkDay(dataValue)) { + isError = true; + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowIndex + SalaryI18nUtil.getI18nLabel(0, "鏃ユ湡鏍煎紡涓嶆纭")); + errorData.add(errorMessageMap); + } else { + employeeDeclareExcel.setDepartureDate(SalaryDateUtil.dateStrToLocalDate(dataValue)); + } + } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "娑夌◣浜嬬敱"))) { + employeeDeclareExcel.setTaxReasons(dataValue); } else if (StringUtils.equals(dataKey, SalaryI18nUtil.getI18nLabel(0, "鏄惁娈嬬柧"))) { if (StringUtils.equals(dataValue, SalaryOnOffEnum.ON.getDefaultLabel())) { employeeDeclareExcel.setDisability(SalaryOnOffEnum.ON.getValue()); @@ -528,12 +591,12 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee } - public static String[] getNullPropertyNames (Object source) { + public static String[] getNullPropertyNames(Object source) { final BeanWrapper src = new BeanWrapperImpl(source); PropertyDescriptor[] pds = src.getPropertyDescriptors(); Set emptyNames = new HashSet<>(); - for(PropertyDescriptor pd : pds) { + for (PropertyDescriptor pd : pds) { Object srcValue = src.getPropertyValue(pd.getName()); // 姝ゅ鍒ゆ柇鍙牴鎹渶姹備慨鏀 if (srcValue == null) { @@ -545,7 +608,6 @@ public class EmployeeDeclareExcelServiceImpl extends Service implements Employee } - private EmployeeDeclarePO buildEmployeeDeclare(DataCollectionEmployee extEmployee, DataCollectionEmployee simpleEmployee, EmployeeDeclareExcelDTO employeeDeclareExcel, Long taxAgentId, Date taxCycle, Date now) { @@ -1086,12 +1148,18 @@ 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, "鎬у埆")); + 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, "棣栨鍏ュ鏃堕棿")); + 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, "鏄惁鐑堝睘")); diff --git a/src/com/engine/salary/service/impl/EmployeeDeclareServiceImpl.java b/src/com/engine/salary/service/impl/EmployeeDeclareServiceImpl.java index 96546a952..a88612e7e 100644 --- a/src/com/engine/salary/service/impl/EmployeeDeclareServiceImpl.java +++ b/src/com/engine/salary/service/impl/EmployeeDeclareServiceImpl.java @@ -42,13 +42,15 @@ import com.engine.salary.enums.taxagent.TaxAgentTaxReturnStatusEnum; import com.engine.salary.enums.taxdeclaration.EnumDeclareApiBusinessType; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.employeedeclare.EmployeeDeclareMapper; +import com.engine.salary.remote.tax.client.EmployeeClient; +import com.engine.salary.remote.tax.request.employee.BatchInvalidSubmissionRequest; +import com.engine.salary.remote.tax.request.employee.InformationChangeRequest; import com.engine.salary.service.*; import com.engine.salary.util.*; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; -import com.engine.salary.util.valid.SalaryCardUtil; import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; @@ -56,7 +58,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; -import org.springframework.transaction.annotation.Transactional; import weaver.general.Util; import weaver.hrm.User; @@ -195,16 +196,21 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla employeeDeclare.setTaxCycle(saveParam.getTaxCycle()); employeeDeclare.setEmployeeName(saveParam.getEmployeeName()); employeeDeclare.setJobNum(saveParam.getJobNum()); - employeeDeclare.setCardType(CardTypeEnum.RESIDENT_IDENTITY_CARDS.getValue()); + employeeDeclare.setNationality(saveParam.getNationality()); + employeeDeclare.setCardType(saveParam.getCardType().getValue()); employeeDeclare.setCardNum(saveParam.getCardNum().toUpperCase()); - employeeDeclare.setGender(SalaryCardUtil.judgeGender(saveParam.getCardNum()).getValue()); - employeeDeclare.setBirthday(SalaryDateUtil.localDateToDate(SalaryCardUtil.judgeBirthday(saveParam.getCardNum()))); + employeeDeclare.setGender(saveParam.getGender().getValue()); + employeeDeclare.setBirthday(SalaryDateUtil.localDateToDate(saveParam.getBirthday())); + employeeDeclare.setBirthplace(saveParam.getBirthplace()); + employeeDeclare.setTaxReasons(saveParam.getTaxReasons()); employeeDeclare.setEmploymentStatus(saveParam.getEmploymentStatus().getValue()); employeeDeclare.setMobile(saveParam.getMobile()); employeeDeclare.setEmploymentType(saveParam.getEmploymentType().getValue()); employeeDeclare.setEmploymentFirstYear(""); employeeDeclare.setEmploymentDate(SalaryDateUtil.localDateToDate(saveParam.getEmploymentDate())); employeeDeclare.setDismissDate(SalaryDateUtil.localDateToDate(saveParam.getDismissDate())); + employeeDeclare.setEntryDate(SalaryDateUtil.localDateToDate(saveParam.getEntryDate())); + employeeDeclare.setDepartureDate(SalaryDateUtil.localDateToDate(saveParam.getDepartureDate())); employeeDeclare.setDisability(saveParam.getDisability().getValue()); employeeDeclare.setDisabilityCardNo(saveParam.getDisabilityCardNo()); employeeDeclare.setLonelyOld(saveParam.getLonelyOld().getValue()); @@ -387,7 +393,7 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla } boolean declareSuccess = employeeDeclares.stream().anyMatch(e -> Objects.equals(e.getSuccessfullyDeclared(), 1)); if (declareSuccess) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156467, "鎶ラ佹垚鍔熻繃鐨勪汉鍛樹笉鍏佽鍒犻櫎")); +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156467, "鎶ラ佹垚鍔熻繃鐨勪汉鍛樹笉鍏佽鍒犻櫎")); } getEmployeeDeclareMapper().deleteByIds(ids, new Date()); // 璁板綍鏃ュ織 @@ -445,7 +451,6 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla } @Override - @Transactional(rollbackFor = Exception.class) public void refresh(EmployeeDeclareRefreshParam refreshParam, Long employeeId) { // 鏌ヨ鏈湀宸叉湁鐨勯渶瑕佹姤閫佺殑浜哄憳 List employeeDeclares = listByTaxCycleAndTaxAgentId(refreshParam.getTaxCycle(), refreshParam.getTaxAgentId()); @@ -510,20 +515,15 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla .setEmployeeDeclares(employeeDeclares) .setPreTaxCycleEmployeeDeclare(preTaxCycleEmployeeDeclares) .setSalaryArchives(salaryArchivePOS) -// .setEmployeeInfos(employeeInfos) .setHrmEmployeeComInfos(employeeInfos); -// .setSimpleUserInfos(newSimpleUserInfos) -// .setExtEmployees(newExtEmployees) EmployeeDeclareRefresh.Result result = EmployeeDeclareRefresh.refresh(dto, employeeId); // 淇濆瓨鏂板鐨勪汉鍛 if (CollectionUtils.isNotEmpty(result.getNewEmployeeDeclares())) { result.getNewEmployeeDeclares().forEach(getEmployeeDeclareMapper()::insertIgnoreNull); -// getEmployeeDeclareMapper().batchInsert((result.getNewEmployeeDeclares())); } // 鏇存柊宸叉湁浜哄憳 if (CollectionUtils.isNotEmpty(result.getEmployeeDeclares())) { result.getEmployeeDeclares().forEach(getEmployeeDeclareMapper()::updateIgnoreNull); -// updateBatchById(result.getEmployeeDeclares()); } // 璁板綍鏃ュ織 @@ -721,6 +721,45 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla } } + @Override + public String invalid(EmployeeInvalidParam param) { + List employeeDeclarePOS = listByIds(Collections.singletonList(param.getId())); + if (CollectionUtils.isEmpty(employeeDeclarePOS)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "鏈壘鍒拌浜哄憳")); + } + + BatchInvalidSubmissionRequest request = new BatchInvalidSubmissionRequest(); + List rys = employeeDeclarePOS.stream().map(po -> { + BatchInvalidSubmissionRequest.RY ry = new BatchInvalidSubmissionRequest.RY(); + ry.setXm(po.getEmployeeName()); + ry.setZzhm(po.getCardNum()); + ry.setZzlx(CardTypeEnum.getByValue(po.getCardType()).getDefaultLabel()); + return ry; + }).collect(Collectors.toList()); + request.setRylb(rys); + + EmployeeClient employeeClient = new EmployeeClient(employeeDeclarePOS.get(0).getTaxAgentId()); + String s = employeeClient.batchInvalidSubmission(request); + return s; + } + + @Override + public String informationChange(EmployeeInformationChangeParam param) { + EmployeeDeclarePO employeeDeclarePO = getById(param.getId()); + if (employeeDeclarePO == null) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "鏈壘鍒拌浜哄憳")); + } + + InformationChangeRequest request =new InformationChangeRequest(); + request.setXm(param.getName()); + request.setZzlx(param.getCardType().getDefaultLabel()); + request.setZzhm(param.getCardNum()); + EmployeeClient employeeClient = new EmployeeClient(employeeDeclarePO.getTaxAgentId()); + String s = employeeClient.informationChange(request); + return s; + } + + @Override public String syncEmploymentDate(EmployeeDeclareSyncStartDateParam param) { List employeeList = getSalaryEmployeeService(user).listAll(UseEmployeeTypeEnum.ALL); diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index db58874a0..ad4ca7dcd 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -314,7 +314,6 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService * @param currentEmployeeId */ @Override - @Transactional(rollbackFor = Exception.class) public void handleStayDelData(long currentEmployeeId) { log.info("绂忓埄妗f涓緟鍑忓憳鏁版嵁鑷姩澶勭悊閫昏緫寮濮嬶細"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM"); @@ -351,7 +350,6 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService * 绂忓埄妗f涓閲忔暟鎹鐞 * @param currentEmployeeId */ - @Transactional(rollbackFor = Exception.class) @Override public void handleChangeData(long currentEmployeeId) { try { diff --git a/src/com/engine/salary/service/impl/SalaryAcctCalcServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctCalcServiceImpl.java index c48450772..1df986fef 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctCalcServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctCalcServiceImpl.java @@ -135,7 +135,6 @@ // } // // @Override -// @Transactional(rollbackFor = Exception.class) // public void calcByEmployeeIds(Long salaryAcctRecordId, Collection salaryAcctEmployeeIds, DataCollectionEmployee simpleEmployee) throws Exception { // SalaryAcctRateDTO salaryAcctRate = new SalaryAcctRateDTO("" + salaryAcctRecordId); // try { diff --git a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java index 8e0986007..c34c1fcc3 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java @@ -403,7 +403,6 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // * 瀵煎叆钖祫妗f // */ // @BatchImportHandler("importSalaryArchive") -// @Transactional(rollbackFor = Exception.class) // public void importSalaryArchive() { // BatchDocumentMessage message = BatchImportContext.getBatchDocumentMessage(); // log.info("銆愯柂璧勬。妗堛戞帴鏀跺埌涓婁紶鐨勬暟鎹細{}", String.format("batchTaskId=%s, fileName=%s", message.getBatchTaskId(), message.getBatchFile().getName())); diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index c6b3032c6..22b6eb738 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -253,7 +253,6 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe * * @param currentEmployeeId */ - @Transactional(rollbackFor = Exception.class) public void handleSuspendData(Long currentEmployeeId) { List personnelStatuss = new ArrayList() {{ add("4"); diff --git a/src/com/engine/salary/service/impl/TaxDeclarationApiFlowWarnServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationApiFlowWarnServiceImpl.java index 97833c197..276f3ab71 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationApiFlowWarnServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationApiFlowWarnServiceImpl.java @@ -28,13 +28,12 @@ import com.engine.salary.service.TaxDeclarationApiFlowWarnService; import com.engine.salary.util.SalaryAssert; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; -import com.engine.salary.util.db.IdGenerator; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.springframework.transaction.annotation.Transactional; import weaver.common.MessageUtil; import weaver.email.EmailWorkRunnable; import weaver.general.BaseBean; @@ -103,7 +102,6 @@ public class TaxDeclarationApiFlowWarnServiceImpl extends Service implements Tax } @Override - @Transactional(rollbackFor = Exception.class) public void deleteReceiver(Long id) { TaxDeclarationApiFlowWarnReceiverPO receiverPO = getWarnReceiverPOById(id); SalaryAssert.notNull(receiverPO, "璇ユ彁閱掑璞′笉瀛樺湪锛岃鍒锋柊椤甸潰鍚庨噸璇"); diff --git a/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java index 706a31334..8c17eb205 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationValueServiceImpl.java @@ -20,10 +20,7 @@ import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationValueListDTO; import com.engine.salary.entity.taxdeclaration.param.ContrastQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationValueListQueryParam; import com.engine.salary.entity.taxdeclaration.param.TaxDeclareRecordDetailSaveParam; -import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO; -import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationValuePO; -import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO; -import com.engine.salary.entity.taxdeclaration.po.TaxReportColumnPO; +import com.engine.salary.entity.taxdeclaration.po.*; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.salaryaccounting.EmployeeTypeEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; @@ -34,7 +31,7 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.taxdeclaration.TaxDeclarationValueMapper; import com.engine.salary.mapper.taxdeclaration.TaxDeclareRecordMapper; import com.engine.salary.remote.tax.client.DeclareClient; -import com.engine.salary.remote.tax.response.employee.GetDeclareTaxResultFeedbackResponse; +import com.engine.salary.remote.tax.response.declare.GetDeclareTaxResultFeedbackResponse; import com.engine.salary.service.*; import com.engine.salary.util.*; import com.engine.salary.util.db.IdGenerator; @@ -78,6 +75,11 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar return MapperProxyFactory.getProxy(TaxDeclareRecordMapper.class); } + private TaxDeclareStatusService getTaxDeclareStatusService(User user) { + return ServiceUtil.getService(TaxDeclareStatusServiceImpl.class, user); + } + + private SalaryEmployeeService getSalaryEmployeeService(User user) { return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } @@ -355,10 +357,12 @@ public class TaxDeclarationValueServiceImpl extends Service implements TaxDeclar throw new SalaryRunTimeException("鐢虫姤璁板綍涓嶅瓨鍦紒"); } + Integer reportType = IncomeCategoryEnum.parseByValue(taxDeclaration.getIncomeCategory()).getReportType().getValue(); + TaxDeclareStatusPO taxDeclareStatus = getTaxDeclareStatusService(user).getTaxDeclareStatus(taxDeclareRecordPO.getId(), reportType); //绾夸笂鏁版嵁 DeclareClient declareClient = new DeclareClient(taxDeclareRecordPO.getTaxAgentId()); - GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse = declareClient.getDeclareTaxResultFeedback(taxDeclareRecordPO.getDeclareRequestId()); + GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse = declareClient.getDeclareTaxResultFeedback(taxDeclareStatus.getDeclareRequestId()); Map>> onlineDataMap = new HashMap<>(); List list = getTaxDeclarationService(user).listByTaxDeclareRecordId(taxDeclareRecordPO.getId()); diff --git a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java index 96e4456e2..847f694ff 100644 --- a/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclareRecordServiceImpl.java @@ -2,12 +2,12 @@ package com.engine.salary.service.impl; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.common.LocalDateRange; import com.engine.salary.common.YearMonthRange; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.constant.SzyhApiConstant; -import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.entity.datacollection.AddUpSituation; import com.engine.salary.entity.employeedeclare.bo.EmployeeDeclareRequest; import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO; @@ -27,10 +27,7 @@ import com.engine.salary.entity.taxapiflow.bo.TaxApiFlowBO; import com.engine.salary.entity.taxapiflow.po.TaxDeclarationApiFlowRecordPO; import com.engine.salary.entity.taxdeclaration.bo.*; import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationRateDTO; -import com.engine.salary.entity.taxdeclaration.param.AbnormalEmployeeListQueryParam; -import com.engine.salary.entity.taxdeclaration.param.DeclareTaxResultFeedbackQueryParam; -import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationListQueryParam; -import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam; +import com.engine.salary.entity.taxdeclaration.param.*; import com.engine.salary.entity.taxdeclaration.po.*; import com.engine.salary.entity.taxdeclaration.response.CancelDeclareFeedbackResponse; import com.engine.salary.entity.taxdeclaration.response.DeclareTaxFeedbackResponse; @@ -39,14 +36,16 @@ import com.engine.salary.entity.taxdeclaration.response.UpdateDeclareResponse; import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.employeedeclare.DeclareStatusEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; +import com.engine.salary.enums.salarysob.DeclareReportTypeEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.enums.sicategory.DeleteTypeEnum; import com.engine.salary.enums.taxagent.TaxAgentTaxReturnStatusEnum; import com.engine.salary.enums.taxdeclaration.*; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.taxdeclaration.TaxDeclareRecordMapper; +import com.engine.salary.mapper.taxdeclaration.TaxDeclareStatusMapper; import com.engine.salary.remote.tax.client.DeclareClient; -import com.engine.salary.remote.tax.response.employee.GetDeclareTaxResultFeedbackResponse; +import com.engine.salary.remote.tax.response.declare.GetDeclareTaxResultFeedbackResponse; import com.engine.salary.service.*; import com.engine.salary.service.factory.TaxPaymentServiceFactory; import com.engine.salary.util.*; @@ -55,6 +54,7 @@ import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.excel.ExcelUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; +import com.engine.salary.util.valid.ValidUtil; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.collect.Sets; @@ -70,6 +70,8 @@ import java.time.YearMonth; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum.NOT_DECLARE; + /** * 涓◣鐢虫姤 *

Copyright: Copyright (c) 2022

@@ -86,6 +88,14 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe return MapperProxyFactory.getProxy(TaxDeclareRecordMapper.class); } + private TaxDeclareStatusMapper getTaxDeclareStatusMapper() { + return MapperProxyFactory.getProxy(TaxDeclareStatusMapper.class); + } + + private TaxDeclareStatusService getTaxDeclareStatusService(User user) { + return ServiceUtil.getService(TaxDeclareStatusServiceImpl.class, user); + } + private TaxDeclarationService getTaxDeclarationService(User user) { return ServiceUtil.getService(TaxDeclarationServiceImpl.class, user); } @@ -272,12 +282,12 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe TaxDeclareRecordPO oldTaxDeclareRecord = taxDeclareRecordMap.get(taxCycleEntry.getKey() + "-" + taxAgentIdEntry.getKey()); // 濡傛灉宸茬粡鐢熸垚浜嗕釜绋庣敵鎶ヨ〃锛屽苟涓斾釜绋庣敵鎶ヨ〃宸茬粡鐢虫姤杩囦簡锛屽氨璺宠繃 if (oldTaxDeclareRecord != null) { - if (!(Objects.equals(oldTaxDeclareRecord.getTaxDeclareType(), TaxDeclareTypeEnum.NORMAL_DECLARE.getValue()) && Objects.equals(oldTaxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.NOT_DECLARE.getValue()))) { + if (!(Objects.equals(oldTaxDeclareRecord.getTaxDeclareType(), TaxDeclareTypeEnum.NORMAL_DECLARE.getValue()) && Objects.equals(oldTaxDeclareRecord.getTaxDeclareStatus(), NOT_DECLARE.getValue()))) { continue; } needDeleteTaxDeclareRecordIds.add(oldTaxDeclareRecord.getId()); } - TaxDeclareRecordPO taxDeclareRecord = new TaxDeclareRecordPO().setId(IdGenerator.generate()).setTaxAgentId(taxAgentIdEntry.getKey()).setSalaryMonth(saveParam.getSalaryMonth()).setTaxCycle(taxCycleEntry.getKey()).setTaxDeclareType(TaxDeclareTypeEnum.NORMAL_DECLARE.getValue()).setTaxDeclareStatus(TaxDeclareStatusEnum.NOT_DECLARE.getValue()).setRemark(saveParam.getDescription()).setCreator((long) user.getUID()).setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()).setCreateTime(now).setUpdateTime(now); + TaxDeclareRecordPO taxDeclareRecord = new TaxDeclareRecordPO().setId(IdGenerator.generate()).setTaxAgentId(taxAgentIdEntry.getKey()).setSalaryMonth(saveParam.getSalaryMonth()).setTaxCycle(taxCycleEntry.getKey()).setTaxDeclareType(TaxDeclareTypeEnum.NORMAL_DECLARE.getValue()).setTaxDeclareStatus(NOT_DECLARE.getValue()).setRemark(saveParam.getDescription()).setCreator((long) user.getUID()).setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()).setCreateTime(now).setUpdateTime(now); newTaxDeclareRecords.add(taxDeclareRecord); // 鐢熸垚涓◣鐢虫姤琛 TaxDeclarationResult taxDeclarationResult = generateReportPerRecord(taxDeclareRecord, taxAgentIdEntry.getValue()); @@ -319,20 +329,20 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe //鏇存柊鏍哥畻璁板綍鐘舵 getSalaryAcctRecordService(user).updateStatusByIds(salaryAcctRecordIds, SalaryAcctRecordStatusEnum.DECLARED); - // 璁板綍鏃ュ織 - for (TaxDeclareRecordPO taxDeclareRecord : newTaxDeclareRecords) { - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); - loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") - .replace("{0}", taxAgentNameMap.getOrDefault(taxDeclareRecord.getTaxAgentId(), StringUtils.EMPTY)) - .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); - loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鐢熸垚涓◣鐢虫姤琛")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鐢熸垚涓◣鐢虫姤琛")); - loggerContext.setNewValues(taxDeclareRecord); - SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); - } + // 璁板綍鏃ュ織 + for (TaxDeclareRecordPO taxDeclareRecord : newTaxDeclareRecords) { + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); + loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") + .replace("{0}", taxAgentNameMap.getOrDefault(taxDeclareRecord.getTaxAgentId(), StringUtils.EMPTY)) + .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鐢熸垚涓◣鐢虫姤琛")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鐢熸垚涓◣鐢虫姤琛")); + loggerContext.setNewValues(taxDeclareRecord); + SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); + } } @Override @@ -342,7 +352,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe if (Objects.isNull(taxDeclareRecord)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156495, "鍙傛暟寮傚父锛屼釜绋庣敵鎶ヨ褰曚笉瀛樺湪鎴栧凡琚垹闄")); } - if (!Objects.equals(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.NOT_DECLARE.getValue()) && !Objects.equals(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_FAIL.getValue())) { + if (!Objects.equals(taxDeclareRecord.getTaxDeclareStatus(), NOT_DECLARE.getValue()) && !Objects.equals(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_FAIL.getValue())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(182700, "瀵逛笉璧凤紝鍙湁鏈敵鎶ョ姸鎬佷笅鍙互鍒锋柊鏁版嵁")); } // 鏌ヨ绋庢鎵灞炴湡涓嬬殑钖祫鏍哥畻浜哄憳 @@ -399,8 +409,8 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe .replace("{0}", taxAgent.getName()) .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "鍒锋柊涓◣鐢虫姤鏁版嵁")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "鍒锋柊涓◣鐢虫姤鏁版嵁")); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鍒锋柊涓◣鐢虫姤鏁版嵁")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鍒锋柊涓◣鐢虫姤鏁版嵁")); SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); } @@ -482,7 +492,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe for (Map.Entry> taxCycleEntry : taxCycleKeySalaryAcctTaxAgentMap.entrySet()) { Set archivedTaxAgentIds = SalaryEntityUtil.properties(taxCycleEntry.getValue(), SalaryAcctTaxAgentPO::getTaxAgentId); List taxDeclareRecords = listBySalaryMonthAndTaxAgentIds(saveParam.getSalaryMonth(), archivedTaxAgentIds); - TaxDeclareRecordPO declareSuccessTaxDeclareRecord = taxDeclareRecords.stream().filter(taxDeclareRecordPO -> archivedTaxAgentIds.contains(taxDeclareRecordPO.getTaxAgentId()) && !(Objects.equals(taxDeclareRecordPO.getTaxDeclareStatus(), TaxDeclareStatusEnum.NOT_DECLARE.getValue()) || Objects.equals(taxDeclareRecordPO.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_FAIL.getValue()))).findAny().orElse(null); + TaxDeclareRecordPO declareSuccessTaxDeclareRecord = taxDeclareRecords.stream().filter(taxDeclareRecordPO -> archivedTaxAgentIds.contains(taxDeclareRecordPO.getTaxAgentId()) && !(Objects.equals(taxDeclareRecordPO.getTaxDeclareStatus(), NOT_DECLARE.getValue()) || Objects.equals(taxDeclareRecordPO.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_FAIL.getValue()))).findAny().orElse(null); // 宸茬粡鐢虫姤鎴愬姛浜嗙殑涓◣鐢虫姤琛ㄧ殑涓◣鎵g即涔夊姟浜轰笉鍏佽閲嶆柊鐢熸垚 if (Objects.nonNull(declareSuccessTaxDeclareRecord)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(160522, "宸插紑鍚櫤鑳界畻钖笟鍔★紝涓◣鎵g即涔夊姟浜簕0}鐨勭◣娆炬墍灞炴湡{1}鐨勪釜绋庣敵鎶ヨ〃姝e湪鐢虫姤涓垨鑰呭凡缁忕敵鎶ユ垚鍔燂紝涓嶅彲閲嶅鐢熸垚").replace("{0}", taxAgentNameMap.get(declareSuccessTaxDeclareRecord.getTaxAgentId())).replace("{1}", SalaryDateUtil.getFormatYearMonth(declareSuccessTaxDeclareRecord.getTaxCycle()))); @@ -583,7 +593,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe if (CollectionUtils.isEmpty(taxDeclareRecords)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(160524, "涓◣鐢虫姤琛ㄤ笉瀛樺湪鎴栧凡琚垹闄")); } - List cantDeleteTaxDeclareRecords = taxDeclareRecords.stream().filter(e -> !(Objects.equals(e.getTaxDeclareType(), TaxDeclareTypeEnum.NORMAL_DECLARE.getValue()) && Objects.equals(e.getTaxDeclareStatus(), TaxDeclareStatusEnum.NOT_DECLARE.getValue()))).collect(Collectors.toList()); + List cantDeleteTaxDeclareRecords = taxDeclareRecords.stream().filter(e -> !(Objects.equals(e.getTaxDeclareType(), TaxDeclareTypeEnum.NORMAL_DECLARE.getValue()) && Objects.equals(e.getTaxDeclareStatus(), NOT_DECLARE.getValue()))).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(cantDeleteTaxDeclareRecords)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(177854, "涓◣鐢虫姤琛ㄥ凡缁忕敵鎶ワ紝鏃犳硶鍒犻櫎")); } @@ -609,35 +619,41 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe }); // 璁板綍鏃ュ織 - writeDeleteLog(taxDeclareRecords); + writeDeleteLog(taxDeclareRecords); } - private void writeDeleteLog(List taxDeclareRecords) { - // 璁板綍鏃ュ織 - List taxAgents = getTaxAgentService(user).listByIds(SalaryEntityUtil.properties(taxDeclareRecords, TaxDeclareRecordPO::getTaxAgentId)); - Map taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getId, TaxAgentPO::getName); - for (TaxDeclareRecordPO taxDeclareRecord : taxDeclareRecords) { - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); - loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") - .replace("{0}", taxAgentNameMap.getOrDefault(taxDeclareRecord.getTaxAgentId(), StringUtils.EMPTY)) - .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); - loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(156453, "鍒犻櫎涓◣鐢虫姤琛")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(156453, "鍒犻櫎涓◣鐢虫姤琛")); - SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); - } - } + private void writeDeleteLog(List taxDeclareRecords) { + // 璁板綍鏃ュ織 + List taxAgents = getTaxAgentService(user).listByIds(SalaryEntityUtil.properties(taxDeclareRecords, TaxDeclareRecordPO::getTaxAgentId)); + Map taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getId, TaxAgentPO::getName); + for (TaxDeclareRecordPO taxDeclareRecord : taxDeclareRecords) { + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); + loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") + .replace("{0}", taxAgentNameMap.getOrDefault(taxDeclareRecord.getTaxAgentId(), StringUtils.EMPTY)) + .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(156453, "鍒犻櫎涓◣鐢虫姤琛")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(156453, "鍒犻櫎涓◣鐢虫姤琛")); + SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); + } + } @Override - public void declare(Long id) { + public void declare(Long id, Integer reportType) { + + DeclareReportTypeEnum declareReportType = DeclareReportTypeEnum.parseByValue(reportType); + + TaxDeclareStatusPO declareStatus = getTaxDeclareStatusService(user).getTaxDeclareStatus(id, reportType); + + TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id); TaxDeclareRecordPO taxDeclareRecord = taxDeclareRequest.getTaxDeclareRecord(); - if (StringUtils.isNotEmpty(taxDeclareRecord.getRequestId()) && Objects.equals(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARING.getValue())) { + if (StringUtils.isNotEmpty(declareStatus.getRequestId()) && Objects.equals(declareStatus.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARING.getValue())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(160526, "鐩墠姝e浜庣敵鎶ヤ腑锛岃绋嶅悗鐗囧埢鍐嶇偣鍑汇岀敵鎶ュ弽棣堛嶈幏鍙栫粨鏋")); } - if (StringUtils.isNotEmpty(taxDeclareRecord.getRequestId()) && Objects.equals(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_CANCELLING.getValue())) { + if (StringUtils.isNotEmpty(declareStatus.getRequestId()) && Objects.equals(declareStatus.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_CANCELLING.getValue())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(160527, "鐩墠姝e浜庝綔搴熺敵鎶ヤ腑锛岃绋嶅悗鐗囧埢鍐嶇偣鍑汇屼綔搴熷弽棣堛嶈幏鍙栫粨鏋")); } @@ -674,9 +690,19 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe // 浜哄憳鍒楄〃 List> employeeDeclareParam = EmployeeDeclareRequest.convert2RequestParam(employeeDeclares); requestParam.put("rylb", employeeDeclareParam); - // 缁煎悎鎵寰 - Map taxDeclarationParam = TaxDeclarationRequest.convert2RequestParam(taxReportColumns, taxDeclarations, taxDeclarationValues, employeeDeclares); - requestParam.put("zhsd", taxDeclarationParam); + + if (declareReportType == DeclareReportTypeEnum.COMPREHENSIVE_INCOME) { + // 缁煎悎鎵寰 + Map taxDeclarationParam = TaxDeclarationRequest.convert2RequestParam(taxReportColumns, taxDeclarations, taxDeclarationValues, employeeDeclares); + requestParam.put("zhsd", taxDeclarationParam); + } + + if (declareReportType == DeclareReportTypeEnum.NONRESIDENT_INCOME) { + //闈炲眳姘戞墍寰椾唬鎵d唬缂 fjmsd + Map fjmsdRequestParam = TaxDeclarationRequest.convert2fjmsdRequestParam(taxReportColumns, taxDeclarations, taxDeclarationValues, employeeDeclares); + requestParam.put("fjmsd", fjmsdRequestParam); + } + String reqJson = JsonUtil.toJsonString(requestParam); String url = apiConfig.getHost() + SzyhApiConstant.DECLARE_TAX; Map params = new HashMap<>(1); @@ -690,44 +716,49 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe if (!Objects.equals(declareTaxResponse.getHead().getCode(), SzyhApiConstant.SUCCESS_CODE)) { throw new SalaryRunTimeException(declareTaxResponse.getHead().getMsg()); } - // 鏇存柊涓◣鐢虫姤璁板綍 - taxDeclareRecord.setTaxDeclareStatus(TaxDeclareStatusEnum.DECLARING.getValue()); - taxDeclareRecord.setRequestId(declareTaxResponse.getBody().getRequestId()); - taxDeclareRecord.setUpdateTime(new Date()); - //娓呴櫎涔嬪墠鐨勯敊璇 - taxDeclareRecord.setTaxDeclareErrorMsg(""); - getTaxDeclareRecordMapper().updateIgnoreNull(taxDeclareRecord); + // 鍒犻櫎涓◣鐢虫姤鐢虫姤澶辫触鐨勬暟鎹 getTaxDeclareFailService(user).deleteByTaxDeclareRecordIds(Collections.singleton(taxDeclareRecord.getId())); + //鏇存柊涓◣鐢虫姤鐘舵 + declareStatus.setTaxDeclareStatus(TaxDeclareStatusEnum.DECLARING.getValue()); + declareStatus.setRequestId(declareTaxResponse.getBody().getRequestId()); + declareStatus.setTaxDeclareErrorMsg(""); + getTaxDeclareStatusService(user).updateTaxDeclareStatus(declareStatus,true); + // 璁板綍鏃ュ織 - TaxAgentPO taxAgent = taxDeclareRequest.getTaxAgent(); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); - loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(203562, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") - .replace("{0}", taxAgent.getName()) - .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); - loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(156454, "鍦ㄧ嚎鐢虫姤")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(156454, "鍦ㄧ嚎鐢虫姤")); - SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); + TaxAgentPO taxAgent = taxDeclareRequest.getTaxAgent(); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); + loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(203562, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") + .replace("{0}", taxAgent.getName()) + .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(156454, "鍦ㄧ嚎鐢虫姤")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(156454, "鍦ㄧ嚎鐢虫姤")); + SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); } + + @Override - public void getDeclareFeedback(Long id, TaxDeclarationRateDTO taxDeclarationRate) { + public void getDeclareFeedback(Long id, Integer reportType, TaxDeclarationRateDTO taxDeclarationRate) { TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id); TaxDeclareRecordPO taxDeclareRecord = taxDeclareRequest.getTaxDeclareRecord(); - if (StringUtils.isEmpty(taxDeclareRecord.getRequestId()) || !Objects.equals(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARING.getValue())) { + + TaxDeclareStatusPO declareStatus = getTaxDeclareStatusService(user).getTaxDeclareStatus(id, reportType); + + if (StringUtils.isEmpty(declareStatus.getRequestId()) || !Objects.equals(declareStatus.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARING.getValue())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156496, "璇峰厛鐐瑰嚮銆屽湪绾跨敵鎶ャ嶅悗鍐嶇偣鍑汇岀敵鎶ュ弽棣堛嶈幏鍙栫敵鎶ョ粨鏋")); } TaxDeclarationApiConfigPO apiConfig = taxDeclareRequest.getTaxDeclarationApiConfig(); String url = apiConfig.getHost() + SzyhApiConstant.DECLARE_TAX_FEEDBACK; - ImmutableMap requestParam = ImmutableMap.of("requestId", taxDeclareRecord.getRequestId(), "reportType", "1"); + ImmutableMap requestParam = ImmutableMap.of("requestId", declareStatus.getRequestId(), "reportType", reportType + ""); Map header = SingnatureData.initHeader(Collections.emptyMap(), apiConfig.getAppKey(), apiConfig.getAppSecret()); String res = HttpUtil.getRequest(url, header, requestParam); - log.info("鐢虫姤鍙嶉杩斿洖鏁版嵁: {}, taxDeclareRecord: {}", res, JsonUtil.toJsonString(taxDeclareRecord)); + log.info("鐢虫姤鍙嶉杩斿洖鏁版嵁: {}, taxDeclareRecord: {},declareStatus :{}", res, JsonUtil.toJsonString(taxDeclareRecord), JsonUtil.toJsonString(declareStatus)); DeclareTaxFeedbackResponse declareTaxFeedbackResponse = JsonUtil.parseObject(res, DeclareTaxFeedbackResponse.class); if (Objects.isNull(declareTaxFeedbackResponse) || Objects.isNull(declareTaxFeedbackResponse.getHead())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156449, "鏈嶅姟寮傚父")); @@ -777,14 +808,13 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe } } } - taxDeclareRecord.setTaxDeclareErrorMsg(String.join(",", errorMsg)); + declareStatus.setTaxDeclareErrorMsg(String.join(",", errorMsg)); } else { //娓呴櫎涔嬪墠鐨勯敊璇 - taxDeclareRecord.setTaxDeclareErrorMsg(""); + declareStatus.setTaxDeclareErrorMsg(""); } // 鐢虫姤鐘舵 - Integer declareStatus = SalaryEntityUtil.getIntValue(declareTaxFeedbackResponse.getBody().get("sbztbj"), -1); - TaxDeclareStatusEnum taxDeclareStatusEnum = SalaryEnumUtil.enumMatchByValue(declareStatus, TaxDeclareStatusEnum.class); + TaxDeclareStatusEnum taxDeclareStatusEnum = SalaryEnumUtil.enumMatchByValue(SalaryEntityUtil.getIntValue(declareTaxFeedbackResponse.getBody().get("sbztbj"), -1), TaxDeclareStatusEnum.class); if (taxDeclareStatusEnum == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156509, "鏈嶅姟寮傚父锛屾帴鍙h繑鍥炴暟鎹湁璇")); } @@ -792,33 +822,35 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe if (declareFeedBackStatusEnum == DeclareFeedBackStatusEnum.DECLARE_FAIL) { taxDeclareStatusEnum = TaxDeclareStatusEnum.DECLARE_FAIL; } - taxDeclareRecord.setTaxDeclareStatus(taxDeclareStatusEnum.getValue()); + declareStatus.setTaxDeclareStatus(taxDeclareStatusEnum.getValue()); // 鐢虫姤绫诲瀷 - taxDeclareRecord.setTaxPayAmount(Util.null2String(declareTaxFeedbackResponse.getBody().get("ykjse"))); - taxDeclareRecord.setPersonNum(Integer.parseInt(Optional.ofNullable(declareTaxFeedbackResponse.getBody().get("nsrc")).orElse("0").toString())); - taxDeclareRecord.setDeclareRequestId(taxDeclareRecord.getRequestId()); - taxDeclareRecord.setRequestId(""); - taxDeclareRecord.setUpdateTime(new Date()); - BigDecimal purePaidAmount = SalaryEntityUtil.empty2Zero(taxDeclareRecord.getTaxPurePaidAmount()); - BigDecimal payAmount = SalaryEntityUtil.empty2Zero(taxDeclareRecord.getTaxPayAmount()); + declareStatus.setTaxPayAmount(Util.null2String(declareTaxFeedbackResponse.getBody().get("ykjse"))); + declareStatus.setPersonNum(Integer.parseInt(Optional.ofNullable(declareTaxFeedbackResponse.getBody().get("nsrc")).orElse("0").toString())); + declareStatus.setDeclareRequestId(declareStatus.getRequestId()); + declareStatus.setRequestId(""); + //瀹炵即锛堜笉鍚粸绾抽噾锛 + BigDecimal purePaidAmount = SalaryEntityUtil.empty2Zero(declareStatus.getTaxPurePaidAmount()); + //搴旂即 + BigDecimal payAmount = SalaryEntityUtil.empty2Zero(declareStatus.getTaxPayAmount()); if (TaxDeclareStatusEnum.DECLARE_SUCCESS_PAID.equals(taxDeclareStatusEnum) || TaxDeclareStatusEnum.DECLARE_SUCCESS_NO_PAY.equals(taxDeclareStatusEnum)) { // 濡傛灉鏄凡缂寸撼鐘舵侊紝鍒欐洿鏂板凡缂寸撼閲戦锛屽垽鏂槸鍚﹂渶瑕佺嚎涓嬮绋 if (purePaidAmount.compareTo(payAmount) > 0) { - taxDeclareRecord.setTaxPayAmount(payAmount.subtract(purePaidAmount).toString()); - BigDecimal paidAmount = SalaryEntityUtil.empty2Zero(taxDeclareRecord.getTaxPaidAmount()); + declareStatus.setTaxPayAmount(payAmount.subtract(purePaidAmount).toString()); + BigDecimal paidAmount = SalaryEntityUtil.empty2Zero(declareStatus.getTaxPaidAmount()); taxDeclarationRate.setMsg(String.format(SalaryI18nUtil.getI18nLabel(183789, "搴旂即绋庨锛堜笉鍚粸绾抽噾绛夛級锛%s鍏冿紝宸茬即閲戦锛堝彲鑳藉惈婊炵撼閲戠瓑锛夛細%s鍏冿紝褰撳墠宸茬即娆鹃噾棰濆ぇ浜庡簲缂寸撼閲戦锛岃绾夸笅鍓嶅線鍔炵◣澶у巺鍔炵悊閫娆俱"), payAmount, paidAmount)); taxDeclarationRate.setMsgPersist(true); } else if (purePaidAmount.compareTo(payAmount) == 0) { - taxDeclareRecord.setTaxPayAmount(BigDecimal.ZERO.toString()); + declareStatus.setTaxPayAmount(BigDecimal.ZERO.toString()); } else { throw new SalaryRunTimeException("缂存鏁版嵁寮傚父锛岃澶勭悊鍚庨噸璇"); } } else if (TaxDeclareStatusEnum.DECLARE_SUCCESS_UNPAID.equals(taxDeclareStatusEnum)) { // 濡傛灉涓嶆槸宸茬即绾崇姸鎬侊紝鍒欏噺鎺変箣鍓嶇殑宸茬即绾抽噾棰濆幓鏇存柊搴旂即绾抽噾棰 - taxDeclareRecord.setTaxPayAmount(payAmount.subtract(purePaidAmount).toString()); + declareStatus.setTaxPayAmount(payAmount.subtract(purePaidAmount).toString()); } - // 鏇存柊涓◣鐢虫姤璁板綍 - getTaxDeclareRecordMapper().updateIgnoreNull(taxDeclareRecord); + //鏇存柊鐢虫姤鐘舵 + getTaxDeclareStatusService(user).updateTaxDeclareStatus(declareStatus,true); + // 濡傛灉鐢虫姤澶辫触 if (CollectionUtils.isNotEmpty(taxDeclareFails)) { getTaxDeclareFailService(user).saveBatch(taxDeclareFails); @@ -832,29 +864,31 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe getTaxDeclarationApiBillingService(user).updateApiFlowInfo(apiFlowUpdateWrapper); // 璁板綍鏃ュ織 - TaxAgentPO taxAgent = taxDeclareRequest.getTaxAgent(); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); - loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(203562, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") - .replace("{0}", taxAgent.getName()) - .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); - loggerContext.setUser(user); - loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鐢虫姤鍙嶉")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鐢虫姤鍙嶉")); + TaxAgentPO taxAgent = taxDeclareRequest.getTaxAgent(); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); + loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(203562, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") + .replace("{0}", taxAgent.getName()) + .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); + loggerContext.setUser(user); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鐢虫姤鍙嶉")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鐢虫姤鍙嶉")); SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); } @Override - public void cancelDeclare(Long id) { + public void cancelDeclare(Long id, Integer reportType) { TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id); TaxDeclareRecordPO taxDeclareRecord = taxDeclareRequest.getTaxDeclareRecord(); + + TaxDeclareStatusPO declareStatus = getTaxDeclareStatusService(user).getTaxDeclareStatus(id, reportType); // 鏇存鐢虫姤鎴愬姛鍚庝笉鑳戒綔搴 - if (Objects.equals(taxDeclareRecord.getTaxDeclareType(), TaxDeclareTypeEnum.UPDATE_DECLARE.getValue())) { + if (Objects.equals(declareStatus.getTaxDeclareType(), TaxDeclareTypeEnum.UPDATE_DECLARE.getValue())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(182701, "鏇存鐢虫姤鍚庝笉鍏佽浣滃簾")); } // 鍙湁鐢虫姤鎴愬姛锛屾棤闇缂存/鐢虫姤鎴愬姛锛屾湭缂存鐨勭姸鎬佹墠鑳戒綔搴 - if (!Objects.equals(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_SUCCESS_NO_PAY.getValue()) && !Objects.equals(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_SUCCESS_UNPAID.getValue())) { + if (!Objects.equals(declareStatus.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_SUCCESS_NO_PAY.getValue()) && !Objects.equals(declareStatus.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_SUCCESS_UNPAID.getValue())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156497, "鍙湁鐢虫姤鎴愬姛锛屾棤闇缂存/鐢虫姤鎴愬姛锛屾湭缂存鐨勭姸鎬佹墠鑳戒綔搴")); } // 渚涘簲鍟嗕俊鎭 @@ -864,7 +898,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe // 绋庢鎵灞炴湡 requestParam.put("skssq", SalaryDateUtil.getFormatYYYYMM(taxDeclareRecord.getTaxCycle())); // 鐢虫姤绫诲瀷 - requestParam.put("sblx", "1"); + requestParam.put("sblx", reportType + ""); // 浣滃簾閾惰仈缂存鍑瘉 // taxPaymentServiceFactory.get(TaxPaymentServiceTypeEnum.WITHHOLDING_VOUCHER.getValue()).cancelWithholdingVoucher(apiConfig, taxDeclareRecord, requestParam); // 鏄惁娓呯┖鎵寰 @@ -883,37 +917,41 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe if (!Objects.equals(declareTaxResponse.getHead().getCode(), SzyhApiConstant.SUCCESS_CODE)) { throw new SalaryRunTimeException(declareTaxResponse.getHead().getMsg()); } - // 鏇存柊涓◣鐢虫姤璁板綍 - taxDeclareRecord.setTaxDeclareStatus(TaxDeclareStatusEnum.DECLARE_CANCELLING.getValue()); - taxDeclareRecord.setRequestId(declareTaxResponse.getBody().getRequestId()); - taxDeclareRecord.setUpdateTime(new Date()); - getTaxDeclareRecordMapper().updateIgnoreNull(taxDeclareRecord); + // 鏇存柊涓◣鐢虫姤鐘舵 + declareStatus.setTaxDeclareStatus(TaxDeclareStatusEnum.DECLARE_CANCELLING.getValue()); + declareStatus.setRequestId(declareTaxResponse.getBody().getRequestId()); + getTaxDeclareStatusService(user).updateTaxDeclareStatus(declareStatus,true); - // 璁板綍鏃ュ織 - TaxAgentPO taxAgent = taxDeclareRequest.getTaxAgent(); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); - loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") - .replace("{0}", taxAgent.getName()) - .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); - loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鐢虫姤浣滃簾")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鐢虫姤浣滃簾")); + // 璁板綍鏃ュ織 + TaxAgentPO taxAgent = taxDeclareRequest.getTaxAgent(); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); + loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") + .replace("{0}", taxAgent.getName()) + .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鐢虫姤浣滃簾")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鐢虫姤浣滃簾")); SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); } @Override - public void getCancelFeedback(Long id, TaxDeclarationRateDTO taxDeclarationRate) { + public void getCancelFeedback(Long id, Integer reportType, TaxDeclarationRateDTO taxDeclarationRate) { TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id); TaxDeclareRecordPO taxDeclareRecord = taxDeclareRequest.getTaxDeclareRecord(); - if (!Objects.equals(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_CANCELLING.getValue()) || StringUtils.isEmpty(taxDeclareRecord.getRequestId())) { + + TaxDeclareStatusPO declareStatus = getTaxDeclareStatusService(user).getTaxDeclareStatus(id, reportType); + + + if (!Objects.equals(declareStatus.getTaxDeclareStatus(), TaxDeclareStatusEnum.DECLARE_CANCELLING.getValue()) || StringUtils.isEmpty(declareStatus.getRequestId())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156500, "璇峰厛鐐瑰嚮銆屼綔搴熺敵鎶ャ嶅悗鍐嶆潵鐐瑰嚮銆岀敵鎶ュ弽棣堛嶆寜閽幏鍙栫粨鏋")); } + // 渚涘簲鍟嗕俊鎭 TaxDeclarationApiConfigPO apiConfig = taxDeclareRequest.getTaxDeclarationApiConfig(); String url = apiConfig.getHost() + SzyhApiConstant.CANCEL_DECLARE_FEEDBACK; - ImmutableMap requestParam = ImmutableMap.of("requestId", taxDeclareRecord.getRequestId(), "reportType", "1"); + ImmutableMap requestParam = ImmutableMap.of("requestId", declareStatus.getRequestId(), "reportType", reportType + ""); Map header = SingnatureData.initHeader(Collections.emptyMap(), apiConfig.getAppKey(), apiConfig.getAppSecret()); String res = HttpUtil.getRequest(url, header, requestParam); log.info("浣滃簾鍙嶉杩斿洖鏁版嵁锛" + res); @@ -935,22 +973,23 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe if (taxDeclareStatusEnum == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156509, "鏈嶅姟寮傚父锛屾帴鍙h繑鍥炴暟鎹湁璇")); } - taxDeclareRecord.setTaxDeclareStatus(taxDeclareStatusEnum.getValue()); - taxDeclareRecord.setRequestId(""); - taxDeclareRecord.setUpdateTime(new Date()); - getTaxDeclareRecordMapper().updateIgnoreNull(taxDeclareRecord); + + //鏇存柊涓◣鐢虫姤鐘舵 + declareStatus.setTaxDeclareStatus(taxDeclareStatusEnum.getValue()); + declareStatus.setRequestId(""); + getTaxDeclareStatusService(user).updateTaxDeclareStatus(declareStatus,true); // 璁板綍鏃ュ織 - TaxAgentPO taxAgent = taxDeclareRequest.getTaxAgent(); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); - loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") - .replace("{0}", taxAgent.getName()) - .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); - loggerContext.setUser(user); - loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鑾峰彇鐢虫姤浣滃簾鐨勫弽棣")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鑾峰彇鐢虫姤浣滃簾鐨勫弽棣")); + TaxAgentPO taxAgent = taxDeclareRequest.getTaxAgent(); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); + loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") + .replace("{0}", taxAgent.getName()) + .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); + loggerContext.setUser(user); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鑾峰彇鐢虫姤浣滃簾鐨勫弽棣")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鑾峰彇鐢虫姤浣滃簾鐨勫弽棣")); SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); } @@ -972,26 +1011,33 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe @Override public XSSFWorkbook exportGetDeclareTaxResultFeedback(DeclareTaxResultFeedbackQueryParam param) { Long id = param.getId(); + TaxDeclareRecordPO taxDeclareRecord = getById(id); String requestId = param.getRequestId(); - TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id); - TaxDeclareRecordPO taxDeclareRecord = taxDeclareRequest.getTaxDeclareRecord(); + TaxDeclareStatusPO declareStatus = getTaxDeclareStatusService(user).getTaxDeclareStatus(id, param.getReportType()); DeclareClient declareClient = new DeclareClient(taxDeclareRecord.getTaxAgentId()); - GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse = declareClient.getDeclareTaxResultFeedback(StringUtils.isEmpty(requestId) ? taxDeclareRecord.getDeclareRequestId() : requestId); + GetDeclareTaxResultFeedbackResponse declareTaxResultFeedbackResponse = declareClient.getDeclareTaxResultFeedback(StringUtils.isEmpty(requestId) ? declareStatus.getDeclareRequestId() : requestId); Map>> map = new HashMap<>(); List list = getTaxDeclarationService(user).listByTaxDeclareRecordId(id); - list.stream().map(TaxDeclarationPO::getIncomeCategory).map(IncomeCategoryEnum::parseByValue).forEach(e -> e.parseGetDeclareTaxResultFeedbackResponse(map, declareTaxResultFeedbackResponse)); + list.stream() + .map(TaxDeclarationPO::getIncomeCategory) + .map(IncomeCategoryEnum::parseByValue) + .filter(incomeCategoryEnum -> incomeCategoryEnum.getReportType().getValue().equals(param.getReportType())) + .collect(Collectors.toList()).forEach(e -> e.parseGetDeclareTaxResultFeedbackResponse(map, declareTaxResultFeedbackResponse)); return ExcelUtil.genWorkbookV2(map); } @Override - public void updateDeclare(Long id) { + public void updateDeclare(Long id, Integer reportType) { TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id); TaxDeclareRecordPO taxDeclareRecord = taxDeclareRequest.getTaxDeclareRecord(); + TaxDeclareStatusPO declareStatus = getTaxDeclareStatusService(user).getTaxDeclareStatus(id, reportType); + + List taxDeclareStatusEnumValueList = Lists.newArrayList(TaxDeclareStatusEnum.DECLARE_SUCCESS_UNPAID.getValue(), TaxDeclareStatusEnum.DECLARE_SUCCESS_NO_PAY.getValue(), TaxDeclareStatusEnum.DECLARE_SUCCESS_PAID.getValue(), TaxDeclareStatusEnum.DECLARE_SUCCESS_PAYING.getValue()); - if (!taxDeclareStatusEnumValueList.contains(taxDeclareRecord.getTaxDeclareStatus())) { + if (!taxDeclareStatusEnumValueList.contains(declareStatus.getTaxDeclareStatus())) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(182702, "瀵逛笉璧凤紝鍙湁鐢虫姤鎴愬姛鍚庢墠鍏佽鏇存鐢虫姤")); } // 渚涘簲鍟嗕俊鎭 @@ -1001,7 +1047,7 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe // 绋庢鎵灞炴湡 requestParam.put("skssq", SalaryDateUtil.getFormatYYYYMM(taxDeclareRecord.getTaxCycle())); // 鐢虫姤绫诲瀷 - requestParam.put("sblx", "1"); + requestParam.put("sblx", reportType + ""); // 璇锋眰 String reqJson = JsonUtil.toJsonString(requestParam); log.info("鏇存鐢虫姤璇锋眰鏁版嵁锛" + reqJson); @@ -1017,27 +1063,27 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe if (!Objects.equals(updateDeclareResponse.getHead().getCode(), SzyhApiConstant.SUCCESS_CODE)) { throw new SalaryRunTimeException(updateDeclareResponse.getHead().getMsg()); } - taxDeclareRecord.setTaxDeclareType(TaxDeclareTypeEnum.UPDATE_DECLARE.getValue()); - taxDeclareRecord.setTaxDeclareStatus(TaxDeclareStatusEnum.NOT_DECLARE.getValue()); - taxDeclareRecord.setRequestId(""); - taxDeclareRecord.setUpdateTime(new Date()); - getTaxDeclareRecordMapper().updateIgnoreNull(taxDeclareRecord); + + //鏇存柊鐢虫姤鐘舵 + declareStatus.setTaxDeclareType(TaxDeclareTypeEnum.UPDATE_DECLARE.getValue()); + declareStatus.setTaxDeclareStatus(NOT_DECLARE.getValue()); + declareStatus.setRequestId(""); + getTaxDeclareStatusService(user).updateTaxDeclareStatus(declareStatus,true); // 璁板綍鏃ュ織 - TaxAgentPO taxAgent = taxDeclareRequest.getTaxAgent(); - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); - loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") - .replace("{0}", taxAgent.getName()) - .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); - loggerContext.setUser(user); - loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鏇存鐢虫姤")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鏇存鐢虫姤")); + TaxAgentPO taxAgent = taxDeclareRequest.getTaxAgent(); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); + loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(0, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") + .replace("{0}", taxAgent.getName()) + .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecord.getTaxCycle()))); + loggerContext.setUser(user); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鏇存鐢虫姤")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鏇存鐢虫姤")); SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); } - @Override public void cancelCorrect(Long id) { TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id); @@ -1076,17 +1122,17 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe // getTaxDeclareRecordMapper().updateIgnoreNull(taxDeclareRecord); // 璁板綍鏃ュ織 - // TaxAgentPO taxAgent = taxDeclareRequest.getTaxAgent(); - // LoggerContext loggerContext = new LoggerContext<>(); - // loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); - // loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(203562, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") - // .replace("{0}", taxAgent.getName()) - // .replace("{1}", taxDeclareRecord.getTaxCycle())); - // loggerContext.setOperator(Util.null2String(employeeId)); - // loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - // loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(177637, "鏇存鐢虫姤")); - // loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(177637, "鏇存鐢虫姤")); - // taxDeclarationLoggerTemplate.write(loggerContext); + // TaxAgentPO taxAgent = taxDeclareRequest.getTaxAgent(); + // LoggerContext loggerContext = new LoggerContext<>(); + // loggerContext.setTargetId(String.valueOf(taxDeclareRecord.getId())); + // loggerContext.setTargetName(SalaryI18nUtil.getI18nLabel(203562, "涓◣鎵g即涔夊姟浜恒寋0}銆嶇◣娆炬墍灞炴湡銆寋1}銆") + // .replace("{0}", taxAgent.getName()) + // .replace("{1}", taxDeclareRecord.getTaxCycle())); + // loggerContext.setOperator(Util.null2String(employeeId)); + // loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + // loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(177637, "鏇存鐢虫姤")); + // loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(177637, "鏇存鐢虫姤")); + // taxDeclarationLoggerTemplate.write(loggerContext); } @Override @@ -1097,8 +1143,6 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe Map requestParam = taxDeclareRequest.getRequestParam(); // 绋庢鎵灞炴湡 requestParam.put("skssq", SalaryDateUtil.getFormatYYYYMM(taxDeclareRecord.getTaxCycle())); - // 鐢虫姤绫诲瀷 - requestParam.put("sblx", "1"); // 璇锋眰 String reqJson = JsonUtil.toJsonString(requestParam); String url = apiConfig.getHost() + SzyhApiConstant.QUERY_DECLARE_STATUS; @@ -1110,15 +1154,17 @@ public class TaxDeclareRecordServiceImpl extends Service implements TaxDeclareRe } @Override - public String queryCompanyIncomes(Long id) { - TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(id); + public String queryCompanyIncomes(TaxDeclareRecordParam taxDeclareRecordParam) { + ValidUtil.doValidator(taxDeclareRecordParam); + + TaxDeclareRequest taxDeclareRequest = buildTaxDeclareRequest(taxDeclareRecordParam.getTaxDeclareRecordId()); TaxDeclarationApiConfigPO apiConfig = taxDeclareRequest.getTaxDeclarationApiConfig(); TaxDeclareRecordPO taxDeclareRecord = taxDeclareRequest.getTaxDeclareRecord(); Map requestParam = taxDeclareRequest.getRequestParam(); // 绋庢鎵灞炴湡 requestParam.put("skssq", SalaryDateUtil.getFormatYYYYMM(taxDeclareRecord.getTaxCycle())); // 鎶ヨ〃绫诲瀷 - requestParam.put("reportType", "1"); + requestParam.put("reportType", taxDeclareRecordParam.getReportType()); // 椤电爜 requestParam.put("pageNo", "1"); // 姣忛〉鏁伴噺 diff --git a/src/com/engine/salary/service/impl/TaxDeclareStatusServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclareStatusServiceImpl.java new file mode 100644 index 000000000..88e92f045 --- /dev/null +++ b/src/com/engine/salary/service/impl/TaxDeclareStatusServiceImpl.java @@ -0,0 +1,142 @@ +package com.engine.salary.service.impl; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationPO; +import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO; +import com.engine.salary.entity.taxdeclaration.po.TaxDeclareStatusPO; +import com.engine.salary.enums.salarysob.IncomeCategoryEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.taxdeclaration.TaxDeclareRecordMapper; +import com.engine.salary.mapper.taxdeclaration.TaxDeclareStatusMapper; +import com.engine.salary.service.TaxDeclarationService; +import com.engine.salary.service.TaxDeclareStatusService; +import com.engine.salary.util.SalaryDateUtil; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import weaver.hrm.User; + +import java.math.BigDecimal; +import java.util.*; + +import static com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum.NOT_DECLARE; + +/** + * 涓◣鐢虫姤 + *

Copyright: Copyright (c) 2022

+ *

Company: 娉涘井杞欢

+ * + * @author qiantao + * @version 1.0 + **/ +@Slf4j +public class TaxDeclareStatusServiceImpl extends Service implements TaxDeclareStatusService { + + + private TaxDeclareRecordMapper getTaxDeclareRecordMapper() { + return MapperProxyFactory.getProxy(TaxDeclareRecordMapper.class); + } + + private TaxDeclareStatusMapper getTaxDeclareStatusMapper() { + return MapperProxyFactory.getProxy(TaxDeclareStatusMapper.class); + } + + private TaxDeclarationService getTaxDeclarationService(User user) { + return ServiceUtil.getService(TaxDeclarationServiceImpl.class, user); + } + + @Override + public List getTaxDeclareStatusByTaxDeclareRecordId(Long taxDeclareRecordId) { + return getTaxDeclareStatusMapper().listSome(TaxDeclareStatusPO.builder().taxDeclareRecordId(taxDeclareRecordId).build()); + } + + @Override + public TaxDeclareStatusPO getTaxDeclareStatus(Long taxDeclareRecordId, Integer reportType) { + return getTaxDeclareStatusMapper().getDeclareStatus(taxDeclareRecordId, reportType); + } + + + @Override + public void updateTaxDeclareStatus(TaxDeclareStatusPO declareStatus, boolean updateRecord) { + //鏇存柊鐢虫姤琛ㄧ姸鎬 + getTaxDeclareStatusMapper().updateIgnoreNull(declareStatus); + + //鏇存柊涓昏褰 + if (updateRecord) { + updateRecord(declareStatus.getTaxDeclareRecordId()); + } + } + + + @Override + public List updateRecord(Long id) { + + // 鏌ヨ涓◣鐢虫姤璁板綍 + TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordMapper().getById(id); + if (Objects.isNull(taxDeclareRecord)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156495, "鍙傛暟寮傚父锛屼釜绋庣敵鎶ヨ褰曚笉瀛樺湪鎴栧凡琚垹闄")); + } + + // 鏌ヨ涓◣鐢虫姤琛 + List taxDeclarations = getTaxDeclarationService(user).listByTaxCycleAndTaxAgentIds(SalaryDateUtil.localDate2YearMonth(taxDeclareRecord.getTaxCycle()), Collections.singleton(taxDeclareRecord.getTaxAgentId())); + if (CollectionUtils.isEmpty(taxDeclarations)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(156494, "褰撳墠鏃犲彲鐢虫姤鐨勬暟鎹")); + } + + Set reportTypes = new HashSet<>(); + taxDeclarations.forEach(taxDeclarationPO -> { + reportTypes.add(IncomeCategoryEnum.parseByValue(taxDeclarationPO.getIncomeCategory()).getReportType().getValue()); + }); + + List statuses = new ArrayList<>(); + + int personNum = 0; + BigDecimal taxPayAmount = new BigDecimal(0); + BigDecimal taxPaidAmount = new BigDecimal(0); + BigDecimal taxPurePaidAmount = new BigDecimal(0); + + for (Integer reportType : reportTypes) { + TaxDeclareStatusPO declareStatus = getTaxDeclareStatus(id, reportType); + if (declareStatus == null) { + declareStatus = TaxDeclareStatusPO.builder() + .id(IdGenerator.generate()) + .taxDeclareRecordId(id) + .reportType(reportType) + .taxDeclareType(taxDeclareRecord.getTaxDeclareType()) + .taxDeclareStatus(taxDeclareRecord.getTaxDeclareStatus()) + .taxDeclareErrorMsg(taxDeclareRecord.getTaxDeclareErrorMsg()) + .personNum(taxDeclareRecord.getPersonNum()) + .taxPayAmount(taxDeclareRecord.getTaxPayAmount()) + .taxPaidAmount(taxDeclareRecord.getTaxPaidAmount()) + .taxPurePaidAmount(taxDeclareRecord.getTaxPaidAmount()) + .deleteType(0) + .build(); + getTaxDeclareStatusMapper().insertIgnoreNull(declareStatus); + } + statuses.add(declareStatus); + + personNum += declareStatus.getPersonNum() == null ? 0 : declareStatus.getPersonNum(); + taxPayAmount = taxPayAmount.add(SalaryEntityUtil.empty2Zero(declareStatus.getTaxPayAmount())); + taxPaidAmount = taxPaidAmount.add(SalaryEntityUtil.empty2Zero(declareStatus.getTaxPaidAmount())); + taxPurePaidAmount = taxPurePaidAmount.add(SalaryEntityUtil.empty2Zero(declareStatus.getTaxPurePaidAmount())); + } + + //鏇存柊璁板綍鐨勭姸鎬侊紝鍚勪釜鎶ヨ〃鐘舵佷竴鑷村垯閲囩撼锛屽惁鍒欏彇鏈灏忕殑杩涘害鐘舵 + Integer declareStatusEnum = statuses.stream().map(TaxDeclareStatusPO::getTaxDeclareStatus).min(Comparator.comparing(Integer::valueOf)).orElse(NOT_DECLARE.getValue()); + + taxDeclareRecord.setPersonNum(personNum); + taxDeclareRecord.setTaxPayAmount(taxPayAmount.toString()); + taxDeclareRecord.setTaxPaidAmount(taxPaidAmount.toString()); + taxDeclareRecord.setTaxPurePaidAmount(taxPurePaidAmount.toString()); + taxDeclareRecord.setTaxDeclareStatus(declareStatusEnum); + getTaxDeclareRecordMapper().updateIgnoreNull(taxDeclareRecord); + + return statuses; + } + + +} diff --git a/src/com/engine/salary/service/impl/TaxPaymentWithheldVoucherServiceImpl.java b/src/com/engine/salary/service/impl/TaxPaymentWithheldVoucherServiceImpl.java index eb977a7b7..235bdeefd 100644 --- a/src/com/engine/salary/service/impl/TaxPaymentWithheldVoucherServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxPaymentWithheldVoucherServiceImpl.java @@ -10,13 +10,13 @@ import com.engine.salary.entity.taxpayment.dto.TaxWithheldVoucherResultDTO; import com.engine.salary.entity.taxpayment.param.TaxPaymentQueryParam; import com.engine.salary.entity.taxpayment.response.BaseResponse; import com.engine.salary.entity.taxpayment.response.WithheldVoucherResponse; +import com.engine.salary.enums.salarysob.DeclareReportTypeEnum; import com.engine.salary.enums.taxdeclaration.TaxPaymentServiceTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import lombok.extern.slf4j.Slf4j; -import org.springframework.transaction.annotation.Transactional; import java.util.*; @@ -41,7 +41,6 @@ public class TaxPaymentWithheldVoucherServiceImpl extends AbstractTaxPaymentServ return postRequest(apiConfig, url, requestParam, clazz); } - @Transactional(rollbackFor = Exception.class) @Override public TaxWithheldVoucherResultDTO getWithheldVoucher(TaxPaymentQueryParam param) { TempWrapper tempWrapper = checkBeforeGetRequestIdResponse(param); @@ -49,10 +48,20 @@ public class TaxPaymentWithheldVoucherServiceImpl extends AbstractTaxPaymentServ param, tempWrapper.getApiConfigPO(), WithheldVoucherResponse.class); // 鏍¢獙璇锋眰缁撴灉 String responseCode = Optional.ofNullable(queryResponse).map(WithheldVoucherResponse::getHead).map(SzyhResponseHead::getCode).orElse(null); - WithheldVoucherResponse.Feedback feedback = Optional.ofNullable(queryResponse).map(WithheldVoucherResponse::getBody).map(WithheldVoucherResponse.Body::getZhsd).orElse(null); + WithheldVoucherResponse.Feedback feedback = Optional.ofNullable(queryResponse).map(WithheldVoucherResponse::getBody).map(body -> { + if (DeclareReportTypeEnum.COMPREHENSIVE_INCOME.getValue().equals(param.getReportType())) { + return body.getZhsd(); + } else if (DeclareReportTypeEnum.CLASSIFIED_INCOME.getValue().equals(param.getReportType())) { + return body.getFlsd(); + } else if (DeclareReportTypeEnum.NONRESIDENT_INCOME.getValue().equals(param.getReportType())) { + return body.getFjmsd(); + } else { + return body.getXsgsd(); + } + }).orElse(null); if (!SzyhApiConstant.SUCCESS_CODE.equals(responseCode) || Objects.isNull(feedback)) { log.info("getWithheldVoucher code error锛歿}", JSON.toJSONString(queryResponse)); - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 95828, "绋庡眬鎺ュ彛寮傚父锛岃绋嶅悗閲嶈瘯")); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(95828, "绋庡眬鎺ュ彛寮傚父锛岃绋嶅悗閲嶈瘯")); } Integer status = SalaryEntityUtil.getIntValue(feedback.getJkzt(), -1); if (status.equals(1)) { @@ -61,7 +70,7 @@ public class TaxPaymentWithheldVoucherServiceImpl extends AbstractTaxPaymentServ } List vouchers = new ArrayList<>(); for (int i = 1; i <= feedback.getWszmlb().size(); i++) { - vouchers.add(new TaxWithheldVoucherResultDTO.Voucher(SalaryI18nUtil.getI18nLabel( 184013, "瀹岀◣璇佹槑") + i, feedback.getWszmlb().get(i - 1))); + vouchers.add(new TaxWithheldVoucherResultDTO.Voucher(SalaryI18nUtil.getI18nLabel(184013, "瀹岀◣璇佹槑") + i, feedback.getWszmlb().get(i - 1))); } return new TaxWithheldVoucherResultDTO().setVouchers(vouchers); } diff --git a/src/com/engine/salary/service/impl/TaxPaymentWithholdingServiceImpl.java b/src/com/engine/salary/service/impl/TaxPaymentWithholdingServiceImpl.java index eab790615..743f1631c 100644 --- a/src/com/engine/salary/service/impl/TaxPaymentWithholdingServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxPaymentWithholdingServiceImpl.java @@ -8,6 +8,7 @@ import com.engine.salary.entity.taxagent.po.TaxAgentTaxReturnPO; import com.engine.salary.entity.taxagent.response.SzyhResponseHead; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationApiConfigPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO; +import com.engine.salary.entity.taxdeclaration.po.TaxDeclareStatusPO; import com.engine.salary.entity.taxpayment.dto.TaxAgreementFeedbackResultDTO; import com.engine.salary.entity.taxpayment.dto.TaxAmountFormDTO; import com.engine.salary.entity.taxpayment.dto.TaxFeedbackResultDTO; @@ -16,6 +17,8 @@ import com.engine.salary.entity.taxpayment.po.TaxPaymentRequestPO; import com.engine.salary.entity.taxpayment.response.BaseResponse; import com.engine.salary.entity.taxpayment.response.WithholdingFeedbackResponse; import com.engine.salary.enums.SalaryOnOffEnum; +import com.engine.salary.enums.salarysob.DeclareReportTypeEnum; +import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum; import com.engine.salary.enums.taxdeclaration.TaxPaymentServiceTypeEnum; import com.engine.salary.enums.taxdeclaration.TaxPaymentStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; @@ -23,8 +26,7 @@ import com.engine.salary.util.*; import lombok.extern.slf4j.Slf4j; import java.math.BigDecimal; -import java.util.Map; -import java.util.Optional; +import java.util.*; /** * 涓夋柟缂存 @@ -52,30 +54,66 @@ public class TaxPaymentWithholdingServiceImpl extends AbstractTaxPaymentService log.info("getAgreementQueryFeedbackResponse not success: {}", JSON.toJSONString(feedbackResponse)); throw new SalaryRunTimeException(msg); } - WithholdingFeedbackResponse.Feedback feedback = Optional.of(feedbackResponse) - .map(WithholdingFeedbackResponse::getBody) - .map(WithholdingFeedbackResponse.Body::getZhsdjk) - .orElse(null); - if (feedback == null) { - log.info("getAgreementQueryFeedbackResponse empty data error: {}", JSON.toJSONString(feedbackResponse)); - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(175338, "绋庡眬鎺ュ彛閿欒锛屾湭杩斿洖鏈夋晥鏁版嵁")); + + List statuses = getTaxDeclareStatusService(user).getTaxDeclareStatusByTaxDeclareRecordId(param.getTaxDeclareRecordId()); + for (TaxDeclareStatusPO status : statuses) { + WithholdingFeedbackResponse.Feedback feedback = Optional.of(feedbackResponse) + .map(WithholdingFeedbackResponse::getBody) + .map(body -> { + if (Objects.equals(status.getReportType(), DeclareReportTypeEnum.COMPREHENSIVE_INCOME.getValue())) { + return body.getZhsdjk(); + } else if (Objects.equals(status.getReportType(), DeclareReportTypeEnum.CLASSIFIED_INCOME.getValue())) { + return body.getFlsdjk(); + } else if (Objects.equals(status.getReportType(), DeclareReportTypeEnum.NONRESIDENT_INCOME.getValue())) { + return body.getFjmsdjk(); + } else { + return body.getXsgsdjk(); + } + + }) + .orElse(null); + if (feedback == null) { + log.info("getAgreementQueryFeedbackResponse empty data error: {}", JSON.toJSONString(feedbackResponse)); + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(175338, "绋庡眬鎺ュ彛閿欒锛屾湭杩斿洖鏈夋晥鏁版嵁")); + } + // 鍒ゆ柇缂存鐘舵佹槸鍚︽垚鍔 + Integer paymentStatus = SalaryEntityUtil.getIntValue(feedback.getJkzt(), -1); + TaxPaymentStatusEnum paymentStatusEnum = SalaryEnumUtil.enumMatchByValue(paymentStatus, TaxPaymentStatusEnum.class); + if (paymentStatusEnum != TaxPaymentStatusEnum.SUCCESS) { + // fixme + throw new SalaryRunTimeException(String.format("缂存澶辫触锛屽け璐ュ師鍥狅細%s锛岀敵鎶ョ姸鎬侊細%s", feedback.getJksbyy(), feedback.getSbzt())); + } + // 绱瀹炵即閲戦 + BigDecimal totalPaid = feedback.getKkfhlb().stream().map(e -> new BigDecimal(e.getSjse())).reduce(BigDecimal.ZERO, BigDecimal::add); + + if (TaxDeclareStatusEnum.DECLARE_SUCCESS_PAID.getValue().equals(status.getTaxDeclareStatus())) { + throw new SalaryRunTimeException("褰撳墠鐢虫姤琛ㄧ姸鎬佷负宸茬即娆撅紝鏃犳硶鏇存柊鐘舵"); + } + BigDecimal taxPayAmount = SalaryEntityUtil.empty2Zero(status.getTaxPayAmount()); + BigDecimal taxPurePaidAmount = SalaryEntityUtil.empty2Zero(status.getTaxPurePaidAmount()); + if (SalaryEntityUtil.empty2Zero(status.getTaxPaidAmount()).equals(totalPaid) + && taxPayAmount.compareTo(BigDecimal.ZERO) > 0) { + throw new SalaryRunTimeException("璇疯繘琛岀即娆惧悗鍐嶅埛鏂扮即娆剧姸鎬"); + } + status.setTaxDeclareStatus(TaxDeclareStatusEnum.DECLARE_SUCCESS_PAID.getValue()); + status.setTaxPaidAmount(totalPaid.toString()); + status.setTaxPurePaidAmount(taxPurePaidAmount.add(taxPayAmount).toString()); + status.setTaxPayAmount(BigDecimal.ZERO.toString()); + getTaxDeclareStatusService(user).updateTaxDeclareStatus(status, false); } + TaxAmountFormDTO taxAmountFormDTO = queryTaxAmount(param); - // 鍒ゆ柇缂存鐘舵佹槸鍚︽垚鍔 - Integer paymentStatus = SalaryEntityUtil.getIntValue(feedback.getJkzt(), -1); - TaxPaymentStatusEnum paymentStatusEnum = SalaryEnumUtil.enumMatchByValue(paymentStatus, TaxPaymentStatusEnum.class); - if (paymentStatusEnum != TaxPaymentStatusEnum.SUCCESS) { - throw new SalaryRunTimeException(String.format("缂存澶辫触锛屽け璐ュ師鍥狅細%s锛岀敵鎶ョ姸鎬侊細%s", feedback.getJksbyy(), feedback.getSbzt())); - } - // 绱瀹炵即閲戦 - BigDecimal totalPaid = feedback.getKkfhlb().stream().map(e -> new BigDecimal(e.getSjse())).reduce(BigDecimal.ZERO, BigDecimal::add); - // 鏇存柊涓◣鐢虫姤璁板綍鐘舵佷负宸茬即娆 - TaxDeclareRecordPO taxDeclareRecord = updateTaxDeclareRecord(param, totalPaid); + + //鏇存柊涓昏褰 + getTaxDeclareStatusService(user).updateRecord(param.getTaxDeclareRecordId()); // 鏇存柊缂存璇锋眰涓哄凡鍙嶉 updateTaxPaymentRequest(param); - BigDecimal otherAmount = totalPaid.subtract(SalaryEntityUtil.empty2Zero(taxDeclareRecord.getTaxPurePaidAmount())); + + TaxDeclareRecordPO declareRecordPO = getTaxDeclareRecordService(user).getById(param.getTaxDeclareRecordId()); + BigDecimal otherAmount = SalaryEntityUtil.empty2Zero(declareRecordPO.getTaxPaidAmount()).subtract(SalaryEntityUtil.empty2Zero(declareRecordPO.getTaxPurePaidAmount())); + return new TaxAgreementFeedbackResultDTO() - .setPayAmount(SalaryEntityUtil.thousandthConvert(totalPaid.toString())) + .setPayAmount(SalaryEntityUtil.thousandthConvert(SalaryEntityUtil.empty2Zero(declareRecordPO.getTaxPaidAmount()).toString())) .setOtherAmount(SalaryEntityUtil.thousandthConvert(otherAmount.toString())) .setPersonNum(taxAmountFormDTO.getPersonNum()); } @@ -94,8 +132,8 @@ public class TaxPaymentWithholdingServiceImpl extends AbstractTaxPaymentService String url = apiConfig.getHost() + SzyhApiConstant.DECLARE_WITH_HOLDING; Map requestParam = DataCollectionBO.getApiBaseQueryParams(returnPO, taxAgentName, SalaryDateUtil.getFormatYYYYMM(param.getTaxYearMonth())); requestParam.put("sfxyh", param.getProtocolNumber()); - requestParam.put("ynse", param.getTaxAmount()); - requestParam.put("sblx", "1"); +// requestParam.put("ynse", param.getTaxAmount()); +// requestParam.put("sblx", "1"); return postRequest(apiConfig, url, requestParam, clazz); } @@ -103,7 +141,6 @@ public class TaxPaymentWithholdingServiceImpl extends AbstractTaxPaymentService protected TempWrapper checkBeforeGetRequestIdResponse(TaxPaymentQueryParam param) { TempWrapper tempWrapper = super.checkBeforeGetRequestIdResponse(param); Map requestParam = DataCollectionBO.getApiBaseQueryParams(tempWrapper.getTaxReturnPO(), tempWrapper.getTaxAgentPO().getName(), SalaryDateUtil.getFormatYYYYMM(param.getTaxYearMonth())); - requestParam.put("sblx", 1); cancelWithholdingVoucher(tempWrapper.getApiConfigPO(), tempWrapper.getTaxDeclareRecord(), requestParam); return tempWrapper; } @@ -117,13 +154,15 @@ public class TaxPaymentWithholdingServiceImpl extends AbstractTaxPaymentService .taxYearMonth(taxDeclareRecord.getTaxCycle()) .build()); -// if (paymentRequestPO != null) { +// if (paymentRequestPO != null) { + List statuses = getTaxDeclareStatusService(user).getTaxDeclareStatusByTaxDeclareRecordId(taxDeclareRecord.getId()); + statuses.forEach(status -> { + requestParam.put("sblx", status.getReportType()); String url = apiConfig.getHost() + SzyhApiConstant.CANCEL_WITHHOLDING_VOUCHER; QuerySpecialAmountResponse cancelResponse = postRequest(apiConfig, url, requestParam, QuerySpecialAmountResponse.class); SzyhResponseHead head = Optional.ofNullable(cancelResponse).map(QuerySpecialAmountResponse::getHead) .orElse(new SzyhResponseHead("0", SalaryI18nUtil.getI18nLabel(183785, "閾惰仈缂存鍑瘉浣滃簾澶辫触锛岃绋嶅悗閲嶈瘯"))); - SalaryAssert.isTrue(SzyhApiConstant.SUCCESS_CODE.equals(head.getCode()) - || SzyhApiConstant.NONE_VOUCHER_CODE.equals(head.getCode()), head.getMsg()); + SalaryAssert.isTrue(SzyhApiConstant.SUCCESS_CODE.equals(head.getCode()) || SzyhApiConstant.NONE_VOUCHER_CODE.equals(head.getCode()), head.getMsg()); getTaxPaymentRequestMapper().updateFeedbackByRequestTypeTaxAgentIdTaxYearMonth(TaxPaymentRequestPO .builder() @@ -132,7 +171,9 @@ public class TaxPaymentWithholdingServiceImpl extends AbstractTaxPaymentService .taxAgentId(taxDeclareRecord.getTaxAgentId()) .taxYearMonth(taxDeclareRecord.getTaxCycle()) .build()); -// } + }); + +// } } protected BaseResponse getFeedbackResponse(TaxDeclarationApiConfigPO apiConfig, String requestId) { diff --git a/src/com/engine/salary/service/impl/TaxPaymentWithholdingVoucherServiceImpl.java b/src/com/engine/salary/service/impl/TaxPaymentWithholdingVoucherServiceImpl.java index 44e895087..028a86c7c 100644 --- a/src/com/engine/salary/service/impl/TaxPaymentWithholdingVoucherServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxPaymentWithholdingVoucherServiceImpl.java @@ -8,6 +8,7 @@ import com.engine.salary.entity.taxagent.po.TaxAgentTaxReturnPO; import com.engine.salary.entity.taxagent.response.SzyhResponseHead; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationApiConfigPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclareRecordPO; +import com.engine.salary.entity.taxdeclaration.po.TaxDeclareStatusPO; import com.engine.salary.entity.taxpayment.bo.TaxPaymentBO; import com.engine.salary.entity.taxpayment.dto.TaxFeedbackResultDTO; import com.engine.salary.entity.taxpayment.dto.TaxWithholdingVoucherFeedbackDTO; @@ -23,7 +24,6 @@ import com.engine.salary.enums.taxdeclaration.TaxPaymentStatusEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.util.*; import lombok.extern.slf4j.Slf4j; -import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.List; @@ -44,7 +44,6 @@ import java.util.stream.Collectors; public class TaxPaymentWithholdingVoucherServiceImpl extends AbstractTaxPaymentService { @Override - @Transactional(rollbackFor = Exception.class) public TaxFeedbackResultDTO getFeedback(TaxPaymentQueryParam param) { WithholdingVoucherFeedbackResponse feedbackResponse = (WithholdingVoucherFeedbackResponse) checkBeforeGetFeedbackResponse(param); // 鏍¢獙璇锋眰缁撴灉 @@ -100,7 +99,7 @@ public class TaxPaymentWithholdingVoucherServiceImpl extends AbstractTaxPaymentS String url = apiConfig.getHost() + api; Map requestParam = DataCollectionBO.getApiBaseQueryParams(returnPO, taxAgentName, SalaryDateUtil.getFormatYYYYMM(param.getTaxYearMonth())); if (syncStatus) { - requestParam.put("bblx", "1"); + requestParam.put("bblx", param.getReportType()); } return postRequest(apiConfig, url, requestParam, clazz); } @@ -114,6 +113,11 @@ public class TaxPaymentWithholdingVoucherServiceImpl extends AbstractTaxPaymentS .taxYearMonth(taxDeclareRecord.getTaxCycle()) .build()); // if (paymentRequestPO != null) { + + List statuses = getTaxDeclareStatusService(user).getTaxDeclareStatusByTaxDeclareRecordId(taxDeclareRecord.getId()); + statuses.forEach(status -> { + requestParam.put("sblx", status.getReportType()); + String url = apiConfig.getHost() + SzyhApiConstant.CANCEL_WITHHOLDING_VOUCHER; QuerySpecialAmountResponse cancelResponse = postRequest(apiConfig, url, requestParam, QuerySpecialAmountResponse.class); SzyhResponseHead head = Optional.ofNullable(cancelResponse).map(QuerySpecialAmountResponse::getHead) @@ -126,11 +130,11 @@ public class TaxPaymentWithholdingVoucherServiceImpl extends AbstractTaxPaymentS .taxAgentId(taxDeclareRecord.getTaxAgentId()) .taxYearMonth(taxDeclareRecord.getTaxCycle()) .build()); + }); // } } @Override - @Transactional(rollbackFor = Exception.class) public void syncWithholdingFeedback(TaxPaymentQueryParam param) { TempWrapper tempWrapper = checkBeforeGetRequestIdResponse(param); SyncWithholdingFeedbackResponse response = getRequestIdResponse(tempWrapper.getTaxReturnPO(), tempWrapper.getTaxAgentPO().getName(), @@ -166,11 +170,9 @@ public class TaxPaymentWithholdingVoucherServiceImpl extends AbstractTaxPaymentS } @Override - @Transactional(rollbackFor = Exception.class) public void cancelWithholdingVoucher(TaxPaymentQueryParam param) { TempWrapper tempWrapper = checkBeforeGetRequestIdResponse(param); Map requestParam = DataCollectionBO.getApiBaseQueryParams(tempWrapper.getTaxReturnPO(), tempWrapper.getTaxAgentPO().getName(), SalaryDateUtil.getFormatYYYYMM(param.getTaxYearMonth())); - requestParam.put("sblx", 1); cancelWithholdingVoucher(tempWrapper.getApiConfigPO(), tempWrapper.getTaxDeclareRecord(), requestParam); } diff --git a/src/com/engine/salary/util/valid/SalaryCardUtil.java b/src/com/engine/salary/util/valid/SalaryCardUtil.java index d8794ecf4..d0dc2bf9e 100644 --- a/src/com/engine/salary/util/valid/SalaryCardUtil.java +++ b/src/com/engine/salary/util/valid/SalaryCardUtil.java @@ -4,7 +4,11 @@ import com.engine.salary.enums.employeedeclare.GenderEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.util.SalaryI18nUtil; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.time.LocalDate; +import java.util.Calendar; +import java.util.Date; import java.util.regex.Pattern; /** @@ -16,34 +20,11 @@ import java.util.regex.Pattern; * @version 1.0 **/ public class SalaryCardUtil { - - /** - * 15浣嶇殑韬唤璇侀暱搴 - */ - public static final String CARD_15 = "^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{2}$"; - /** - * 18浣嶇殑韬唤璇侀暱搴 - */ - public static final String CARD_18 = "^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$"; /** * 鎵嬫満鍙风爜 */ public static final String MOBILE = "^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\\d{8}$"; - /** - * 鏍¢獙韬唤璇佸彿鐮 - * - * @param idNumber - */ - public static boolean checkIdNum(String idNumber) { - Pattern pattern_15 = Pattern.compile(CARD_15); - Pattern pattern_18 = Pattern.compile(CARD_18); - if (!pattern_15.matcher(idNumber).find() && !pattern_18.matcher(idNumber).find()) { - return false; - } - return true; - } - /** * 鏍¢獙鎵嬫満鍙风爜 * @@ -107,4 +88,387 @@ public class SalaryCardUtil { } return LocalDate.parse(year + "-" + month + "-" + day); } + + + /** + *
+     * 鐪併佺洿杈栧競浠g爜琛細
+     *     11 : 鍖椾含  12 : 澶╂触  13 : 娌冲寳       14 : 灞辫タ  15 : 鍐呰挋鍙
+     *     21 : 杈藉畞  22 : 鍚夋灄  23 : 榛戦緳姹  31 : 涓婃捣  32 : 姹熻嫃
+     *     33 : 娴欐睙  34 : 瀹夊窘  35 : 绂忓缓       36 : 姹熻タ  37 : 灞变笢
+     *     41 : 娌冲崡  42 : 婀栧寳  43 : 婀栧崡       44 : 骞夸笢  45 : 骞胯タ      46 : 娴峰崡
+     *     50 : 閲嶅簡  51 : 鍥涘窛  52 : 璐靛窞       53 : 浜戝崡  54 : 瑗胯棌
+     *     61 : 闄曡タ  62 : 鐢樿們  63 : 闈掓捣       64 : 瀹佸  65 : 鏂扮枂
+     *     71 : 鍙版咕
+     *     81 : 棣欐腐  82 : 婢抽棬
+     *     91 : 鍥藉
+     * 
+ */ + private static String[] cityCode = { "11", "12", "13", "14", "15", "21", + "22", "23", "31", "32", "33", "34", "35", "36", "37", "41", "42", + "43", "44", "45", "46", "50", "51", "52", "53", "54", "61", "62", + "63", "64", "65", "71", "81", "82", "91" }; + + /** + * 姣忎綅鍔犳潈鍥犲瓙 + */ + private static int power[] = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, + 8, 4, 2 }; + + /** + * 楠岃瘉鎵鏈夌殑韬唤璇佺殑鍚堟硶鎬 + * + * @param idcard + * 韬唤璇 + * @return 鍚堟硶杩斿洖true锛屽惁鍒欒繑鍥瀎alse + */ + public static boolean checkIdNum(String idcard) { + if (idcard == null || "".equals(idcard)) { + return false; + } + if (idcard.length() == 15) { + return validate15IDCard(idcard); + } + if(idcard.length()==18) { + return validate18Idcard(idcard); + } + return false; + + } + + /** + *

+ * 鍒ゆ柇18浣嶈韩浠借瘉鐨勫悎娉曟 + *

+ * 鏍规嵁銆栦腑鍗庝汉姘戝叡鍜屽浗鍥藉鏍囧噯GB11643-1999銆椾腑鏈夊叧鍏皯韬唤鍙风爜鐨勮瀹氾紝鍏皯韬唤鍙风爜鏄壒寰佺粍鍚堢爜锛岀敱鍗佷竷浣嶆暟瀛楁湰浣撶爜鍜屼竴浣嶆暟瀛楁牎楠岀爜缁勬垚銆 + * 鎺掑垪椤哄簭浠庡乏鑷冲彸渚濇涓猴細鍏綅鏁板瓧鍦板潃鐮侊紝鍏綅鏁板瓧鍑虹敓鏃ユ湡鐮侊紝涓変綅鏁板瓧椤哄簭鐮佸拰涓浣嶆暟瀛楁牎楠岀爜銆 + *

+ * 椤哄簭鐮: 琛ㄧず鍦ㄥ悓涓鍦板潃鐮佹墍鏍囪瘑鐨勫尯鍩熻寖鍥村唴锛屽鍚屽勾銆佸悓鏈堛佸悓 鏃ュ嚭鐢熺殑浜虹紪瀹氱殑椤哄簭鍙凤紝椤哄簭鐮佺殑濂囨暟鍒嗛厤缁欑敺鎬э紝鍋舵暟鍒嗛厤 缁欏コ鎬с + *

+ *

+ * 1.鍓1銆2浣嶆暟瀛楄〃绀猴細鎵鍦ㄧ渷浠界殑浠g爜锛 2.绗3銆4浣嶆暟瀛楄〃绀猴細鎵鍦ㄥ煄甯傜殑浠g爜锛 3.绗5銆6浣嶆暟瀛楄〃绀猴細鎵鍦ㄥ尯鍘跨殑浠g爜锛 + * 4.绗7~14浣嶆暟瀛楄〃绀猴細鍑虹敓骞淬佹湀銆佹棩锛 5.绗15銆16浣嶆暟瀛楄〃绀猴細鎵鍦ㄥ湴鐨勬淳鍑烘墍鐨勪唬鐮侊紱 + * 6.绗17浣嶆暟瀛楄〃绀烘у埆锛氬鏁拌〃绀虹敺鎬э紝鍋舵暟琛ㄧず濂虫э紱 + * 7.绗18浣嶆暟瀛楁槸鏍℃鐮侊細涔熸湁鐨勮鏄釜浜轰俊鎭爜锛屼竴鑸槸闅忚绠楁満鐨勯殢鏈轰骇鐢燂紝鐢ㄦ潵妫楠岃韩浠借瘉鐨勬纭с傛牎妫鐮佸彲浠ユ槸0~9鐨勬暟瀛楋紝鏈夋椂涔熺敤x琛ㄧず銆 + *

+ *

+ * 绗崄鍏綅鏁板瓧(鏍¢獙鐮)鐨勮绠楁柟娉曚负锛 1.灏嗗墠闈㈢殑韬唤璇佸彿鐮17浣嶆暟鍒嗗埆涔樹互涓嶅悓鐨勭郴鏁般備粠绗竴浣嶅埌绗崄涓冧綅鐨勭郴鏁板垎鍒负锛7 9 10 5 8 4 + * 2 1 6 3 7 9 10 5 8 4 2 + *

+ *

+ * 2.灏嗚繖17浣嶆暟瀛楀拰绯绘暟鐩镐箻鐨勭粨鏋滅浉鍔犮 + *

+ *

+ * 3.鐢ㄥ姞鍑烘潵鍜岄櫎浠11锛岀湅浣欐暟鏄灏 + *

+ * 4.浣欐暟鍙彲鑳芥湁0 1 2 3 4 5 6 7 8 9 10杩11涓暟瀛椼傚叾鍒嗗埆瀵瑰簲鐨勬渶鍚庝竴浣嶈韩浠借瘉鐨勫彿鐮佷负1 0 X 9 8 7 6 5 4 3 + * 2銆 + *

+ * 5.閫氳繃涓婇潰寰楃煡濡傛灉浣欐暟鏄2锛屽氨浼氬湪韬唤璇佺殑绗18浣嶆暟瀛椾笂鍑虹幇缃楅┈鏁板瓧鐨勨叐銆傚鏋滀綑鏁版槸10锛岃韩浠借瘉鐨勬渶鍚庝竴浣嶅彿鐮佸氨鏄2銆 + *

+ * + * @param idcard + * @return + */ + public static boolean validate18Idcard(String idcard) { + if (idcard == null) { + return false; + } + + // 闈18浣嶄负鍋 + int s=18; + if (idcard.length() != s) { + return false; + } + // 鑾峰彇鍓17浣 + String idcard17 = idcard.substring(0, 17); + + // 鍓17浣嶅叏閮ㄤ负鏁板瓧 + if (!isDigital(idcard17)) { + return false; + } + + String provinceid = idcard.substring(0, 2); + // 鏍¢獙鐪佷唤 + if (!checkProvinceid(provinceid)) { + return false; + } + + // 鏍¢獙鍑虹敓鏃ユ湡 + String birthday = idcard.substring(6, 14); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + + try { + Date birthDate = sdf.parse(birthday); + String tmpDate = sdf.format(birthDate); + // 鍑虹敓骞存湀鏃ヤ笉姝g‘ + if (!tmpDate.equals(birthday)) { + return false; + } + + } catch (ParseException e1) { + + return false; + } + + // 鑾峰彇绗18浣 + String idcard18Code = idcard.substring(17, 18); + + char c[] = idcard17.toCharArray(); + + int bit[] = converCharToInt(c); + + int sum17 = 0; + + sum17 = getPowerSum(bit); + + // 灏嗗拰鍊间笌11鍙栨ā寰楀埌浣欐暟杩涜鏍¢獙鐮佸垽鏂 + String checkCode = getCheckCodeBySum(sum17); + if (null == checkCode) { + return false; + } + // 灏嗚韩浠借瘉鐨勭18浣嶄笌绠楀嚭鏉ョ殑鏍$爜杩涜鍖归厤锛屼笉鐩哥瓑灏变负鍋 + if (!idcard18Code.equalsIgnoreCase(checkCode)) { + return false; + } + //System.out.println("姝g‘"); + return true; + } + + /** + * 鏍¢獙15浣嶈韩浠借瘉 + * + *
+     * 鍙牎楠岀渷浠藉拰鍑虹敓骞存湀鏃
+     * 
+ * + * @param idcard + * @return + */ + public static boolean validate15IDCard(String idcard) { + if (idcard == null) { + return false; + } + // 闈15浣嶄负鍋 + int s=15; + if (idcard.length() != s) { + return false; + } + + // 15鍏ㄩ儴涓烘暟瀛 + if (!isDigital(idcard)) { + return false; + } + + String provinceid = idcard.substring(0, 2); + // 鏍¢獙鐪佷唤 + if (!checkProvinceid(provinceid)) { + return false; + } + + String birthday = idcard.substring(6, 12); + + SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd"); + + try { + Date birthDate = sdf.parse(birthday); + String tmpDate = sdf.format(birthDate); + // 韬唤璇佹棩鏈熼敊璇 + if (!tmpDate.equals(birthday)) { + return false; + } + + } catch (ParseException e1) { + + return false; + } + + return true; + } + + /** + * 灏15浣嶇殑韬唤璇佽浆鎴18浣嶈韩浠借瘉 + * + * @param idcard + * @return + */ + public static String convertIdcarBy15bit(String idcard) { + if (idcard == null) { + return null; + } + + // 闈15浣嶈韩浠借瘉 + int s=15; + if (idcard.length() != s) { + return null; + } + + // 15鍏ㄩ儴涓烘暟瀛 + if (!isDigital(idcard)) { + return null; + } + + String provinceid = idcard.substring(0, 2); + // 鏍¢獙鐪佷唤 + if (!checkProvinceid(provinceid)) { + return null; + } + + String birthday = idcard.substring(6, 12); + + SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd"); + + Date birthdate = null; + try { + birthdate = sdf.parse(birthday); + String tmpDate = sdf.format(birthdate); + // 韬唤璇佹棩鏈熼敊璇 + if (!tmpDate.equals(birthday)) { + return null; + } + + } catch (ParseException e1) { + return null; + } + + Calendar cday = Calendar.getInstance(); + cday.setTime(birthdate); + String year = String.valueOf(cday.get(Calendar.YEAR)); + + String idcard17 = idcard.substring(0, 6) + year + idcard.substring(8); + + char c[] = idcard17.toCharArray(); + String checkCode = ""; + + // 灏嗗瓧绗︽暟缁勮浆涓烘暣鍨嬫暟缁 + int bit[] = converCharToInt(c); + + int sum17 = 0; + sum17 = getPowerSum(bit); + + // 鑾峰彇鍜屽间笌11鍙栨ā寰楀埌浣欐暟杩涜鏍¢獙鐮 + checkCode = getCheckCodeBySum(sum17); + + // 鑾峰彇涓嶅埌鏍¢獙浣 + if (null == checkCode) { + return null; + } + // 灏嗗墠17浣嶄笌绗18浣嶆牎楠岀爜鎷兼帴 + idcard17 += checkCode; + return idcard17; + } + + /** + * 鏍¢獙鐪佷唤 + * + * @param provinceid + * @return 鍚堟硶杩斿洖TRUE锛屽惁鍒欒繑鍥濬ALSE + */ + private static boolean checkProvinceid(String provinceid) { + for (String id : cityCode) { + if (id.equals(provinceid)) { + return true; + } + } + return false; + } + + /** + * 鏁板瓧楠岃瘉 + * + * @param str + * @return + */ + private static boolean isDigital(String str) { + return str.matches("^[0-9]*$"); + } + + /** + * 灏嗚韩浠借瘉鐨勬瘡浣嶅拰瀵瑰簲浣嶇殑鍔犳潈鍥犲瓙鐩镐箻涔嬪悗锛屽啀寰楀埌鍜屽 + * + * @param bit + * @return + */ + private static int getPowerSum(int[] bit) { + + int sum = 0; + + if (power.length != bit.length) { + return sum; + } + + for (int i = 0; i < bit.length; i++) { + for (int j = 0; j < power.length; j++) { + if (i == j) { + sum = sum + bit[i] * power[j]; + } + } + } + return sum; + } + + /** + * 灏嗗拰鍊间笌11鍙栨ā寰楀埌浣欐暟杩涜鏍¢獙鐮佸垽鏂 + * + * @param sum17 + * @param sum17 + * @return 鏍¢獙浣 + */ + private static String getCheckCodeBySum(int sum17) { + String checkCode = null; + switch (sum17 % 11) { + case 10: + checkCode = "2"; + break; + case 9: + checkCode = "3"; + break; + case 8: + checkCode = "4"; + break; + case 7: + checkCode = "5"; + break; + case 6: + checkCode = "6"; + break; + case 5: + checkCode = "7"; + break; + case 4: + checkCode = "8"; + break; + case 3: + checkCode = "9"; + break; + case 2: + checkCode = "x"; + break; + case 1: + checkCode = "0"; + break; + case 0: + checkCode = "1"; + break; + default: + } + return checkCode; + } + + /** + * 灏嗗瓧绗︽暟缁勮浆涓烘暣鍨嬫暟缁 + * + * @param c + * @return + * @throws NumberFormatException + */ + private static int[] converCharToInt(char[] c) throws NumberFormatException { + int[] a = new int[c.length]; + int k = 0; + for (char temp : c) { + a[k++] = Integer.parseInt(String.valueOf(temp)); + } + return a; + } } diff --git a/src/com/engine/salary/web/EmployeeDeclareController.java b/src/com/engine/salary/web/EmployeeDeclareController.java index fa54d79f3..c94c9da12 100644 --- a/src/com/engine/salary/web/EmployeeDeclareController.java +++ b/src/com/engine/salary/web/EmployeeDeclareController.java @@ -242,6 +242,22 @@ public class EmployeeDeclareController { return new ResponseResult(user).run(getEmployeeDeclareWrapper(user)::getDeclareFeedback, employeeDeclareParam); } + @POST + @Path("/invalid") + @Produces(MediaType.APPLICATION_JSON) + public String invalid(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody EmployeeInvalidParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getEmployeeDeclareWrapper(user)::invalid, param); + } + + @POST + @Path("/informationChange") + @Produces(MediaType.APPLICATION_JSON) + public String informationChange(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody EmployeeInformationChangeParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getEmployeeDeclareWrapper(user)::informationChange, param); + } + /** * 浜哄憳鎶ラ-鍚庣涓氬姟閫昏緫鏄惁宸茬粡瀹屾垚 * diff --git a/src/com/engine/salary/web/TaxDeclarationController.java b/src/com/engine/salary/web/TaxDeclarationController.java index bc0eb3f65..f5c92256f 100644 --- a/src/com/engine/salary/web/TaxDeclarationController.java +++ b/src/com/engine/salary/web/TaxDeclarationController.java @@ -3,6 +3,7 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.taxdeclaration.dto.*; import com.engine.salary.entity.taxdeclaration.param.*; +import com.engine.salary.entity.taxdeclaration.po.TaxDeclareStatusPO; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.service.TaxDeclarationExcelService; import com.engine.salary.service.TaxDeclarationService; @@ -90,18 +91,32 @@ public class TaxDeclarationController { return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::getForm, id); } + /** - * 涓◣鐢虫姤琛ㄧ浉鍏充俊鎭 + * 涓◣鐢虫姤宸︿晶鍒嗙被 * * @param id 涓◣鐢虫姤璁板綍id * @return */ @GET + @Path("/getTaxReports") + @Produces(MediaType.APPLICATION_JSON) + public String getTaxReportType(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getTaxDeclareRecordWrapper(user)::getTaxReports, id); + } + + /** + * 涓◣鐢虫姤琛ㄧ浉鍏充俊鎭 + * + * @return + */ + @POST @Path("/getTaxDeclarationInfo") @Produces(MediaType.APPLICATION_JSON) - public String getTaxDeclarationInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { + public String getTaxDeclarationInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::getTaxDeclarationInfoById, id); + return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::getTaxDeclarationInfoById, param); } /** @@ -164,15 +179,14 @@ public class TaxDeclarationController { /** * 鑾峰彇涓◣鐢虫姤璁板綍涓嬬殑涓◣鐢虫姤琛═AB * - * @param id 涓◣鐢虫姤璁板綍id * @return */ - @GET + @POST @Path("/getTaxDeclarationTab") @Produces(MediaType.APPLICATION_JSON) - public String getTaxDeclarationTab(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { + public String getTaxDeclarationTab(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getTaxDeclareRecordWrapper(user)::getTaxDeclarationTab, id); + return new ResponseResult>(user).run(getTaxDeclareRecordWrapper(user)::getTaxDeclarationTab, param); } /** @@ -184,7 +198,7 @@ public class TaxDeclarationController { @POST @Path("/addTaxDeclaration") @Produces(MediaType.APPLICATION_JSON) - public String addTaxDeclarationTab(@Context HttpServletRequest request, @Context HttpServletResponse response, TaxDeclarationAddParam param) { + public String addTaxDeclarationTab(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody TaxDeclarationAddParam param) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::addTaxDeclaration, param); } @@ -200,7 +214,7 @@ public class TaxDeclarationController { @POST @Path("/deleteTaxDeclaration") @Produces(MediaType.APPLICATION_JSON) - public String deleteTaxDeclaration(@Context HttpServletRequest request, @Context HttpServletResponse response, TaxDeclarationDeleteParam param) { + public String deleteTaxDeclaration(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody TaxDeclarationDeleteParam param) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::deleteTaxDeclaration, param); } @@ -217,7 +231,7 @@ public class TaxDeclarationController { @Produces(MediaType.APPLICATION_JSON) public String declare(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam taxDeclareRecordParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::declare, taxDeclareRecordParam.getTaxDeclareRecordId()); + return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::declare, taxDeclareRecordParam); } /** @@ -231,7 +245,7 @@ public class TaxDeclarationController { @Produces(MediaType.APPLICATION_JSON) public String getDeclareFeedback(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam taxDeclareRecordParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::getDeclareFeedback, taxDeclareRecordParam.getTaxDeclareRecordId()); + return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::getDeclareFeedback, taxDeclareRecordParam); } /** @@ -291,7 +305,7 @@ public class TaxDeclarationController { @POST @Path("/contrast") @Produces(MediaType.APPLICATION_JSON) - public String contrast(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody ContrastQueryParam param) { + public String contrast(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ContrastQueryParam param) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getTaxDeclareRecordWrapper(user)::contrast, param); } @@ -340,7 +354,7 @@ public class TaxDeclarationController { @Produces(MediaType.APPLICATION_JSON) public String cancel(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam taxDeclareRecordParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::cancelDeclare, taxDeclareRecordParam.getTaxDeclareRecordId()); + return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::cancelDeclare, taxDeclareRecordParam); } /** @@ -354,7 +368,7 @@ public class TaxDeclarationController { @Produces(MediaType.APPLICATION_JSON) public String getCancelFeedback(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam taxDeclareRecordParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::getCancelFeedback, taxDeclareRecordParam.getTaxDeclareRecordId()); + return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::getCancelFeedback, taxDeclareRecordParam); } /** @@ -368,7 +382,7 @@ public class TaxDeclarationController { @Produces(MediaType.APPLICATION_JSON) public String updateDeclare(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam taxDeclareRecordParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::updateDeclare, taxDeclareRecordParam.getTaxDeclareRecordId()); + return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::updateDeclare, taxDeclareRecordParam); } /** @@ -377,13 +391,13 @@ public class TaxDeclarationController { * @param taxDeclareRecordParam 鎾ら攢鏇存鐢虫姤鍙傛暟 * @return */ - @POST - @Path("/cancelCorrect") - @Produces(MediaType.APPLICATION_JSON) - public String cancelCorrect(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam taxDeclareRecordParam) { - User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::cancelCorrect, taxDeclareRecordParam.getTaxDeclareRecordId()); - } +// @POST +// @Path("/cancelCorrect") +// @Produces(MediaType.APPLICATION_JSON) +// public String cancelCorrect(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam taxDeclareRecordParam) { +// User user = HrmUserVarify.getUser(request, response); +// return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::cancelCorrect, taxDeclareRecordParam.getTaxDeclareRecordId()); +// } /** * 绋庡眬绔敵鎶ョ姸鎬佹煡璇 @@ -410,7 +424,7 @@ public class TaxDeclarationController { @Produces(MediaType.APPLICATION_JSON) public String queryCompanyIncomes(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclareRecordParam taxDeclareRecordParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::queryCompanyIncomes, taxDeclareRecordParam.getTaxDeclareRecordId()); + return new ResponseResult(user).run(getTaxDeclareRecordWrapper(user)::queryCompanyIncomes,taxDeclareRecordParam); } @@ -508,8 +522,6 @@ public class TaxDeclarationController { } - - /** * 涓◣鐢虫姤琛ㄨ鎯呭垪琛 * diff --git a/src/com/engine/salary/wrapper/EmployeeDeclareWrapper.java b/src/com/engine/salary/wrapper/EmployeeDeclareWrapper.java index 39623bb5a..fe681eb07 100644 --- a/src/com/engine/salary/wrapper/EmployeeDeclareWrapper.java +++ b/src/com/engine/salary/wrapper/EmployeeDeclareWrapper.java @@ -279,8 +279,12 @@ public class EmployeeDeclareWrapper extends Service { .setEmployee(Collections.singletonList(employeeMap)) .setEmployeeName(employeeDeclare.getEmployeeName()) .setJobNum(employeeDeclare.getJobNum()) - .setNationality(SalaryI18nUtil.getI18nLabel(94731, "涓浗")) - .setCardType(CardTypeEnum.RESIDENT_IDENTITY_CARDS) + .setNationality(employeeDeclare.getNationality()) + .setNationality(employeeDeclare.getNationality()) + .setNationality(employeeDeclare.getNationality()) + .setEntryDate(employeeDeclare.getEntryDate()) + .setDepartureDate(employeeDeclare.getDepartureDate()) + .setCardType(CardTypeEnum.getByValue(employeeDeclare.getCardType())) .setCardNum(employeeDeclare.getCardNum()) .setGender(SalaryEnumUtil.enumMatchByValue(employeeDeclare.getGender(), GenderEnum.class)) .setBirthday(employeeDeclare.getBirthday()) @@ -294,7 +298,9 @@ public class EmployeeDeclareWrapper extends Service { .setLonelyOld(SalaryEnumUtil.enumMatchByValue(employeeDeclare.getLonelyOld(), SalaryOnOffEnum.class)) .setMartyrDependents(SalaryEnumUtil.enumMatchByValue(employeeDeclare.getMartyrDependents(), SalaryOnOffEnum.class)) .setMartyrDependentsCardNo(employeeDeclare.getMartyrDependentsCardNo()) - .setDeductExpenses(SalaryEnumUtil.enumMatchByValue(employeeDeclare.getDeductExpenses(), SalaryOnOffEnum.class)); + .setDeductExpenses(SalaryEnumUtil.enumMatchByValue(employeeDeclare.getDeductExpenses(), SalaryOnOffEnum.class)) + .setBirthplace(employeeDeclare.getBirthplace()) + .setTaxReasons(employeeDeclare.getTaxReasons()); } else { employeeDeclare = null; } @@ -537,6 +543,17 @@ public class EmployeeDeclareWrapper extends Service { return employeeDeclareRate.getIndex(); } + public String invalid(EmployeeInvalidParam param) { + return getEmployeeDeclareService(user).invalid(param); + } + + public String informationChange(EmployeeInformationChangeParam param) { + return getEmployeeDeclareService(user).informationChange(param); + } + + + + /** * 鑾峰彇浜哄憳鎶ラ佺浉鍏冲悗绔帴鍙f槸鍚﹀凡缁忓畬鎴 * diff --git a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java index 9e115aa32..b6eaa2e0b 100644 --- a/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java +++ b/src/com/engine/salary/wrapper/TaxDeclareRecordWrapper.java @@ -2,9 +2,9 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.cache.SalaryCacheKey; import com.engine.salary.config.SalaryElogConfig; -import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.employeedeclare.param.EmployeeDeclareListQueryParam; import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO; @@ -17,6 +17,7 @@ import com.engine.salary.enums.OperateTypeEnum; import com.engine.salary.enums.employeedeclare.CardTypeEnum; import com.engine.salary.enums.employeedeclare.DeclareStatusEnum; import com.engine.salary.enums.employeedeclare.EmploymentStatusEnum; +import com.engine.salary.enums.salarysob.DeclareReportTypeEnum; import com.engine.salary.enums.salarysob.IncomeCategoryEnum; import com.engine.salary.enums.taxdeclaration.TaxDeclareStatusEnum; import com.engine.salary.enums.taxdeclaration.TaxDeclareTypeEnum; @@ -27,12 +28,13 @@ import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryEnumUtil; import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; +import com.engine.salary.util.valid.ValidUtil; import com.weaver.util.threadPool.ThreadPoolUtil; import com.weaver.util.threadPool.constant.ModulePoolEnum; import com.weaver.util.threadPool.entity.LocalRunnable; -import com.engine.salary.util.db.IdGenerator; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.compress.utils.Lists; @@ -62,6 +64,10 @@ public class TaxDeclareRecordWrapper extends Service { return ServiceUtil.getService(TaxDeclareRecordServiceImpl.class, user); } + private TaxDeclareStatusService getTaxDeclareStatusService(User user) { + return ServiceUtil.getService(TaxDeclareStatusServiceImpl.class, user); + } + private TaxAgentService getTaxAgentService(User user) { return ServiceUtil.getService(TaxAgentServiceImpl.class, user); } @@ -287,18 +293,22 @@ public class TaxDeclareRecordWrapper extends Service { /** * 鑾峰彇涓◣鐢虫姤璁板綍涓嬬殑涓◣鐢虫姤琛═AB * - * @param id * @return */ - public List getTaxDeclarationTab(Long id) { + public List getTaxDeclarationTab(TaxDeclareRecordParam param) { + ValidUtil.doValidator(param); + // 鏌ヨ涓◣鐢虫姤璁板綍 - TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(id); + TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(param.getTaxDeclareRecordId()); + // 鏌ヨ涓◣鐢虫姤璁板綍涓嬬殑涓◣鐢虫姤琛 List taxDeclarations = getTaxDeclarationService(user).listByTaxCycleAndTaxAgentIds(SalaryDateUtil.localDate2YearMonth(taxDeclareRecord.getTaxCycle()), Collections.singleton(taxDeclareRecord.getTaxAgentId())); -// taxDeclarations = taxDeclarations.stream() -// .filter(e -> Objects.equals(e.getControlView(), 0) || Objects.equals(e.getCreator(), (long)user.getUID())) -// .collect(Collectors.toList()); + + //绛涢夌敵鎶ョ被鍨 + DeclareReportTypeEnum declareReportTypeEnum = DeclareReportTypeEnum.parseByValue(param.getReportType()); + taxDeclarations = taxDeclarations.stream().filter(po -> IncomeCategoryEnum.parseByValue(po.getIncomeCategory()).getReportType() == declareReportTypeEnum).collect(Collectors.toList()); + Map taxDeclarationMap = SalaryEntityUtil.convert2Map(taxDeclarations, TaxDeclarationPO::getIncomeCategory); List tabs = Lists.newArrayList(); for (IncomeCategoryEnum incomeCategoryEnum : IncomeCategoryEnum.values()) { @@ -331,12 +341,14 @@ public class TaxDeclareRecordWrapper extends Service { /** * 鏌ヨ涓◣鐢虫姤琛ㄧ殑鍩烘湰淇℃伅 * - * @param id 涓◣鐢虫姤琛╥d * @return */ - public TaxDeclarationInfoDTO getTaxDeclarationInfoById(Long id) { + public TaxDeclarationInfoDTO getTaxDeclarationInfoById(TaxDeclareRecordParam param) { + ValidUtil.doValidator(param); + // 鏌ヨ涓◣鐢虫姤琛 - TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(id); + Long taxDeclareRecordId = param.getTaxDeclareRecordId(); + TaxDeclareRecordPO taxDeclareRecord = getTaxDeclareRecordService(user).getById(taxDeclareRecordId); if (Objects.isNull(taxDeclareRecord)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98877, "涓◣鐢虫姤琛ㄤ笉瀛樺湪鎴栧凡鍒犻櫎")); } @@ -352,8 +364,11 @@ public class TaxDeclareRecordWrapper extends Service { List taxDeclareFails = getTaxDeclareFailService(user).listByTaxDeclareRecordIds(Collections.singleton(taxDeclareRecord.getId())); // 鏌ヨ涓◣鎵g即涔夊姟浜 TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(taxDeclareRecord.getTaxAgentId()); - TaxDeclareTypeEnum taxDeclareTypeEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareRecord.getTaxDeclareType(), TaxDeclareTypeEnum.class); - TaxDeclareStatusEnum taxDeclareStatusEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareRecord.getTaxDeclareStatus(), TaxDeclareStatusEnum.class); + + TaxDeclareStatusPO taxDeclareStatus = getTaxDeclareStatusService(user).getTaxDeclareStatus(taxDeclareRecordId, param.getReportType()); + TaxDeclareTypeEnum taxDeclareTypeEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareStatus.getTaxDeclareType(), TaxDeclareTypeEnum.class); + TaxDeclareStatusEnum taxDeclareStatusEnum = SalaryEnumUtil.enumMatchByValue(taxDeclareStatus.getTaxDeclareStatus(), TaxDeclareStatusEnum.class); + return TaxDeclarationInfoDTO.builder() .salaryMonth(taxDeclareRecord.getSalaryMonth()) .taxCycle(taxDeclareRecord.getTaxCycle()) @@ -363,11 +378,11 @@ public class TaxDeclareRecordWrapper extends Service { .declareTypeDesc(taxDeclareTypeEnum == null ? "" : SalaryI18nUtil.getI18nLabel(taxDeclareTypeEnum.getLabelId(), taxDeclareTypeEnum.getDefaultLabel())) .declareStatus(taxDeclareStatusEnum) .declareStatusDesc(taxDeclareStatusEnum == null ? "" : SalaryI18nUtil.getI18nLabel(taxDeclareStatusEnum.getLabelId(), taxDeclareStatusEnum.getDefaultLabel())) - .declareErrorMsg(taxDeclareRecord.getTaxDeclareErrorMsg()) + .declareErrorMsg(taxDeclareStatus.getTaxDeclareErrorMsg()) .displayIcon(Objects.equals(taxDeclareRecord.getDisplayUpdateIcon(), 1)) .declareFailSize(taxDeclareFails.size()) .abnormalSize(notDeclareTaxDeclareEmployees.size() + noValueTaxDeclareEmployees.size()) - .taxPaidAmount(SalaryEntityUtil.thousandthConvert(taxDeclareRecord.getTaxPaidAmount())) + .taxPaidAmount(SalaryEntityUtil.thousandthConvert(taxDeclareStatus.getTaxPaidAmount())) .build(); } @@ -432,9 +447,12 @@ public class TaxDeclareRecordWrapper extends Service { /** * 鐢虫姤 * - * @param id + * @param */ - public String declare(Long id) { + public String declare(TaxDeclareRecordParam taxDeclareRecordParam) { + ValidUtil.doValidator(taxDeclareRecordParam); + + Long id = taxDeclareRecordParam.getTaxDeclareRecordId(); checkBefore(id); TaxDeclarationRateDTO taxDeclarationRate = new TaxDeclarationRateDTO().setStatus(true).setIndex(Util.null2String(id)) .setMsg(SalaryI18nUtil.getI18nLabel(156454, "鍦ㄧ嚎鐢虫姤")); @@ -443,7 +461,7 @@ public class TaxDeclareRecordWrapper extends Service { @Override public void execute() { try { - getTaxDeclareRecordService(user).declare(id); + getTaxDeclareRecordService(user).declare(id, taxDeclareRecordParam.getReportType()); taxDeclarationRate.setFinish(true); } catch (SalaryRunTimeException e) { taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage()); @@ -461,10 +479,11 @@ public class TaxDeclareRecordWrapper extends Service { /** * 鑾峰彇鐢虫姤鍙嶉 - * - * @param id */ - public String getDeclareFeedback(Long id) { + public String getDeclareFeedback(TaxDeclareRecordParam param) { + ValidUtil.doValidator(param); + + Long id = param.getTaxDeclareRecordId(); checkBefore(id); TaxDeclarationRateDTO taxDeclarationRate = new TaxDeclarationRateDTO().setStatus(true).setIndex(Util.null2String(id)) .setMsg(SalaryI18nUtil.getI18nLabel(182680, "鑾峰彇鐢虫姤鍙嶉")); @@ -473,7 +492,7 @@ public class TaxDeclareRecordWrapper extends Service { @Override public void execute() { try { - getTaxDeclareRecordService(user).getDeclareFeedback(id, taxDeclarationRate); + getTaxDeclareRecordService(user).getDeclareFeedback(id, param.getReportType(), taxDeclarationRate); taxDeclarationRate.setFinish(true); } catch (SalaryRunTimeException e) { taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage()); @@ -501,10 +520,10 @@ public class TaxDeclareRecordWrapper extends Service { /** * 浣滃簾 - * - * @param id */ - public String cancelDeclare(Long id) { + public String cancelDeclare(TaxDeclareRecordParam param) { + ValidUtil.doValidator(param); + Long id = param.getTaxDeclareRecordId(); checkBefore(id); TaxDeclarationRateDTO taxDeclarationRate = new TaxDeclarationRateDTO().setStatus(true).setIndex(Util.null2String(id)) .setMsg(SalaryI18nUtil.getI18nLabel(158842, "浣滃簾鐢虫姤")); @@ -513,7 +532,7 @@ public class TaxDeclareRecordWrapper extends Service { @Override public void execute() { try { - getTaxDeclareRecordService(user).cancelDeclare(id); + getTaxDeclareRecordService(user).cancelDeclare(id, param.getReportType()); taxDeclarationRate.setFinish(true); } catch (SalaryRunTimeException e) { taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage()); @@ -531,10 +550,10 @@ public class TaxDeclareRecordWrapper extends Service { /** * 鑾峰彇浣滃簾鍙嶉 - * - * @param id */ - public String getCancelFeedback(Long id) { + public String getCancelFeedback(TaxDeclareRecordParam param) { + ValidUtil.doValidator(param); + Long id = param.getTaxDeclareRecordId(); checkBefore(id); TaxDeclarationRateDTO taxDeclarationRate = new TaxDeclarationRateDTO().setStatus(true).setIndex(Util.null2String(id)) .setMsg(SalaryI18nUtil.getI18nLabel(182681, "鑾峰彇浣滃簾鐢虫姤鍙嶉")); @@ -543,7 +562,7 @@ public class TaxDeclareRecordWrapper extends Service { @Override public void execute() { try { - getTaxDeclareRecordService(user).getCancelFeedback(id, taxDeclarationRate); + getTaxDeclareRecordService(user).getCancelFeedback(id, param.getReportType(), taxDeclarationRate); taxDeclarationRate.setFinish(true); } catch (SalaryRunTimeException e) { taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage()); @@ -562,10 +581,11 @@ public class TaxDeclareRecordWrapper extends Service { /** * 鏇存鐢虫姤 * - * @param id * @return */ - public String updateDeclare(Long id) { + public String updateDeclare(TaxDeclareRecordParam param) { + ValidUtil.doValidator(param); + Long id = param.getTaxDeclareRecordId(); checkBefore(id); TaxDeclarationRateDTO taxDeclarationRate = new TaxDeclarationRateDTO().setStatus(true).setIndex(Util.null2String(id)) .setMsg(SalaryI18nUtil.getI18nLabel(177637, "鏇存鐢虫姤")); @@ -574,7 +594,7 @@ public class TaxDeclareRecordWrapper extends Service { @Override public void execute() { try { - getTaxDeclareRecordService(user).updateDeclare(id); + getTaxDeclareRecordService(user).updateDeclare(id, param.getReportType()); taxDeclarationRate.setFinish(true); } catch (SalaryRunTimeException e) { taxDeclarationRate.setStatus(false).setFinish(true).setMsg(e.getMessage()); @@ -634,11 +654,10 @@ public class TaxDeclareRecordWrapper extends Service { /** * 绋庡眬绔敵鎶ユ槑缁嗘煡璇 * - * @param id * @return */ - public String queryCompanyIncomes(Long id) { - return getTaxDeclareRecordService(user).queryCompanyIncomes(id); + public String queryCompanyIncomes(TaxDeclareRecordParam taxDeclareRecordParam) { + return getTaxDeclareRecordService(user).queryCompanyIncomes(taxDeclareRecordParam); } /** @@ -652,6 +671,7 @@ public class TaxDeclareRecordWrapper extends Service { /** * 瀵煎嚭鍦ㄧ嚎瀵规瘮 + * * @param param * @return */ @@ -865,9 +885,13 @@ public class TaxDeclareRecordWrapper extends Service { .replace("{1}", SalaryDateUtil.getFormatYearMonth(taxDeclareRecordPO.getTaxCycle())) .replace("{2}", declarationValuePO.getEmployeeId().toString())); loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "鍒犻櫎涓◣鐢虫姤鏁版嵁")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "鍒犻櫎涓◣鐢虫姤鏁版嵁")); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "鍒犻櫎涓◣鐢虫姤鏁版嵁")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "鍒犻櫎涓◣鐢虫姤鏁版嵁")); loggerContext.setOldValues(declarationValuePO); SalaryElogConfig.taxDeclarationLoggerTemplate.write(loggerContext); } + + public List getTaxReports(Long id) { + return getTaxDeclareStatusService(user).updateRecord(id); + } } diff --git a/test/ParseTaxApi.java b/test/ParseTaxApi.java index 3e4b45d9d..56bb4a986 100644 --- a/test/ParseTaxApi.java +++ b/test/ParseTaxApi.java @@ -7,9 +7,9 @@ import java.util.List; public class ParseTaxApi { public static void main(String[] args) { -// readExcel("H:\\code\\salary\\resource\\sql\\ApiDes.xlsx"); + readExcel("H:\\code\\salary\\test\\ApiDes.xlsx"); - readExcel2("H:\\code\\salary\\resource\\sql\\ApiDes.xlsx"); +// readExcel2("H:\\code\\salary\\test\\ApiDes.xlsx"); }