diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaBaSjSjxtbhController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaBaSjSjxtbhController.java index eda9826e8..8aaf94b89 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaBaSjSjxtbhController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/controller/OtaBaSjSjxtbhController.java @@ -8,6 +8,7 @@ import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.ota.entity.OtaBaCxJbxx; import com.jero.modules.ota.entity.OtaBaSjSjxtbh; import com.jero.modules.ota.service.IOtaBaSjSjxtbhService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -18,6 +19,7 @@ import com.jero.common.system.base.controller.JeroController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -76,8 +78,6 @@ public class OtaBaSjSjxtbhController extends JeroController importData(@RequestParam(value = "file", required = false) MultipartFile file, + @RequestParam(value = "cut", required = false) String cut, + @RequestParam(value = "otaId", required = false) String otaId) throws Exception { + try { + String[] params = otaId.split("\\?"); + otaId = params[0].equals("null") ? "" : params[0]; + cut = params[1].replace("cut=", ""); + this.otaBaSjSjxtbhService.importData(file, otaId, cut); + } catch (Exception e) { + e.printStackTrace(); + return Result.error(e.getMessage()); + } + return Result.OK(); + } + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaBaSjSjxtbhService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaBaSjSjxtbhService.java index 8814bb255..17b9bb40e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaBaSjSjxtbhService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/IOtaBaSjSjxtbhService.java @@ -1,62 +1,75 @@ package com.jero.modules.ota.service; import com.alibaba.fastjson.JSONObject; +import com.jero.modules.ota.entity.OtaBaCxJbxx; import com.jero.modules.ota.entity.OtaBaSjSjxtbh; import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.util.List; /** * @Description: 升级备案-本次升级的系统名称与参数变化 * @Author: jero-boot - * @Date: 2023-03-17 + * @Date: 2023-03-17 * @Version: V1.0 */ public interface IOtaBaSjSjxtbhService extends IService { - /** - * 保存 - * - */ + /** + * 保存 + */ void add(JSONObject json); - /** - * 更新 - * - * @param otaBaSjSjxtbh - * @return - */ + /** + * 更新 + * + * @param otaBaSjSjxtbh + * @return + */ void editById(OtaBaSjSjxtbh otaBaSjSjxtbh); - /** - * 通过id删除 - * - * @param id - * @return - */ + /** + * 通过id删除 + * + * @param id + * @return + */ void deleteById(String id); - /** - * 批量删除 - * - * @param ids - * @return - */ + /** + * 批量删除 + * + * @param ids + * @return + */ void deleteByIds(List ids); - /** - * 通过id查询 - * - * @param id - * @return - */ + /** + * 通过id查询 + * + * @param id + * @return + */ OtaBaSjSjxtbh queryById(String id); /** - * 列表查询 - * - * @return - */ + * 列表查询 + * + * @return + */ List queryList(); - JSONObject queryByOtaId(String otaId, String otaIdT); + JSONObject queryByOtaId(String otaId, String otaIdT); + + void exportTemplate(HttpServletResponse response, HttpServletRequest request) throws Exception; + + void importData(MultipartFile file, String otaId, String cut) throws Exception; + + void parseFileList(List upLoadFiles, String otaId, String cut) throws Exception; + + void exportData(File file, String otaId, String cut) throws Exception; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJsfzbacsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJsfzbacsServiceImpl.java index 90ed96f31..b95527adb 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJsfzbacsServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxJsfzbacsServiceImpl.java @@ -284,6 +284,9 @@ public class OtaBaCxJsfzbacsServiceImpl extends ServiceImpl oldList = OtaBaCxSjmkService.queryByOtaId(otaId); OtaBaCxSjmkService.deleteByOtaId(otaId); List sjmkList = parseList(upFile, otaId, cut); + if (ObjectUtils.isEmpty(oldList)) { + oldList = new ArrayList<>(); + } reList.addAll(cu.comparisonListRecord(otaId, OtaModuleEnum.CX_JSFZXTJCBACS, OtaTitleEnum.BJMC.getName(), oldList, sjmkList, sysDictService)); OtaBaCxSjmkService.saveOrUpdateBatch(sjmkList); otaBaCxTxjlService.saveBatch(reList); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjjsmccsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjjsmccsServiceImpl.java index 2e08de9a6..6b68cc0d4 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjjsmccsServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjjsmccsServiceImpl.java @@ -239,6 +239,9 @@ public class OtaBaCxKsjjsmccsServiceImpl extends ServiceImpl oldList = getByOtaId(otaId); + if (ObjectUtils.isEmpty(oldList)) { + oldList = new ArrayList<>(); + } List mccsList = parseFile(upFile, attFile, otaId, cut); ComparisonUtil cu = new ComparisonUtil(); List reList = cu.comparisonListRecord(otaId, OtaModuleEnum.CX_KZXSJDJSFZGNMCYCS, OtaTitleEnum.GNMC.getName(), oldList, mccsList, sysDictService); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjxtmccsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjxtmccsServiceImpl.java index fc1be2573..a31008aac 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjxtmccsServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjxtmccsServiceImpl.java @@ -236,6 +236,9 @@ public class OtaBaCxKsjxtmccsServiceImpl extends ServiceImpl oldList = getByOtaId(otaId); + if (ObjectUtils.isEmpty(oldList)) { + oldList = new ArrayList<>(); + } List mccsList = parseFile(upFile, attFile, otaId, cut); ComparisonUtil cu = new ComparisonUtil(); List reList = cu.comparisonListRecord(otaId, OtaModuleEnum.CX_KSJDXTMCYCS, OtaTitleEnum.XTLB.getName(), oldList, mccsList, sysDictService); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaSjListServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaSjListServiceImpl.java index 63da063a9..6170b0d8c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaSjListServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaSjListServiceImpl.java @@ -50,6 +50,8 @@ public class OtaBaSjListServiceImpl extends ServiceImpl(); } ComparisonUtil cu = new ComparisonUtil(); - List reList = cu.comparisonListRecord(otaId, OtaModuleEnum.SJ_SJXTMCBH, OtaTitleEnum.XTMC.getName(), oldList, newList, sysDictService); + List reList = cu.comparisonListRecord(otaId, OtaModuleEnum.SJ_SJXTMCBH, OtaTitleEnum.SJKZQMC.getName(), oldList, newList, sysDictService); saveOrUpdateBatch(newList); otaBaCxTxjlService.saveBatch(reList); } @@ -173,4 +191,84 @@ public class OtaBaSjSjxtbhServiceImpl extends ServiceImpl upLoadFiles = ImportFileUtil.importZip(file, cut, uploadPath); + parseFileList(upLoadFiles, otaId, cut); + } + + @Override + public void parseFileList(List upLoadFiles, String otaId, String cut) throws Exception { + File upFile = null; + for (File f : upLoadFiles) { + if (f.getName().equals("本次升级的系统名称与变更参数.xlsx")) { + upFile = f; + } + } + if (null == upFile) { + throw new JeroBootException("请上传正确的文件"); + } + + List newList = parseFile(upFile, otaId, cut); + List oldList = getByOtaId(otaId); + if (ObjectUtils.isEmpty(oldList)) { + oldList = new ArrayList<>(); + } + ComparisonUtil cu = new ComparisonUtil(); + List reList = cu.comparisonListRecord(otaId, OtaModuleEnum.SJ_SJXTMCBH, OtaTitleEnum.SJKZQMC.getName(), oldList, newList, sysDictService); + saveOrUpdateBatch(newList); + otaBaCxTxjlService.saveBatch(reList); + } + + private List parseFile(File upFile, String otaId, String cut) throws Exception { + Date now = new Date(); + List list = new ArrayList<>(); + Workbook wb = ImportFileUtil.readExcel(upFile); + Sheet s = wb.getSheetAt(0); + int rows = s.getPhysicalNumberOfRows(); + for (int i = 4; i < rows; i++) { + Row row = s.getRow(i); + Cell cell = row.getCell(0); + OtaBaSjSjxtbh xtbh = new OtaBaSjSjxtbh(); + cell = row.getCell(1); + xtbh.setSjqbgcs(ImportFileUtil.getCellValue(cell, wb)); + cell = row.getCell(2); + xtbh.setSjhbgcs(ImportFileUtil.getCellValue(cell, wb)); + cell = row.getCell(3); + xtbh.setSjkzqmc(ImportFileUtil.getCellValue(cell, wb)); + cell = row.getCell(4); + xtbh.setYjbb(ImportFileUtil.getCellValue(cell, wb)); + cell = row.getCell(5); + xtbh.setSjqrjbb(ImportFileUtil.getCellValue(cell, wb)); + cell = row.getCell(6); + xtbh.setSjhrjbb(ImportFileUtil.getCellValue(cell, wb)); + cell = row.getCell(7); + xtbh.setSjqczxt(ImportFileUtil.getCellValue(cell, wb)); + cell = row.getCell(8); + xtbh.setSjhczxt(ImportFileUtil.getCellValue(cell, wb)); + cell = row.getCell(9); + xtbh.setSjbyzsj(ImportFileUtil.getCellValue(cell, wb)); + cell = row.getCell(10); + xtbh.setSjbdx(ImportFileUtil.getCellValue(cell, wb)); + cell = row.getCell(11); + xtbh.setSfcfsj(ImportFileUtil.getCellValue(cell, wb)); + xtbh.setCreateTime(now); + xtbh.setUpdateTime(now); + xtbh.setOtaId(otaId); + + list.add(xtbh); + } + return list; + } + + @Override + public void exportData(File file, String otaId, String cut) throws Exception { + + } }