Commit 9a3374f9 authored by hongguangwu's avatar hongguangwu

Merge remote-tracking branch 'origin/develop' into develop

parents c2bef9dc 3fa2fe83
......@@ -175,7 +175,7 @@ emp.dispatch.fund.start.is.error=\u6D3E\u589E\u5F02\u5E38\uFF1A \u516C\u79EF\u91
emp.dispatch.emp.contract.not.empty=\u6D3E\u589E\u5F02\u5E38\uFF1A \u5408\u540C\u76F8\u5173\u4FE1\u606F\u4E0D\u53EF\u4E3A\u7A7A
emp.dispatch.emp.not.empty=\u6D3E\u589E\u5F02\u5E38\uFF1A \u7CFB\u7EDF\u65E0\u5BF9\u5E94\u9879\u76EE\u6863\u6848\uFF0C\u6863\u6848\u76F8\u5173\u540C\u8272\u5B57\u6BB5\u5FC5\u586B
emp.dispatch.emp.not.empty=\u6D3E\u589E\u5F02\u5E38\uFF1A \u7CFB\u7EDF\u65E0\u5BF9\u5E94\u9879\u76EE\u6863\u6848\uFF0C\u6863\u6848\u53CA\u5408\u540C\u76F8\u5173\u5B57\u6BB5\u5FC5\u586B
emp.dispatch.settleDomain.stop=\u6D3E\u589E\u5F02\u5E38\uFF1A \u5BF9\u5E94\u9879\u76EE\u7F16\u7801\u5DF2\u505C\u6B62\u5408\u4F5C
......
......@@ -19,5 +19,17 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
package com.yifu.cloud.plus.v1.yifu.ekp.util;
import com.yifu.cloud.plus.v1.yifu.ekp.config.EkpSalaryProperties;
import com.yifu.cloud.plus.v1.yifu.ekp.constant.EkpConstants;
import com.yifu.cloud.plus.v1.yifu.ekp.vo.EkpSalaryParam;
import io.micrometer.core.instrument.util.StringUtils;
import lombok.extern.log4j.Log4j2;
import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.http.*;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import cn.hutool.json.JSONObject;
/**
* @Author fxj
......@@ -17,4 +26,48 @@ public class EkpSalaryUtil {
@Autowired
private EkpSalaryProperties ekpProperties;
public String sendToEKP(EkpSalaryParam param){
log.info("推送EKP开始--薪资明细数据");
RestTemplate yourRestTemplate = new RestTemplate();
try{
String formValues = new ObjectMapper().writeValueAsString(param);
//指向EKP的接口url
//把ModelingAppModelParameterAddForm转换成MultiValueMap
JSONObject loginName = new JSONObject();
loginName.append("LoginName",ekpProperties.getLoginName());
String loginData = new ObjectMapper().writeValueAsString(loginName);
MultiValueMap<String,Object> wholeForm = new LinkedMultiValueMap<>();
//wholeForm.add("docSubject", new String(docSubject.getBytes("UTF-8"),"ISO-8859-1") );
wholeForm.add("docSubject",ekpProperties.getDocSubject());
wholeForm.add("docCreator", "{\"LoginName\":\"admin\"}");
//wholeForm.add("docCreator", loginData);
wholeForm.add("docStatus", ekpProperties.getDocStatus());
wholeForm.add("fdModelId", ekpProperties.getFdModelId());
wholeForm.add("fdFlowId", ekpProperties.getFdFlowId());
//wholeForm.add("formValues", new String(formValues.getBytes("UTF-8"),"ISO-8859-1"));
wholeForm.add("formValues", formValues);
//wholeForm.add("formValues", new String("{\"fd_3adfe6af71a1cc\":\"王五\", \"fd_3adfe658c6229e\":\"2019-03-26\", \"fd_3adfe6592b4158\":\"这里内容\"}".getBytes("UTF-8"),"ISO-8859-1") );
System.out.println("wholeForm:"+wholeForm);
HttpHeaders headers = new HttpHeaders();
//如果EKP对该接口启用了Basic认证,那么客户端需要加入
//addAuth(headers,"yourAccount"+":"+"yourPassword");是VO,则使用APPLICATION_JSON
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
//必须设置上传类型,如果入参是字符串,使用MediaType.TEXT_PLAIN;如果
HttpEntity<MultiValueMap<String,Object>> entity = new HttpEntity<MultiValueMap<String,Object>>(wholeForm,headers);
//有返回值的情况 VO可以替换成具体的JavaBean
ResponseEntity<String> obj = yourRestTemplate.exchange(ekpProperties.getUrl(), HttpMethod.POST, entity, String.class);
String body = obj.getBody();
if (StringUtils.isBlank(body)){
log.error(EkpConstants.SEND_FAILED);
return null;
}else{
log.info(EkpConstants.SEND_SUCCESS+body);
return body;
}
}catch (Exception e){
log.info(e.getMessage());
return null;
}
}
}
package com.yifu.cloud.plus.v1.yifu.ekp.constant;
/**
* @Author fxj
* @Date 2022/8/22
* @Description
* @Version 1.0
*/
public interface EkpConstants {
/**
* 推送成功
*/
String SEND_SUCCESS = "推送成功";
/**
* 推送失败
*/
String SEND_FAILED = "推送失败";
}
package com.yifu.cloud.plus.v1.yifu.ekp.vo;
import lombok.Data;
/**
* @Author fxj
* @Date 2022/8/22
* @Description 薪资明细对应参数
* @Version 1.0
*/
@Data
public class EkpSalaryParam {
}
......@@ -820,17 +820,9 @@ public class InsurancesConstants {
*/
/**
* 减员退回的办理意见不能为空
*/
public static final String REFUND_MESSAGE_IS_EMPTY = "办理失败意见不能为空";
/**
* 该保单信息已被更新为减员退回
*/
/**
* 该保单信息已被更新为减员成功
* 减员/投保退回的办理意见不能为空
*/
public static final String ROLLBACK_MESSAGE_IS_EMPTY = "办理失败意见不能为空";
/**
* 该保单信息已被删除
......
package com.yifu.cloud.plus.v1.yifu.insurances.entity;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* ekp交互失败存储表
* @TableName t_insurance_ekp
*/
@Data
@Tag(name = "ekp交互失败存储表")
public class TInsuranceEkp implements Serializable {
/**
* 主键id
*/
private String id;
/**
* 商险id
*/
private String detailId;
/**
* 结算id
*/
private String defaultSettleId;
/**
* 项目编码
*/
private String deptNo;
/**
* 项目名称
*/
private String deptName;
/**
* 客户名称
*/
private String customerName;
/**
* 客户编码
*/
private String customerCode;
/**
* 员工姓名
*/
private String empName;
/**
* 员工身份证号
*/
private String empIdcardNo;
/**
* 发票号
*/
private String invoiceNo;
/**
* 发生日期
*/
private Date happenDate;
/**
* 保单编号
*/
private String policyNo;
/**
* 保险公司名称
*/
private String insuranceCompanyName;
/**
* 险种名称
*/
private String insuranceTypeName;
/**
* 保单开始时间
*/
private Date policyStart;
/**
* 保单结束时间
*/
private Date policyEnd;
/**
* 购买标准
*/
private String buyStandard;
/**
* 医疗额度
*/
private String medicalQuota;
/**
* 身故或残疾额度
*/
private String dieDisableQuota;
/**
* 实际保费
*/
private String actualPremium;
/**
* 预估保费
*/
private String estimatePremium;
/**
* 结算月
*/
private String settleMonth;
/**
* 单据状态
*/
private String interactiveType;
/**
* 重发标识
*/
private String resendFlag;
/**
* 创建时间
*/
private Date createTime;
/**
* 发送时间
*/
private Date pushTime;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -139,8 +139,8 @@ public class EKPUtil {
TInsuranceSettlePushParam pushParam = new TInsuranceSettlePushParam();
param.setHappenDate(format);
//ekpId
if(null != param.getId() && null != param.getDefaultSettleId()){
pushParam.setFd_3afa8a70006bea(param.getId()+CommonConstants.DOWN_LINE_STRING+param.getDefaultSettleId());
if(null != param.getDetailId() && null != param.getDefaultSettleId()){
pushParam.setFd_3afa8a70006bea(param.getDetailId()+CommonConstants.DOWN_LINE_STRING+param.getDefaultSettleId());
}else{
pushParam.setFd_3afa8a70006bea(CommonConstants.EMPTY_STRING);
}
......
......@@ -8,7 +8,6 @@ import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
/**
* @author zhaji
......@@ -19,6 +18,7 @@ import java.util.Date;
public class EKPInteractiveParam implements Serializable {
private static final long serialVersionUID = -2689686777914935788L;
/**
* 主键
*/
......@@ -26,6 +26,12 @@ public class EKPInteractiveParam implements Serializable {
@Schema(description = "主键")
private String id;
/**
* 商险id
*/
@Schema(description = "主键")
private String detailId;
/**
* 结算id
*/
......
......@@ -8,12 +8,12 @@ import java.io.Serializable;
/**
* @author zhaji
* @description 减员办理导入校验
* @description 投保成功/退回/减员办理导入校验
* @date 2022-08-22 10:15:19
*/
@Data
@Tag(name = "减员办理导入参数")
public class InsuranceRefundImportParam implements Serializable {
@Tag(name = "投保成功/退回/减员办理导入参数")
public class InsuranceHandleImportParam implements Serializable {
private static final long serialVersionUID = -2689686777914935788L;
/**
......
......@@ -244,6 +244,23 @@ public class TInsuranceDetailController {
return tInsuranceDetailService.rollBackInsurance(user,paramList);
}
/**
* 投保成功/退回办理导入
*
* @author licancan
* @param param
* @return {@link R<List<InsuranceHandleImportParam>>}
*/
@Operation(summary = "投保成功/退回办理导入", description = "投保成功/退回办理导入")
@PostMapping("/insuranceHandleImport")
public R<List<InsuranceHandleImportParam>> insuranceHandleImport(@RequestBody @Valid @Size(min = 1,message = "集合不能为空") List<InsuranceHandleImportParam> param) {
YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) {
return R.failed(CommonConstants.PLEASE_LOG_IN);
}
return tInsuranceDetailService.insuranceHandleImport(user,param);
}
/**
* 办理成功
*
......@@ -410,11 +427,11 @@ public class TInsuranceDetailController {
*
* @author zhaji
* @param insuranceRefundImportList 减员信息
* @return {@link R<List<InsuranceRefundImportParam>>}
* @return {@link R<List< InsuranceHandleImportParam >>}
*/
@Operation(summary = "减员办理导入", description = "减员办理导入")
@PostMapping("/insuranceRefundImport")
public R insuranceRefundImport(@RequestBody List<InsuranceRefundImportParam> insuranceRefundImportList) {
public R insuranceRefundImport(@RequestBody List<InsuranceHandleImportParam> insuranceRefundImportList) {
return tInsuranceDetailService.insuranceRefundImport(insuranceRefundImportList);
}
......
package com.yifu.cloud.plus.v1.yifu.insurances.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceEkp;
import org.apache.ibatis.annotations.Mapper;
/**
* @author Administrator
* @description 针对表【t_insurance_ekp(ekp交互失败存储表)】的数据库操作Mapper
* @createDate 2022-08-23 17:02:49
* @Entity generator.domain.TInsuranceEkp
*/
@Mapper
public interface TInsuranceEkpMapper extends BaseMapper<TInsuranceEkp> {
}
......@@ -159,6 +159,16 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> {
*/
R<List<InsuranceListVO>> rollBackInsurance(YifuUser user, List<InsuranceHandleParam> paramList);
/**
* 投保成功/退回办理导入
*
* @author licancan
* @param user
* @param param
* @return {@link R<List<InsuranceHandleImportParam>>}
*/
R<List<InsuranceHandleImportParam>> insuranceHandleImport(YifuUser user,List<InsuranceHandleImportParam> param);
/**
* 办理成功
*
......@@ -262,7 +272,7 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> {
* @param insuranceRefundImportList 减员办理导入
* @return {@link R}
*/
R insuranceRefundImport(List<InsuranceRefundImportParam> insuranceRefundImportList);
R insuranceRefundImport(List<InsuranceHandleImportParam> insuranceRefundImportList);
/**
......
package com.yifu.cloud.plus.v1.yifu.insurances.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceEkp;
/**
* @author Administrator
* @description 针对表【t_insurance_ekp(ekp交互失败存储表)】的数据库操作Service
* @createDate 2022-08-23 17:02:49
*/
public interface TInsuranceEkpService extends IService<TInsuranceEkp> {
}
package com.yifu.cloud.plus.v1.yifu.insurances.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceEkp;
import com.yifu.cloud.plus.v1.yifu.insurances.mapper.TInsuranceEkpMapper;
import com.yifu.cloud.plus.v1.yifu.insurances.service.TInsuranceEkpService;
import org.springframework.stereotype.Service;
/**
* @author Administrator
* @description 针对表【t_insurance_ekp(ekp交互失败存储表)】的数据库操作Service实现
* @createDate 2022-08-23 17:02:49
*/
@Service
public class TInsuranceEkpServiceImpl extends ServiceImpl<TInsuranceEkpMapper, TInsuranceEkp> implements TInsuranceEkpService {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.insurances.mapper.TInsuranceEkpMapper">
<resultMap id="BaseResultMap" type="com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceEkp">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="detailId" column="DETAIL_ID" jdbcType="VARCHAR"/>
<result property="defaultSettleId" column="DEFAULT_SETTLE_ID" jdbcType="VARCHAR"/>
<result property="deptNo" column="DEPT_NO" jdbcType="VARCHAR"/>
<result property="deptName" column="DEPT_NAME" jdbcType="VARCHAR"/>
<result property="customerName" column="CUSTOMER_NAME" jdbcType="VARCHAR"/>
<result property="customerCode" column="CUSTOMER_CODE" jdbcType="VARCHAR"/>
<result property="empName" column="EMP_NAME" jdbcType="VARCHAR"/>
<result property="empIdcardNo" column="EMP_IDCARD_NO" jdbcType="VARCHAR"/>
<result property="invoiceNo" column="INVOICE_NO" jdbcType="VARCHAR"/>
<result property="happenDate" column="HAPPEN_DATE" jdbcType="TIMESTAMP"/>
<result property="policyNo" column="POLICY_NO" jdbcType="VARCHAR"/>
<result property="insuranceCompanyName" column="INSURANCE_COMPANY_NAME" jdbcType="VARCHAR"/>
<result property="insuranceTypeName" column="INSURANCE_TYPE_NAME" jdbcType="VARCHAR"/>
<result property="policyStart" column="POLICY_START" jdbcType="DATE"/>
<result property="policyEnd" column="POLICY_END" jdbcType="DATE"/>
<result property="buyStandard" column="BUY_STANDARD" jdbcType="VARCHAR"/>
<result property="medicalQuota" column="MEDICAL_QUOTA" jdbcType="VARCHAR"/>
<result property="dieDisableQuota" column="DIE_DISABLE_QUOTA" jdbcType="VARCHAR"/>
<result property="actualPremium" column="ACTUAL_PREMIUM" jdbcType="VARCHAR"/>
<result property="estimatePremium" column="ESTIMATE_PREMIUM" jdbcType="VARCHAR"/>
<result property="settleMonth" column="SETTLE_MONTH" jdbcType="VARCHAR"/>
<result property="interactiveType" column="INTERACTIVE_TYPE" jdbcType="VARCHAR"/>
<result property="resendFlag" column="RESEND_FLAG" jdbcType="VARCHAR"/>
<result property="createTime" column="CREATE_TIME" jdbcType="TIMESTAMP"/>
<result property="pushTime" column="PUSH_TIME" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,DETAIL_ID,DEFAULT_SETTLE_ID,
DEPT_NO,DEPT_NAME,CUSTOMER_NAME,
CUSTOMER_CODE,EMP_NAME,EMP_IDCARD_NO,
INVOICE_NO,HAPPEN_DATE,POLICY_NO,
INSURANCE_COMPANY_NAME,INSURANCE_TYPE_NAME,POLICY_START,
POLICY_END,BUY_STANDARD,MEDICAL_QUOTA,
DIE_DISABLE_QUOTA,ACTUAL_PREMIUM,ESTIMATE_PREMIUM,
SETTLE_MONTH,INTERACTIVE_TYPE,RESEND_FLAG,
CREATE_TIME,PUSH_TIME
</sql>
</mapper>
......@@ -1543,24 +1543,9 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
int ownNum = 0;
// 自有员工应发金额
BigDecimal ownMoney = BigDecimal.ZERO;
// 发薪特殊值人数
int specialNums = 0;
// 发薪特殊值应发总额
BigDecimal specialMoney = BigDecimal.ZERO;
// 薪资员工发放稿酬/劳务费人数
int salaryNums = 0;
// 薪资员工发放稿酬/劳务费总额
BigDecimal salaryMoney = BigDecimal.ZERO;
// 本月是否重复金额人数
int repeatNums = 0;
// 本月是否重复金额总额
BigDecimal repeatMoney = BigDecimal.ZERO;
BigDecimal relaySalary; //工资应发
// 劳务费、稿酬是否含有发薪false:否;true:是
boolean haveSalaryFlag = false;
// 是否含有特殊金额false:否;true:是
boolean haveSpecialFlag = false;
// 是否重复金额false:否;true:是
boolean repeatFlag = false;
......@@ -1575,7 +1560,6 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
Map<String, List<TSalaryAccountItem>> itemMap = tSalaryAccountItemService.getAllItemVoList(idCardList, invoiceTitle);
for (int i = CommonConstants.ZERO_INT; i < size; i++) {
relaySalary = BigDecimal.ZERO;
a = new TSalaryAccount();
// 本次实发
BigDecimal actualSalarySumNow = BigDecimal.ZERO;
......@@ -1586,9 +1570,6 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
if (!haveSalaryFlag && a.getHaveSalaryFlag() != null && a.getHaveSalaryFlag() == CommonConstants.ONE_INT) {
haveSalaryFlag = true;
}
if (!haveSpecialFlag && a.getHaveSpecialFlag() != null && a.getHaveSpecialFlag() == CommonConstants.ONE_INT) {
haveSpecialFlag = true;
}
if (!repeatFlag && a.getIsRepeat() != null && a.getIsRepeat() == CommonConstants.ONE_INT) {
repeatFlag = true;
}
......@@ -1606,29 +1587,6 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
saiList.add(sai);
}
}
// 自有员工以及自有员工应发金额
if (Common.isNotNull(a.getOwnFlag()) && a.getOwnFlag() == 1) {
ownNum++;
ownMoney = ownMoney.add(relaySalary);
}
// 发薪特殊值人数以及应发金额
if (Common.isNotNull(a.getHaveSpecialFlag()) && a.getHaveSpecialFlag() == 1) {
specialNums++;
specialMoney = specialMoney.add(relaySalary);
}
// 薪资员工发放稿酬/劳务费人数以及应发金额
if (Common.isNotNull(a.getHaveSalaryFlag()) && a.getHaveSalaryFlag() == 1) {
salaryNums++;
salaryMoney = salaryMoney.add(relaySalary);
}
// 本月是否重复金额人数以及应发金额
if (Common.isNotNull(a.getIsRepeat()) && a.getIsRepeat() == 1) {
repeatNums++;
repeatMoney = repeatMoney.add(relaySalary);
}
//累计扣税list
asList = this.getLaborAsList(itemMap.get(a.getEmpIdcard()), a.getSettlementMonth());
......@@ -1639,6 +1597,12 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
calculationLabor(saiList, asList
, saiList, a), CommonConstants.ZERO_INT);
// 自有员工以及自有员工应发金额
if (Common.isNotNull(a.getOwnFlag()) && a.getOwnFlag() == 1) {
ownNum++;
ownMoney = ownMoney.add(a.getRelaySalaryUnit());
}
a.setSaiList(saiList);
aList.add(a);
} catch (Exception e) {
......@@ -1659,13 +1623,10 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
salary.setHaveSpecialFlag(CommonConstants.ZERO_INT);
salary.setIsRepeat(CommonConstants.ZERO_INT);
salary.setStatus(SalaryConstants.AUDIT_STATUS[0]);
if (haveSalaryFlag || haveSpecialFlag || ownNum > 0 || repeatFlag) {
if (haveSalaryFlag || ownNum > 0 || repeatFlag) {
if (haveSalaryFlag) {
salary.setHaveSalaryFlag(CommonConstants.ONE_INT);
}
if (haveSpecialFlag) {
salary.setHaveSpecialFlag(CommonConstants.ONE_INT);
}
if (repeatFlag) {
salary.setIsRepeat(CommonConstants.ONE_INT);
}
......
......@@ -264,9 +264,11 @@ public class TSalaryStandardServiceImpl extends ServiceImpl<TSalaryStandardMappe
if (CommonConstants.ZERO_STRING.equals(auditFlag)) {
tSalaryStandard.setStatus(CommonConstants.TWO_INT);
tApprovalRecord.setApprovalResult(CommonConstants.ZERO_STRING);
tApprovalRecord.setNodeId("审核通过");
} else {
tSalaryStandard.setStatus(CommonConstants.FIVE_INT);
tApprovalRecord.setApprovalResult(CommonConstants.ONE_STRING);
tApprovalRecord.setNodeId("审核不通过");
}
if (Common.isNotNull(auditRemark)) {
tSalaryStandard.setAuditRemark(auditRemark);
......@@ -280,7 +282,6 @@ public class TSalaryStandardServiceImpl extends ServiceImpl<TSalaryStandardMappe
tApprovalRecord.setApprovalMan(user.getId());
tApprovalRecord.setApprovalManName(user.getNickname());
tApprovalRecord.setApprovalTime(DateUtil.getCurrentDateTime());
tApprovalRecord.setNodeId("审核");
approvalRecordService.save(tApprovalRecord);
}
return R.ok();
......
......@@ -12,6 +12,7 @@ import com.yifu.cloud.plus.v1.yifu.salary.entity.TSpecialDeducationSum;
import com.yifu.cloud.plus.v1.yifu.salary.mapper.TSpecialDeducationSumMapper;
import com.yifu.cloud.plus.v1.yifu.salary.service.TSpecialDeducationSumService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.ArrayList;
......@@ -99,12 +100,11 @@ public class TSpecialDeducationSumServiceImpl extends ServiceImpl<TSpecialDeduca
}
/**
* @param sdsList
* @Description: 保存专项
* @Author: hgw
* @Date: 2019/10/14 14:48
* @return: com.yifu.cloud.v1.common.core.util.R
* @Author fxj
* @Description 保存专项
* @Date 10:05 2022/8/23
**/
@Transactional
@Override
public R<List<ErrorMessage>> uploadSds(List<TSpecialDeducationSum> sdsList) {
if (Common.isNotNull(sdsList)) {
......@@ -149,7 +149,7 @@ public class TSpecialDeducationSumServiceImpl extends ServiceImpl<TSpecialDeduca
s.setCreateBy(String.valueOf(user.getId()));
}
if (this.saveBatch(sdsList)){
return R.failed(CommonConstants.SAVE_SUCCESS);
return R.ok(null,CommonConstants.SAVE_SUCCESS);
}else {
return R.failed(CommonConstants.SAVE_FAILED);
}
......@@ -163,7 +163,7 @@ public class TSpecialDeducationSumServiceImpl extends ServiceImpl<TSpecialDeduca
int i =0;
for (TSpecialDeducationSum data: sdsList) {
i++;
errorMessage = util1.checkEntity(data, -1);
errorMessage = util1.checkEntity(data, i);
if (Common.isNotNull(errorMessage)) {
errorMessages.add(errorMessage);
}else {
......
......@@ -275,6 +275,7 @@ public class SalaryAccountUtil implements Serializable {
}
}
}
if (errorFlag) {
must = null;
for (Map.Entry<String, Boolean> entry : isMustMap.entrySet()) {
if (Boolean.TRUE.equals(entry.getValue())) {
......@@ -286,32 +287,27 @@ public class SalaryAccountUtil implements Serializable {
}
}
if (Common.isNotNull(must)) {
errorFlag = false;
error = "第" + (i + 2) + "行:" + must + "列_不可缺少";
errorList.add(new ErrorMessage((i + 2), error));
continue;
}
if (annualBonusFlag && Common.isEmpty(entity.getAnnualBonusType())) {
errorFlag = false;
error = "第" + (i + 2) + "行:年终奖有值,【年终奖扣税方式】需填写【单独】/【合并】";
errorList.add(new ErrorMessage((i + 2), error));
continue;
}
if ("3".equals(salaryType) && actualSalarySum == null) {
errorFlag = false;
error = "第" + (i + 2) + "行:【实发劳务费】列_不可缺少";
errorList.add(new ErrorMessage((i + 2), error));
continue;
}
if ("3".equals(salaryType) && Common.isEmpty(entity.getIsPersonTax())) {
errorFlag = false;
error = "第" + (i + 2) + "行:【是否个人承担部分税费】列_不可为空";
errorList.add(new ErrorMessage((i + 2), error));
continue;
}
if ("4".equals(salaryType) && actualSalarySum == null) {
errorFlag = false;
error = "第" + (i + 2) + "行:【稿酬】列_不可缺少";
errorList.add(new ErrorMessage((i + 2), error));
continue;
......@@ -319,7 +315,6 @@ public class SalaryAccountUtil implements Serializable {
// 应发、实发、实发劳务费不可都为空
if (relaySalary == null && actualSalarySum == null) {
errorFlag = false;
error = "第" + (i + 2) + "行:【应发工资】列_不可缺少";
errorList.add(new ErrorMessage((i + 2), error));
continue;
......@@ -345,15 +340,10 @@ public class SalaryAccountUtil implements Serializable {
+ CommonConstants.DOWN_LINE_STRING + salaryType + CommonConstants.DOWN_LINE_STRING + actualSalarySum) != null) {
entity.setIsRepeat(CommonConstants.ONE_INT);
}
if (new BigDecimal("3500").compareTo(actualSalarySum) == CommonConstants.ZERO_INT
|| new BigDecimal("5000").compareTo(actualSalarySum) == CommonConstants.ZERO_INT) {
entity.setHaveSpecialFlag(CommonConstants.ONE_INT);
}
}
if (Common.isNotNull(checkListY) && checkListY.contains(entity.getEmpIdcard())) {
entity.setHaveSalaryFlag(CommonConstants.ONE_INT);
}
if (errorFlag) {
if (Common.isNotNull(entity.getSalaryStyle())) {
salaryStyle = entity.getSalaryStyle();
} else if (configSalary.getGrantType() != null) {
......@@ -426,7 +416,7 @@ public class SalaryAccountUtil implements Serializable {
if (Common.isNotNull(areaStr)) {
newEmp.setBankProvince(Integer.parseInt(areaStr));
} else {
error = "第" + (i + 2) + "行:新员工-开户行省错误:"+ entity.getBankProvince();
error = "第" + (i + 2) + "行:新员工-开户行省错误:" + entity.getBankProvince();
errorList.add(new ErrorMessage((i + 2), error));
continue;
}
......@@ -435,7 +425,7 @@ public class SalaryAccountUtil implements Serializable {
if (Common.isNotNull(areaStr)) {
newEmp.setBankCity(Integer.parseInt(areaStr));
} else {
error = "第" + (i + 2) + "行:新员工-开户行市错误:"+ entity.getBankCity();
error = "第" + (i + 2) + "行:新员工-开户行市错误:" + entity.getBankCity();
errorList.add(new ErrorMessage((i + 2), error));
continue;
}
......@@ -496,7 +486,7 @@ public class SalaryAccountUtil implements Serializable {
}
saveNewEmpReturn = tSalaryEmployeeService.saveNewSalaryEmployee(newEmp);
if (Common.isNotNull(saveNewEmpReturn)) {
error = "第" + (i + 2) + "行:该员工新建失败:【" + saveNewEmpReturn + "】" ;
error = "第" + (i + 2) + "行:该员工新建失败:【" + saveNewEmpReturn + "】";
errorList.add(new ErrorMessage((i + 2), error));
continue;
}
......@@ -504,7 +494,7 @@ public class SalaryAccountUtil implements Serializable {
} else {
if ("3".equals(salaryType) || "4".equals(salaryType)) {
error = "第" + (i + 2) + "行:薪酬人员查询处中,该客户下无此员工,请添加<是否新员工(默认否)>列,并录入身份证号、开户行总行、开户行省、开户行市、银行卡号、手机号码!";
}else {
} else {
error = "第" + (i + 2) + "行:薪酬人员查询处中,该客户下无此员工,请添加<是否新员工(默认否)>列,并录入身份证号、开户行总行、开户行省、开户行市、银行卡号、计税月份、手机号码!";
}
errorList.add(new ErrorMessage((i + 2), error));
......@@ -650,7 +640,7 @@ public class SalaryAccountUtil implements Serializable {
} else {
if ("3".equals(salaryType) || "4".equals(salaryType)) {
error = "第" + (i + 2) + "行:薪酬人员查询处中,该客户下无此员工,请添加<是否新员工(默认否)>列,并录入身份证号、开户行总行、开户行省、开户行市、银行卡号、手机号码!";
}else {
} else {
error = "第" + (i + 2) + "行:薪酬人员查询处中,该客户下无此员工,请添加<是否新员工(默认否)>列,并录入身份证号、开户行总行、开户行省、开户行市、银行卡号、计税月份、手机号码!";
}
errorList.add(new ErrorMessage((i + 2), error));
......
......@@ -54,7 +54,7 @@ public class TDispatchImportVo extends RowIndex implements Serializable {
* 身份证号
*/
@Length(max = 20, message = "身份证号 不能超过20 个字符" )
@ExcelAttribute(name = "身份证号", maxLength = 20)
@ExcelAttribute(name = "身份证号", maxLength = 20, isNotEmpty = true)
@Schema(description = "身份证号" )
@ExcelProperty("身份证号" )
private String empIdcard;
......@@ -148,7 +148,7 @@ public class TDispatchImportVo extends RowIndex implements Serializable {
* 就职岗位
*/
@Length(max = 30, message = "岗位 不能超过30 个字符" )
@ExcelAttribute(name = "岗位", maxLength = 30, isNotEmpty = true)
@ExcelAttribute(name = "岗位", maxLength = 30)
@Schema(description = "岗位" )
@ExcelProperty("岗位" )
private String post;
......@@ -166,7 +166,7 @@ public class TDispatchImportVo extends RowIndex implements Serializable {
* 工时制:1标准工时 2 综合工时 3不定时工时制
*/
@Length(max = 1, message = "工时制 不能超过50 个字符" )
@ExcelAttribute(name = "工时制", maxLength = 50, isDataId = true,dataType = ExcelAttributeConstants.WORKING_HOURS, isNotEmpty = true)
@ExcelAttribute(name = "工时制", maxLength = 50, isDataId = true,dataType = ExcelAttributeConstants.WORKING_HOURS)
@Schema(description = "工时制:1标准工时 2 综合工时 3不定时工时制" )
@ExcelProperty("工时制" )
private String workingHours;
......@@ -174,7 +174,7 @@ public class TDispatchImportVo extends RowIndex implements Serializable {
* 民族
*/
@Length(max = 32, message = "民族 不能超过32 个字符" )
@ExcelAttribute(name = "民族", maxLength = 32, isDataId = true,dataType = ExcelAttributeConstants.EMP_NATIONAL, isNotEmpty = true)
@ExcelAttribute(name = "民族", maxLength = 32, isDataId = true,dataType = ExcelAttributeConstants.EMP_NATIONAL)
@Schema(description = "民族" )
@ExcelProperty("民族" )
private String empNational;
......@@ -239,7 +239,7 @@ public class TDispatchImportVo extends RowIndex implements Serializable {
/**
* 学历名称
*/
@ExcelAttribute(name = "学历")
@ExcelAttribute(name = "学历",isNotEmpty = true)
@NotNull(message = "学历不可为空")
@Schema(description = "学历:派增只做记录" )
@ExcelProperty(value ="学历")
......
......@@ -1930,11 +1930,15 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
if (Common.isEmpty(empVo)){
if (Common.isEmpty(excel.getFileProvince())
|| Common.isEmpty(excel.getFileCity())
|| Common.isEmpty(excel.getIdCardProvince())
|| Common.isEmpty(excel.getIdCardCity())
|| Common.isEmpty(excel.getWorkingHours())
|| Common.isEmpty(excel.getEmpNational())
|| Common.isEmpty(excel.getEmpMobile())
|| Common.isEmpty(excel.getEmpType())
|| Common.isEmpty(excel.getPost())){
|| Common.isEmpty(excel.getPost())
|| Common.isEmpty(excel.getEducationName())
|| Common.isEmpty(excel.getContractName())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_EMP_NOT_EMPTY)));
return true;
}
......@@ -1958,6 +1962,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
return true;
}
}
Date contractDateTemp = excel.getContractStart();
/*项目档案有可用状态的合同:
不对合同做判断,取值:项目档案的合同;
项目档案无可用状态的合同:
......@@ -2093,7 +2098,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
return true;
}
//校验各项基数
if (validSocialBaseInfo(errorMessageList, excel, empVo, socialSet)){
if (validSocialBaseInfo(errorMessageList, excel, empVo, socialSet,contractDateTemp)){
return true;
}
}
......@@ -2139,7 +2144,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
return false;
}
private boolean validSocialBaseInfo(List<ErrorMessage> errorMessageList, TDispatchImportVo excel, DispatchEmpVo empVo, SysBaseSetInfo socialSet) {
private boolean validSocialBaseInfo(List<ErrorMessage> errorMessageList, TDispatchImportVo excel, DispatchEmpVo empVo, SysBaseSetInfo socialSet, Date contractDateTemp) {
if (Common.isNotNull(socialSet) && CommonConstants.ONE_STRING.equals(excel.getPaymentType())
&& (Common.isNotNull(excel.getPensionCardinal())
&& (excel.getPensionCardinal().compareTo(socialSet.getUpperLimit()) > CommonConstants.ZERO_INT
......@@ -2183,13 +2188,13 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_BASE_LIMIT_ERROR)));
return true;
}
flag = (Common.isNotNull(excel.getContractStart())
&& ((!excel.getContractStart().equals(excel.getPensionStart()) && Common.isNotNull(excel.getPensionStart()))
|| (!excel.getContractStart().equals(excel.getMedicalStart()) && Common.isNotNull(excel.getMedicalStart()))
|| (!excel.getContractStart().equals(excel.getUnemployStart()) && Common.isNotNull(excel.getUnemployStart()))
|| (!excel.getContractStart().equals(excel.getBirthStart()) && Common.isNotNull(excel.getBirthStart()))
|| (!excel.getContractStart().equals(excel.getWorkInjuryStart()) && Common.isNotNull(excel.getWorkInjuryStart()))
|| (!excel.getContractStart().equals(excel.getBigailmentStart()) && Common.isNotNull(excel.getBigailmentStart()))));
flag = (Common.isNotNull(contractDateTemp)
&& ((!contractDateTemp.equals(excel.getPensionStart()) && Common.isNotNull(excel.getPensionStart()))
|| (!contractDateTemp.equals(excel.getMedicalStart()) && Common.isNotNull(excel.getMedicalStart()))
|| (!contractDateTemp.equals(excel.getUnemployStart()) && Common.isNotNull(excel.getUnemployStart()))
|| (!contractDateTemp.equals(excel.getBirthStart()) && Common.isNotNull(excel.getBirthStart()))
|| (!contractDateTemp.equals(excel.getWorkInjuryStart()) && Common.isNotNull(excel.getWorkInjuryStart()))
|| (!contractDateTemp.equals(excel.getBigailmentStart()) && Common.isNotNull(excel.getBigailmentStart()))));
if (flag){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_DATE_LIMIT_ERROR2)));
return true;
......
......@@ -48,6 +48,6 @@ spring:
activate:
on-profile: dev
redis:
host: 192.168.1.65
port: 22379
host: 127.0.0.1
port: 6379
password: '@yf_2017'
\ No newline at end of file
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