Browse Source

导入导出优化

2 years ago
parent
commit
0897fd569e

+ 6 - 0
platform-dao/src/main/java/com/platform/dao/entity/sqarepartmanage/SparePartInfo.java

@@ -285,4 +285,10 @@ public class SparePartInfo implements Serializable {
      */
     @Transient
     private String modelModel;
+
+    @Transient
+    private String sbNo;
+
+    @Transient
+    private String ytStr;
 }

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sb/SbModelSpareBomMapper.java

@@ -32,6 +32,8 @@ public interface SbModelSpareBomMapper extends MyMapper<SbModelSpareBom> {
 
     List<SbModelSpareBomVO> selectExportList(SparePartInfoDTO sparePartInfoDTO);
 
+    List<SbModelSpareBomVO> selectExportList2(SparePartInfoDTO sparePartInfoDTO);
+
     void updateBatch(List<SbModelSpareBom> sbModelSpareBomList);
     void updateBatchAll(List<SbModelSpareBom> sbModelSpareBomList);
 }

+ 2 - 1
platform-dao/src/main/java/com/platform/dao/util/CustomExcelImportUtil.java

@@ -1896,7 +1896,8 @@ public class CustomExcelImportUtil {
                     record.setMinStock(new BigDecimal(mixStock));
                 }
                 record.setYt(getYt(getCellValue(row.getCell(13))));
-                record.setRemark(getCellValue(row.getCell(14)));
+                record.setSbNo(getCellValue(row.getCell(14)));
+                record.setRemark(getCellValue(row.getCell(15)));
 //                record.setCreatedTime(LocalDateTime.parse(getCellValue(row.getCell(15)),DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
                 record.setUpdateTime(LocalDateTime.now());
                 record.setUpdateUserId("1");

+ 5 - 2
platform-dao/src/main/java/com/platform/dao/vo/export/sqarepartmanage/ExportSparePartInfoVO.java

@@ -113,9 +113,12 @@ public class ExportSparePartInfoVO implements Serializable {
     private String producerName;
 
     @Excel(name = "用途", orderNum = "14")
-    private String yt;
+    private String ytStr;
 
-    @Excel(name = "备注", orderNum = "15")
+    @Excel(name = "关联设备号", orderNum = "15")
+    private String sbNo;
+
+    @Excel(name = "备注", orderNum = "16")
     private String remark;
 
 //    @Excel(name = "创建时间", orderNum = "16")

+ 3 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/sparepartmanage/SparePartInfoVO.java

@@ -28,6 +28,9 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class SparePartInfoVO extends BaseVO implements Serializable {
+
+    private String sbNo;
+
     private String spareStoreId;
 
     private String storeName;

+ 15 - 0
platform-dao/src/main/resources/mapper/sb/SbModelSpareBomMapper.xml

@@ -27,6 +27,21 @@
         GROUP BY bom.spare_id
     </select>
 
+    <select id="selectExportList2" parameterType="com.platform.dao.dto.sb.SbModelSpareBomDTO"
+            resultType="com.platform.dao.vo.sb.SbModelSpareBomVO">
+        select
+        bom.id,
+               bom.check_date,
+        bom.next_check_date,
+        bom.change_num,
+        bom.next_change_num,bom.model_id, bom.sb_id, bom.sb_part_id, bom.spare_id,sbInfo.name,sbInfo.model, sbInfo.no, sbInfo.zbh,  part.name as sbPartName
+        from t_sb_model_spare_bom bom
+        LEFT JOIN t_sb_info sbInfo ON bom.sb_id = sbInfo.id
+        LEFT JOIN t_part_info part on bom.sb_part_id = part.id
+        where
+        bom.sb_id = sbInfo.id
+    </select>
+
     <select id="selectVOList" parameterType="com.platform.dao.dto.sb.SbModelSpareBomDTO"
             resultType="com.platform.dao.vo.sb.SbModelSpareBomVO">
         select

+ 19 - 2
platform-rest/src/main/java/com/platform/rest/controller/sqarepartmanage/SparePartInfoController.java

@@ -9,7 +9,9 @@ import com.platform.common.validation.group.AddGroup;
 import com.platform.common.validation.group.UpdateGroup;
 import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.dto.store.InStoreFormDTO;
+import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
+import com.platform.dao.mapper.sb.SbInfoMapper;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.util.SelectUtil;
 import com.platform.dao.vo.export.sqarepartmanage.ExportSparePartInfoVO;
@@ -47,6 +49,7 @@ public class SparePartInfoController {
     private final SbModelService sbModelService;
 
     private final CheckStandardService checkStandardService;
+    private final SbInfoMapper sbInfoMapper;
 
     /**
      * 通过id查询单条记录
@@ -225,15 +228,29 @@ public class SparePartInfoController {
                 }
             }
             // 查询备件关联的设备型号信息
-            List<SbModelSpareBomVO> bomList = sbModelSpareBomService.selectExportList(sparePartInfoDTO);
+            List<SbModelSpareBomVO> bomList = sbModelSpareBomService.selectExportList2(sparePartInfoDTO);
             for (SparePartInfo sparePartInfo : list) {
+                if (sparePartInfo.getYt()==1){
+                    sparePartInfo.setYtStr("设备配件");
+                }else if (sparePartInfo.getYt()==2){
+                    sparePartInfo.setYtStr("工程物资");
+                }else {
+                    sparePartInfo.setYtStr("设备配件");
+                }
+                StringBuffer sb = new StringBuffer();
                 for (SbModelSpareBomVO sbModelSpareBomVO : bomList) {
                     if (sparePartInfo.getId().equals(sbModelSpareBomVO.getSpareId())) {
+
+                        SbInfo sbInfo = new SbInfo();
+                        sbInfo.setId(sbModelSpareBomVO.getSbId());
+                        sbInfo = sbInfoMapper.selectOne(sbInfo);
+                        sb = sb.append(sbInfo.getNo()).append(';');
                         sparePartInfo.setModelName(sbModelSpareBomVO.getName());
                         sparePartInfo.setModelModel(sbModelSpareBomVO.getModel());
-                        break;
+//                        sparePartInfo.setSbNo(sb.append(sbInfo.getNo())+";");
                     }
                 }
+                sparePartInfo.setSbNo(sb.toString());
             }
             ExcelUtil.exportResponseDict(response, ExportSparePartInfoVO.class, BeanConverterUtil.copyListProperties(list, ExportSparePartInfoVO.class), "备件基础信息");
         } catch (Exception e) {

+ 2 - 0
platform-service/src/main/java/com/platform/service/sb/SbModelSpareBomService.java

@@ -71,6 +71,8 @@ public interface SbModelSpareBomService extends IBaseService<SbModelSpareBom, Sb
 
     List<SbModelSpareBomVO> selectExportList(SparePartInfoDTO sparePartInfoDTO);
 
+ List<SbModelSpareBomVO> selectExportList2(SparePartInfoDTO sparePartInfoDTO);
+
     String copyFormSb(SbModelSpareBomDTO dto);
 
     /**

+ 5 - 0
platform-service/src/main/java/com/platform/service/sb/impl/SbModelSpareBomServiceImpl.java

@@ -144,6 +144,11 @@ public class SbModelSpareBomServiceImpl extends BaseServiceImpl<SbModelSpareBomM
         return mapper.selectExportList(sparePartInfoDTO);
     }
 
+    @Override
+    public List<SbModelSpareBomVO> selectExportList2(SparePartInfoDTO sparePartInfoDTO) {
+        return mapper.selectExportList2(sparePartInfoDTO);
+    }
+
 
     @Override
     public String copyFormSb(SbModelSpareBomDTO model) {

+ 56 - 0
platform-service/src/main/java/com/platform/service/sqarepartmanage/impl/SparePartInfoServiceImpl.java

@@ -17,6 +17,7 @@ import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.dto.sqarepartmanage.SparePartUsedDTO;
 import com.platform.dao.dto.store.InStoreFormDTO;
 import com.platform.dao.entity.check.CheckJob;
+import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.sb.SbModel;
 import com.platform.dao.entity.sb.SbModelSpareBom;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
@@ -66,6 +67,9 @@ import org.springframework.web.multipart.MultipartFile;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 
+import javax.persistence.Id;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -1128,6 +1132,29 @@ public class SparePartInfoServiceImpl extends BaseServiceImpl<SparePartInfoMappe
             throw new BusinessException(e.getMessage());
         }
     }
+    private List<String> getSbNos(String str){
+        List<String> list = new ArrayList<>();
+        if (StringUtils.isNotBlank(str)){
+          list = Arrays.asList( str.trim().split(";"));
+        }
+        return list;
+    }
+
+    private void setKey2(SbModelSpareBom t) {
+        Field[] fields = t.getClass().getDeclaredFields();
+        for (Field field : fields) {
+            Annotation id = field.getAnnotation(Id.class);
+            if (id == null) {
+                continue;
+            }
+            try {
+                field.setAccessible(true);
+                field.set(t, IdGeneratorUtils.getObjectId());
+            } catch (IllegalAccessException e) {
+                log.error("主键赋值异常");
+            }
+        }
+    }
 
     @Override
     public String importListByUpdate(MultipartFile file) {
@@ -1139,6 +1166,35 @@ public class SparePartInfoServiceImpl extends BaseServiceImpl<SparePartInfoMappe
             if (!CollectionUtils.isEmpty(items)) {
                 List<SpareType> typeList = spareTypeMapper.selectAll();
                 for (SparePartInfoVO item : items) {
+                    //先删除当前备件的所有bom,再新增excel导入的bom
+                    SbModelSpareBom bom = new SbModelSpareBom();
+                    bom.setSpareId(item.getSpareId());
+                    sbModelSpareBomMapper.delete(bom);
+                    List<String> sbNos = new ArrayList<>();
+                    if (item.getSbNo()!=null){
+                        sbNos = getSbNos(item.getSbNo());
+                    }
+                    if (sbNos.size()>0) {
+                        Weekend<SbInfo> weekend = new Weekend<>(SbInfo.class);
+                        WeekendCriteria<SbInfo, Object> weekendCriteria = weekend.weekendCriteria();
+                        weekendCriteria.andIn(SbInfo::getNo, sbNos);
+                        List<SbInfo> sbinfos = sbInfoMapper.selectByExample(weekend);
+                        List<SbModelSpareBom> boms = new ArrayList<>();
+                        for (SbInfo info : sbinfos) {
+                            bom = new SbModelSpareBom();
+                            bom.setSpareId(item.getId());
+                            bom.setSbId(info.getId());
+                            setKey2(bom);
+                            bom.setCreatedTime(LocalDateTime.now());
+                            bom.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
+                            bom.setUpdateTime(LocalDateTime.now());
+                            bom.setUpdateUserId(SecurityUtils.getUserInfo().getUserId());
+                            bom.setCreatedUserName(SecurityUtils.getUserInfo().getUsername());
+                            bom.setUpdateUserName(SecurityUtils.getUserInfo().getUsername());
+                            boms.add(bom);
+                        }
+                        sbModelSpareBomMapper.insertListforComplex(boms);
+                    }
                     // 设置类型转换
                     for (SpareType type : typeList) {
                         if (type.getName().equals(item.getTypeName())) {