Commit 8faa5287 by zhangxingmin

Merge remote-tracking branch 'origin/dev' into prod

parents 4145799a de226113
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
<file url="file://$PROJECT_DIR$/yd-csf-api/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/yd-csf-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/yd-csf-api/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/yd-csf-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/yd-csf-feign/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/yd-csf-feign/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/yd-csf-feign/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/yd-csf-service/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/yd-csf-service/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/yd-csf-service/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/yd-csf-service/src/main/resources" charset="UTF-8" />
</component> </component>
......
...@@ -5,10 +5,7 @@ import com.yd.common.result.Result; ...@@ -5,10 +5,7 @@ import com.yd.common.result.Result;
import com.yd.csf.api.service.ApiSalaryService; import com.yd.csf.api.service.ApiSalaryService;
import com.yd.csf.feign.client.salary.ApiSalaryFeignClient; import com.yd.csf.feign.client.salary.ApiSalaryFeignClient;
import com.yd.csf.feign.request.salary.*; import com.yd.csf.feign.request.salary.*;
import com.yd.csf.feign.response.salary.ApiSalaryBrokerListResponse; import com.yd.csf.feign.response.salary.*;
import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse;
import com.yd.csf.feign.response.salary.ApiSalaryPageResponse;
import com.yd.csf.feign.response.salary.ApiSalaryPushPageResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -191,5 +188,24 @@ public class ApiSalaryController implements ApiSalaryFeignClient { ...@@ -191,5 +188,24 @@ public class ApiSalaryController implements ApiSalaryFeignClient {
return apiSalaryService.brokerList(name); return apiSalaryService.brokerList(name);
} }
/**
* 电子薪资单-导出
* @param request
* @return
*/
@Override
public Result<ApiSalaryExportResponse> export(ApiSalaryExportRequest request) {
return apiSalaryService.export(request);
}
/**
* 条件查询-电子薪资单列表信息(查询已推送薪资单信息)
* @param request
* @return
*/
@Override
public Result<ApiSalaryConditionListResponse> conditionList(ApiSalaryConditionListRequest request) {
return apiSalaryService.conditionList(request);
}
} }
...@@ -3,10 +3,7 @@ package com.yd.csf.api.service; ...@@ -3,10 +3,7 @@ package com.yd.csf.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.csf.feign.request.salary.*; import com.yd.csf.feign.request.salary.*;
import com.yd.csf.feign.response.salary.ApiSalaryBrokerListResponse; import com.yd.csf.feign.response.salary.*;
import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse;
import com.yd.csf.feign.response.salary.ApiSalaryPageResponse;
import com.yd.csf.feign.response.salary.ApiSalaryPushPageResponse;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -42,5 +39,9 @@ public interface ApiSalaryService { ...@@ -42,5 +39,9 @@ public interface ApiSalaryService {
Result<BigDecimal> calculateTotalAmount(ApiSalaryCalculateTotalAmountRequest request); Result<BigDecimal> calculateTotalAmount(ApiSalaryCalculateTotalAmountRequest request);
Result<ApiSalaryConditionListResponse> conditionList(ApiSalaryConditionListRequest request);
Result<ApiSalaryExportResponse> export(ApiSalaryExportRequest request);
Result<List<ApiSalaryBrokerListResponse>> brokerList(String name); Result<List<ApiSalaryBrokerListResponse>> brokerList(String name);
} }
...@@ -4,7 +4,9 @@ import com.yd.common.result.Result; ...@@ -4,7 +4,9 @@ import com.yd.common.result.Result;
import com.yd.csf.feign.fallback.salary.ApiSalaryFeignFallbackFactory; import com.yd.csf.feign.fallback.salary.ApiSalaryFeignFallbackFactory;
import com.yd.csf.feign.request.salary.*; import com.yd.csf.feign.request.salary.*;
import com.yd.csf.feign.response.salary.ApiSalaryBrokerListResponse; import com.yd.csf.feign.response.salary.ApiSalaryBrokerListResponse;
import com.yd.csf.feign.response.salary.ApiSalaryConditionListResponse;
import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse; import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse;
import com.yd.csf.feign.response.salary.ApiSalaryExportResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -145,4 +147,20 @@ public interface ApiSalaryFeignClient { ...@@ -145,4 +147,20 @@ public interface ApiSalaryFeignClient {
*/ */
@GetMapping("/broker/list") @GetMapping("/broker/list")
Result<List<ApiSalaryBrokerListResponse>> brokerList(@RequestParam(value = "name",required = false) String name); Result<List<ApiSalaryBrokerListResponse>> brokerList(@RequestParam(value = "name",required = false) String name);
/**
* 电子薪资单-导出
* @param request
* @return
*/
@PostMapping("/salary/export")
Result<ApiSalaryExportResponse> export(@Validated @RequestBody ApiSalaryExportRequest request);
/**
* 条件查询-电子薪资单列表信息
* @param request
* @return
*/
@PostMapping("/condition/list")
Result<ApiSalaryConditionListResponse> conditionList(@Validated @RequestBody ApiSalaryConditionListRequest request);
} }
...@@ -49,11 +49,16 @@ public class ApiSalaryBatchAddDTO { ...@@ -49,11 +49,16 @@ public class ApiSalaryBatchAddDTO {
//========以下是薪资汇款明细字段,两个汇款明细对象 //========以下是薪资汇款明细字段,两个汇款明细对象
/** /**
* 收款银行1 * 收款银行1ID
*/ */
private String bank1; private String bank1;
/** /**
* 收款银行1名称
*/
private String bank1Name;
/**
* 账户尾号1 * 账户尾号1
*/ */
private String accountEndNo1; private String accountEndNo1;
...@@ -79,11 +84,16 @@ public class ApiSalaryBatchAddDTO { ...@@ -79,11 +84,16 @@ public class ApiSalaryBatchAddDTO {
private String remark1; private String remark1;
/** /**
* 收款银行1 * 收款银行2ID
*/ */
private String bank2; private String bank2;
/** /**
* 收款银行2名称
*/
private String bank2Name;
/**
* 账户尾号1 * 账户尾号1
*/ */
private String accountEndNo2; private String accountEndNo2;
......
...@@ -13,11 +13,16 @@ public class ApiSalaryRemittanceDTO { ...@@ -13,11 +13,16 @@ public class ApiSalaryRemittanceDTO {
private String salaryRemittanceBizId; private String salaryRemittanceBizId;
/** /**
* 收款银行 * 收款银行ID
*/ */
private String bank; private String bank;
/** /**
* 收款银行名称
*/
private String bankName;
/**
* 账户尾号 * 账户尾号
*/ */
private String accountEndNo; private String accountEndNo;
......
...@@ -4,7 +4,9 @@ import com.yd.common.result.Result; ...@@ -4,7 +4,9 @@ import com.yd.common.result.Result;
import com.yd.csf.feign.client.salary.ApiSalaryFeignClient; import com.yd.csf.feign.client.salary.ApiSalaryFeignClient;
import com.yd.csf.feign.request.salary.*; import com.yd.csf.feign.request.salary.*;
import com.yd.csf.feign.response.salary.ApiSalaryBrokerListResponse; import com.yd.csf.feign.response.salary.ApiSalaryBrokerListResponse;
import com.yd.csf.feign.response.salary.ApiSalaryConditionListResponse;
import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse; import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse;
import com.yd.csf.feign.response.salary.ApiSalaryExportResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -101,6 +103,16 @@ public class ApiSalaryFeignFallbackFactory implements FallbackFactory<ApiSalaryF ...@@ -101,6 +103,16 @@ public class ApiSalaryFeignFallbackFactory implements FallbackFactory<ApiSalaryF
public Result<List<ApiSalaryBrokerListResponse>> brokerList(String name) { public Result<List<ApiSalaryBrokerListResponse>> brokerList(String name) {
return null; return null;
} }
@Override
public Result<ApiSalaryExportResponse> export(ApiSalaryExportRequest request) {
return null;
}
@Override
public Result<ApiSalaryConditionListResponse> conditionList(ApiSalaryConditionListRequest request) {
return null;
}
}; };
} }
} }
package com.yd.csf.feign.request.salary;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiSalaryConditionListRequest {
/**
* 手机号(用于和CSF系统人员信息匹配)
*/
@NotBlank(message = "手机号不能为空")
private String mobile;
/**
* 薪资年份(格式:yyyy)
*/
@NotBlank(message = "薪资年份不能为空")
private String year;
}
package com.yd.csf.feign.request.salary;
import lombok.Data;
@Data
public class ApiSalaryExportRequest {
/**
* 转介人名称
*/
private String brokerName;
/**
* 薪资月份(同出账月,如:202605)
*/
private String month;
/**
* 薪资单状态:1-待提交 2-待核对 3-已核对 4-退回 5-已推送 6-已取消
*/
private String status;
}
...@@ -20,4 +20,9 @@ public class ApiSalaryPageRequest extends PageDto { ...@@ -20,4 +20,9 @@ public class ApiSalaryPageRequest extends PageDto {
* 薪资单状态:1-待提交 2-待核对 3-已核对 4-退回 5-已推送 6-已取消 * 薪资单状态:1-待提交 2-待核对 3-已核对 4-退回 5-已推送 6-已取消
*/ */
private String status; private String status;
/**
* 发放编号
*/
private String salaryNo;
} }
...@@ -20,4 +20,9 @@ public class ApiSalaryPushPageRequest extends PageDto { ...@@ -20,4 +20,9 @@ public class ApiSalaryPushPageRequest extends PageDto {
* 薪资单状态:1-待提交 2-待核对 3-已核对 4-退回 5-已推送 6-已取消 * 薪资单状态:1-待提交 2-待核对 3-已核对 4-退回 5-已推送 6-已取消
*/ */
private String status; private String status;
/**
* 发放编号
*/
private String salaryNo;
} }
package com.yd.csf.feign.response.salary;
import lombok.Data;
import java.util.List;
@Data
public class ApiSalaryConditionListResponse {
/**
* 列表数量
*/
private Integer count;
/**
* 薪资列表信息
*/
private List<ApiSalaryConditionResponse> conditionResponseList;
}
package com.yd.csf.feign.response.salary;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ApiSalaryConditionResponse {
/**
* 薪资单表唯一业务ID
*/
private String salaryBizId;
/**
* 薪资年月(同出账月,如:xxxx年MM月)
*/
private String yearMonth;
/**
* 实发总金额(单位:HKD)
*/
private BigDecimal paidAmount;
/**
* 状态名称
*/
private String statusName;
}
...@@ -63,6 +63,21 @@ public class ApiSalaryDetailResponse { ...@@ -63,6 +63,21 @@ public class ApiSalaryDetailResponse {
private BigDecimal paidAmount; private BigDecimal paidAmount;
/** /**
* 薪资单状态:1-待提交 2-待核对 3-已核对 4-退回 5-已推送 6-已取消
*/
private String status;
/**
* 取消薪资备注
*/
private String cancelRemark;
/**
* 转介人内部编号
*/
private String internalNumber;
/**
* 薪资汇款明细封装的DTO * 薪资汇款明细封装的DTO
*/ */
private ApiSalaryRemittanceFzDTO apiSalaryRemittanceFzDTO; private ApiSalaryRemittanceFzDTO apiSalaryRemittanceFzDTO;
......
package com.yd.csf.feign.response.salary;
import lombok.Data;
@Data
public class ApiSalaryExportResponse {
private String url;
}
...@@ -68,4 +68,9 @@ public class ApiSalaryPageResponse { ...@@ -68,4 +68,9 @@ public class ApiSalaryPageResponse {
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createTime; private LocalDateTime createTime;
/**
* 通用备注
*/
private String remark;
} }
package com.yd.csf.feign.response.salary; package com.yd.csf.feign.response.salary;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -14,6 +15,11 @@ public class ApiSalaryPushPageResponse { ...@@ -14,6 +15,11 @@ public class ApiSalaryPushPageResponse {
private String salaryBizId; private String salaryBizId;
/** /**
* 发放编号
*/
private String salaryNo;
/**
* 转介人名称 * 转介人名称
*/ */
private String brokerName; private String brokerName;
...@@ -56,5 +62,11 @@ public class ApiSalaryPushPageResponse { ...@@ -56,5 +62,11 @@ public class ApiSalaryPushPageResponse {
/** /**
* 制作时间(创建时间) * 制作时间(创建时间)
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createTime; private LocalDateTime createTime;
/**
* 通用备注
*/
private String remark;
} }
...@@ -44,12 +44,18 @@ public class SalaryRemittance implements Serializable { ...@@ -44,12 +44,18 @@ public class SalaryRemittance implements Serializable {
private String salaryBizId; private String salaryBizId;
/** /**
* 收款银行 * 收款银行ID
*/ */
@TableField("bank") @TableField("bank")
private String bank; private String bank;
/** /**
* 收款银行名称
*/
@TableField("bank_name")
private String bankName;
/**
* 账户尾号 * 账户尾号
*/ */
@TableField("account_end_no") @TableField("account_end_no")
......
...@@ -4,6 +4,7 @@ import com.yd.csf.service.model.SalaryRemittance; ...@@ -4,6 +4,7 @@ import com.yd.csf.service.model.SalaryRemittance;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
...@@ -20,4 +21,11 @@ public interface ISalaryRemittanceService extends IService<SalaryRemittance> { ...@@ -20,4 +21,11 @@ public interface ISalaryRemittanceService extends IService<SalaryRemittance> {
List<SalaryRemittance> queryList(String salaryBizId); List<SalaryRemittance> queryList(String salaryBizId);
SalaryRemittance queryOne(String salaryRemittanceBizId); SalaryRemittance queryOne(String salaryRemittanceBizId);
/**
* 批量根据薪资单业务ID列表查询汇款明细,并按 salaryBizId 分组返回 Map
* @param salaryBizIds 薪资单业务ID列表
* @return Map<salaryBizId, List<SalaryRemittance>>
*/
Map<String, List<SalaryRemittance>> queryListBySalaryBizIds(List<String> salaryBizIds);
} }
...@@ -5,9 +5,12 @@ import com.yd.csf.service.model.SalaryRemittance; ...@@ -5,9 +5,12 @@ import com.yd.csf.service.model.SalaryRemittance;
import com.yd.csf.service.dao.SalaryRemittanceMapper; import com.yd.csf.service.dao.SalaryRemittanceMapper;
import com.yd.csf.service.service.ISalaryRemittanceService; import com.yd.csf.service.service.ISalaryRemittanceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
...@@ -38,4 +41,20 @@ public class SalaryRemittanceServiceImpl extends ServiceImpl<SalaryRemittanceMap ...@@ -38,4 +41,20 @@ public class SalaryRemittanceServiceImpl extends ServiceImpl<SalaryRemittanceMap
.eq(SalaryRemittance::getSalaryRemittanceBizId,salaryRemittanceBizId) .eq(SalaryRemittance::getSalaryRemittanceBizId,salaryRemittanceBizId)
.last(" limit 1 ")); .last(" limit 1 "));
} }
@Override
public Map<String, List<SalaryRemittance>> queryListBySalaryBizIds(List<String> salaryBizIds) {
if (CollectionUtils.isEmpty(salaryBizIds)) {
return java.util.Collections.emptyMap();
}
// 批量查询
List<SalaryRemittance> list = this.baseMapper.selectList(
new LambdaQueryWrapper<SalaryRemittance>()
.in(SalaryRemittance::getSalaryBizId, salaryBizIds)
.orderByAsc(SalaryRemittance::getCreateTime) // 按需排序
);
// 按 salaryBizId 分组
return list.stream()
.collect(Collectors.groupingBy(SalaryRemittance::getSalaryBizId));
}
} }
...@@ -3,6 +3,7 @@ package com.yd.csf.service.service.impl; ...@@ -3,6 +3,7 @@ package com.yd.csf.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.feign.enums.SalaryStatusEnum;
import com.yd.csf.feign.request.salary.ApiSalaryPageRequest; import com.yd.csf.feign.request.salary.ApiSalaryPageRequest;
import com.yd.csf.feign.request.salary.ApiSalaryPushPageRequest; import com.yd.csf.feign.request.salary.ApiSalaryPushPageRequest;
import com.yd.csf.feign.response.salary.ApiSalaryPageResponse; import com.yd.csf.feign.response.salary.ApiSalaryPageResponse;
...@@ -42,6 +43,7 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme ...@@ -42,6 +43,7 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
return this.baseMapper.selectOne(new LambdaQueryWrapper<Salary>() return this.baseMapper.selectOne(new LambdaQueryWrapper<Salary>()
.eq(Salary::getBrokerBizId,brokerBizId) .eq(Salary::getBrokerBizId,brokerBizId)
.eq(Salary::getMonth,month) .eq(Salary::getMonth,month)
.ne(Salary::getStatus, SalaryStatusEnum.YQX.getItemValue())
.ne(isExcludeMy,Salary::getSalaryBizId,salaryBizId) .ne(isExcludeMy,Salary::getSalaryBizId,salaryBizId)
.last(" limit 1 ") .last(" limit 1 ")
); );
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
s.status, s.status,
s.creator_name, s.creator_name,
s.create_time, s.create_time,
s.remark,
GROUP_CONCAT(DISTINCT sr.currency ORDER BY sr.currency SEPARATOR ';') AS currencyList GROUP_CONCAT(DISTINCT sr.currency ORDER BY sr.currency SEPARATOR ';') AS currencyList
FROM salary s FROM salary s
LEFT JOIN salary_remittance sr ON s.salary_biz_id = sr.salary_biz_id AND sr.is_deleted = 0 LEFT JOIN salary_remittance sr ON s.salary_biz_id = sr.salary_biz_id AND sr.is_deleted = 0
...@@ -28,6 +29,9 @@ ...@@ -28,6 +29,9 @@
<if test="request.status != null and request.status != ''"> <if test="request.status != null and request.status != ''">
AND s.status = #{request.status} AND s.status = #{request.status}
</if> </if>
<if test="request.salaryNo != null and request.salaryNo != ''">
AND s.salary_no LIKE CONCAT('%', #{request.salaryNo}, '%')
</if>
AND s.is_deleted = 0 AND s.is_deleted = 0
</where> </where>
GROUP BY s.salary_biz_id GROUP BY s.salary_biz_id
...@@ -45,7 +49,9 @@ ...@@ -45,7 +49,9 @@
s.other_remark, s.other_remark,
s.status, s.status,
s.creator_name, s.creator_name,
s.create_time s.create_time,
s.salary_no,
s.remark
from salary s from salary s
<where> <where>
<if test="request.brokerName != null and request.brokerName != ''"> <if test="request.brokerName != null and request.brokerName != ''">
...@@ -57,6 +63,9 @@ ...@@ -57,6 +63,9 @@
<if test="request.status != null and request.status != ''"> <if test="request.status != null and request.status != ''">
AND s.status = #{request.status} AND s.status = #{request.status}
</if> </if>
<if test="request.salaryNo != null and request.salaryNo != ''">
AND s.salary_no LIKE CONCAT('%', #{request.salaryNo}, '%')
</if>
AND s.is_deleted = 0 AND s.is_deleted = 0
</where> </where>
</select> </select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment