Commit 26b38197 authored by fangxinjiang's avatar fangxinjiang

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

parents b1b8143f e46a2223
...@@ -1247,6 +1247,12 @@ public class DateUtil { ...@@ -1247,6 +1247,12 @@ public class DateUtil {
return sdf.format(cal.getTime()); return sdf.format(cal.getTime());
} }
/**
* @Description: 增减(月)
* @Author: hgw
* @Date: 2022/8/3 9:17
* @return: java.util.Date
**/
public static Date addMonthByDate(Date date, int mnt) { public static Date addMonthByDate(Date date, int mnt) {
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
if (date != null) { if (date != null) {
...@@ -1256,6 +1262,21 @@ public class DateUtil { ...@@ -1256,6 +1262,21 @@ public class DateUtil {
return cal.getTime(); return cal.getTime();
} }
/**
* @Description: 增减(日)
* @Author: hgw
* @Date: 2022/8/3 9:17
* @return: java.util.Date
**/
public static Date addDayByDate(Date date, int mnt) {
Calendar cal = Calendar.getInstance();
if (date != null) {
cal.setTime(date);
}
cal.add(Calendar.DATE, mnt);
return cal.getTime();
}
/** /**
* @param mnt 增减日的 值 * @param mnt 增减日的 值
* @Description: 增减日 * @Description: 增减日
......
...@@ -92,6 +92,7 @@ public class InsurancesConstants { ...@@ -92,6 +92,7 @@ public class InsurancesConstants {
* 项目编码不存在 * 项目编码不存在
*/ */
public static final String DEPT_NO_IS_NOT_EXIST = "项目编码不存在"; public static final String DEPT_NO_IS_NOT_EXIST = "项目编码不存在";
/** /**
* 替换员工项目不存在 * 替换员工项目不存在
*/ */
...@@ -477,9 +478,9 @@ public class InsurancesConstants { ...@@ -477,9 +478,9 @@ public class InsurancesConstants {
/** /**
* 替换项目ID和原有项目ID相同 * 替换项目编码和原编码一致
*/ */
public static final String DEPT_NO_IDENTICAL = "替换项目ID和原有项目ID相同"; public static final String DEPT_NO_IDENTICAL = "替换项目编码和原编码一致";
/** /**
* 重复数据 * 重复数据
......
...@@ -119,6 +119,43 @@ public class LocalDateUtil { ...@@ -119,6 +119,43 @@ public class LocalDateUtil {
return flag; return flag;
} }
/**
* 定时任务判断是否过期专用方法
*
* @author licancan
* @param strDate
* @return {@link boolean}
*/
public static boolean isOverdueDate(String strDate){
boolean flag = false;
//在日期字符串非空时执行
if (!Common.isEmpty(strDate)) {
//这里需要把传进来的日期加上23:59:59,来判断是否过期
strDate = strDate + " 23:59:59";
//今日的开始时间
Date nowDate = new Date();
Date pastDate = null;
//格式化日期
SimpleDateFormat sdf = new SimpleDateFormat(NORM_DATETIME_PATTERN, Locale.CHINA);
try {
//将字符串转为日期格式,如果此处字符串为非合法日期就会抛出异常。
pastDate = sdf.parse(strDate);
//调用Date里面的after方法来做判断
flag = pastDate.after(nowDate);
if (flag) {
System.out.println("该日期晚于今日");
}else {
System.out.println("该日期早于今日");
}
} catch (ParseException e) {
e.printStackTrace();
}
}else {
System.out.println("日期参数不可为空");
}
return flag;
}
/** /**
* 比较两个时间的早晚 * 比较两个时间的早晚
* *
...@@ -300,7 +337,6 @@ public class LocalDateUtil { ...@@ -300,7 +337,6 @@ public class LocalDateUtil {
} }
public static void main(String[] args) { public static void main(String[] args) {
boolean hasOverlap = hasOverlap(parseLocalDate("2022-08-03"), parseLocalDate("2022-08-04"), parseLocalDate("2022-08-03"), parseLocalDate("2022-08-04")); System.out.println(isOverdueDate("2022-08-03"));
System.out.println(hasOverlap);
} }
} }
...@@ -29,6 +29,7 @@ import com.yifu.cloud.plus.v1.yifu.insurances.util.BigDecimalUtils; ...@@ -29,6 +29,7 @@ import com.yifu.cloud.plus.v1.yifu.insurances.util.BigDecimalUtils;
import com.yifu.cloud.plus.v1.yifu.insurances.util.LocalDateUtil; import com.yifu.cloud.plus.v1.yifu.insurances.util.LocalDateUtil;
import com.yifu.cloud.plus.v1.yifu.insurances.util.ValidityUtil; import com.yifu.cloud.plus.v1.yifu.insurances.util.ValidityUtil;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.*; import com.yifu.cloud.plus.v1.yifu.insurances.vo.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -52,6 +53,7 @@ import java.util.stream.Collectors; ...@@ -52,6 +53,7 @@ import java.util.stream.Collectors;
* @date 2022-07-18 16:20:16 * @date 2022-07-18 16:20:16
*/ */
@Service @Service
@Slf4j
public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMapper, TInsuranceDetail> implements TInsuranceDetailService { public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMapper, TInsuranceDetail> implements TInsuranceDetailService {
@Resource @Resource
@Lazy @Lazy
...@@ -92,7 +94,25 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -92,7 +94,25 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
*/ */
@Override @Override
public void updateOverdueByTask() { public void updateOverdueByTask() {
//todo // 获取未过期的所有明细数据
List<TInsuranceDetail> list = this.baseMapper.selectList(Wrappers.<TInsuranceDetail>query().lambda()
.eq(TInsuranceDetail::getIsOverdue, CommonConstants.ZERO_INT)
.eq(TInsuranceDetail::getDeleteFlag, CommonConstants.ZERO_INT)
);
if (CollectionUtils.isNotEmpty(list)){
log.info("定时任务扫描到的未过期数据是:{}条",list.size());
list.stream().forEach(e -> {
if (!LocalDateUtil.isOverdueDate(e.getPolicyEnd().toString())){
e.setIsOverdue(CommonConstants.ONE_INT);
e.setUpdateTime(LocalDateTime.now());
}
});
List<TInsuranceDetail> collect = list.stream().filter(e -> e.getIsOverdue() == CommonConstants.ONE_INT).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(collect)){
log.info("定时任务扫描到的已过期数据是:{}条",collect.size());
this.updateBatchById(collect);
}
}
} }
/** /**
...@@ -2734,7 +2754,6 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -2734,7 +2754,6 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
if (!BigDecimalUtils.isNullOrZero(actualPremium)){ if (!BigDecimalUtils.isNullOrZero(actualPremium)){
//变更后为单独结算 //变更后为单独结算
if(CommonConstants.ONE_INT == newSettleType){ if(CommonConstants.ONE_INT == newSettleType){
update(updateWrapper);
//作废旧的数据,生成作废结算信息记录 //作废旧的数据,生成作废结算信息记录
TInsuranceSettleCancel cancel = new TInsuranceSettleCancel(); TInsuranceSettleCancel cancel = new TInsuranceSettleCancel();
cancel.setDeptNo(success.getOldDeptNo()); cancel.setDeptNo(success.getOldDeptNo());
...@@ -2744,6 +2763,11 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -2744,6 +2763,11 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
cancel.setCreateTime(LocalDateTime.now()); cancel.setCreateTime(LocalDateTime.now());
tInsuranceSettleCancelService.save(cancel); tInsuranceSettleCancelService.save(cancel);
//推送EKP // TODO: 2022/8/2 //推送EKP // TODO: 2022/8/2
TInsuranceSettle byId = tInsuranceSettleService.getById(insuranceDetailId);
//如果已经推送过实际保费,则先作废,再推送新的预估保费和实际保费
if (byId.getIsActualPush() ==1){
}
//新增新的结算数据 //新增新的结算数据
TInsuranceSettle newInsuranceSettle = new TInsuranceSettle(); TInsuranceSettle newInsuranceSettle = new TInsuranceSettle();
newInsuranceSettle.setInsDetailId(insuranceDetailId); newInsuranceSettle.setInsDetailId(insuranceDetailId);
...@@ -2889,7 +2913,6 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -2889,7 +2913,6 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
updateWrapper.set(TInsuranceDetail ::getEstimatePremium,new BigDecimal("0.00")); updateWrapper.set(TInsuranceDetail ::getEstimatePremium,new BigDecimal("0.00"));
updateWrapper.set(TInsuranceDetail :: getDefaultSettleId,null); updateWrapper.set(TInsuranceDetail :: getDefaultSettleId,null);
update(updateWrapper); update(updateWrapper);
} }
//变更为合并结算 //变更为合并结算
if (CommonConstants.ZERO_INT == newSettleType){ if (CommonConstants.ZERO_INT == newSettleType){
...@@ -3533,6 +3556,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -3533,6 +3556,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
List<DeptChangeCheckParam> successList = new ArrayList<>(); List<DeptChangeCheckParam> successList = new ArrayList<>();
for (int i =0 ;i< deptChangeCheckList.size();i++) { for (int i =0 ;i< deptChangeCheckList.size();i++) {
DeptChangeCheckParam param = deptChangeCheckList.get(i); DeptChangeCheckParam param = deptChangeCheckList.get(i);
//变更后的项目
String newDeptNo = param.getNewDeptNo(); String newDeptNo = param.getNewDeptNo();
if(StringUtils.isBlank(newDeptNo)){ if(StringUtils.isBlank(newDeptNo)){
param.setErrorMessage(InsurancesConstants.DEPT_NO_CHANGE_NOT_EMPTY); param.setErrorMessage(InsurancesConstants.DEPT_NO_CHANGE_NOT_EMPTY);
...@@ -3553,7 +3577,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -3553,7 +3577,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
errorList.add(param); errorList.add(param);
continue; continue;
} }
//所属项目 //项目
String oldDeptNo = param.getOldDeptNo(); String oldDeptNo = param.getOldDeptNo();
if(StringUtils.isBlank(oldDeptNo)){ if(StringUtils.isBlank(oldDeptNo)){
param.setErrorMessage(InsurancesConstants.DEPT_NO_NOT_EMPTY); param.setErrorMessage(InsurancesConstants.DEPT_NO_NOT_EMPTY);
...@@ -3618,7 +3642,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -3618,7 +3642,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
if (null != setInfoByCodes && setInfoByCodes.getCode() == CommonConstants.SUCCESS) { if (null != setInfoByCodes && setInfoByCodes.getCode() == CommonConstants.SUCCESS) {
Map<String, ProjectSetInfoVo> data = setInfoByCodes.getData().getProjectSetInfoVoMap(); Map<String, ProjectSetInfoVo> data = setInfoByCodes.getData().getProjectSetInfoVoMap();
if (MapUtils.isEmpty(data)){ if (MapUtils.isEmpty(data)){
param.setErrorMessage(InsurancesConstants.DEPT_NO_IS_NOT_EXIST); param.setErrorMessage(InsurancesConstants.DEPT_NO_CHANGE_IS_NOT_EXIST);
errorList.add(param); errorList.add(param);
continue; continue;
}else { }else {
......
...@@ -68,9 +68,9 @@ public class TDispatchInfoExportVo { ...@@ -68,9 +68,9 @@ public class TDispatchInfoExportVo {
@ExcelProperty("社保公积金类型") @ExcelProperty("社保公积金类型")
private String typeSub; private String typeSub;
@ExcelAttribute(name = "单位名称", maxLength = 50) @ExcelAttribute(name = "客户名称", maxLength = 50)
@Schema(description = "单位名称") @Schema(description = "客户名称")
@ExcelProperty("单位名称") @ExcelProperty("客户名称")
private String belongUnitName; private String belongUnitName;
@ExcelAttribute(name = "项目名称", maxLength = 50) @ExcelAttribute(name = "项目名称", maxLength = 50)
...@@ -113,6 +113,36 @@ public class TDispatchInfoExportVo { ...@@ -113,6 +113,36 @@ public class TDispatchInfoExportVo {
@ExcelProperty("社保办理状态") @ExcelProperty("社保办理状态")
private String socialHandleStatus; private String socialHandleStatus;
@ExcelAttribute(name = "养老状态", readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减")
@Schema(description = "养老办理状态:0待办理1办理成功2办理失败3已派减" )
@ExcelProperty("养老状态" )
private String pensionHandle;
@ExcelAttribute(name = "医疗状态", readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减")
@Schema(description = "医疗状态:0待办理1办理成功2办理失败3已派减" )
@ExcelProperty("医疗状态" )
private String medicalHandle;
@ExcelAttribute(name = "失业状态", readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减")
@Schema(description = "失业办理状态:0待办理1办理成功2办理失败3已派减" )
@ExcelProperty("失业状态" )
private String unemployHandle;
@ExcelAttribute(name = "工伤状态", readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减")
@Schema(description = "工伤状态:0待办理1办理成功2办理失败3已派减" )
@ExcelProperty("工伤状态" )
private String workInjuryHandle;
@ExcelAttribute(name = "生育状态", readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减")
@Schema(description = "生育状态:0待办理1办理成功2办理失败3已派减" )
@ExcelProperty("生育状态" )
private String birthHandle;
@ExcelAttribute(name = "大病状态", readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减")
@Schema(description = "大病状态:0待办理1办理成功2办理失败3已派减" )
@ExcelProperty("大病状态" )
private String bigailmentHandle;
@ExcelAttribute(name = "公积金办理状态", readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减") @ExcelAttribute(name = "公积金办理状态", readConverterExp = "0=待办理,1=办理成功,2=办理失败,3=已派减")
@Schema(description = "公积金办理状态:0 待办理 1办理成功 2 办理失败 3 已派减") @Schema(description = "公积金办理状态:0 待办理 1办理成功 2 办理失败 3 已派减")
@ExcelProperty("公积金办理状态") @ExcelProperty("公积金办理状态")
......
...@@ -140,7 +140,7 @@ public class SysBaseSetInfoServiceImpl extends ServiceImpl<SysBaseSetInfoMapper, ...@@ -140,7 +140,7 @@ public class SysBaseSetInfoServiceImpl extends ServiceImpl<SysBaseSetInfoMapper,
// 将上一个无截止月的增加截止月(本次起始月的上一个月) // 将上一个无截止月的增加截止月(本次起始月的上一个月)
if (lastBase != null) { if (lastBase != null) {
lastBase.setApplyEndDate(DateUtil.addMonthByDate(sysBaseSetInfo.getApplyStartDate(), -1)); lastBase.setApplyEndDate(DateUtil.addDayByDate(sysBaseSetInfo.getApplyStartDate(), -1));
this.updateById(lastBase); this.updateById(lastBase);
} }
this.saveOrUpdateBaseAndFundPro(sysBaseSetInfo); this.saveOrUpdateBaseAndFundPro(sysBaseSetInfo);
......
...@@ -117,6 +117,12 @@ ...@@ -117,6 +117,12 @@
<result property="providentHouseholdName" column="PROVIDENT_HOUSEHOLD_NAME"/> <result property="providentHouseholdName" column="PROVIDENT_HOUSEHOLD_NAME"/>
<result property="status" column="STATUS"/> <result property="status" column="STATUS"/>
<result property="socialHandleStatus" column="SOCIAL_HANDLE_STATUS"/> <result property="socialHandleStatus" column="SOCIAL_HANDLE_STATUS"/>
<result property="pensionHandle" column="PENSION_HANDLE"/>
<result property="medicalHandle" column="MEDICAL_HANDLE"/>
<result property="unemployHandle" column="UNEMPLOY_HANDLE"/>
<result property="workInjuryHandle" column="WORK_INJURY_HANDLE"/>
<result property="birthHandle" column="BIRTH_HANDLE"/>
<result property="bigailmentHandle" column="BIGAILMENT_HANDLE"/>
<result property="fundHandleStatus" column="FUND_HANDLE_STATUS"/> <result property="fundHandleStatus" column="FUND_HANDLE_STATUS"/>
<result property="createName" column="CREATE_NAME"/> <result property="createName" column="CREATE_NAME"/>
<result property="organName" column="ORGAN_NAME"/> <result property="organName" column="ORGAN_NAME"/>
...@@ -435,6 +441,12 @@ ...@@ -435,6 +441,12 @@
f.PROVIDENT_HOUSEHOLD_NAME, f.PROVIDENT_HOUSEHOLD_NAME,
a.STATUS, a.STATUS,
a.SOCIAL_HANDLE_STATUS, a.SOCIAL_HANDLE_STATUS,
s.PENSION_HANDLE,
s.MEDICAL_HANDLE,
s.UNEMPLOY_HANDLE,
s.WORK_INJURY_HANDLE,
s.BIGAILMENT_HANDLE,
s.BIGAILMENT_HANDLE,
a.FUND_HANDLE_STATUS, a.FUND_HANDLE_STATUS,
a.CREATE_NAME, a.CREATE_NAME,
a.ORGAN_NAME, a.ORGAN_NAME,
...@@ -447,7 +459,7 @@ ...@@ -447,7 +459,7 @@
<include refid="tDispatchInfo_where"/> <include refid="tDispatchInfo_where"/>
</where> </where>
order by a.CREATE_TIME desc order by a.CREATE_TIME desc
<if test="tSocialFundInfo.limitStart != null"> <if test="tDispatchInfo.limitStart != null">
limit #{tDispatchInfo.limitStart},#{tDispatchInfo.limitEnd} limit #{tDispatchInfo.limitStart},#{tDispatchInfo.limitEnd}
</if> </if>
</select> </select>
......
...@@ -265,9 +265,9 @@ ...@@ -265,9 +265,9 @@
a.EMP_IDCARD, a.EMP_IDCARD,
a.EMP_TYPE, a.EMP_TYPE,
a.SETTLE_DOMAIN, a.SETTLE_DOMAIN,
concat(ifnull(a.SETTLE_DOMAIN_CODE,""),if(a.SETTLE_DOMAIN_CODE is null or a.SETTLE_DOMAIN_CODE_FUND is null,"",","),ifnull(a.SETTLE_DOMAIN_CODE_FUND,"")) SETTLE_DOMAIN_CODE, if(a.SETTLE_DOMAIN_CODE = a.SETTLE_DOMAIN_CODE_FUND,a.SETTLE_DOMAIN_CODE,concat(ifnull(a.SETTLE_DOMAIN_CODE,""),if(a.SETTLE_DOMAIN_CODE is null or a.SETTLE_DOMAIN_CODE_FUND is null,"",","),ifnull(a.SETTLE_DOMAIN_CODE_FUND,""))) SETTLE_DOMAIN_CODE,
concat(ifnull(a.SETTLE_DOMAIN_NAME,""),if(a.SETTLE_DOMAIN_NAME is null or a.SETTLE_DOMAIN_NAME_FUND is null,"",","),ifnull(a.SETTLE_DOMAIN_NAME_FUND,"")) SETTLE_DOMAIN_NAME, if(a.SETTLE_DOMAIN_NAME = a.SETTLE_DOMAIN_NAME_FUND,a.SETTLE_DOMAIN_NAME,concat(ifnull(a.SETTLE_DOMAIN_NAME,""),if(a.SETTLE_DOMAIN_NAME is null or a.SETTLE_DOMAIN_NAME_FUND is null,"",","),ifnull(a.SETTLE_DOMAIN_NAME_FUND,""))) SETTLE_DOMAIN_NAME,
concat(ifnull(a.UNIT_NAME,""),if(a.UNIT_NAME is null or a.UNIT_NAME_FUND is null,"",","),ifnull(a.UNIT_NAME_FUND,"")) UNIT_NAME, if(a.UNIT_NAME = a.UNIT_NAME_FUND,a.UNIT_NAME,concat(ifnull(a.UNIT_NAME,""),if(a.UNIT_NAME is null or a.UNIT_NAME_FUND is null,"",","),ifnull(a.UNIT_NAME_FUND,""))) UNIT_NAME,
a.UNIT_ID, a.UNIT_ID,
a.SETTLE_DOMAIN_FUND, a.SETTLE_DOMAIN_FUND,
a.SETTLE_DOMAIN_CODE_FUND, a.SETTLE_DOMAIN_CODE_FUND,
...@@ -790,9 +790,9 @@ ...@@ -790,9 +790,9 @@
a.EMP_IDCARD, a.EMP_IDCARD,
a.EMP_TYPE, a.EMP_TYPE,
d.EMP_MOBILE, d.EMP_MOBILE,
concat(ifnull(a.SETTLE_DOMAIN_CODE,""),if(a.SETTLE_DOMAIN_CODE is null or a.SETTLE_DOMAIN_CODE_FUND is null,"",","),ifnull(a.SETTLE_DOMAIN_CODE_FUND,"")) SETTLE_DOMAIN_CODE, if(a.SETTLE_DOMAIN_CODE = a.SETTLE_DOMAIN_CODE_FUND,a.SETTLE_DOMAIN_CODE,concat(ifnull(a.SETTLE_DOMAIN_CODE,""),if(a.SETTLE_DOMAIN_CODE is null or a.SETTLE_DOMAIN_CODE_FUND is null,"",","),ifnull(a.SETTLE_DOMAIN_CODE_FUND,""))) SETTLE_DOMAIN_CODE,
concat(ifnull(a.SETTLE_DOMAIN_NAME,""),if(a.SETTLE_DOMAIN_NAME is null or a.SETTLE_DOMAIN_NAME_FUND is null,"",","),ifnull(a.SETTLE_DOMAIN_NAME_FUND,"")) SETTLE_DOMAIN_NAME, if(a.SETTLE_DOMAIN_NAME = a.SETTLE_DOMAIN_NAME_FUND,a.SETTLE_DOMAIN_NAME,concat(ifnull(a.SETTLE_DOMAIN_NAME,""),if(a.SETTLE_DOMAIN_NAME is null or a.SETTLE_DOMAIN_NAME_FUND is null,"",","),ifnull(a.SETTLE_DOMAIN_NAME_FUND,""))) SETTLE_DOMAIN_NAME,
concat(ifnull(a.UNIT_NAME,""),if(a.UNIT_NAME is null or a.UNIT_NAME_FUND is null,"",","),ifnull(a.UNIT_NAME_FUND,"")) UNIT_NAME, if(a.UNIT_NAME = a.UNIT_NAME_FUND,a.UNIT_NAME,concat(ifnull(a.UNIT_NAME,""),if(a.UNIT_NAME is null or a.UNIT_NAME_FUND is null,"",","),ifnull(a.UNIT_NAME_FUND,""))) UNIT_NAME,
d.ID_CARD_PROVINCE, d.ID_CARD_PROVINCE,
d.ID_CARD_CITY, d.ID_CARD_CITY,
d.ID_CARD_TOWN, d.ID_CARD_TOWN,
......
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