Commit 09508880 by zhangxingmin

push

parent 6104eda1
...@@ -4,18 +4,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -4,18 +4,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result; 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.ApiSalaryAddRequest; import com.yd.csf.feign.request.salary.*;
import com.yd.csf.feign.request.salary.ApiSalaryBatchAddRequest;
import com.yd.csf.feign.request.salary.ApiSalaryEditRequest;
import com.yd.csf.feign.request.salary.ApiSalaryPageRequest;
import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse; import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse;
import com.yd.csf.feign.response.salary.ApiSalaryPageResponse; 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;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
/** /**
* 薪资单信息 * 薪资单信息
...@@ -32,7 +31,7 @@ public class ApiSalaryController implements ApiSalaryFeignClient { ...@@ -32,7 +31,7 @@ public class ApiSalaryController implements ApiSalaryFeignClient {
private ApiSalaryService apiSalaryService; private ApiSalaryService apiSalaryService;
/** /**
* 分页查询-薪资单信息 * 分页查询-制作薪资单列表信息
* @param request * @param request
* @return * @return
*/ */
...@@ -42,6 +41,16 @@ public class ApiSalaryController implements ApiSalaryFeignClient { ...@@ -42,6 +41,16 @@ public class ApiSalaryController implements ApiSalaryFeignClient {
} }
/** /**
* 分页查询-电子薪资单列表信息(推送列表信息)
* @param request
* @return
*/
@Override
public Result<IPage<ApiSalaryPushPageResponse>> pushPage(ApiSalaryPushPageRequest request) {
return apiSalaryService.pushPage(request);
}
/**
* 详情-薪资单信息 * 详情-薪资单信息
* @param salaryBizId * @param salaryBizId
* @return * @return
...@@ -81,5 +90,35 @@ public class ApiSalaryController implements ApiSalaryFeignClient { ...@@ -81,5 +90,35 @@ public class ApiSalaryController implements ApiSalaryFeignClient {
return apiSalaryService.batchAdd(request); return apiSalaryService.batchAdd(request);
} }
/**
* 删除-薪资单汇款明细信息
* @param salaryRemittanceBizId
* @return
*/
@Override
public Result delSalaryRemittance(String salaryRemittanceBizId) {
return apiSalaryService.delSalaryRemittance(salaryRemittanceBizId);
}
/**
* 计算-实发金额
* @param request
* @return
*/
@Override
public Result<BigDecimal> calculatePaidAmount(ApiSalaryCalculatePaidAmountRequest request) {
return apiSalaryService.calculatePaidAmount(request);
}
/**
* 计算-薪资汇款明细合计发放金额(单位:HKD)
* @param request
* @return
*/
@Override
public Result<BigDecimal> calculateTotalAmount(ApiSalaryCalculateTotalAmountRequest request) {
return apiSalaryService.calculateTotalAmount(request);
}
} }
...@@ -2,16 +2,18 @@ package com.yd.csf.api.service; ...@@ -2,16 +2,18 @@ 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.ApiSalaryAddRequest; import com.yd.csf.feign.request.salary.*;
import com.yd.csf.feign.request.salary.ApiSalaryBatchAddRequest;
import com.yd.csf.feign.request.salary.ApiSalaryEditRequest;
import com.yd.csf.feign.request.salary.ApiSalaryPageRequest;
import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse; import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse;
import com.yd.csf.feign.response.salary.ApiSalaryPageResponse; import com.yd.csf.feign.response.salary.ApiSalaryPageResponse;
import com.yd.csf.feign.response.salary.ApiSalaryPushPageResponse;
import java.math.BigDecimal;
public interface ApiSalaryService { public interface ApiSalaryService {
Result<IPage<ApiSalaryPageResponse>> page(ApiSalaryPageRequest request); Result<IPage<ApiSalaryPageResponse>> page(ApiSalaryPageRequest request);
Result<IPage<ApiSalaryPushPageResponse>> pushPage(ApiSalaryPushPageRequest request);
Result<ApiSalaryDetailResponse> detail(String salaryBizId); Result<ApiSalaryDetailResponse> detail(String salaryBizId);
Result add(ApiSalaryAddRequest request); Result add(ApiSalaryAddRequest request);
...@@ -19,4 +21,10 @@ public interface ApiSalaryService { ...@@ -19,4 +21,10 @@ public interface ApiSalaryService {
Result edit(ApiSalaryEditRequest request); Result edit(ApiSalaryEditRequest request);
Result batchAdd(ApiSalaryBatchAddRequest request); Result batchAdd(ApiSalaryBatchAddRequest request);
Result delSalaryRemittance(String salaryRemittanceBizId);
Result<BigDecimal> calculatePaidAmount(ApiSalaryCalculatePaidAmountRequest request);
Result<BigDecimal> calculateTotalAmount(ApiSalaryCalculateTotalAmountRequest request);
} }
...@@ -10,14 +10,13 @@ import com.yd.common.utils.RandomStringGenerator; ...@@ -10,14 +10,13 @@ import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.api.service.ApiSalaryRemittanceService; import com.yd.csf.api.service.ApiSalaryRemittanceService;
import com.yd.csf.api.service.ApiSalaryService; import com.yd.csf.api.service.ApiSalaryService;
import com.yd.csf.feign.dto.salary.ApiSalaryBatchAddDTO; import com.yd.csf.feign.dto.salary.ApiSalaryBatchAddDTO;
import com.yd.csf.feign.dto.salary.CalculateTotalAmountDTO;
import com.yd.csf.feign.dto.salaryremittance.ApiSalaryRemittanceDTO; import com.yd.csf.feign.dto.salaryremittance.ApiSalaryRemittanceDTO;
import com.yd.csf.feign.dto.salaryremittance.ApiSalaryRemittanceFzDTO; import com.yd.csf.feign.dto.salaryremittance.ApiSalaryRemittanceFzDTO;
import com.yd.csf.feign.request.salary.ApiSalaryAddRequest; import com.yd.csf.feign.request.salary.*;
import com.yd.csf.feign.request.salary.ApiSalaryBatchAddRequest;
import com.yd.csf.feign.request.salary.ApiSalaryEditRequest;
import com.yd.csf.feign.request.salary.ApiSalaryPageRequest;
import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse; import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse;
import com.yd.csf.feign.response.salary.ApiSalaryPageResponse; import com.yd.csf.feign.response.salary.ApiSalaryPageResponse;
import com.yd.csf.feign.response.salary.ApiSalaryPushPageResponse;
import com.yd.csf.service.model.Salary; import com.yd.csf.service.model.Salary;
import com.yd.csf.service.model.SalaryRemittance; import com.yd.csf.service.model.SalaryRemittance;
import com.yd.csf.service.service.ISalaryRemittanceService; import com.yd.csf.service.service.ISalaryRemittanceService;
...@@ -49,7 +48,7 @@ public class ApiSalaryServiceImpl implements ApiSalaryService { ...@@ -49,7 +48,7 @@ public class ApiSalaryServiceImpl implements ApiSalaryService {
private ISalaryRemittanceService iSalaryRemittanceService; private ISalaryRemittanceService iSalaryRemittanceService;
/** /**
* 分页查询-薪资单信息 * 分页查询-制作薪资单列表信息
* @param request * @param request
* @return * @return
*/ */
...@@ -61,6 +60,18 @@ public class ApiSalaryServiceImpl implements ApiSalaryService { ...@@ -61,6 +60,18 @@ public class ApiSalaryServiceImpl implements ApiSalaryService {
} }
/** /**
* 分页查询-电子薪资单列表信息(推送列表信息)
* @param request
* @return
*/
@Override
public Result<IPage<ApiSalaryPushPageResponse>> pushPage(ApiSalaryPushPageRequest request) {
Page<ApiSalaryPushPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
// IPage<ApiSalaryPushPageResponse> iPage = iSalaryService.pushPage(page, request);
return Result.success();
}
/**
* 详情-薪资单信息 * 详情-薪资单信息
* @param salaryBizId * @param salaryBizId
* @return * @return
...@@ -198,6 +209,63 @@ public class ApiSalaryServiceImpl implements ApiSalaryService { ...@@ -198,6 +209,63 @@ public class ApiSalaryServiceImpl implements ApiSalaryService {
} }
/** /**
* 删除-薪资单汇款明细信息
* @param salaryRemittanceBizId
* @return
*/
@Override
public Result delSalaryRemittance(String salaryRemittanceBizId) {
SalaryRemittance salaryRemittance = iSalaryRemittanceService.queryOne(salaryRemittanceBizId);
if (salaryRemittance == null) {
throw new BusinessException("薪资单汇款明细信息不存在");
}
iSalaryRemittanceService.removeById(salaryRemittance.getId());
return Result.success();
}
/**
* 计算-实发金额
* @param request
* @return
*/
@Override
public Result<BigDecimal> calculatePaidAmount(ApiSalaryCalculatePaidAmountRequest request) {
//应发总金额
BigDecimal grossAmount = ObjectUtils.defaultIfNull(request.getGrossAmount(), BigDecimal.ZERO);
//MPF事项总金额
BigDecimal mpfAmount = ObjectUtils.defaultIfNull(request.getMpfAmount(), BigDecimal.ZERO);
//其他调整总金额
BigDecimal otherAmount = ObjectUtils.defaultIfNull(request.getOtherAmount(), BigDecimal.ZERO);
//实发金额 = 应发金额-MPF事项+其他调整
BigDecimal paidAmount = grossAmount.subtract(mpfAmount).add(otherAmount);
return Result.success(paidAmount);
}
/**
* 计算-薪资汇款明细合计发放金额(单位:HKD)
* @param request
* @return
*/
@Override
public Result<BigDecimal> calculateTotalAmount(ApiSalaryCalculateTotalAmountRequest request) {
List<CalculateTotalAmountDTO> calculateTotalAmountDTOList = request.getCalculateTotalAmountDTOList();
if (CollectionUtils.isEmpty(calculateTotalAmountDTOList)) {
throw new BusinessException("计算入参的值不能为空");
}
BigDecimal totalAmount = BigDecimal.ZERO;
calculateTotalAmountDTOList.forEach(dto -> {
//发放金额
BigDecimal amount = ObjectUtils.defaultIfNull(dto.getAmount(), BigDecimal.ZERO);
//汇率
BigDecimal exchangeRate = ObjectUtils.defaultIfNull(dto.getExchangeRate(), BigDecimal.ZERO);
//港币金额 = 发放金额 * 汇率
BigDecimal hkdAmount = amount.multiply(exchangeRate);
totalAmount.add(hkdAmount);
});
return Result.success(totalAmount);
}
/**
* 批量校验同一转介人同一年月只能有一条薪资单记录 * 批量校验同一转介人同一年月只能有一条薪资单记录
* @param apiSalaryBatchAddDTOList * @param apiSalaryBatchAddDTOList
*/ */
......
...@@ -18,7 +18,7 @@ import java.math.BigDecimal; ...@@ -18,7 +18,7 @@ import java.math.BigDecimal;
public interface ApiSalaryFeignClient { public interface ApiSalaryFeignClient {
/** /**
* 分页查询-薪资单信息 * 分页查询-制作薪资单列表信息
* @param request * @param request
* @return * @return
*/ */
...@@ -26,6 +26,14 @@ public interface ApiSalaryFeignClient { ...@@ -26,6 +26,14 @@ public interface ApiSalaryFeignClient {
Result page(@Validated @RequestBody ApiSalaryPageRequest request); Result page(@Validated @RequestBody ApiSalaryPageRequest request);
/** /**
* 分页查询-电子薪资单列表信息(推送列表信息)
* @param request
* @return
*/
@PostMapping("/push/page")
Result pushPage(@Validated @RequestBody ApiSalaryPushPageRequest request);
/**
* 详情-薪资单信息 * 详情-薪资单信息
* @param salaryBizId * @param salaryBizId
* @return * @return
...@@ -58,10 +66,26 @@ public interface ApiSalaryFeignClient { ...@@ -58,10 +66,26 @@ public interface ApiSalaryFeignClient {
Result batchAdd(@Validated @RequestBody ApiSalaryBatchAddRequest request); Result batchAdd(@Validated @RequestBody ApiSalaryBatchAddRequest request);
/** /**
* 删除-薪资单汇款明细信息
* @param salaryRemittanceBizId
* @return
*/
@DeleteMapping("/delSalaryRemittance")
Result delSalaryRemittance(@NotBlank(message = "薪资汇款明细表唯一业务ID不能为空") @RequestParam(value = "salaryRemittanceBizId") String salaryRemittanceBizId);
/**
* 计算-实发金额 * 计算-实发金额
* @param request * @param request
* @return * @return
*/ */
@PostMapping("/calculate/paidAmount") @PostMapping("/calculate/paidAmount")
Result<BigDecimal> calculatePaidAmount(@Validated @RequestBody ApiSalaryCalculatePaidAmountRequest request); Result<BigDecimal> calculatePaidAmount(@Validated @RequestBody ApiSalaryCalculatePaidAmountRequest request);
/**
* 计算-薪资汇款明细合计发放金额(单位:HKD)
* @param request
* @return
*/
@PostMapping("/calculate/totalAmount")
Result<BigDecimal> calculateTotalAmount(@Validated @RequestBody ApiSalaryCalculateTotalAmountRequest request);
} }
package com.yd.csf.feign.dto.salary;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Data
public class CalculateTotalAmountDTO {
/**
* 汇款币种
*/
private String currency;
/**
* 发放金额
*/
@NotNull(message = "发放金额不能为空")
private BigDecimal amount;
/**
* 汇率
*/
@NotNull(message = "汇率不能为空")
private BigDecimal exchangeRate;
}
...@@ -2,16 +2,14 @@ package com.yd.csf.feign.fallback.salary; ...@@ -2,16 +2,14 @@ package com.yd.csf.feign.fallback.salary;
import com.yd.common.result.Result; 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.ApiSalaryAddRequest; import com.yd.csf.feign.request.salary.*;
import com.yd.csf.feign.request.salary.ApiSalaryBatchAddRequest;
import com.yd.csf.feign.request.salary.ApiSalaryEditRequest;
import com.yd.csf.feign.request.salary.ApiSalaryPageRequest;
import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse; import com.yd.csf.feign.response.salary.ApiSalaryDetailResponse;
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;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
/** /**
* 香港保险服务-薪资单信息Feign降级处理 * 香港保险服务-薪资单信息Feign降级处理
...@@ -46,6 +44,21 @@ public class ApiSalaryFeignFallbackFactory implements FallbackFactory<ApiSalaryF ...@@ -46,6 +44,21 @@ public class ApiSalaryFeignFallbackFactory implements FallbackFactory<ApiSalaryF
public Result batchAdd(ApiSalaryBatchAddRequest request) { public Result batchAdd(ApiSalaryBatchAddRequest request) {
return null; return null;
} }
@Override
public Result delSalaryRemittance(String salaryRemittanceBizId) {
return null;
}
@Override
public Result<BigDecimal> calculatePaidAmount(ApiSalaryCalculatePaidAmountRequest request) {
return null;
}
@Override
public Result<BigDecimal> calculateTotalAmount(ApiSalaryCalculateTotalAmountRequest request) {
return null;
}
}; };
} }
} }
package com.yd.csf.feign.request.salary; package com.yd.csf.feign.request.salary;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
@Data @Data
...@@ -9,16 +11,18 @@ public class ApiSalaryCalculatePaidAmountRequest { ...@@ -9,16 +11,18 @@ public class ApiSalaryCalculatePaidAmountRequest {
/** /**
* 应发总金额(单位:HKD) * 应发总金额(单位:HKD)
*/ */
@NotNull(message = "应发总金额不能为空")
private BigDecimal grossAmount; private BigDecimal grossAmount;
/** /**
* MPF事项总金额(单位:HKD) * MPF事项总金额(单位:HKD)
*/ */
@NotNull(message = "MPF事项总金额不能为空")
private BigDecimal mpfAmount; private BigDecimal mpfAmount;
/** /**
* 其他调整总金额(单位:HKD) * 其他调整总金额(单位:HKD)
*/ */
@NotNull(message = "其他调整总金额不能为空")
private BigDecimal otherAmount; private BigDecimal otherAmount;
} }
package com.yd.csf.feign.request.salary;
import com.yd.csf.feign.dto.salary.CalculateTotalAmountDTO;
import lombok.Data;
import javax.validation.Valid;
import java.util.List;
@Data
public class ApiSalaryCalculateTotalAmountRequest {
@Valid
private List<CalculateTotalAmountDTO> calculateTotalAmountDTOList;
}
package com.yd.csf.feign.request.salary;
import com.yd.common.dto.PageDto;
import lombok.Data;
@Data
public class ApiSalaryPushPageRequest extends PageDto {
/**
* 转介人名称
*/
private String brokerName;
/**
* 薪资月份(同出账月,如:202605)
*/
private String month;
/**
* 薪资单状态:1-待审核提交 2-待审核 3-审核退回 4-待核对提交 5-待核对 6-核对退回 7-已核对 8-已推送 9-已取消
*/
private String status;
}
package com.yd.csf.feign.response.salary;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class ApiSalaryPushPageResponse {
/**
* 转介人名称
*/
private String brokerName;
/**
* 薪资月份(同出账月,如:202605)
*/
private String month;
/**
* 实发总金额(单位:HKD)
*/
private BigDecimal paidAmount;
/**
* 应发总金额(单位:HKD)
*/
private BigDecimal grossAmount;
/**
* 扣款合计(单位:HKD)
*/
private BigDecimal totalDeductions;
/**
* 其他调整的备注
*/
private String otherRemark;
/**
* 制作人(创建人名称)
*/
private String creatorName;
/**
* 制作时间(创建时间)
*/
private LocalDateTime createTime;
}
...@@ -110,7 +110,7 @@ public class Salary implements Serializable { ...@@ -110,7 +110,7 @@ public class Salary implements Serializable {
private String otherRemark; private String otherRemark;
/** /**
* 薪资单状态:1-待提交 2-待审核 3-审核退回 4-待核对 5-核对退回 6-已核对 7-已推送 8-已取消 * 薪资单状态:1-待审核提交 2-待审核 3-审核退回 4-待核对提交 5-待核对 6-核对退回 7-已核对 8-已推送 9-已取消
*/ */
@TableField("status") @TableField("status")
private String status; private String status;
......
...@@ -18,4 +18,6 @@ public interface ISalaryRemittanceService extends IService<SalaryRemittance> { ...@@ -18,4 +18,6 @@ public interface ISalaryRemittanceService extends IService<SalaryRemittance> {
Boolean delBySalaryBizId(String salaryBizId); Boolean delBySalaryBizId(String salaryBizId);
List<SalaryRemittance> queryList(String salaryBizId); List<SalaryRemittance> queryList(String salaryBizId);
SalaryRemittance queryOne(String salaryRemittanceBizId);
} }
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -4,6 +4,7 @@ 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.request.salary.ApiSalaryPageRequest; import com.yd.csf.feign.request.salary.ApiSalaryPageRequest;
import com.yd.csf.feign.response.salary.ApiSalaryPageResponse; import com.yd.csf.feign.response.salary.ApiSalaryPageResponse;
import com.yd.csf.feign.response.salary.ApiSalaryPushPageResponse;
import com.yd.csf.service.model.Salary; import com.yd.csf.service.model.Salary;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
...@@ -20,6 +21,7 @@ public interface ISalaryService extends IService<Salary> { ...@@ -20,6 +21,7 @@ public interface ISalaryService extends IService<Salary> {
IPage<ApiSalaryPageResponse> page(Page<ApiSalaryPageResponse> page, IPage<ApiSalaryPageResponse> page(Page<ApiSalaryPageResponse> page,
ApiSalaryPageRequest request); ApiSalaryPageRequest request);
Salary queryOne(String brokerBizId,String month, Salary queryOne(String brokerBizId,String month,
String salaryBizId,Boolean isExcludeMy); String salaryBizId,Boolean isExcludeMy);
......
...@@ -31,4 +31,11 @@ public class SalaryRemittanceServiceImpl extends ServiceImpl<SalaryRemittanceMap ...@@ -31,4 +31,11 @@ public class SalaryRemittanceServiceImpl extends ServiceImpl<SalaryRemittanceMap
return this.baseMapper.selectList(new LambdaQueryWrapper<SalaryRemittance>() return this.baseMapper.selectList(new LambdaQueryWrapper<SalaryRemittance>()
.eq(SalaryRemittance::getSalaryBizId,salaryBizId)); .eq(SalaryRemittance::getSalaryBizId,salaryBizId));
} }
@Override
public SalaryRemittance queryOne(String salaryRemittanceBizId) {
return this.baseMapper.selectOne(new LambdaQueryWrapper<SalaryRemittance>()
.eq(SalaryRemittance::getSalaryRemittanceBizId,salaryRemittanceBizId)
.last(" limit 1 "));
}
} }
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