|
|
@ -277,14 +277,13 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper, |
|
|
|
IPage<ScmVehRebateVo> pagging = baseMapper.selectPageVo(page, qw); |
|
|
|
for (ScmVehRebateVo record : pagging.getRecords()) { |
|
|
|
//上传状态:未上传
|
|
|
|
if (StringUtils.isBlank(record.getUploadDate()) && StringUtils.isBlank(record.getUploadMoney())) { |
|
|
|
if (StringUtils.isBlank(record.getUploadDate())) { |
|
|
|
record.setUploadState("0"); |
|
|
|
} |
|
|
|
//上传状态:已上传
|
|
|
|
if (StringUtils.isNotBlank(record.getUploadDate()) && StringUtils.isNotBlank(record.getUploadMoney())) { |
|
|
|
} else {//上传状态:已上传
|
|
|
|
record.setUploadState("1"); |
|
|
|
} |
|
|
|
//是否调整
|
|
|
|
if (0 == record.getAdjustmentState()){ |
|
|
|
if (new BigDecimal(record.getStayDetermineMoney()).compareTo(BigDecimal.ZERO) == 0) { |
|
|
|
BigDecimal decimal = new BigDecimal(StringUtils.isNotBlank(record.getUploadMoney()) ? record.getUploadMoney() : "0").add(new BigDecimal(StringUtils.isNotBlank(record.getSecondaryUploadMoney()) ? record.getSecondaryUploadMoney() : "0")).subtract(new BigDecimal(StringUtils.isNotBlank(record.getMoney()) ? record.getMoney() : "0")).subtract(new BigDecimal(StringUtils.isNotBlank(record.getStayDetermineMoney()) ? record.getStayDetermineMoney() : "0")).subtract(new BigDecimal(StringUtils.isNotBlank(record.getEstimateRebate()) ? record.getEstimateRebate() : "0")); |
|
|
|
int i = decimal.compareTo(BigDecimal.ZERO); |
|
|
@ -307,10 +306,161 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper, |
|
|
|
record.setAdjustOrNot(false); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
PagerVo<ScmVehRebateVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return p; |
|
|
|
} |
|
|
|
|
|
|
|
public List<OneExcelVo> excelListOne(ScmVehRebateQuery query) { |
|
|
|
QueryWrapper<ScmVehRebate> qw = new QueryWrapper<>(); |
|
|
|
//========================================数据授权开始
|
|
|
|
if (StringUtils.isNotBlank(query.getMenuUrl())) { |
|
|
|
PrivilegeQuery privilegeQuery = new PrivilegeQuery(); |
|
|
|
privilegeQuery.setOrgPath(query.getOrgPath()); |
|
|
|
privilegeQuery.setMenuUrl(query.getMenuUrl()); |
|
|
|
privilegeQuery.setMenuSid(query.getMenuSid()); |
|
|
|
privilegeQuery.setUserSid(query.getUserSid()); |
|
|
|
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); |
|
|
|
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { |
|
|
|
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
|
|
|
|
String orgSidPath = query.getOrgPath(); |
|
|
|
orgSidPath = orgSidPath + "/"; |
|
|
|
int i1 = orgSidPath.indexOf("/"); |
|
|
|
int i2 = orgSidPath.indexOf("/", i1 + 1); |
|
|
|
int i3 = orgSidPath.indexOf("/", i2 + 1); |
|
|
|
int i4 = orgSidPath.indexOf("/", i3 + 1); |
|
|
|
String orgLevelKey = defaultIdReltBean.getData(); |
|
|
|
if ("1".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i1); |
|
|
|
qw.like("orgPath", orgSidPath); |
|
|
|
} else if ("2".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i2); |
|
|
|
qw.like("orgPath", orgSidPath); |
|
|
|
} else if ("3".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i3); |
|
|
|
qw.like("orgPath", orgSidPath); |
|
|
|
} else if ("4".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i4); |
|
|
|
qw.like("orgPath", orgSidPath); |
|
|
|
} else if ("5".equals(orgLevelKey)) { |
|
|
|
qw.eq("createBySid", query.getUserSid()); |
|
|
|
} else { |
|
|
|
List<OneExcelVo> p = new ArrayList<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} else { |
|
|
|
List<OneExcelVo> p = new ArrayList<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getBrandSid())) { |
|
|
|
qw.eq("brandSid", query.getBrandSid()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getVehModelName())) { |
|
|
|
qw.like("vehModelName", query.getVehModelName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getVinNo())) { |
|
|
|
qw.like("vinNo", query.getVinNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getRebateTypeKey())) { |
|
|
|
qw.eq("rebateTypeKey", query.getRebateTypeKey()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getRebateName())) { |
|
|
|
qw.like("rebateName", query.getRebateName()); |
|
|
|
} |
|
|
|
String createStartTime = query.getCreateStartTime(); |
|
|
|
String createEndTime = query.getCreateEndTime(); |
|
|
|
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
qw.eq("adjustmentState", 0); |
|
|
|
qw.ne("state", 0); |
|
|
|
if (StringUtils.isNotBlank(query.getState())) { |
|
|
|
qw.eq("state", query.getState()); |
|
|
|
} |
|
|
|
qw.orderByDesc("createTime"); |
|
|
|
List<OneExcelVo> oneExcelVos = baseMapper.excelListOne(qw); |
|
|
|
for (OneExcelVo oneExcelVo : oneExcelVos) { |
|
|
|
oneExcelVo.setCreateTime(DateUtil.formatDate(DateUtil.parseDate(oneExcelVo.getCreateTime()))); |
|
|
|
} |
|
|
|
return oneExcelVos; |
|
|
|
} |
|
|
|
|
|
|
|
public List<TwoExcelVo> excelListTwo(ScmVehRebateQuery query) { |
|
|
|
QueryWrapper<ScmVehRebate> qw = new QueryWrapper<>(); |
|
|
|
//========================================数据授权开始
|
|
|
|
if (StringUtils.isNotBlank(query.getMenuUrl())) { |
|
|
|
PrivilegeQuery privilegeQuery = new PrivilegeQuery(); |
|
|
|
privilegeQuery.setOrgPath(query.getOrgPath()); |
|
|
|
privilegeQuery.setMenuUrl(query.getMenuUrl()); |
|
|
|
privilegeQuery.setMenuSid(query.getMenuSid()); |
|
|
|
privilegeQuery.setUserSid(query.getUserSid()); |
|
|
|
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); |
|
|
|
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { |
|
|
|
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
|
|
|
|
String orgSidPath = query.getOrgPath(); |
|
|
|
orgSidPath = orgSidPath + "/"; |
|
|
|
int i1 = orgSidPath.indexOf("/"); |
|
|
|
int i2 = orgSidPath.indexOf("/", i1 + 1); |
|
|
|
int i3 = orgSidPath.indexOf("/", i2 + 1); |
|
|
|
int i4 = orgSidPath.indexOf("/", i3 + 1); |
|
|
|
String orgLevelKey = defaultIdReltBean.getData(); |
|
|
|
if ("1".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i1); |
|
|
|
qw.like("orgPath", orgSidPath); |
|
|
|
} else if ("2".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i2); |
|
|
|
qw.like("orgPath", orgSidPath); |
|
|
|
} else if ("3".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i3); |
|
|
|
qw.like("orgPath", orgSidPath); |
|
|
|
} else if ("4".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i4); |
|
|
|
qw.like("orgPath", orgSidPath); |
|
|
|
} else if ("5".equals(orgLevelKey)) { |
|
|
|
qw.eq("createBySid", query.getUserSid()); |
|
|
|
} else { |
|
|
|
List<TwoExcelVo> p = new ArrayList<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} else { |
|
|
|
List<TwoExcelVo> p = new ArrayList<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getBrandSid())) { |
|
|
|
qw.eq("brandSid", query.getBrandSid()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getVehModelName())) { |
|
|
|
qw.like("vehModelName", query.getVehModelName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getVinNo())) { |
|
|
|
qw.like("vinNo", query.getVinNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getRebateTypeKey())) { |
|
|
|
qw.eq("rebateTypeKey", query.getRebateTypeKey()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getRebateName())) { |
|
|
|
qw.like("rebateName", query.getRebateName()); |
|
|
|
} |
|
|
|
String createStartTime = query.getCreateStartTime(); |
|
|
|
String createEndTime = query.getCreateEndTime(); |
|
|
|
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
qw.eq("adjustmentState", 0); |
|
|
|
qw.ne("state", 0); |
|
|
|
if (StringUtils.isNotBlank(query.getState())) { |
|
|
|
qw.eq("state", query.getState()); |
|
|
|
} |
|
|
|
qw.orderByDesc("createTime"); |
|
|
|
List<TwoExcelVo> twoExcelVos = baseMapper.excelListTwo(qw); |
|
|
|
for (TwoExcelVo twoExcelVo : twoExcelVos) { |
|
|
|
twoExcelVo.setCreateTime(DateUtil.formatDate(DateUtil.parseDate(twoExcelVo.getCreateTime()))); |
|
|
|
} |
|
|
|
return twoExcelVos; |
|
|
|
} |
|
|
|
|
|
|
|
public PagerVo<ScmVehRebateVo> checkApplyGetAlreadyUploadVehRebate(PagerQuery<ScmVehRebateQuery> pq) { |
|
|
|
ScmVehRebateQuery query = pq.getParams(); |
|
|
|
QueryWrapper<ScmVehRebate> qw = new QueryWrapper<>(); |
|
|
@ -425,6 +575,7 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper, |
|
|
|
scmVehRebateVehDto.setMoney(dto.getCost()); |
|
|
|
scmVehRebateVehDto.setAdjustmentMoney(dto.getAdjustmentMoney()); |
|
|
|
scmVehRebateVehDto.setIsAdjustment("是"); |
|
|
|
scmVehRebateVehDto.setAdjustmentState(1); |
|
|
|
updateBySid(scmVehRebateVehDto, sid); |
|
|
|
return rb.success().setMsg("调整成功"); |
|
|
|
} |
|
|
@ -614,14 +765,20 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper, |
|
|
|
checkWord.add("车架号不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getVinNo())){ |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getVinNo())) { |
|
|
|
if (excelInfo.getVinNo().length() != 17 && excelInfo.getVinNo().length() != 8) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "填写不正确"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getVinNo())) { |
|
|
|
PagerQuery<BaseVehicleRebateQuery> pq = new PagerQuery<>(); |
|
|
|
BaseVehicleRebateQuery params = new BaseVehicleRebateQuery(); |
|
|
|
params.setVinNo(excelInfo.getVinNo()); |
|
|
|
params.setUserSid(userSid); |
|
|
|
pq.setParams(params); |
|
|
|
PagerVo<BaseVehicleRebateVo> data = baseVehicleFeign.vehicleRebateList(pq).getData(); |
|
|
|
if (data.getRecords().size() == 0){ |
|
|
|
if (data.getRecords().size() == 0) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "不存在"); |
|
|
|
break; |
|
|
|
} |
|
|
@ -656,10 +813,10 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper, |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getPalceGenDate())) { |
|
|
|
String palceGenDate = excelInfo.getPalceGenDate(); |
|
|
|
String[] split = palceGenDate.split("-"); |
|
|
|
if (split.length != 2){ |
|
|
|
if (split.length != 2) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的所属年月填写不正确,格式yyyy-MM"); |
|
|
|
break; |
|
|
|
}else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1])){ |
|
|
|
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1])) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的所属年月填写不正确,格式yyyy-MM"); |
|
|
|
break; |
|
|
|
} |
|
|
@ -735,4 +892,769 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper, |
|
|
|
} |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean getExcelOneInfo(MultipartFile file, HttpServletRequest request, String userSid, String orgPath) throws IOException { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String temp = request.getSession().getServletContext().getRealPath(File.separator) + "temp";// 临时目录
|
|
|
|
File tempFile = new File(temp); |
|
|
|
if (!tempFile.exists()) { |
|
|
|
tempFile.mkdirs(); |
|
|
|
} |
|
|
|
String fileName = file.getOriginalFilename(); |
|
|
|
if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) { |
|
|
|
return rb.fail().setMsg("上传文件不正确"); |
|
|
|
} |
|
|
|
|
|
|
|
int[] resultCell = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; |
|
|
|
boolean isExcel2003 = true; |
|
|
|
if (fileName.matches("^.+\\.(?i)(xlsx)$")) { |
|
|
|
isExcel2003 = false; |
|
|
|
} |
|
|
|
InputStream is = file.getInputStream(); |
|
|
|
Workbook wb = null; |
|
|
|
if (isExcel2003) { |
|
|
|
wb = new HSSFWorkbook(is); |
|
|
|
} else { |
|
|
|
wb = new XSSFWorkbook(is); |
|
|
|
} |
|
|
|
Sheet sheet = wb.getSheetAt(0); |
|
|
|
VehRebateOneExcelInfo importReturn = getSheetValOne(sheet, resultCell, userSid); |
|
|
|
if (StringUtils.isNotBlank(importReturn.getCheckInfo())) { |
|
|
|
return rb.setMsg(importReturn.getCheckInfo()); |
|
|
|
} else { |
|
|
|
List<OneExcelInfo> infos = importReturn.getInfos(); |
|
|
|
for (OneExcelInfo info : infos) { |
|
|
|
ScmVehRebateVo scmVehRebateVo = baseMapper.selectExcelInfo(info.getVinNo(), info.getRebateName(), info.getPalceGenDate()); |
|
|
|
Date javaDate = new Date((long) ((Double.valueOf(info.getUploadDate()) - 25569) * 86400 * 1000)); |
|
|
|
String uploadDate = DateUtil.formatDate(javaDate); |
|
|
|
baseMapper.updateOneExcelInfo(uploadDate, info.getUploadMoney(), info.getStayDetermineMoney(), info.getMoney(), info.getAdjustmentRemarks(), scmVehRebateVo.getSid()); |
|
|
|
} |
|
|
|
return rb.success().setMsg("成功导入数据,请点击确定按钮"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private VehRebateOneExcelInfo getSheetValOne(Sheet sheet, int[] resultCell, String userSid) { |
|
|
|
VehRebateOneExcelInfo importReturn = new VehRebateOneExcelInfo(); |
|
|
|
List<OneExcelInfo> importVoList = new ArrayList<>(); |
|
|
|
Set<String> checkWord = new HashSet<>(); |
|
|
|
for (int r = 1; r <= sheet.getLastRowNum(); r++) { |
|
|
|
Row row = sheet.getRow(r); |
|
|
|
if (row == null) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
OneExcelInfo importVo = new OneExcelInfo(); |
|
|
|
int physicalNumberOfCells = row.getPhysicalNumberOfCells(); |
|
|
|
if (physicalNumberOfCells < 8) { |
|
|
|
physicalNumberOfCells = 8; |
|
|
|
} |
|
|
|
for (int i = 0; i < physicalNumberOfCells; i++) { |
|
|
|
String trim = new String(); |
|
|
|
try { |
|
|
|
trim = getCellVal(row.getCell(i)).toString().trim(); |
|
|
|
if (StringUtils.isBlank(trim)) { |
|
|
|
NullPointerException nullPointerException = new NullPointerException(); |
|
|
|
} |
|
|
|
String temp = getCellVal(row.getCell(i)).toString().trim(); |
|
|
|
for (int j = 0; j < resultCell.length; j++) { |
|
|
|
if (i == resultCell[j]) { |
|
|
|
switch (i) { |
|
|
|
case 0: |
|
|
|
importVo.setVinNo(temp); |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
importVo.setManufactorSettlementPrice(temp); |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
importVo.setFreight(temp); |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
importVo.setCreateTime(temp); |
|
|
|
break; |
|
|
|
case 4: |
|
|
|
importVo.setRebateName(temp); |
|
|
|
break; |
|
|
|
case 5: |
|
|
|
importVo.setRebateTypeValue(temp); |
|
|
|
break; |
|
|
|
case 6: |
|
|
|
importVo.setEstimateRebate(temp); |
|
|
|
break; |
|
|
|
case 7: |
|
|
|
importVo.setPalceGenDate(temp); |
|
|
|
break; |
|
|
|
case 8: |
|
|
|
importVo.setUploadDate(temp); |
|
|
|
break; |
|
|
|
case 9: |
|
|
|
importVo.setUploadMoney(temp); |
|
|
|
break; |
|
|
|
case 10: |
|
|
|
importVo.setStayDetermineMoney(temp); |
|
|
|
break; |
|
|
|
case 11: |
|
|
|
importVo.setMoney(temp); |
|
|
|
break; |
|
|
|
case 12: |
|
|
|
importVo.setAdjustmentRemarks(temp); |
|
|
|
break; |
|
|
|
default: |
|
|
|
break; |
|
|
|
} |
|
|
|
} else { |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
if (StringUtils.isBlank(trim)) { |
|
|
|
String word = new String(); |
|
|
|
switch (i) { |
|
|
|
case 0: |
|
|
|
word = "车架号"; |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
word = "厂家结算价"; |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
word = "其中运费金额"; |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
word = "创建日期"; |
|
|
|
break; |
|
|
|
case 4: |
|
|
|
word = "返利名称"; |
|
|
|
break; |
|
|
|
case 5: |
|
|
|
word = "返利类型"; |
|
|
|
break; |
|
|
|
case 6: |
|
|
|
word = "预提返利"; |
|
|
|
break; |
|
|
|
case 7: |
|
|
|
word = "所属年月"; |
|
|
|
break; |
|
|
|
case 8: |
|
|
|
word = "上传日期"; |
|
|
|
break; |
|
|
|
case 9: |
|
|
|
word = "上传金额"; |
|
|
|
break; |
|
|
|
case 10: |
|
|
|
word = "待确定金额"; |
|
|
|
break; |
|
|
|
case 11: |
|
|
|
word = "费用"; |
|
|
|
break; |
|
|
|
case 12: |
|
|
|
word = "调整说明"; |
|
|
|
break; |
|
|
|
default: |
|
|
|
break; |
|
|
|
} |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
importVoList.add(importVo); |
|
|
|
} |
|
|
|
if (!importVoList.isEmpty()) { |
|
|
|
for (OneExcelInfo excelInfo : importVoList) { |
|
|
|
ScmVehRebateVo scmVehRebateVo = baseMapper.selectExcelInfo(excelInfo.getVinNo(), excelInfo.getRebateName(), excelInfo.getPalceGenDate()); |
|
|
|
if (scmVehRebateVo == null || StringUtils.isBlank(scmVehRebateVo.getSid())) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的返利信息不存在"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (scmVehRebateVo.getAdjustmentState() == 1) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的返利信息已调整"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getVinNo())) { |
|
|
|
checkWord.add("车架号不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getVinNo())) { |
|
|
|
if (excelInfo.getVinNo().length() != 17 && excelInfo.getVinNo().length() != 8) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "填写不正确"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getVinNo())) { |
|
|
|
PagerQuery<BaseVehicleRebateQuery> pq = new PagerQuery<>(); |
|
|
|
BaseVehicleRebateQuery params = new BaseVehicleRebateQuery(); |
|
|
|
params.setVinNo(excelInfo.getVinNo()); |
|
|
|
params.setUserSid(userSid); |
|
|
|
pq.setParams(params); |
|
|
|
PagerVo<BaseVehicleRebateVo> data = baseVehicleFeign.vehicleRebateList(pq).getData(); |
|
|
|
if (data.getRecords().size() == 0) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "不存在"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getManufactorSettlementPrice())) { |
|
|
|
checkWord.add("厂家结算价不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getManufactorSettlementPrice())) { |
|
|
|
String manufactorSettlementPrice = excelInfo.getManufactorSettlementPrice(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(manufactorSettlementPrice).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("厂家结算价必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getFreight())) { |
|
|
|
checkWord.add("其中运费金额不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getFreight())) { |
|
|
|
String freight = excelInfo.getFreight(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(freight).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("其中运费金额必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getCreateTime())) { |
|
|
|
checkWord.add("创建日期不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getCreateTime())) { |
|
|
|
Date javaDate = new Date((long) ((Double.valueOf(excelInfo.getCreateTime()) - 25569) * 86400 * 1000)); |
|
|
|
String createTime = DateUtil.formatDate(javaDate); |
|
|
|
String[] split = createTime.split("-"); |
|
|
|
if (split.length != 3) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的创建日期填写不正确,格式yyyy-MM-dd"); |
|
|
|
break; |
|
|
|
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的创建日期填写不正确,格式yyyy-MM-dd"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getRebateName())) { |
|
|
|
checkWord.add("返利名称不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getRebateTypeValue())) { |
|
|
|
checkWord.add("返利类型不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getRebateTypeValue())) { |
|
|
|
String dictKey = dictCommonFeign.selectByValue(excelInfo.getRebateTypeValue()).getData(); |
|
|
|
if (StringUtils.isBlank(dictKey)) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的返利类型填写不正确"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getEstimateRebate())) { |
|
|
|
checkWord.add("预提返利不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getEstimateRebate())) { |
|
|
|
String estimateRebate = excelInfo.getEstimateRebate(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(estimateRebate).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("预提返利必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getPalceGenDate())) { |
|
|
|
checkWord.add("所属年月不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getPalceGenDate())) { |
|
|
|
String palceGenDate = excelInfo.getPalceGenDate(); |
|
|
|
String[] split = palceGenDate.split("-"); |
|
|
|
if (split.length != 2) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的所属年月填写不正确,格式yyyy-MM"); |
|
|
|
break; |
|
|
|
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1])) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的所属年月填写不正确,格式yyyy-MM"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getUploadDate())) { |
|
|
|
checkWord.add("上传日期不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getUploadDate())) { |
|
|
|
Date javaDate = new Date((long) ((Double.valueOf(excelInfo.getUploadDate()) - 25569) * 86400 * 1000)); |
|
|
|
String uploadDate = DateUtil.formatDate(javaDate); |
|
|
|
String[] split = uploadDate.split("-"); |
|
|
|
if (split.length != 3) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的上传日期填写不正确,格式yyyy-MM-dd"); |
|
|
|
break; |
|
|
|
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的上传日期填写不正确,格式yyyy-MM-dd"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getUploadMoney())) { |
|
|
|
checkWord.add("上传金额不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getUploadMoney())) { |
|
|
|
String uploadMoney = excelInfo.getUploadMoney(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(uploadMoney).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("上传金额必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getStayDetermineMoney())) { |
|
|
|
checkWord.add("待确定金额不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getStayDetermineMoney())) { |
|
|
|
String stayDetermineMoney = excelInfo.getStayDetermineMoney(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(stayDetermineMoney).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("待确定金额必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getMoney())) { |
|
|
|
checkWord.add("费用不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getMoney())) { |
|
|
|
String money = excelInfo.getMoney(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(money).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("费用必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getAdjustmentRemarks())) { |
|
|
|
checkWord.add("调整说明不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
StringBuffer sbcheck1 = new StringBuffer(); |
|
|
|
if (!checkWord.isEmpty()) { |
|
|
|
for (String s : checkWord) { |
|
|
|
if (StringUtils.isBlank(s)) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
sbcheck1.append(s).append(";"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (sbcheck1.length() > 0) { |
|
|
|
sbcheck1.delete(sbcheck1.length() - 1, sbcheck1.length()); |
|
|
|
importReturn.setCheckInfo(sbcheck1.toString()); |
|
|
|
importReturn.setInfos(new ArrayList<>()); |
|
|
|
return importReturn; |
|
|
|
} |
|
|
|
importReturn.setInfos(importVoList); |
|
|
|
return importReturn; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean getExcelTwoInfo(MultipartFile file, HttpServletRequest request, String userSid, String orgPath) throws IOException { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String temp = request.getSession().getServletContext().getRealPath(File.separator) + "temp";// 临时目录
|
|
|
|
File tempFile = new File(temp); |
|
|
|
if (!tempFile.exists()) { |
|
|
|
tempFile.mkdirs(); |
|
|
|
} |
|
|
|
String fileName = file.getOriginalFilename(); |
|
|
|
if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) { |
|
|
|
return rb.fail().setMsg("上传文件不正确"); |
|
|
|
} |
|
|
|
|
|
|
|
int[] resultCell = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; |
|
|
|
boolean isExcel2003 = true; |
|
|
|
if (fileName.matches("^.+\\.(?i)(xlsx)$")) { |
|
|
|
isExcel2003 = false; |
|
|
|
} |
|
|
|
InputStream is = file.getInputStream(); |
|
|
|
Workbook wb = null; |
|
|
|
if (isExcel2003) { |
|
|
|
wb = new HSSFWorkbook(is); |
|
|
|
} else { |
|
|
|
wb = new XSSFWorkbook(is); |
|
|
|
} |
|
|
|
Sheet sheet = wb.getSheetAt(0); |
|
|
|
VehRebateTwoExcelInfo importReturn = getSheetValTwo(sheet, resultCell, userSid); |
|
|
|
if (StringUtils.isNotBlank(importReturn.getCheckInfo())) { |
|
|
|
return rb.setMsg(importReturn.getCheckInfo()); |
|
|
|
} else { |
|
|
|
List<TwoExcelInfo> infos = importReturn.getInfos(); |
|
|
|
for (TwoExcelInfo info : infos) { |
|
|
|
ScmVehRebateVo scmVehRebateVo = baseMapper.selectExcelInfo(info.getVinNo(), info.getRebateName(), info.getPalceGenDate()); |
|
|
|
Date javaDate = new Date((long) ((Double.valueOf(info.getSecondaryUploadDate()) - 25569) * 86400 * 1000)); |
|
|
|
String secondaryUploadDate = DateUtil.formatDate(javaDate); |
|
|
|
baseMapper.updateTwoExcelInfo(secondaryUploadDate, info.getSecondaryUploadMoney(), info.getMoney(), info.getAdjustmentRemarks(), scmVehRebateVo.getSid()); |
|
|
|
} |
|
|
|
return rb.success().setMsg("成功导入数据,请点击确定按钮"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private VehRebateTwoExcelInfo getSheetValTwo(Sheet sheet, int[] resultCell, String userSid) { |
|
|
|
VehRebateTwoExcelInfo importReturn = new VehRebateTwoExcelInfo(); |
|
|
|
List<TwoExcelInfo> importVoList = new ArrayList<>(); |
|
|
|
Set<String> checkWord = new HashSet<>(); |
|
|
|
for (int r = 1; r <= sheet.getLastRowNum(); r++) { |
|
|
|
Row row = sheet.getRow(r); |
|
|
|
if (row == null) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
TwoExcelInfo importVo = new TwoExcelInfo(); |
|
|
|
int physicalNumberOfCells = row.getPhysicalNumberOfCells(); |
|
|
|
if (physicalNumberOfCells < 8) { |
|
|
|
physicalNumberOfCells = 8; |
|
|
|
} |
|
|
|
for (int i = 0; i < physicalNumberOfCells; i++) { |
|
|
|
String trim = new String(); |
|
|
|
try { |
|
|
|
trim = getCellVal(row.getCell(i)).toString().trim(); |
|
|
|
if (StringUtils.isBlank(trim)) { |
|
|
|
NullPointerException nullPointerException = new NullPointerException(); |
|
|
|
} |
|
|
|
String temp = getCellVal(row.getCell(i)).toString().trim(); |
|
|
|
for (int j = 0; j < resultCell.length; j++) { |
|
|
|
if (i == resultCell[j]) { |
|
|
|
switch (i) { |
|
|
|
case 0: |
|
|
|
importVo.setVinNo(temp); |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
importVo.setManufactorSettlementPrice(temp); |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
importVo.setFreight(temp); |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
importVo.setCreateTime(temp); |
|
|
|
break; |
|
|
|
case 4: |
|
|
|
importVo.setRebateName(temp); |
|
|
|
break; |
|
|
|
case 5: |
|
|
|
importVo.setRebateTypeValue(temp); |
|
|
|
break; |
|
|
|
case 6: |
|
|
|
importVo.setEstimateRebate(temp); |
|
|
|
break; |
|
|
|
case 7: |
|
|
|
importVo.setPalceGenDate(temp); |
|
|
|
break; |
|
|
|
case 8: |
|
|
|
importVo.setUploadDate(temp); |
|
|
|
break; |
|
|
|
case 9: |
|
|
|
importVo.setUploadMoney(temp); |
|
|
|
break; |
|
|
|
case 10: |
|
|
|
importVo.setStayDetermineMoney(temp); |
|
|
|
break; |
|
|
|
case 11: |
|
|
|
importVo.setSecondaryUploadDate(temp); |
|
|
|
break; |
|
|
|
case 12: |
|
|
|
importVo.setSecondaryUploadMoney(temp); |
|
|
|
break; |
|
|
|
case 13: |
|
|
|
importVo.setMoney(temp); |
|
|
|
break; |
|
|
|
case 14: |
|
|
|
importVo.setAdjustmentRemarks(temp); |
|
|
|
break; |
|
|
|
default: |
|
|
|
break; |
|
|
|
} |
|
|
|
} else { |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
if (StringUtils.isBlank(trim)) { |
|
|
|
String word = new String(); |
|
|
|
switch (i) { |
|
|
|
case 0: |
|
|
|
word = "车架号"; |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
word = "厂家结算价"; |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
word = "其中运费金额"; |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
word = "创建日期"; |
|
|
|
break; |
|
|
|
case 4: |
|
|
|
word = "返利名称"; |
|
|
|
break; |
|
|
|
case 5: |
|
|
|
word = "返利类型"; |
|
|
|
break; |
|
|
|
case 6: |
|
|
|
word = "预提返利"; |
|
|
|
break; |
|
|
|
case 7: |
|
|
|
word = "所属年月"; |
|
|
|
break; |
|
|
|
case 8: |
|
|
|
word = "上传日期"; |
|
|
|
break; |
|
|
|
case 9: |
|
|
|
word = "上传金额"; |
|
|
|
break; |
|
|
|
case 10: |
|
|
|
word = "待确定金额"; |
|
|
|
break; |
|
|
|
case 11: |
|
|
|
word = "二次上传日期"; |
|
|
|
break; |
|
|
|
case 12: |
|
|
|
word = "二次上传金额"; |
|
|
|
break; |
|
|
|
case 13: |
|
|
|
word = "费用"; |
|
|
|
break; |
|
|
|
case 14: |
|
|
|
word = "调整说明"; |
|
|
|
break; |
|
|
|
default: |
|
|
|
break; |
|
|
|
} |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
importVoList.add(importVo); |
|
|
|
} |
|
|
|
if (!importVoList.isEmpty()) { |
|
|
|
for (TwoExcelInfo excelInfo : importVoList) { |
|
|
|
ScmVehRebateVo scmVehRebateVo = baseMapper.selectExcelInfo(excelInfo.getVinNo(), excelInfo.getRebateName(), excelInfo.getPalceGenDate()); |
|
|
|
if (scmVehRebateVo == null || StringUtils.isBlank(scmVehRebateVo.getSid())) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的返利信息不存在"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (scmVehRebateVo.getAdjustmentState() == 1) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的返利信息已调整"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getVinNo())) { |
|
|
|
checkWord.add("车架号不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getVinNo())) { |
|
|
|
if (excelInfo.getVinNo().length() != 17 && excelInfo.getVinNo().length() != 8) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "填写不正确"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getVinNo())) { |
|
|
|
PagerQuery<BaseVehicleRebateQuery> pq = new PagerQuery<>(); |
|
|
|
BaseVehicleRebateQuery params = new BaseVehicleRebateQuery(); |
|
|
|
params.setVinNo(excelInfo.getVinNo()); |
|
|
|
params.setUserSid(userSid); |
|
|
|
pq.setParams(params); |
|
|
|
PagerVo<BaseVehicleRebateVo> data = baseVehicleFeign.vehicleRebateList(pq).getData(); |
|
|
|
if (data.getRecords().size() == 0) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "不存在"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getManufactorSettlementPrice())) { |
|
|
|
checkWord.add("厂家结算价不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getManufactorSettlementPrice())) { |
|
|
|
String manufactorSettlementPrice = excelInfo.getManufactorSettlementPrice(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(manufactorSettlementPrice).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("厂家结算价必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getFreight())) { |
|
|
|
checkWord.add("其中运费金额不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getFreight())) { |
|
|
|
String freight = excelInfo.getFreight(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(freight).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("其中运费金额必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getCreateTime())) { |
|
|
|
checkWord.add("创建日期不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getCreateTime())) { |
|
|
|
String createTime = excelInfo.getCreateTime(); |
|
|
|
String[] split = createTime.split("-"); |
|
|
|
if (split.length != 3) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的创建日期填写不正确,格式yyyy-MM-dd"); |
|
|
|
break; |
|
|
|
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的创建日期填写不正确,格式yyyy-MM-dd"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getRebateName())) { |
|
|
|
checkWord.add("返利名称不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getRebateTypeValue())) { |
|
|
|
checkWord.add("返利类型不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getRebateTypeValue())) { |
|
|
|
String dictKey = dictCommonFeign.selectByValue(excelInfo.getRebateTypeValue()).getData(); |
|
|
|
if (StringUtils.isBlank(dictKey)) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的返利类型填写不正确"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getEstimateRebate())) { |
|
|
|
checkWord.add("预提返利不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getEstimateRebate())) { |
|
|
|
String estimateRebate = excelInfo.getEstimateRebate(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(estimateRebate).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("预提返利必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getPalceGenDate())) { |
|
|
|
checkWord.add("所属年月不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getPalceGenDate())) { |
|
|
|
String palceGenDate = excelInfo.getPalceGenDate(); |
|
|
|
String[] split = palceGenDate.split("-"); |
|
|
|
if (split.length != 2) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的所属年月填写不正确,格式yyyy-MM"); |
|
|
|
break; |
|
|
|
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1])) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的所属年月填写不正确,格式yyyy-MM"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getUploadDate())) { |
|
|
|
checkWord.add("上传日期不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getUploadDate())) { |
|
|
|
String uploadDate = excelInfo.getUploadDate(); |
|
|
|
String[] split = uploadDate.split("-"); |
|
|
|
if (split.length != 3) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的上传日期填写不正确,格式yyyy-MM-dd"); |
|
|
|
break; |
|
|
|
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的上传日期填写不正确,格式yyyy-MM-dd"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getUploadMoney())) { |
|
|
|
checkWord.add("上传金额不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getUploadMoney())) { |
|
|
|
String uploadMoney = excelInfo.getUploadMoney(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(uploadMoney).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("上传金额必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getStayDetermineMoney())) { |
|
|
|
checkWord.add("待确定金额不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getStayDetermineMoney())) { |
|
|
|
String stayDetermineMoney = excelInfo.getStayDetermineMoney(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(stayDetermineMoney).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("待确定金额必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getUploadDate())) { |
|
|
|
checkWord.add("二次上传日期不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getSecondaryUploadDate())) { |
|
|
|
Date javaDate = new Date((long) ((Double.valueOf(excelInfo.getSecondaryUploadDate()) - 25569) * 86400 * 1000)); |
|
|
|
String secondaryUploadDate = DateUtil.formatDate(javaDate); |
|
|
|
String[] split = secondaryUploadDate.split("-"); |
|
|
|
if (split.length != 3) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的二次上传日期填写不正确,格式yyyy-MM-dd"); |
|
|
|
break; |
|
|
|
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) { |
|
|
|
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的二次上传日期填写不正确,格式yyyy-MM-dd"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getSecondaryUploadMoney())) { |
|
|
|
checkWord.add("二次上传金额不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getSecondaryUploadMoney())) { |
|
|
|
String secondaryUploadMoney = excelInfo.getSecondaryUploadMoney(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(secondaryUploadMoney).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("二次上传金额必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getMoney())) { |
|
|
|
checkWord.add("费用不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getMoney())) { |
|
|
|
String money = excelInfo.getMoney(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(money).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("费用必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getAdjustmentRemarks())) { |
|
|
|
checkWord.add("调整说明不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
StringBuffer sbcheck1 = new StringBuffer(); |
|
|
|
if (!checkWord.isEmpty()) { |
|
|
|
for (String s : checkWord) { |
|
|
|
if (StringUtils.isBlank(s)) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
sbcheck1.append(s).append(";"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (sbcheck1.length() > 0) { |
|
|
|
sbcheck1.delete(sbcheck1.length() - 1, sbcheck1.length()); |
|
|
|
importReturn.setCheckInfo(sbcheck1.toString()); |
|
|
|
importReturn.setInfos(new ArrayList<>()); |
|
|
|
return importReturn; |
|
|
|
} |
|
|
|
importReturn.setInfos(importVoList); |
|
|
|
return importReturn; |
|
|
|
} |
|
|
|
|
|
|
|
public void updateAdjustmentState(Integer adjustmentState, String sid) { |
|
|
|
baseMapper.updateAdjustmentState(adjustmentState,sid); |
|
|
|
} |
|
|
|
} |