diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceExportVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceExportVo.java new file mode 100644 index 0000000000..94909bbc64 --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceExportVo.java @@ -0,0 +1,29 @@ +package com.yxt.anrui.base.api.basemodelmodprice; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.common.core.utils.ExportEntityMap; +import com.yxt.common.core.vo.Vo; +import lombok.Data; + + +/** + * @author dimengzhe + * @date 2021/9/30 16:25 + * @description + */ +@Data +public class BaseModelModpriceExportVo implements Vo { + private static final long serialVersionUID = -1722170460354213687L; + + @ExportEntityMap(CnName = "序号", EnName = "rankNo") + private Integer rankNo; + @ExportEntityMap(CnName = "车型编码", EnName = "vehicleTypeCode") + private String vehicleTypeCode; // 分公司 + @ExportEntityMap(CnName = "配置编码", EnName = "configCode") + private String configCode; + @ExportEntityMap(CnName = "调整后全款销售指导价(元)", EnName = "guidedPrice") + private String guidedPrice; + @ExportEntityMap(CnName = "调整后贷款销售指导价(元)", EnName = "manufactorSettlementPrice") + private String manufactorSettlementPrice; + +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceFeign.java index 8c4f233fd1..edaff9cae1 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceFeign.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceFeign.java @@ -26,6 +26,7 @@ package com.yxt.anrui.base.api.basemodelmodprice; import com.yxt.anrui.base.api.basemodelmodprice.flow.*; +import com.yxt.anrui.base.api.basevehicle.BaseVehicleExportQuery; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import com.yxt.common.core.query.PagerQuery; @@ -34,8 +35,11 @@ import com.yxt.common.core.vo.PagerVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.io.IOException; +import java.text.ParseException; import java.util.List; /** @@ -66,7 +70,7 @@ public interface BaseModelModpriceFeign { @ApiOperation("新增保存") @PostMapping("/saveOrUpdate") public ResultBean saveOrUpdate(@Valid @RequestBody BaseModelModpriceDto dto); - + @ApiOperation("根据sid批量删除") @PostMapping("/delBySids") public ResultBean delBySids(@RequestBody String[] sids); @@ -104,4 +108,17 @@ public interface BaseModelModpriceFeign { @ApiOperation(value = "终止任务") @PostMapping(value = "/breakProcess") public ResultBean breakProcess(@Valid @RequestBody BaseModelModPriceTaskQuery query); + + @ApiOperation(value = "导入") + @PostMapping("/getExcelInfo") + @ResponseBody + public ResultBean getExcelInfo(@RequestParam(value = "fileName") String fileName, @RequestParam(value = "file") MultipartFile file) throws IOException, ParseException; + + + @PostMapping("/downloadExcel") + @ApiOperation(value = "下载模板") + @ResponseBody + public void downloadExcel(); + + } \ No newline at end of file diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceFeignFallback.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceFeignFallback.java index 75b196443e..9967044d29 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceFeignFallback.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceFeignFallback.java @@ -35,7 +35,10 @@ 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 java.io.IOException; +import java.text.ParseException; import java.util.List; /** @@ -110,4 +113,14 @@ public class BaseModelModpriceFeignFallback implements BaseModelModpriceFeign { public ResultBean breakProcess(BaseModelModPriceTaskQuery query) { return null; } + + @Override + public ResultBean getExcelInfo(String fileName, MultipartFile file) throws IOException, ParseException { + return null; + } + + @Override + public void downloadExcel() { + + } } \ No newline at end of file diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceImportReturn.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceImportReturn.java new file mode 100644 index 0000000000..29345dd307 --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceImportReturn.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.base.api.basemodelmodprice; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/4/18 13:55 + */ +@Data +@ApiModel(value = "车型调价申请车型表 导入视图数据对象回显", description = "车型调价申请车型表 导入视图数据对象回显") +public class BaseModelModpriceImportReturn implements Vo { + + @ApiModelProperty("校验结果") + private String checkResult; // 校验结果 + + private List importVoList; + +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceImportVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceImportVo.java new file mode 100644 index 0000000000..9a0bb50dee --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelModpriceImportVo.java @@ -0,0 +1,28 @@ +package com.yxt.anrui.base.api.basemodelmodprice; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/4/18 9:52 + */ +@ApiModel(value = "车型调价申请车型表 导入视图数据对象", description = "车型调价申请车型表 导入视图数据对象") +@Data +public class BaseModelModpriceImportVo implements Vo { + + @ApiModelProperty("序号") + private String rankNo; // 序号 + @ApiModelProperty("车型编码") + private String vehicleTypeCode; // 车型编码 + @ApiModelProperty("配置编码") + private String configCode; // 配置编码 + @ApiModelProperty("调整后全款销售指导价(元)") + private String guidedPrice; // 现全款销售指导价 + @ApiModelProperty("调整后贷款销售指导价(元)") + private String manufactorSettlementPrice; // 现贷款销售指导价 + +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodpricemodel/BaseModelModpriceModelFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodpricemodel/BaseModelModpriceModelFeign.java index dae1fe96ee..e5bda4a6b0 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodpricemodel/BaseModelModpriceModelFeign.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodpricemodel/BaseModelModpriceModelFeign.java @@ -91,4 +91,6 @@ public interface BaseModelModpriceModelFeign { @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchBySid/{sid}") public ResultBean fetchBySid(@PathVariable("sid") String sid); + + } \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceRest.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceRest.java index 5c2c9d8dc8..1c7951299d 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceRest.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceRest.java @@ -28,16 +28,37 @@ package com.yxt.anrui.base.biz.basemodelmodprice; import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.base.api.basemodelmodprice.*; import com.yxt.anrui.base.api.basemodelmodprice.flow.*; +import com.yxt.anrui.base.api.basevehicle.BaseVehicle; +import com.yxt.anrui.base.api.basevehicle.BaseVehicleExportVo; +import com.yxt.anrui.base.api.commoncontract.CommonContract; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.common.base.utils.ExportExcelUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +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.web.bind.annotation.*; - +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import java.net.URLEncoder; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -58,77 +79,108 @@ import java.util.List; @RequestMapping("v1/basemodelmodprice") public class BaseModelModpriceRest implements BaseModelModpriceFeign { - @Autowired - private BaseModelModpriceService baseModelModpriceService; - - @Override - @ApiOperation("根据条件分页查询数据的列表") - @PostMapping("/listPage") - public ResultBean> listPage(@RequestBody PagerQuery pq){ - ResultBean rb = ResultBean.fireFail(); - PagerVo pv = baseModelModpriceService.listPageVo(pq); - return rb.success().setData(pv); - } - - @Override - @ApiOperation("新增修改保存") - @PostMapping("/saveOrUpdate") - public ResultBean saveOrUpdate(@RequestBody BaseModelModpriceDto dto){ - return baseModelModpriceService.saveOrUpdateAll(dto); - } - - @Override - @ApiOperation("根据sid批量删除") + @Autowired + private BaseModelModpriceService baseModelModpriceService; + @Autowired + private HttpServletResponse response; + + @Override + @ApiOperation("根据条件分页查询数据的列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = baseModelModpriceService.listPageVo(pq); + return rb.success().setData(pv); + } + + @Override + @ApiOperation("新增修改保存") + @PostMapping("/saveOrUpdate") + public ResultBean saveOrUpdate(@RequestBody BaseModelModpriceDto dto) { + return baseModelModpriceService.saveOrUpdateAll(dto); + } + + @Override + @ApiOperation("根据sid批量删除") @PostMapping("/delBySids") - public ResultBean delBySids(@RequestBody String[] sids){ - return baseModelModpriceService.delAll(sids); - } + public ResultBean delBySids(@RequestBody String[] sids) { + return baseModelModpriceService.delAll(sids); + } - @Override - @ApiOperation("根据SID获取一条记录") + @Override + @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchBySid/{sid}") - public ResultBean fetchBySid(@PathVariable("sid") String sid){ - return baseModelModpriceService.fetchAll(sid); - } - - /*****************************车型调价流程****************************************************/ - - @Override - public ResultBean submitBaseModelModPrice(SubmitBaseModelModPriceDto dto) { - return baseModelModpriceService.submitBaseModelModPrice(dto); - } - - @Override - public ResultBean complete(BaseModelModPriceCompleteDto query) { - BusinessVariables bv = new BusinessVariables(); - BeanUtil.copyProperties(query, bv); - bv.setModelId(ProcDefEnum.BASEMODELMODPRICE.getProDefId()); - bv.setFormVariables(BeanUtil.beanToMap(query)); - return baseModelModpriceService.complete(bv); - } - - @Override - public ResultBean> getNextNodesForSubmit(GetNodeQuery query) { - return baseModelModpriceService.getNextNodesForSubmit(query); - } - - @Override - public ResultBean> getPreviousNodesForReject(GetNodeQuery query) { - return baseModelModpriceService.getPreviousNodesForReject(query); - } - - @Override - public ResultBean taskReject(BaseModelModPriceTaskQuery query) { - return baseModelModpriceService.taskReject(query); - } - - @Override - public ResultBean revokeProcess(BaseModelModPriceTaskQuery query) { - return baseModelModpriceService.revokeProcess(query); - } - - @Override - public ResultBean breakProcess(BaseModelModPriceTaskQuery query) { - return baseModelModpriceService.breakProcess(query); - } + public ResultBean fetchBySid(@PathVariable("sid") String sid) { + return baseModelModpriceService.fetchAll(sid); + } + + /*****************************车型调价流程****************************************************/ + + @Override + public ResultBean submitBaseModelModPrice(SubmitBaseModelModPriceDto dto) { + return baseModelModpriceService.submitBaseModelModPrice(dto); + } + + @Override + public ResultBean complete(BaseModelModPriceCompleteDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.BASEMODELMODPRICE.getProDefId()); + bv.setFormVariables(BeanUtil.beanToMap(query)); + return baseModelModpriceService.complete(bv); + } + + @Override + public ResultBean> getNextNodesForSubmit(GetNodeQuery query) { + return baseModelModpriceService.getNextNodesForSubmit(query); + } + + @Override + public ResultBean> getPreviousNodesForReject(GetNodeQuery query) { + return baseModelModpriceService.getPreviousNodesForReject(query); + } + + @Override + public ResultBean taskReject(BaseModelModPriceTaskQuery query) { + return baseModelModpriceService.taskReject(query); + } + + @Override + public ResultBean revokeProcess(BaseModelModPriceTaskQuery query) { + return baseModelModpriceService.revokeProcess(query); + } + + @Override + public ResultBean breakProcess(BaseModelModPriceTaskQuery query) { + return baseModelModpriceService.breakProcess(query); + } + + @Override + public ResultBean getExcelInfo(String fileName, MultipartFile file) throws IOException, ParseException { + + return baseModelModpriceService.getExcelInfo(fileName, file); + } + + @Override + public void downloadExcel() { + List list = new ArrayList<>(); + int i = 1; + while (i <= 10) { + BaseModelModpriceExportVo exportVo = new BaseModelModpriceExportVo(); + exportVo.setRankNo(i); + list.add(exportVo); + i++; + } + //定义导出的excel名字 + String excelName = "调价车型价格导入模板"; + String fileNameURL = ""; + try { + fileNameURL = URLEncoder.encode(excelName, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + ExportExcelUtils.export(fileNameURL, list, BaseModelModpriceExportVo.class, response); + } + + } diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceService.java index 4f0213942a..a0233cc165 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceService.java @@ -26,6 +26,7 @@ package com.yxt.anrui.base.biz.basemodelmodprice; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.text.StrBuilder; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -64,10 +65,21 @@ import com.yxt.messagecenter.api.message.MessageFeign; import com.yxt.messagecenter.api.message.MessageFlowVo; import com.yxt.messagecenter.api.message.MessageFlowableQuery; import org.apache.commons.lang3.StringUtils; +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 java.io.IOException; +import java.io.InputStream; import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -129,10 +141,10 @@ public class BaseModelModpriceService extends MybatisBaseService userVoResultBean = sysUserFeign.fetchBySid(dto.getCreateBySid()); if (!userVoResultBean.getSuccess()) { @@ -150,7 +162,7 @@ public class BaseModelModpriceService extends MybatisBaseService baseModelModpriceModels = dto.getBaseModelModpriceModels(); if (StringUtils.isBlank(sid)) {//新增 BaseModelModprice baseModelModprice = new BaseModelModprice(); - BeanUtil.copyProperties(dto, baseModelModprice,"sid"); + BeanUtil.copyProperties(dto, baseModelModprice, "sid"); baseModelModprice.setCreateBySid(dto.getCreateBySid()); baseModelModprice.setNodeState("待提交"); baseModelModprice.setOrgSidPath(orgSidPath); @@ -167,7 +179,7 @@ public class BaseModelModpriceService extends MybatisBaseService getExcelInfo(String fileName, MultipartFile file) throws IOException, ParseException { + ResultBean rb = ResultBean.fireFail(); + if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) { + return rb.fail().setMsg("上传文件不正确"); + } + int[] resultCell = new int[]{0, 1, 2, 3, 4}; + List resultList = new ArrayList<>(); + 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); + BaseModelModpriceImportReturn importReturn = getSheetVal(sheet, resultCell); + resultList = importReturn.getImportVoList(); + System.out.println("结果是--->" + resultList); + importReturn.setImportVoList(resultList); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + String currentTime = simpleDateFormat.format(System.currentTimeMillis()); + if (null != resultList) { + int size = resultList.size(); + importReturn.setCheckResult(currentTime+" "+"上报成功"+String.valueOf(size)+"条记录。"); + return rb.success().setData(importReturn); + } else { + return rb.fail().setData(importReturn); + } + } + + public BaseModelModpriceImportReturn getSheetVal(Sheet sheet, int[] resultCell) throws ParseException { + BaseModelModpriceImportReturn importReturn = new BaseModelModpriceImportReturn(); + List importVoList = new ArrayList<>(); + int[] resultIndex = new int[resultCell.length]; + BaseModelModpriceImportVo importVo; + StringBuilder sb = new StringBuilder(); + ArrayList rowList = new ArrayList<>(); + + for (int r = 1; r <= sheet.getLastRowNum(); r++) { + Row row = sheet.getRow(r); + if (row == null) { + continue; + } + importVo = new BaseModelModpriceImportVo(); + for (int i = 0; i < row.getPhysicalNumberOfCells(); i++) { + String trim = new String(); + try { + trim = getCellVal(row.getCell(i)).toString().trim(); + 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.setRankNo(temp); + rowList.add(temp); + break; + case 1: + importVo.setVehicleTypeCode(temp); + break; + case 2: + importVo.setConfigCode(temp); + break; + case 3: + importVo.setGuidedPrice(temp); + break; + case 4: + importVo.setManufactorSettlementPrice(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; + default: + break; + } + String checkResult = "第" + (r) + "行" + word + "为空"; + sb.append(checkResult).append(";"); + continue; + } + } + } + importVoList.add(importVo); + + } + + HashSet hashSet = new HashSet<>(); + HashMap map = new HashMap<>(); + for (BaseModelModpriceImportVo modpriceImportVo : importVoList) { + if (StringUtils.isNotBlank(modpriceImportVo.getVehicleTypeCode()) + && StringUtils.isNotBlank(modpriceImportVo.getConfigCode()) + && StringUtils.isNotBlank(modpriceImportVo.getGuidedPrice()) + && StringUtils.isNotBlank(modpriceImportVo.getManufactorSettlementPrice()) + ) { + //如果车型编码+配置编码存在,则判断金额是否相等 + if (map.containsKey(modpriceImportVo.getVehicleTypeCode() + modpriceImportVo.getConfigCode())) { + String guidedAndManuFactor = map.get(modpriceImportVo.getVehicleTypeCode() + modpriceImportVo.getConfigCode()); + String[] split = guidedAndManuFactor.split(","); + String oldGuided = split[0]; + String oldManuFactor = split[1]; + if (!oldGuided.equals(modpriceImportVo.getGuidedPrice()) || !oldManuFactor.equals(modpriceImportVo.getManufactorSettlementPrice())) { + hashSet.add(modpriceImportVo.getVehicleTypeCode() + modpriceImportVo.getConfigCode()); + } + } else { //如果车型编码+配置编码不存在,则存入map + map.put(modpriceImportVo.getVehicleTypeCode() + modpriceImportVo.getConfigCode(), modpriceImportVo.getGuidedPrice() + "," + modpriceImportVo.getManufactorSettlementPrice()); + } + } + } + Iterator iterator = hashSet.iterator(); + while (iterator.hasNext()) { + String next = iterator.next(); + sb.append("第"); + for (BaseModelModpriceImportVo modpriceImportVo : importVoList) { + if (StringUtils.isNotBlank(modpriceImportVo.getVehicleTypeCode()) + && StringUtils.isNotBlank(modpriceImportVo.getConfigCode()) + && StringUtils.isNotBlank(modpriceImportVo.getGuidedPrice()) + && StringUtils.isNotBlank(modpriceImportVo.getManufactorSettlementPrice()) + ) { + if ((modpriceImportVo.getVehicleTypeCode() + modpriceImportVo.getConfigCode()).equals(next)) { + sb.append(modpriceImportVo.getRankNo() + "行、"); + } + } + } + sb.delete(sb.length() - 1, sb.length()); + sb.append("相同车型编码、配置编码对应的销售指导价不同;"); + } + HashSet rowSet = new HashSet<>(rowList); + if (rowSet.size() != rowList.size()) { + sb.append("序号有重复").append(";"); + } + importReturn.setImportVoList(importVoList); + if (StringUtils.isNotBlank(sb.toString())) { + sb.delete(sb.length() - 1, sb.length()); + importReturn.setCheckResult(sb.toString()); + importReturn.setImportVoList(null); + return importReturn; + } + 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; + } } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdiscountpackagehandover/BusDiscountpackageHandoverService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdiscountpackagehandover/BusDiscountpackageHandoverService.java index 1b4133da2c..b3e841380b 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdiscountpackagehandover/BusDiscountpackageHandoverService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdiscountpackagehandover/BusDiscountpackageHandoverService.java @@ -200,7 +200,7 @@ public class BusDiscountpackageHandoverService extends MybatisBaseService