From 591d74f5507bf59d5c41393c63aaea75596493af Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Mon, 9 Sep 2024 17:34:56 +0800 Subject: [PATCH] 1 --- .../basevehicle/BaseVehicleRebateQuery.java | 2 + .../biz/basevehicle/BaseVehicleService.java | 4 + .../api/dictcommon/DictCommonFeign.java | 5 + .../dictcommon/DictCommonFeignFallback.java | 5 + .../biz/dictcommon/DictCommonMapper.java | 4 + .../portal/biz/dictcommon/DictCommonRest.java | 7 + .../biz/dictcommon/DictCommonService.java | 4 + .../scmvehrebate/ScmVehRebateExcelInfo.java | 23 ++ .../api/scmvehrebate/ScmVehRebateFeign.java | 18 +- .../ScmVehRebateFeignFallback.java | 14 + .../api/scmvehrebate/VehRebateExcelInfo.java | 12 + .../biz/scmvehrebate/ScmVehRebateRest.java | 14 + .../biz/scmvehrebate/ScmVehRebateService.java | 343 +++++++++++++++++- .../resources/static/单车返利管理.xls | Bin 18432 -> 17920 bytes 14 files changed, 445 insertions(+), 10 deletions(-) create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateExcelInfo.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/VehRebateExcelInfo.java diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleRebateQuery.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleRebateQuery.java index 90f9da8163..32430cf41f 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleRebateQuery.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleRebateQuery.java @@ -16,6 +16,8 @@ import java.util.List; public class BaseVehicleRebateQuery implements Query { private static final long serialVersionUID = 10773711417444473L; + @ApiModelProperty(value = "车架号") + private String vinNo; @ApiModelProperty(value = "品牌") private String brandSid; @ApiModelProperty(value = "功能") diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java index 172fbbe1e9..a18ec6d1ac 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java @@ -3366,6 +3366,10 @@ public class BaseVehicleService extends MybatisBaseService> getTypeValueList(@RequestParam("type")String type,@RequestParam("groupNum")String groupNum); + + @GetMapping("/selectByValue") + @ResponseBody + @ApiOperation("根据数据字典value查询key") + ResultBean selectByValue(@RequestParam("dictValue") String dictValue); } diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/dictcommon/DictCommonFeignFallback.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/dictcommon/DictCommonFeignFallback.java index 5074bab764..3091616d72 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/dictcommon/DictCommonFeignFallback.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/dictcommon/DictCommonFeignFallback.java @@ -54,4 +54,9 @@ public class DictCommonFeignFallback implements DictCommonFeign { public ResultBean> getTypeValueList(String type, String groupNum) { return null; } + + @Override + public ResultBean selectByValue(String dictValue) { + return null; + } } diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/dictcommon/DictCommonMapper.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/dictcommon/DictCommonMapper.java index b8d386c26d..c0c7a0fe74 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/dictcommon/DictCommonMapper.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/dictcommon/DictCommonMapper.java @@ -10,6 +10,7 @@ import com.yxt.anrui.portal.api.dictcommon.DictCommonQuery; import com.yxt.anrui.portal.api.dictcommon.DictCommonVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -60,4 +61,7 @@ public interface DictCommonMapper extends BaseMapper { * @return */ List getList(@Param("type") String type, @Param("groupNum") String groupNum); + + @Select("select dictKey from dict_common where dictValue = #{dictValue} and dictType = 'rebateType'") + String selectByValue(String dictValue); } diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/dictcommon/DictCommonRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/dictcommon/DictCommonRest.java index cfb90e5e6f..0cea0a270d 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/dictcommon/DictCommonRest.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/dictcommon/DictCommonRest.java @@ -143,4 +143,11 @@ public class DictCommonRest implements DictCommonFeign { public ResultBean> getTypeValueList(String type, String groupNum) { return dictCommonService.getList(type,groupNum); } + + @Override + public ResultBean selectByValue(String dictValue) { + ResultBean rb = ResultBean.fireFail(); + String dictKey = dictCommonService.selectByValue(dictValue); + return rb.success().setData(dictKey); + } } diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/dictcommon/DictCommonService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/dictcommon/DictCommonService.java index e977d081fd..c5babfdb50 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/dictcommon/DictCommonService.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/dictcommon/DictCommonService.java @@ -78,4 +78,8 @@ public class DictCommonService extends MybatisBaseService list = baseMapper.getList(type,groupNum); return rb.success().setData(list); } + + public String selectByValue(String dictValue) { + return baseMapper.selectByValue(dictValue); + } } diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateExcelInfo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateExcelInfo.java new file mode 100644 index 0000000000..9d558f8e36 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateExcelInfo.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.scm.api.scmvehrebate; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class ScmVehRebateExcelInfo { + + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("返利类型") + private String rebateTypeValue; + @ApiModelProperty("返利名称") + private String rebateName; + @ApiModelProperty("计算标准") + private String calculationStandard; + @ApiModelProperty("返利金额") + private String estimateRebate; + @ApiModelProperty("所属年月") + private String palceGenDate; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java index c4130643c9..6f06fd290d 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java @@ -34,7 +34,11 @@ import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.text.ParseException; import java.util.List; /** @@ -92,15 +96,25 @@ public interface ScmVehRebateFeign { @PostMapping("/adjustment") @ResponseBody public ResultBean adjustment(@RequestBody ScmVehRebateVehAdjDto dto); - + @ApiOperation("根据sid删除记录") @DeleteMapping("/delBySids") @ResponseBody public ResultBean delBySids(@RequestBody String[] sids); - + @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchDetailsBySid/{sid}") @ResponseBody public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid); + @PostMapping("/download") + @ApiOperation(value = "下载模板") + @ResponseBody + public void downloadExcel(); + + @ApiOperation(value = "导入") + @PostMapping("/getExcelInfo") + @ResponseBody + public ResultBean getExcelInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request,@RequestParam("userSid") String userSid,@RequestParam("orgPath") String orgPath) throws IOException, ParseException; + } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeignFallback.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeignFallback.java index e7a23733be..d43e076c42 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeignFallback.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeignFallback.java @@ -29,7 +29,11 @@ import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.text.ParseException; import java.util.List; /** @@ -94,4 +98,14 @@ public class ScmVehRebateFeignFallback implements ScmVehRebateFeign { ResultBean rb = ResultBean.fireFail(); return rb.setMsg("接口anrui-scm/scmvehrebate/fetchDetailsBySid无法访问"); } + + @Override + public void downloadExcel() { + + } + + @Override + public ResultBean getExcelInfo(MultipartFile file, HttpServletRequest request, String userSid, String orgPath) throws IOException, ParseException { + return null; + } } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/VehRebateExcelInfo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/VehRebateExcelInfo.java new file mode 100644 index 0000000000..0dd501fce7 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/VehRebateExcelInfo.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.scm.api.scmvehrebate; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class VehRebateExcelInfo { + private String checkInfo; + private List infos = new ArrayList<>(); +} \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java index d6bd907d6f..8a206913b6 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java @@ -34,7 +34,11 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.text.ParseException; import java.util.List; /** @@ -139,4 +143,14 @@ public class ScmVehRebateRest implements ScmVehRebateFeign { ScmVehRebateDetailsVo vo = scmVehRebateService.fetchDetailsVoBySid(sid); return rb.success().setData(vo); } + + @Override + public void downloadExcel() { + scmVehRebateService.downloadExcel(); + } + + @Override + public ResultBean getExcelInfo(MultipartFile file, HttpServletRequest request,String userSid, String orgPath) throws IOException, ParseException { + return scmVehRebateService.getExcelInfo(file,request,userSid,orgPath); + } } diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java index 6ddc30c770..b75e9a689b 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java @@ -30,6 +30,10 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; +import com.yxt.anrui.base.api.basevehicle.BaseVehicleRebateQuery; +import com.yxt.anrui.base.api.basevehicle.BaseVehicleRebateVo; +import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; @@ -44,12 +48,26 @@ import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.math.BigDecimal; -import java.util.Date; -import java.util.List; +import java.net.URLEncoder; +import java.util.*; +import java.util.regex.Pattern; /** * Project: anrui-scm(单车返利)
@@ -73,6 +91,12 @@ public class ScmVehRebateService extends MybatisBaseService listPageVo(PagerQuery pq) { ScmVehRebateQuery query = pq.getParams(); @@ -150,7 +174,7 @@ public class ScmVehRebateService extends MybatisBaseService withApplyGetVehRebate(PagerQuery pq) { ScmVehRebateQuery query = pq.getParams(); QueryWrapper qw = new QueryWrapper<>(); - qw.eq("createOrgSid",query.getCreateOrgSid()); + qw.eq("createOrgSid", query.getCreateOrgSid()); if (StringUtils.isNotBlank(query.getBrandSid())) { qw.eq("brandSid", query.getBrandSid()); } @@ -261,23 +285,23 @@ public class ScmVehRebateService extends MybatisBaseService infos = importReturn.getInfos(); + for (ScmVehRebateExcelInfo info : infos) { + PagerQuery pq = new PagerQuery<>(); + BaseVehicleRebateQuery params = new BaseVehicleRebateQuery(); + params.setVinNo(info.getVinNo()); + params.setUserSid(userSid); + pq.setParams(params); + PagerVo data = baseVehicleFeign.vehicleRebateList(pq).getData(); + BaseVehicleRebateVo baseVehicleRebateVo = data.getRecords().get(0); + ScmVehRebate scmVehRebate = new ScmVehRebate(); + scmVehRebate.setState(0); + scmVehRebate.setCreateBySid(userSid); + scmVehRebate.setBrandSid(baseVehicleRebateVo.getCarBrand()); + scmVehRebate.setBrandName(baseVehicleRebateVo.getBrandName()); + scmVehRebate.setVehModelSid(baseVehicleRebateVo.getModelSid()); + scmVehRebate.setVehModelName(baseVehicleRebateVo.getVehicleAlias()); + scmVehRebate.setVehSid(baseVehicleRebateVo.getSid()); + scmVehRebate.setVinNo(baseVehicleRebateVo.getVinNo()); + scmVehRebate.setManufactorSettlementPrice(baseVehicleRebateVo.getCostPrice()); + scmVehRebate.setFreight(baseVehicleRebateVo.getFreight()); + String dictKey = dictCommonFeign.selectByValue(info.getRebateTypeValue()).getData(); + scmVehRebate.setRebateTypeKey(dictKey); + scmVehRebate.setRebateTypeValue(info.getRebateTypeValue()); + scmVehRebate.setRebateName(info.getRebateName()); + scmVehRebate.setCalculationStandard(info.getCalculationStandard()); + scmVehRebate.setEstimateRebate(info.getEstimateRebate()); + scmVehRebate.setPalceGenDate(info.getPalceGenDate()); + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData(); + SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + scmVehRebate.setCreateOrgSid(useOrgSid); + scmVehRebate.setCreateOrgName(sysOrganizationVo.getName()); + scmVehRebate.setUseOrgSid(useOrgSid); + scmVehRebate.setUseOrgName(sysOrganizationVo.getName()); + scmVehRebate.setOrgPath(orgPath); + save(scmVehRebate); + } + return rb.success().setMsg("成功导入数据,请点击确定按钮"); + } + } + + private VehRebateExcelInfo getSheetVal(Sheet sheet, int[] resultCell, String userSid) { + VehRebateExcelInfo importReturn = new VehRebateExcelInfo(); + List importVoList = new ArrayList<>(); + Set checkWord = new HashSet<>(); + for (int r = 1; r <= sheet.getLastRowNum(); r++) { + Row row = sheet.getRow(r); + if (row == null) { + continue; + } + ScmVehRebateExcelInfo importVo = new ScmVehRebateExcelInfo(); + 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.setRebateTypeValue(temp); + break; + case 2: + importVo.setRebateName(temp); + break; + case 3: + importVo.setCalculationStandard(temp); + break; + case 4: + importVo.setEstimateRebate(temp); + break; + case 5: + importVo.setPalceGenDate(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; + default: + break; + } + continue; + } + } + } + importVoList.add(importVo); + } + if (!importVoList.isEmpty()) { + for (ScmVehRebateExcelInfo excelInfo : importVoList) { + if (StringUtils.isBlank(excelInfo.getVinNo())) { + checkWord.add("车架号不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getVinNo())){ + PagerQuery pq = new PagerQuery<>(); + BaseVehicleRebateQuery params = new BaseVehicleRebateQuery(); + params.setVinNo(excelInfo.getVinNo()); + params.setUserSid(userSid); + pq.setParams(params); + PagerVo data = baseVehicleFeign.vehicleRebateList(pq).getData(); + if (data.getRecords().size() == 0){ + checkWord.add("车架号" + excelInfo.getVinNo() + "不存在"); + 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.getRebateName())) { + checkWord.add("返利名称不能为空"); + break; + } + if (StringUtils.isBlank(excelInfo.getCalculationStandard())) { + checkWord.add("计算标准不能为空"); + break; + } + if (StringUtils.isBlank(excelInfo.getEstimateRebate())) { + 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; + } + } + } + } + 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 Object getCellVal(Cell cell) { + Object obj = null; + if (cell != null) { + switch (cell.getCellTypeEnum()) { + case BOOLEAN: + obj = cell.getBooleanCellValue(); + break; + case ERROR: + obj = cell.getErrorCellValue(); + break; + case NUMERIC: + obj = cell.getNumericCellValue(); + break; + case STRING: + obj = cell.getStringCellValue(); + break; + default: + break; + } + } + return obj; + } + + public boolean isFourDigitNumber(String input) { + // 判断输入是否为数字 + try { + int number = Integer.parseInt(input); + } catch (NumberFormatException e) { + return false; + } + // 判断输入是否为四位数 + if (input.length() != 4) { + return false; + } + return true; + } + + public boolean isTwoDigitNumber(String input) { + // 判断输入是否为数字 + try { + int number = Integer.parseInt(input); + } catch (NumberFormatException e) { + return false; + } + // 判断输入是否为二位数 + if (input.length() != 2) { + return false; + } + return true; + } } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/resources/static/单车返利管理.xls b/anrui-scm/anrui-scm-biz/src/main/resources/static/单车返利管理.xls index 2788ba882b23f6656b08b1fa4249d62bec0e540c..b0bd2bd2ca54b9c7337f2e72524af175777347a6 100644 GIT binary patch delta 257 zcmZpez}V2kIKhTdcBAcaMn;9ntW4Rw|Nj5~55n>c3=E2!8=2}ECnm5=V#(o5VA44{ zmFYI4+~iW0W~R-ilYg<)F?wyTWG!Xi%+71VHaS>WWOBW*5SufDU+kW!&C`V!sxnTT zY-u@_(SGuIOJhd&$;?(iSy>sT$~jIJw03rP0@}d9@RxxLNHQ`w0Wpln1mrQndCWi_ zGn~f)!M9|VodCEOhVH;XFG3}br52jZ13ba UxxncQYr~AiN2YGhbe_%v0Iz;SNB{r; delta 327 zcmZqZVQiSdIKhTdZlmpSMn=WStW4R0vJ4Ci|Nj5~55fvSw$kQWrh3LnEIFJ4vQLuw zm~J!5PcCI?X5ulM{EMZIF=}%qYbm>g9E&K!1_llW#!3bVjA77a$Ysdg{FcX*jhT&M z!(?7zP4)*2A`GlRwyLl)n=1p8%&m&ee!>e?8E;MgU@?`kV{)6NG2?>CyDWc-vM@}Q zb7Wv*U}30b-~sAk1@fIH@33-qcLutNf#EL$7m#FRa0X%+j|s?Qg7cVxJZ3nL1;}H8 z^H>>NCOcW%@o|FHGcs@jArsT&KI@{%39bvEIDM0i7!$i5(}XXJrn+vHwG(2RtnR=+ YS