Commit ecd1888c authored by hongguangwu's avatar hongguangwu

MVP1.5.1-收入证明等

parent 6da783cd
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
......@@ -14,6 +15,7 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
/**
......@@ -53,7 +55,8 @@ public class TProveApply extends Model<TProveApply> {
*/
@ExcelAttribute(name = "申请日期", isNotEmpty = true, errorInfo = "申请日期不能为空")
@Schema(description = "申请日期", name = "creatDate")
private LocalDate creatDate;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date creatDate;
/**
* 开始月
*/
......
......@@ -51,9 +51,9 @@ public class TProveRecord extends Model<TProveRecord> {
* @return
**/
@Schema(description = "员工姓名")
@ExcelAttribute(name = "姓名")
@ExcelAttribute(name = "员工姓名")
@NotBlank(message = "员工姓名不能为空")
@ExcelProperty("姓名")
@ExcelProperty("员工姓名")
private String employeeName;
/**
* 员工身份证号
......@@ -62,10 +62,10 @@ public class TProveRecord extends Model<TProveRecord> {
* @Date 2019-11-07 10:27
* @return
**/
@Schema(description = "员工身份证号")
@NotBlank(message = "员工身份证号不能为空")
@ExcelAttribute(name = "身份证")
@ExcelProperty("身份证")
@Schema(description = "身份证号")
@NotBlank(message = "身份证号不能为空")
@ExcelAttribute(name = "身份证")
@ExcelProperty("身份证")
private String employeeIdCard;
/**
* 结算主体(部门)名称
......@@ -74,23 +74,23 @@ public class TProveRecord extends Model<TProveRecord> {
* @Date 2019-11-07 10:27
* @return
**/
@Schema(description = "结算主体(部门)名称")
@NotBlank(message = "结算主体名称不能为空")
@ExcelAttribute(name = "结算主体")
@ExcelProperty("结算主体")
@Schema(description = "项目名称")
@NotBlank(message = "项目名称不能为空")
@ExcelAttribute(name = "项目名称")
@ExcelProperty("项目名称")
private String employeeSettleDepartName;
/**
*
*/
private String creatUser;
@Schema(description = "申请人名称")
@Schema(description = "开具人")
@ExcelAttribute(name = "开具人")
@ExcelProperty("开具人")
private String creatUserName;
/**
* 创建日期
*/
@Schema(description = "创建日期", name = "creatDate")
@Schema(description = "开具日期", name = "creatDate")
@ExcelAttribute(name = "开具日期")
@ExcelProperty("开具日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
......
......@@ -17,8 +17,8 @@ import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
......@@ -58,7 +58,7 @@ public class TProveApplyServiceImpl extends ServiceImpl<TProveApplyMapper, TProv
proveApply.setId(null);
//初始化数据填充
proveApply.setAuditStatus(CommonConstants.ZERO_STRING);//待审核
proveApply.setCreatDate(LocalDate.now());
proveApply.setCreatDate(new Date());
proveApply.setCreatUser(user.getId());
proveApply.setCreatUserName(user.getNickname());
//保存数据
......
......@@ -31,9 +31,11 @@ import com.yifu.cloud.plus.v1.yifu.common.core.exception.ErrorCodes;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.MsgUtils;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.util.RedisUtil;
import com.yifu.cloud.plus.v1.yifu.social.vo.TPaymentInfoVo;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
......@@ -50,6 +52,8 @@ import static java.lang.Thread.sleep;
@Service
public class TCheckBankNoServiceImpl extends ServiceImpl<TCheckBankNoMapper, TCheckBankNo> implements TCheckBankNoService {
private final RedisUtil redisUtil;
private final TCanCheckService canCheckService;
@Override
......@@ -101,6 +105,9 @@ public class TCheckBankNoServiceImpl extends ServiceImpl<TCheckBankNoMapper, TCh
@Override
public CheckBatchVo checkBankNoBatch(List<TCheckBankNo> list) {
Date dateS = new Date();
final String startS = String.valueOf(dateS.getTime());
CheckBatchVo vo = new CheckBatchVo();
List<String> noList = new ArrayList<>();
for (TCheckBankNo no : list) {
......@@ -119,7 +126,7 @@ public class TCheckBankNoServiceImpl extends ServiceImpl<TCheckBankNoMapper, TCh
}
List<TCheckBankNo> noCurlist = new ArrayList<>();
TCheckBankNo cur;
Map<String, Boolean> bankMap = new HashMap<>();
final Map<String, Boolean> bankMap = new HashMap<>();
for (TCheckBankNo check : list) {
cur = noMap.get(check.getBankNo());
if (cur != null) {
......@@ -136,9 +143,8 @@ public class TCheckBankNoServiceImpl extends ServiceImpl<TCheckBankNoMapper, TCh
noCurlist.add(check);
}
}
List<TCheckBankNo> saveList = new ArrayList<>();
final List<TCheckBankNo> saveList = new ArrayList<>();
if (!noCurlist.isEmpty()) {
synchronized (this) {
boolean canCheck = canCheckService.getCanCheck();
if (noCurlist.size()>=50) {
int l = 4;
......@@ -146,14 +152,14 @@ public class TCheckBankNoServiceImpl extends ServiceImpl<TCheckBankNoMapper, TCh
if ((k+1)==l) {
final List<TCheckBankNo> finalList = noCurlist.subList(k * (noCurlist.size() / l), noCurlist.size());
if (canCheck) {
doThread(bankMap, saveList, finalList);
doThread(bankMap, startS, finalList);
} else {
doNomal(bankMap, saveList, finalList);
}
} else {
final List<TCheckBankNo> finalList = noCurlist.subList(k * (noCurlist.size() / l), (k + 1) * (noCurlist.size() / l));
if (canCheck) {
doThread(bankMap, saveList, finalList);
doThread(bankMap, startS, finalList);
} else {
doNomal(bankMap, saveList, finalList);
}
......@@ -161,13 +167,21 @@ public class TCheckBankNoServiceImpl extends ServiceImpl<TCheckBankNoMapper, TCh
}
} else {
if (canCheck) {
doThread(bankMap, saveList, noCurlist);
doThread(bankMap, startS, noCurlist);
} else {
doNomal(bankMap, saveList, noCurlist);
}
}
while (Thread.activeCount() > 4) {
if (canCheck) {
Date date = new Date();
long start = date.getTime();
int maxTime = (noCurlist.size()*200);
long start2 = date.getTime();
while (Thread.activeCount() > 2 && (start2-start) < maxTime) {
Thread.yield();
date = new Date();
start2 = date.getTime();
}
}
//fo (TCheckBankNo no : noCurlist)
// 原代码
......@@ -184,16 +198,23 @@ public class TCheckBankNoServiceImpl extends ServiceImpl<TCheckBankNoMapper, TCh
this.saveBatch(saveList);
}
}
Map<String, Boolean> bankMapS = (Map<String, Boolean>) redisUtil.get(startS);
if (bankMapS != null && !bankMapS.isEmpty()) {
bankMap.putAll(bankMapS);
}
vo.setCheckMap(bankMap);
return vo;
}
private void doThread(Map<String, Boolean> bankMap, List<TCheckBankNo> saveList, List<TCheckBankNo> finalList) {
private void doThread(Map<String, Boolean> bankMap, String startS,List<TCheckBankNo> finalList) {
new Thread(() -> {
List<TCheckBankNo> saveList = new ArrayList<>();
for (int i = 0; i< finalList.size(); i++) {
final TCheckBankNo no = finalList.get(i);
setBankMap(bankMap, no, saveList);
setBankMap(bankMap, startS, no, saveList);
}
if (!saveList.isEmpty()) {
this.saveBatch(saveList);
}
}).start();
}
......@@ -214,7 +235,7 @@ public class TCheckBankNoServiceImpl extends ServiceImpl<TCheckBankNoMapper, TCh
}
}
public void setBankMap(Map<String, Boolean> bankMap, TCheckBankNo no, List<TCheckBankNo> saveList) {
public void setBankMap(Map<String, Boolean> bankMap, String startS, TCheckBankNo no, List<TCheckBankNo> saveList) {
// 1.调用银行卡信息校验api
R<TCheckBankNo> resR = ChecksUtil.checkBankNoTwoMethod(no.getName(), no.getBankNo());
if (Common.isNotNull(resR) && resR.getCode() == CommonConstants.SUCCESS
......@@ -225,18 +246,25 @@ public class TCheckBankNoServiceImpl extends ServiceImpl<TCheckBankNoMapper, TCh
} else {
bankMap.put(no.getBankNo(), false);
}
Map<String, Boolean> bankMapS = (Map<String, Boolean>) redisUtil.get(startS);
if (bankMapS== null) {
bankMapS = new HashMap<>(bankMap);
}
redisUtil.set(startS, bankMapS, 600L);
}
/*public static void setBankMapByi(Map<Integer, Boolean> bankMap,int i){
bankMap.put(i,true);
}
/*public static void mai(String[] args) {
public static void main(String[] args) {
Map<Integer, Boolean> bankMap = new HashMap<>();
int j=100;
List<Integer> aList = new ArrayList<>();
for (int k=0;k<229;k++) {
for (int k=0;k<50;k++) {
aList.add(k);
}
if (j>=100) {
int l = 4;
for (int k=0;k<l;k++) {
if ((k+1)==l) {
......@@ -257,14 +285,13 @@ public class TCheckBankNoServiceImpl extends ServiceImpl<TCheckBankNoMapper, TCh
}).start();
}
}
} else {
for (int i=0;i<aList.size();i++) {
setBankMapByi(bankMap, aList.get(i));
}
}
while (Thread.activeCount() > 4) {
while (Thread.activeCount() > 2) {
Thread.yield();
}
for (int i : bankMap.keySet()) {
System.out.println(i);
}
}*/
}
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