浏览代码

导入功能修改

Wayne 3 月之前
父节点
当前提交
190d0e52b9

+ 3 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.java

@@ -110,4 +110,7 @@ public interface SubInfoMapper {
 
     
     void batchUpdate(@Param("list") List<SmzkDetailVo> list);
+
+    @Select("SELECT count(1) FROM sub_info where id=#{id} and logic_delete_flag = 0")
+    Integer selectById(@Param("id") String id);
 }

+ 27 - 4
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoServiceImpl.java

@@ -5498,14 +5498,22 @@ public class SubInfoServiceImpl implements SubInfoService {
                     if (j == 8){
                         // 如果不为null才进行解析
                         if (readAll.get(i).get(j) != null) {
-                            xmzhtjDetailVo.setBeginDate(DateUtil.parseDate(readAll.get(i).get(j).toString()));
+                            try {
+                                xmzhtjDetailVo.setBeginDate(DateUtil.parseDate(readAll.get(i).get(j).toString()));
+                            }catch (Exception e){
+                                throw new RuntimeException("导入失败,第" + (i-2) + "行,时间格式有问题!" + readAll.get(i).get(j));
+                            }
                         }else {
                             xmzhtjDetailVo.setBeginDate(null);
                         }
                     }
                     if (j == 9){
                         if (readAll.get(i).get(j) != null) {
-                            xmzhtjDetailVo.setEndDate(DateUtil.parseDate(readAll.get(i).get(j).toString()));
+                            try {
+                                xmzhtjDetailVo.setEndDate(DateUtil.parseDate(readAll.get(i).get(j).toString()));
+                            }catch (Exception e){
+                                throw new RuntimeException("导入失败,第" + (i-2) + "行,时间格式有问题!" + readAll.get(i).get(j));
+                            }
                         }else {
                             xmzhtjDetailVo.setEndDate(null);
                         }
@@ -5534,12 +5542,27 @@ public class SubInfoServiceImpl implements SubInfoService {
 
                 SmzkDetailVo smzkDetailVo = list.get(i);
 
+                // 判断id,id不能为空
+                if (StringUtil.isEmpty(smzkDetailVo.getId())){
+                    throw new RuntimeException("导入失败,第" + (i+3) + "行,项目编号不能为空");
+                }else {
+                    // 查找sub_info表,根据id查询,如果不存在报错
+                    Integer count = subInfoMapper.selectById(smzkDetailVo.getId());
+                    if (count == 0){
+                        throw new RuntimeException("导入失败,第" + (i+3) + "行,项目编号不存在");
+                    }
+                }
+
+
                 if (smzkDetailVo.getId() == null){
                     throw new RuntimeException("导入失败,第" + (i+3) + "行,项目编号不能为空");
                 }
 
                 // 项目所在地,不能为空,必须在【伊州区,巴里坤县,伊吾县,高新区】里选择,其他的所有区县都是要提示出来,包括【市本级】,也不能有
                 if (StringUtil.isNotEmpty(smzkDetailVo.getSubjectId())){
+                    if("市本级".equals(smzkDetailVo.getSubjectId())){
+                        throw new RuntimeException("导入失败,第" + (i+3) + "行,项目所在地为市本级,请检查");
+                    }
                     String sbdw = smzkDetailVo.getSubjectId();
                     Optional<TSystable> first = sbddList.stream().filter(item -> item.getTitle().equals(sbdw)).findFirst();
                     if (first.isPresent()) {
@@ -5566,7 +5589,7 @@ public class SubInfoServiceImpl implements SubInfoService {
                     if (first.isPresent()) {
                         smzkDetailVo.setIndusKind(first.get().getCode());
                     }else {
-                        throw new RuntimeException("导入失败,第" + (i+3) + "行,行业分类为" + smzkDetailVo.getIndusKind() + ",请检查");
+                        throw new RuntimeException("导入失败,第" + (i+3) + "行,行业分类为" + smzkDetailVo.getIndusKind() + ",不存在请检查");
                     }
                 }else {
                     throw new RuntimeException("导入失败,第" + (i+3) + "行,行业分类不能为空");
@@ -5577,7 +5600,7 @@ public class SubInfoServiceImpl implements SubInfoService {
                     // 校验状态字段是否符合预期
                     List<String> validStatuses = Arrays.asList("正在谋划", "正在洽谈", "已签约", "已备案/已核准");
                     if (!validStatuses.contains(smzkDetailVo.getCbStatus())) {
-                        throw new RuntimeException("导入失败,第" + (i + 3) + "行,状态为" + smzkDetailVo.getCbStatus() + ",请检查");
+                        throw new RuntimeException("导入失败,第" + (i + 3) + "行,状态为" + smzkDetailVo.getCbStatus() + ",不存在请检查");
                     }
                     if (smzkDetailVo.getCbStatus().equals("正在谋划")){
                         smzkDetailVo.setCbStatus("1");

+ 6 - 0
projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoExportController.java

@@ -1027,9 +1027,15 @@ public class SubInfoExportController extends BaseController {
             SXSSFSheet sheet = ((SXSSFWorkbook) writer.getWorkbook()).getSheetAt(0);
             int defaultColumnWidth = 40; // 默认宽度为20个字符
             for (int i = 0; i < 11; i++) {
+                if (i == 0) {
+                    sheet.setColumnWidth(i, 4 * 256); // 序号列宽度为20个字符
+                    continue;
+                }
                 sheet.setColumnWidth(i, defaultColumnWidth * 256); // 其他列保持默认宽度
             }
 
+
+
             //根据合并行进行合并
             for (int i = 0; i < subInfoTotalExcel.size(); i++) {
                 subInfoTotalExcel.get(i).setNumber(i);