Commit a1245590 authored by fangxinjiang's avatar fangxinjiang

批量新增导入

parent 957fa46a
package com.yifu.cloud.plus.v1.yifu.archives.vo; package com.yifu.cloud.plus.v1.yifu.archives.vo;
import lombok.Data;
import java.util.List; import java.util.List;
/** /**
...@@ -8,6 +10,7 @@ import java.util.List; ...@@ -8,6 +10,7 @@ import java.util.List;
* @Description 派单新增档案|项目档案|员工合同 * @Description 派单新增档案|项目档案|员工合同
* @Version 1.0 * @Version 1.0
*/ */
@Data
public class DispatchAddVo { public class DispatchAddVo {
/** /**
* 员工档案 * 员工档案
......
...@@ -29,10 +29,10 @@ import com.yifu.cloud.plus.v1.yifu.archives.constants.ArchivesConstants; ...@@ -29,10 +29,10 @@ import com.yifu.cloud.plus.v1.yifu.archives.constants.ArchivesConstants;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpBadRecord; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpBadRecord;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContractAlert; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContractAlert;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeContractInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmpContractAlertMapper; import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmpContractAlertMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeContractInfoMapper; import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeContractInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeInfoMapper; import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeProjectMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpContractAlertService; import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpContractAlertService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo; import com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
...@@ -63,7 +63,7 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM ...@@ -63,7 +63,7 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
private final TEmployeeContractInfoMapper contractInfoMapper; private final TEmployeeContractInfoMapper contractInfoMapper;
private final TEmployeeInfoMapper employeeInfoMapper; private final TEmployeeProjectMapper projectMapper;
@Override @Override
public IPage<TEmpContractAlert> pageDiy(Page page, ContractAlertSearchVo searchVo) { public IPage<TEmpContractAlert> pageDiy(Page page, ContractAlertSearchVo searchVo) {
...@@ -216,6 +216,7 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM ...@@ -216,6 +216,7 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
.lambda().eq(TEmployeeContractInfo::getAuditStatus,CommonConstants.TWO_STRING) .lambda().eq(TEmployeeContractInfo::getAuditStatus,CommonConstants.TWO_STRING)
.isNotNull(TEmployeeContractInfo::getAuditTimeLast) .isNotNull(TEmployeeContractInfo::getAuditTimeLast)
.eq(TEmployeeContractInfo::getContractType,"1") .eq(TEmployeeContractInfo::getContractType,"1")
.eq(TEmployeeContractInfo::getInUse,CommonConstants.ZERO_STRING)
.eq(TEmployeeContractInfo::getWorkFlag,CommonConstants.ZERO_STRING) .eq(TEmployeeContractInfo::getWorkFlag,CommonConstants.ZERO_STRING)
.le(TEmployeeContractInfo::getContractEnd,DateUtil.dateIncreaseByDay( .le(TEmployeeContractInfo::getContractEnd,DateUtil.dateIncreaseByDay(
DateUtil.dateIncreaseByMonth(DateUtil.getCurrentDateTime(), DateUtil.dateIncreaseByMonth(DateUtil.getCurrentDateTime(),
...@@ -254,10 +255,13 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM ...@@ -254,10 +255,13 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
private void extracted(Date nowDate, private void extracted(Date nowDate,
TEmployeeContractInfo contract, TEmployeeContractInfo contract,
Map<String,TEmpContractAlert> alertMap) { Map<String,TEmpContractAlert> alertMap) {
TEmployeeInfo employeeInfo = employeeInfoMapper.selectById(contract.getEmpId()); TEmployeeProject project = projectMapper.selectOne(Wrappers.<TEmployeeProject>query().lambda()
if (Common.isNotNull(employeeInfo) .eq(TEmployeeProject::getEmpId,contract.getEmpId())
&& !CommonConstants.ZERO_STRING.equals(employeeInfo.getEmpNatrue()) .eq(TEmployeeProject::getDeptNo,contract.getDeptNo())
&& !CommonConstants.ONE_STRING.equals(employeeInfo.getEmpNatrue())){ .last(CommonConstants.LAST_ONE_SQL));
if (Common.isNotNull(project)
&& !CommonConstants.ZERO_STRING.equals(project.getEmpNatrue())
&& !CommonConstants.ONE_STRING.equals(project.getEmpNatrue())){
return; return;
} }
TEmpContractAlert alert = alertMap.get(contract.getEmpIdcard()); TEmpContractAlert alert = alertMap.get(contract.getEmpIdcard());
......
...@@ -335,6 +335,12 @@ public interface CommonConstants { ...@@ -335,6 +335,12 @@ public interface CommonConstants {
*/ */
int ONE_INT_NEGATE = -1; int ONE_INT_NEGATE = -1;
/**
* 数字int -1
* @author fxj
*/
String ONE_STRING_NEGATE = "-1";
/** /**
* 数字int -1 * 数字int -1
* @author fxj * @author fxj
......
...@@ -382,4 +382,18 @@ public interface ErrorCodes { ...@@ -382,4 +382,18 @@ public interface ErrorCodes {
* 新增异常:未找到对应项目编码信息 * 新增异常:未找到对应项目编码信息
*/ */
String EMP_DISPATCH_PROJECT_NOT_FOUND = "emp.dispatch.project.not.found"; String EMP_DISPATCH_PROJECT_NOT_FOUND = "emp.dispatch.project.not.found";
/**
* 新增异常:派单新增档案失败,请重试
*/
String EMP_DISPATCH_ADD_EMP_ERROR = "emp.dispatch.add.emp.error";
/**
* 新增异常:派单新增合同失败,请重试
*/
String EMP_DISPATCH_ADD_CONTRACT_ERROR="emp.dispatch.add.contract.error";
/**
* 新增异常:派单新增项目档案失败,请重试
*/
String EMP_DISPATCH_ADD_PROJECT_ERROR="emp.dispatch.add.project.error";
} }
...@@ -6,6 +6,8 @@ import org.apache.commons.lang.StringUtils; ...@@ -6,6 +6,8 @@ import org.apache.commons.lang.StringUtils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.*; import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -345,4 +347,34 @@ public class Common { ...@@ -345,4 +347,34 @@ public class Common {
year = Integer.valueOf(endYear).intValue() - Integer.valueOf(startYear).intValue() ; year = Integer.valueOf(endYear).intValue() - Integer.valueOf(startYear).intValue() ;
return year < 0?0:year; return year < 0?0:year;
} }
/**
* 公积金单边小数点格式化
*
* @param money
* @param type
* @return
* @Author fxj
* @Date 2019-09-26
**/
public static BigDecimal formatMoneyForFund(BigDecimal money, int type) {
DecimalFormat formater = new DecimalFormat("#0.#");
if (type == 1) {//四舍五入取整
return BigDecimal.valueOf(money.doubleValue()).setScale(0, RoundingMode.HALF_UP);
}
if (type == 2) {//元一下全部舍去,取整
return BigDecimal.valueOf(Math.floor(money.doubleValue())).setScale(0, BigDecimal.ROUND_UP);
}
if (type == 3) {//见角进元
return BigDecimal.valueOf(Math.ceil(BigDecimal.valueOf(money.doubleValue()).setScale(1, RoundingMode.HALF_DOWN).doubleValue())).setScale(0, BigDecimal.ROUND_UP);
}
if (type == 4) {//保留两位小数
return BigDecimal.valueOf(money.doubleValue()).setScale(2, RoundingMode.HALF_UP);
}
if (type == 5) {//保留一位小数
return BigDecimal.valueOf(money.doubleValue()).setScale(1, RoundingMode.HALF_UP);
}
return money;
}
} }
...@@ -100,8 +100,8 @@ public class ArchivesDaprUtil { ...@@ -100,8 +100,8 @@ public class ArchivesDaprUtil {
return res; return res;
} }
public R<DispatchAddVo> addDispatchInfo(EmpDispatchAddVo addVo) { public R<EmpDispatchAddVo> addDispatchInfo(EmpDispatchAddVo addVo) {
R<DispatchAddVo> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/temployeeinfo/addDispatchInfo" , JSON.toJSONString(addVo), DispatchAddVo.class, SecurityConstants.FROM_IN); R<EmpDispatchAddVo> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/temployeeinfo/addDispatchInfo" , JSON.toJSONString(addVo), EmpDispatchAddVo.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){ if (Common.isEmpty(res)){
return R.failed("新增档案|项目档案|合同信息失败!"); return R.failed("新增档案|项目档案|合同信息失败!");
} }
......
dapr.upms.appUrl=http://yifu-upms.qas-mvp.svc.cluster.local:3500/v1.0/invoke/ dapr.upms.appUrl=http://localhost:3500/v1.0/invoke/
dapr.upms.appId=yifu-upms dapr.upms.appId=yifu-upms
dapr.upms.appPort=4000
dapr.upms.httpPort=3500
dapr.upms.grpcPort=52000
dapr.upms.metricsPort=9094
#\u6D4B\u8BD5\u73AF\u5883 #\u6D4B\u8BD5\u73AF\u5883
dapr.check.appUrl=http://yifu-check.qas-mvp.svc.cluster.local:3500/v1.0/invoke/ #dapr.check.appUrl=http://yifu-check.qas-mvp.svc.cluster.local:3500/v1.0/invoke/
#\u672C\u5730 #\u672C\u5730
#dapr.check.appUrl=http://localhost:3502/v1.0/invoke/ dapr.check.appUrl=http://localhost:3507/v1.0/invoke/
dapr.check.appId=yifu-check dapr.check.appId=yifu-check
dapr.check.appPort=5022
dapr.check.httpPort=3502
dapr.check.grpcPort=52002 #\u672C\u5730
dapr.check.metricsPort=9092 dapr.archives.appUrl=http://localhost:3508/v1.0/invoke/
\ No newline at end of file dapr.archives.appId=yifu-archives
dapr.social.appUrl=http://localhost:3510/v1.0/invoke/
dapr.social.appId=yifu-social
...@@ -109,38 +109,15 @@ public class TAuditInfo extends BaseEntity { ...@@ -109,38 +109,15 @@ public class TAuditInfo extends BaseEntity {
@Schema(description = "公积金ID" ) @Schema(description = "公积金ID" )
@ExcelProperty("公积金ID" ) @ExcelProperty("公积金ID" )
private String providentId; private String providentId;
/** /**
* 基数变更ID * 身份证
*/
@Length(max = 32, message = "基数变更ID 不能超过32个字符" )
@ExcelAttribute(name = "基数变更ID", maxLength = 32)
@Schema(description = "基数变更ID" )
@ExcelProperty("基数变更ID" )
private String cardinalId;
/**
* 社保代理结算信息ID
*/
@Length(max = 32, message = "社保代理结算信息ID 不能超过32个字符" )
@ExcelAttribute(name = "社保代理结算信息ID", maxLength = 32)
@Schema(description = "社保代理结算信息ID" )
@ExcelProperty("社保代理结算信息ID" )
private String forecastFormId;
/**
* 人员离职派单ID
*/
@Length(max = 32, message = "人员离职派单ID 不能超过32个字符" )
@ExcelAttribute(name = "人员离职派单ID", maxLength = 32)
@Schema(description = "人员离职派单ID" )
@ExcelProperty("人员离职派单ID" )
private String empLeaveId;
/**
* 社保、公积金核准表
*/ */
@Length(max = 32, message = "社保、公积金核准表 不能超过32个字符" ) @ExcelAttribute(name = "身份证", maxLength = 32)
@ExcelAttribute(name = "社保、公积金核准表", maxLength = 32) @Schema(description = "身份证" )
@Schema(description = "社保、公积金核准表" ) @ExcelProperty("身份证" )
@ExcelProperty("社保、公积金核准表" ) private String empIdcard;
private String aprovalFormId;
/** /**
* 派单id * 派单id
*/ */
...@@ -150,13 +127,13 @@ public class TAuditInfo extends BaseEntity { ...@@ -150,13 +127,13 @@ public class TAuditInfo extends BaseEntity {
@ExcelProperty("派单id" ) @ExcelProperty("派单id" )
private String dispatchInfoId; private String dispatchInfoId;
/** /**
* type类型:0:其他;1:社 保办理备注 * type类型:0:其他;1:社保 2.公积金
*/ */
@NotBlank(message = "type类型不能为空" ) @NotBlank(message = "type类型不能为空" )
@Length(max = 1, message = "type类型不能超过1个字符" ) @Length(max = 1, message = "type类型不能超过1个字符" )
@ExcelAttribute(name = "type类型", isNotEmpty = true, errorInfo = "type类型不能为空", maxLength = 1) @ExcelAttribute(name = "type类型", isNotEmpty = true, errorInfo = "type类型不能为空", maxLength = 1)
@Schema(description = "type类型:0:其他;1:社 保办理备注" ) @Schema(description = "ype类型:0:其他;1:社保 2.公积金" )
@ExcelProperty("type类型:0:其他;1:社 保办理备注" ) @ExcelProperty("type类型" )
private String type; private String type;
} }
...@@ -17,9 +17,7 @@ ...@@ -17,9 +17,7 @@
package com.yifu.cloud.plus.v1.yifu.social.entity; package com.yifu.cloud.plus.v1.yifu.social.entity;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute; import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity; import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
...@@ -371,13 +369,7 @@ public class TSocialFundInfo extends BaseEntity { ...@@ -371,13 +369,7 @@ public class TSocialFundInfo extends BaseEntity {
@Schema(description = "个人失业基数" ) @Schema(description = "个人失业基数" )
@ExcelProperty("个人失业基数" ) @ExcelProperty("个人失业基数" )
private BigDecimal personalUnemploymentCardinal; private BigDecimal personalUnemploymentCardinal;
/**
* 单位工伤基数
*/
@ExcelAttribute(name = "单位工伤基数" )
@Schema(description = "单位工伤基数" )
@ExcelProperty("单位工伤基数" )
private BigDecimal personalWorkInjuryCardinal;
/** /**
* 单位养老比例 * 单位养老比例
*/ */
...@@ -462,6 +454,7 @@ public class TSocialFundInfo extends BaseEntity { ...@@ -462,6 +454,7 @@ public class TSocialFundInfo extends BaseEntity {
*/ */
@ExcelAttribute(name = "社保停缴日期", isDate = true) @ExcelAttribute(name = "社保停缴日期", isDate = true)
@Schema(description = "社保停缴日期" ) @Schema(description = "社保停缴日期" )
@TableField(updateStrategy = FieldStrategy.IGNORED)
@ExcelProperty("社保停缴日期" ) @ExcelProperty("社保停缴日期" )
private Date socialReduceDate; private Date socialReduceDate;
/** /**
...@@ -914,18 +907,19 @@ public class TSocialFundInfo extends BaseEntity { ...@@ -914,18 +907,19 @@ public class TSocialFundInfo extends BaseEntity {
*/ */
@ExcelAttribute(name = "公积金停缴日期", isDate = true) @ExcelAttribute(name = "公积金停缴日期", isDate = true)
@Schema(description = "公积金停缴日期" ) @Schema(description = "公积金停缴日期" )
@TableField(updateStrategy = FieldStrategy.IGNORED)
@ExcelProperty("公积金停缴日期" ) @ExcelProperty("公积金停缴日期" )
private Date fundReduceDate; private Date fundReduceDate;
/** /**
* 单位补缴利息 * 单位补缴利息 逻辑不明确-暂无实现
*/ */
@ExcelAttribute(name = "单位补缴利息") @ExcelAttribute(name = "单位补缴利息")
@Schema(description = "单位补缴利息") @Schema(description = "单位补缴利息")
@ExcelProperty("单位补缴利息") @ExcelProperty("单位补缴利息")
private BigDecimal unitInterestFee; private BigDecimal unitInterestFee;
/** /**
* 个人补缴利息 * 个人补缴利息 逻辑不明确-暂无实现
*/ */
@ExcelAttribute(name = "个人补缴利息") @ExcelAttribute(name = "个人补缴利息")
@Schema(description = "个人补缴利息") @Schema(description = "个人补缴利息")
......
...@@ -40,9 +40,7 @@ import com.yifu.cloud.plus.v1.yifu.common.dapr.util.ArchivesDaprUtil; ...@@ -40,9 +40,7 @@ import com.yifu.cloud.plus.v1.yifu.common.dapr.util.ArchivesDaprUtil;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity; import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils; import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.social.entity.*; import com.yifu.cloud.plus.v1.yifu.social.entity.*;
import com.yifu.cloud.plus.v1.yifu.social.mapper.SysBaseSetInfoMapper; import com.yifu.cloud.plus.v1.yifu.social.mapper.*;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TDispatchInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialFundInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.TDispatchInfoService; import com.yifu.cloud.plus.v1.yifu.social.service.TDispatchInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchImportVo; import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchImportVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchInfoSearchVo; import com.yifu.cloud.plus.v1.yifu.social.vo.TDispatchInfoSearchVo;
...@@ -77,6 +75,10 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -77,6 +75,10 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
private final SysBaseSetInfoMapper baseSetMapper; private final SysBaseSetInfoMapper baseSetMapper;
private final TSocialInfoMapper socialMapper;
private final TProvidentFundMapper fundMapper;
/** /**
* 派单信息记录表简单分页查询 * 派单信息记录表简单分页查询
...@@ -260,7 +262,6 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -260,7 +262,6 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
return; return;
} }
// 个性化校验逻辑 // 个性化校验逻辑
ErrorMessage errorMsg;
List<String> idcards = new ArrayList<>(); List<String> idcards = new ArrayList<>();
List<String> codes = new ArrayList<>(); List<String> codes = new ArrayList<>();
...@@ -292,16 +293,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -292,16 +293,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
Map<String,TDispatchInfo> dispatchMap = new HashMap<>(); Map<String,TDispatchInfo> dispatchMap = new HashMap<>();
// 新增社保公积金查询 // 新增社保公积金查询
Map<String,TSocialFundInfo> socialFundAddMap = new HashMap<>(); Map<String,TSocialFundInfo> socialFundAddMap = new HashMap<>();
EmpAddDispatchVo emp;
EmpContractDispatchVo contract;
EmpProjectDispatchVo project;
TSocialFundInfo sf;
DispatchEmpVo empVo = null; DispatchEmpVo empVo = null;
TSocialInfo social;
TProvidentFund fund;
SysBaseSetInfo socialSet; SysBaseSetInfo socialSet;
SysBaseSetInfo fundSet; SysBaseSetInfo fundSet;
TDispatchInfo dispatch;
ProjectSetInfoVo setInfoVo; ProjectSetInfoVo setInfoVo;
TSocialFundInfo socialFund; TSocialFundInfo socialFund;
TDispatchImportVo excel; TDispatchImportVo excel;
...@@ -318,7 +312,6 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -318,7 +312,6 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
continue; continue;
} }
if (Common.isNotNull(excel.getSocialHousehold())){ if (Common.isNotNull(excel.getSocialHousehold())){
if (Common.isEmpty(socialSet)){ if (Common.isEmpty(socialSet)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_HOLD_NOT_EXIST))); errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_HOLD_NOT_EXIST)));
continue; continue;
...@@ -353,22 +346,256 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -353,22 +346,256 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
addVo.setEmpAddsMap(empAddsMap); addVo.setEmpAddsMap(empAddsMap);
addVo.setContractsMap(contractsMap); addVo.setContractsMap(contractsMap);
addVo.setProjectsMap(projectsMap); addVo.setProjectsMap(projectsMap);
R<DispatchAddVo> res = archivesDaprUtil.addDispatchInfo(addVo); R<EmpDispatchAddVo> res = archivesDaprUtil.addDispatchInfo(addVo);
// 开始插入各种数据了
insertAllInfo(excelVOList, errorMessageList, empVoMap, res,socialsMap,fundsMap,socialFundAddMap,dispatchMap);
// 清理map list 等数据
excelVOList.clear();
empAddsMap.clear();
contractsMap.clear();
projectsMap.clear();
empVoMap.clear();
idcards.clear();
codes.clear();
socialholds.clear();
fundholds.clear();
socialsMap.clear();
fundsMap.clear();
dispatchMap.clear();
socialFundAddMap.clear();
socialHoldMap.clear();
fundHoldMap.clear();
}
private void insertAllInfo(List<TDispatchImportVo> excelVOList,
List<ErrorMessage> errorMessageList,
Map<String, DispatchEmpVo> empVoMap,
R<EmpDispatchAddVo> res,
Map<String, TSocialInfo> socialsMap,
Map<String, TProvidentFund> fundsMap,
Map<String, TSocialFundInfo> socialFundAddMap,
Map<String, TDispatchInfo> dispatchMap) {
Map<String, EmpAddDispatchVo> empAddsMap = null;
Map<String, EmpContractDispatchVo> contractsMap = null;
Map<String, EmpProjectDispatchVo> projectsMap = null;
TDispatchImportVo excel;
DispatchEmpVo empVo;
EmpContractDispatchVo contract;
EmpProjectDispatchVo project;
EmpAddDispatchVo emp = null;
TSocialInfo social = null;
TProvidentFund fund = null;
TSocialFundInfo socialFund = null;
TDispatchInfo dispatch = null;
if (Common.isNotNull(res) && Common.isNotNull(res.getData())){
empAddsMap = res.getData().getEmpAddsMap();
contractsMap = res.getData().getContractsMap();
projectsMap = res.getData().getProjectsMap();
}
for (int i = 0; i < excelVOList.size(); i++) { for (int i = 0; i < excelVOList.size(); i++) {
excel = excelVOList.get(i); excel = excelVOList.get(i);
empVo = empVoMap.get(excel.getEmpIdcard()); empVo = empVoMap.get(excel.getEmpIdcard());
// 验证档案是否插入成功 // 验证档案是否插入成功 如果MAP 无数据直接不处理
if (Common.isEmpty(empVo) && Common.isNotNull(empAddsMap)){
emp = empAddsMap.get(excel.getEmpIdcard());
if (Common.isEmpty(emp) || Common.isEmpty(emp.getId())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_ADD_EMP_ERROR)));
continue;
}
}else if (Common.isNotNull(empVo)){
// 验证合同是否插入成功
if (Common.isEmpty(empVo.getContractType()) && Common.isNotNull(contractsMap)){
contract = contractsMap.get(excel.getEmpIdcard()+CommonConstants.DOWN_LINE_STRING+excel.getSettleDomainCode());
if (Common.isEmpty(contract) || Common.isEmpty(contract.getId())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_ADD_CONTRACT_ERROR)));
continue;
}
}
// 验证项目档案是否插入成功
if (Common.isEmpty(empVo.getEmpCode()) && Common.isNotNull(projectsMap)){
project = projectsMap.get(excel.getEmpIdcard()+CommonConstants.DOWN_LINE_STRING+excel.getSettleDomainCode());
if (Common.isEmpty(project) || Common.isEmpty(project.getId())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_ADD_PROJECT_ERROR)));
continue;
}
}
}
try {
// 插入社保信息并封装社保公积金查询信息
if (Common.isNotNull(socialsMap)){
social = socialsMap.get(excel.getEmpIdcard());
insertSocial(emp, social);
}
// 插入公积金信息并封装社保公积金查询信息
if (Common.isNotNull(fundsMap)){
fund = fundsMap.get(excel.getEmpIdcard());
insertFund(emp, fund);
}
// 插入派单信息
if (Common.isNotNull(dispatchMap)){
dispatch = dispatchMap.get(excel.getEmpIdcard());
insertDispatch(emp, dispatch);
}
// 插入或更新社保公积金查询信息 大病在封装社保的时候已经算了 大病技术和金额了
if (Common.isNotNull(socialFundAddMap)){
socialFund = socialFundAddMap.get(excel.getEmpIdcard());
initSocialFundAndInsert(emp, social, fund, socialFund);
}
}catch (Exception e){
log.error("派单新增异常:", e);
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), "派单新增异常:"+e.getMessage()));
continue;
}
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), CommonConstants.SAVE_SUCCESS));
// 清理map list 等数据
empAddsMap.clear();
contractsMap.clear();
projectsMap.clear();
// 验证项目档案是否插入成功 }
}
// 验证合同是否插入成功 private void insertSocial(EmpAddDispatchVo emp, TSocialInfo social) {
if (Common.isNotNull(emp) && Common.isNotNull(social)){
social.setEmpNo(emp.getEmpCode());
social.setEmpId(emp.getEmpIdcard());
socialMapper.insert(social);
}
}
// 插入社保信息并封装社保公积金查询信息 private void insertFund(EmpAddDispatchVo emp, TProvidentFund fund) {
if (Common.isNotNull(emp) && Common.isNotNull(fund)){
fund.setEmpNo(emp.getEmpCode());
fund.setEmpId(emp.getId());
fundMapper.insert(fund);
}
}
// 插入公积金信息并封装社保公积金查询信息 private void insertDispatch(EmpAddDispatchVo emp, TDispatchInfo dispatch) {
if (Common.isNotNull(emp) && Common.isNotNull(dispatch)){
dispatch.setEmpNo(emp.getEmpCode());
dispatch.setEmpId(emp.getId());
baseMapper.insert(dispatch);
}
}
// 插入或更新社保公积金查询信息 private void initSocialFundAndInsert(EmpAddDispatchVo emp, TSocialInfo social, TProvidentFund fund, TSocialFundInfo socialFund) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), CommonConstants.SAVE_SUCCESS)); if (Common.isNotNull(socialFund)){
if (Common.isNotNull(emp)){
socialFund.setEmpNo(emp.getEmpCode());
socialFund.setEmpId(emp.getId());
}
if (Common.isNotNull(social)){
socialFund.setSocialStartDate(social.getSocialStartDate());
socialFund.setSocialAddStatus(CommonConstants.ZERO_STRING);
socialFund.setSocialReduceDate(null);
socialFund.setSocialReduceStatus(CommonConstants.ONE_STRING_NEGATE);
socialFund.setSocialId(social.getId());
if (Common.isEmpty(socialFund.getFirstBuyMonthSocial())){
socialFund.setFirstBuyMonthSocial(social.getSocialStartDate());
}
socialFund.setUnitPensionCardinal(social.getUnitPensionCardinal());
socialFund.setUnitMedicalCardinal(social.getUnitMedicalCardinal());
socialFund.setUnitUnemploymentCardinal(social.getUnitUnemploymentCardinal());
socialFund.setUnitBigailmentCardinal(social.getUnitBigailmentCardinal());
socialFund.setUnitWorkInjuryCardinal(social.getUnitWorkInjuryCardinal());
socialFund.setUnitBirthCardinal(social.getUnitBirthCardinal());
socialFund.setPersonalPensionCardinal(social.getPersonalPensionCardinal());
socialFund.setPersonalMedicalCardinal(social.getPersonalMedicalCardinal());
socialFund.setPersonalBigailmentCardinal(social.getPersonalBigailmentCardinal());
socialFund.setPersonalUnemploymentCardinal(social.getPersonalUnemploymentCardinal());
socialFund.setUnitPensionPer(social.getUnitPensionPer());
socialFund.setUnitMedicalPer(social.getUnitMedicalPer());
socialFund.setUnitUnemploymentPer(social.getUnitUnemploymentPer());
socialFund.setUnitBigailmentPer(social.getUnitBigailmentPer());
socialFund.setUnitWorkUnjuryPer(social.getUnitWorkUnjuryPer());
socialFund.setUnitBirthPer(social.getUnitBirthPer());
socialFund.setPersonalPensionPer(social.getPersonalPensionPer());
socialFund.setPersonalMedicalPer(social.getPersonalMedicalPer());
socialFund.setPersonalUnemploymentPer(social.getPersonalUnemploymentPer());
socialFund.setPersonalBigailmentPer(social.getPersonalBigailmentPer());
socialFund.setCanOverpay(social.getCanOverpay());
socialFund.setOverpayNumber(social.getOverpayNumber());
socialFund.setHaveThisMonth(social.getHaveThisMonth());
socialFund.setInsuranceBigailment(social.getInsuranceBigailment());
socialFund.setInsuranceBirth(social.getInsuranceBirth());
socialFund.setInsuranceInjury(social.getInsuranceInjury());
socialFund.setInsuranceMedical(social.getInsuranceMedical());
socialFund.setInsurancePension(social.getInsurancePension());
socialFund.setInsuranceUnemployment(social.getInsuranceUnemployment());
socialFund.setLatestCardinality(social.getInsuranceIsLatestCardinality());
socialFund.setIsIllness(social.getIsIllness());
socialFund.setCollectType(social.getCollectType());
socialFund.setValueType(social.getValueType());
socialFund.setIsChargePersonal(social.getIsChargePersonal());
socialFund.setRecordBase(social.getRecordBase());
socialFund.setTrustRemark(social.getTrustRemark());
socialFund.setPaymentType(social.getPaymentType());
socialFund.setPensionStart(social.getPensionStart());
socialFund.setMedicalStart(social.getMedicalStart());
socialFund.setUnemployStart(social.getUnemployStart());
socialFund.setWorkInjuryStart(social.getWorkInjuryStart());
socialFund.setBirthStart(social.getBirthStart());
socialFund.setBigailmentStart(social.getBigailmentStart());
socialFund.setPensionHandle(social.getPensionHandle());
socialFund.setMedicalHandle(social.getMedicalHandle());
socialFund.setUnemployHandle(social.getUnemployHandle());
socialFund.setWorkInjuryHandle(social.getWorkInjuryHandle());
socialFund.setBirthHandle(social.getBirthHandle());
socialFund.setBigailmentHandle(social.getBigailmentHandle());
socialFund.setUnitPersionMoney(BigDecimal.ZERO);
socialFund.setUnitMedicalMoney(BigDecimal.ZERO);
socialFund.setUnitUnemploymentMoney(BigDecimal.ZERO);
socialFund.setUnitInjuryMoney(BigDecimal.ZERO);
socialFund.setUnitBirthMoney(BigDecimal.ZERO);
socialFund.setUnitPersionMoney(BigDecimalUtils.safeMultiply(social.getUnitPensionCardinal(), social.getUnitPensionPer(),BigDecimal.valueOf(CommonConstants.ONE_OF_PERCENT.doubleValue())));
socialFund.setUnitMedicalMoney(BigDecimalUtils.safeMultiply(social.getUnitMedicalCardinal(), social.getUnitMedicalPer(),BigDecimal.valueOf(CommonConstants.ONE_OF_PERCENT.doubleValue())));
socialFund.setUnitBirthMoney(BigDecimalUtils.safeMultiply(social.getUnitBirthCardinal(), social.getUnitBirthPer(),BigDecimal.valueOf(CommonConstants.ONE_OF_PERCENT.doubleValue())));
socialFund.setUnitInjuryMoney(BigDecimalUtils.safeMultiply(social.getUnitWorkInjuryCardinal(), social.getUnitWorkUnjuryPer(),BigDecimal.valueOf(CommonConstants.ONE_OF_PERCENT.doubleValue())));
socialFund.setUnitUnemploymentMoney(BigDecimalUtils.safeMultiply(social.getUnitUnemploymentCardinal(), social.getUnitUnemploymentPer(),BigDecimal.valueOf(CommonConstants.ONE_OF_PERCENT.doubleValue())));
socialFund.setPersonalPersionMoney(BigDecimalUtils.safeMultiply(social.getPersonalPensionCardinal(), social.getPersonalPensionPer(),BigDecimal.valueOf(CommonConstants.ONE_OF_PERCENT.doubleValue())));
socialFund.setPersonalMedicalMoney(BigDecimalUtils.safeMultiply(social.getPersonalMedicalCardinal(), social.getPersonalMedicalPer(),BigDecimal.valueOf(CommonConstants.ONE_OF_PERCENT.doubleValue())));
socialFund.setPersonalUnemploymentMoney(BigDecimalUtils.safeMultiply(social.getPersonalUnemploymentCardinal(), social.getPersonalUnemploymentPer(),BigDecimal.valueOf(CommonConstants.ONE_OF_PERCENT.doubleValue())));
socialFund.setUnitSocialSum(BigDecimalUtils.safeAdd(socialFund.getUnitPersionMoney()
, socialFund.getUnitMedicalMoney(), socialFund.getUnitBirthMoney()
, socialFund.getUnitInjuryMoney()
, socialFund.getUnitUnemploymentMoney()
, socialFund.getUnitBigailmentMoney()));
socialFund.setPersonalSocialSum(BigDecimalUtils.safeAdd(socialFund.getPersonalBigailmentMoney()
, socialFund.getPersonalPersionMoney()
, socialFund.getPersonalMedicalMoney()
, socialFund.getPersonalUnemploymentMoney()));
}
if (Common.isNotNull(fund)){
socialFund.setUnitProvidengCardinal(fund.getUnitProvidengCardinal());
socialFund.setUnitProvidentPer(fund.getUnitProvidentPer());
socialFund.setPersonalProvidentCardinal(fund.getPersonalProvidentCardinal());
socialFund.setPersonalProvidentPer(fund.getPersonalProvidentPer());
socialFund.setProvidentStart(fund.getProvidentStart());
socialFund.setFundPayPoint(fund.getFundPayPoint());
socialFund.setPayPolicy(fund.getFundPayPoint());
socialFund.setTrustRemarkFund(fund.getTrustRemark());
socialFund.setCanOverpayFund(fund.getCanOverpay());
socialFund.setOverpayNumberFund(fund.getOverpayNumber());
if (Common.isEmpty(socialFund.getFirstBuyMothFund())){
socialFund.setFirstBuyMothFund(fund.getProvidentStart());
}
socialFund.setHaveThisMonthFund(fund.getHaveThisMonth());
// 设置公积金信息派增 派减状态
socialFund.setLatestCardinalityFund(fund.getInsuranceIsLatestCardinality());
socialFund.setFundReduceDate(null);
socialFund.setFundAddStatus(CommonConstants.ZERO_STRING);
socialFund.setFundReduceStatus(CommonConstants.ONE_STRING_NEGATE);
//单边小数点处理逻辑
if (Common.isNotNull(fund.getFundPayPoint())){
socialFund.setUnitFundSum(Common.formatMoneyForFund(BigDecimalUtils.safeMultiply(fund.getUnitProvidengCardinal(), fund.getUnitProvidentPer(),BigDecimal.valueOf(CommonConstants.ONE_OF_PERCENT.doubleValue())),Integer.valueOf(fund.getFundPayPoint())));
socialFund.setPersonalFundSum(Common.formatMoneyForFund(BigDecimalUtils.safeMultiply(fund.getPersonalProvidentCardinal(), fund.getPersonalProvidentPer(),BigDecimal.valueOf(CommonConstants.ONE_OF_PERCENT.doubleValue())),Integer.valueOf(fund.getFundPayPoint())));
}
}
} }
} }
...@@ -386,6 +613,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -386,6 +613,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
socialFund.setEmpIdcard(empVo.getEmpIdcard()); socialFund.setEmpIdcard(empVo.getEmpIdcard());
socialFund.setEmpId(empVo.getId()); socialFund.setEmpId(empVo.getId());
socialFund.setEmpType(excel.getEmpType()); socialFund.setEmpType(excel.getEmpType());
// 按社保公积金户判断具体封装那些信息,如果社保或公积金新增失败,后面就不会去更新或插入社保公积金查询了
if (Common.isNotNull(setInfoVo)){ if (Common.isNotNull(setInfoVo)){
if (Common.isNotNull(excel.getSocialHousehold())){ if (Common.isNotNull(excel.getSocialHousehold())){
socialFund.setSettleDomain(setInfoVo.getId()); socialFund.setSettleDomain(setInfoVo.getId());
...@@ -399,6 +627,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -399,6 +627,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
socialFund.setSocialProvince(Common.isNotNullToStr(socialSet.getProvince())); socialFund.setSocialProvince(Common.isNotNullToStr(socialSet.getProvince()));
socialFund.setSocialCity(Common.isNotNullToStr(socialSet.getCity())); socialFund.setSocialCity(Common.isNotNullToStr(socialSet.getCity()));
socialFund.setSocialTown(Common.isNotNullToStr(socialSet.getTown())); socialFund.setSocialTown(Common.isNotNullToStr(socialSet.getTown()));
socialFund.setLowerLimit(socialSet.getLowerLimit());
socialFund.setUpperLimit(socialSet.getUpperLimit());
socialFund.setPayPolicy(socialSet.getPayPolicy());
} }
} }
if (Common.isNotNull(excel.getProvidentHousehold())){ if (Common.isNotNull(excel.getProvidentHousehold())){
...@@ -413,11 +644,13 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -413,11 +644,13 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
socialFund.setFundProvince(Common.isNotNullToStr(fundSet.getProvince())); socialFund.setFundProvince(Common.isNotNullToStr(fundSet.getProvince()));
socialFund.setFundCity(Common.isNotNullToStr(fundSet.getCity())); socialFund.setFundCity(Common.isNotNullToStr(fundSet.getCity()));
socialFund.setFundTown(Common.isNotNullToStr(fundSet.getTown())); socialFund.setFundTown(Common.isNotNullToStr(fundSet.getTown()));
socialFund.setLowerLimitFund(fundSet.getLowerLimit());
socialFund.setUpperLimitFund(fundSet.getUpperLimit());
socialFund.setPayPolicyFund(fundSet.getPayPolicy());
} }
} }
} }
//TODO
} }
socialFundAddMap.put(excel.getEmpIdcard(), socialFund); socialFundAddMap.put(excel.getEmpIdcard(), socialFund);
} }
...@@ -692,6 +925,26 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T ...@@ -692,6 +925,26 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
social.setUnitBirthCardinal(socialSet.getUpperLimit()); social.setUnitBirthCardinal(socialSet.getUpperLimit());
} }
} }
boolean flag = CommonConstants.ZERO_STRING.equals(social.getIsIllness()) && (CommonConstants.ZERO_STRING.equals(social.getCollectType())||CommonConstants.ONE_STRING.equals(social.getCollectType()));
if (flag) {
//收取方式按年 且为指定月份时产生数据
if (CommonConstants.ZERO_STRING.equals(social.getCollectType()) && Common.isNotNull(socialSet)) {
//按年收取大病方式按定值
social.setUnitBigailmentMoney(socialSet.getPayCompany());
social.setPersonalBigailmentMoney(socialSet.getPayPersonal());
}else if (CommonConstants.ONE_STRING.equals(social.getCollectType())) {
//收取方式按月
if (CommonConstants.ZERO_STRING.equals(social.getValueType())) {
//收取大病按比例
social.setUnitBigailmentMoney(BigDecimalUtils.safeMultiply(social.getUnitBigailmentCardinal(), social.getUnitBigailmentPer(), BigDecimal.valueOf(CommonConstants.ONE_OF_PERCENT.doubleValue())));
social.setPersonalBigailmentMoney(BigDecimalUtils.safeMultiply(social.getPersonalBigailmentCardinal(), social.getPersonalBigailmentPer(), BigDecimal.valueOf(CommonConstants.ONE_OF_PERCENT.doubleValue())));
} else if (CommonConstants.ONE_STRING.equals(social.getValueType()) && Common.isNotNull(socialSet)) {
//收取大病方式按定值
social.setUnitBigailmentMoney(socialSet.getPayCompany());
social.setPersonalBigailmentMoney(socialSet.getPayPersonal());
}
}
}
socials.put(excel.getEmpIdcard(),social); socials.put(excel.getEmpIdcard(),social);
} }
} }
......
...@@ -32,28 +32,23 @@ ...@@ -32,28 +32,23 @@
<result property="auditTime" column="AUDIT_TIME"/> <result property="auditTime" column="AUDIT_TIME"/>
<result property="isCommision" column="IS_COMMISION"/> <result property="isCommision" column="IS_COMMISION"/>
<result property="providentId" column="PROVIDENT_ID"/> <result property="providentId" column="PROVIDENT_ID"/>
<result property="cardinalId" column="CARDINAL_ID"/>
<result property="forecastFormId" column="FORECAST_FORM_ID"/>
<result property="empLeaveId" column="EMP_LEAVE_ID"/>
<result property="aprovalFormId" column="APROVAL_FORM_ID"/>
<result property="dispatchInfoId" column="DISPATCH_INFO_ID"/> <result property="dispatchInfoId" column="DISPATCH_INFO_ID"/>
<result property="type" column="TYPE"/> <result property="type" column="TYPE"/>
<result property="empIdcard" column="EMP_IDCARD"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
a.ID, a.ID,
a.SOCIAL_ID, a.SOCIAL_ID,
a.AUDIT_STATUS, a.AUDIT_STATUS,
a.AUDIT_REMARK, a.AUDIT_REMARK,
a.AUDIT_USER, a.AUDIT_USER,
a.AUDIT_TIME, a.AUDIT_TIME,
a.IS_COMMISION, a.IS_COMMISION,
a.PROVIDENT_ID, a.PROVIDENT_ID,
a.CARDINAL_ID, a.DISPATCH_INFO_ID,
a.FORECAST_FORM_ID, a.TYPE,
a.EMP_LEAVE_ID, a.EMP_IDCARD
a.APROVAL_FORM_ID,
a.DISPATCH_INFO_ID,
a.TYPE
</sql> </sql>
<sql id="tAuditInfo_where"> <sql id="tAuditInfo_where">
<if test="tAuditInfo != null"> <if test="tAuditInfo != null">
...@@ -81,18 +76,6 @@ ...@@ -81,18 +76,6 @@
<if test="tAuditInfo.providentId != null and tAuditInfo.providentId.trim() != ''"> <if test="tAuditInfo.providentId != null and tAuditInfo.providentId.trim() != ''">
AND a.PROVIDENT_ID = #{tAuditInfo.providentId} AND a.PROVIDENT_ID = #{tAuditInfo.providentId}
</if> </if>
<if test="tAuditInfo.cardinalId != null and tAuditInfo.cardinalId.trim() != ''">
AND a.CARDINAL_ID = #{tAuditInfo.cardinalId}
</if>
<if test="tAuditInfo.forecastFormId != null and tAuditInfo.forecastFormId.trim() != ''">
AND a.FORECAST_FORM_ID = #{tAuditInfo.forecastFormId}
</if>
<if test="tAuditInfo.empLeaveId != null and tAuditInfo.empLeaveId.trim() != ''">
AND a.EMP_LEAVE_ID = #{tAuditInfo.empLeaveId}
</if>
<if test="tAuditInfo.aprovalFormId != null and tAuditInfo.aprovalFormId.trim() != ''">
AND a.APROVAL_FORM_ID = #{tAuditInfo.aprovalFormId}
</if>
<if test="tAuditInfo.dispatchInfoId != null and tAuditInfo.dispatchInfoId.trim() != ''"> <if test="tAuditInfo.dispatchInfoId != null and tAuditInfo.dispatchInfoId.trim() != ''">
AND a.DISPATCH_INFO_ID = #{tAuditInfo.dispatchInfoId} AND a.DISPATCH_INFO_ID = #{tAuditInfo.dispatchInfoId}
</if> </if>
......
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