1 year ago
parent
commit
ca8b6737d8

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbInfoDTO.java

@@ -27,6 +27,8 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class SbInfoDTO extends BaseDTO implements Serializable {
+    private List<String> notSbIds;
+    private List<String> spareIds;
     /**
      * 强检:1,非强检:2
      */

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbModelSpareBomDTO.java

@@ -4,6 +4,7 @@ import com.platform.common.bean.BaseDTO;
 import com.platform.common.validation.group.UpdateGroup;
 import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.entity.sb.SbModelSpareBom;
+import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
 import com.platform.dao.entity.upms.SysFile;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -29,6 +30,9 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class SbModelSpareBomDTO extends BaseDTO implements Serializable {
+    private List<String> notSpareIds;
+    private List<String> spareIds;
+    private List<String> sbIds;
     private String positionNo;
 
     /**

+ 52 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/preparation/ExportPreparationNumVO.java

@@ -0,0 +1,52 @@
+package com.platform.dao.vo.export.preparation;
+
+import com.platform.dao.vo.query.preparation.PreparationVO;
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @Description 筹建管理导出VO
+ * @Author xc
+ * @Date 2022-12-28 20:00:26
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportPreparationNumVO implements Serializable {
+
+//    /**
+//     * 主键
+//     */
+//    @Excel(name = "主键", orderNum = "1")
+//    private String id;
+
+    /**
+     * 设备型号
+     */
+    private String positionId;
+
+    @Excel(name = "建筑物", orderNum = "1")
+    private String positionName;
+
+    /**
+     * 申请人id
+     */
+    @Excel(name = "筹建工单数", orderNum = "2")
+    private Integer preparationNum;
+
+    /**
+     * 申请部门
+     */
+    @Excel(name = "总费用", orderNum = "3")
+    private BigDecimal totalFee;
+
+    private List<PreparationVO> detailList;
+
+}

+ 7 - 0
platform-dao/src/main/resources/mapper/sb/SbInfoMapper.xml

@@ -370,6 +370,12 @@ sb.check_type
         <if test="ascriptionDept != null and ascriptionDept">
             <include refid="deptSql"/>
         </if>
+        <if test="notSbIds != null and notSbIds.size > 0">
+            AND sb.id not in
+            <foreach item="item" index="index" collection="notSbIds" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
 
     </select>
 
@@ -1138,4 +1144,5 @@ sb.check_type
         </if>
         </where>
     </select>
+
 </mapper>

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

@@ -54,6 +54,24 @@
                     or sbInfo.zbh like concat('%',#{keyword},'%')
                     )
             </if>
+            <if test="sbIds!=null and sbIds.size>0">
+                and sbInfo.id in
+                <foreach collection="sbIds" open="(" separator="," close=")" item="item">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="spareIds!=null and spareIds.size>0">
+                and bom.spare_id in
+                <foreach collection="spareIds" open="(" separator="," close=")" item="item">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="notSpareIds!=null and notSpareIds.size>0">
+                and bom.spare_id not in
+                <foreach collection="notSpareIds" open="(" separator="," close=")" item="item">
+                    #{item}
+                </foreach>
+            </if>
         </where>
     </select>
 

+ 32 - 0
platform-rest/src/main/java/com/platform/rest/controller/preparation/PreparationController.java

@@ -9,6 +9,7 @@ import com.platform.common.validation.group.UpdateGroup;
 import com.platform.dao.dto.preparation.PreparationDTO;
 import com.platform.dao.entity.preparation.Preparation;
 import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.preparation.ExportPreparationNumVO;
 import com.platform.dao.vo.export.preparation.ExportPreparationVO;
 import com.platform.dao.vo.query.preparation.PreparationVO;
 import com.platform.dao.vo.report.AllPreparationReportVO;
@@ -245,4 +246,35 @@ public class PreparationController {
     List<PreparationVO> preparationVOS = preparationReportByStatusVOS.get(0).getDetailList();
     ExcelUtil.exportResponseDict(response, ExportPreparationVO.class, BeanConverterUtil.copyListProperties(preparationVOS, ExportPreparationVO.class), "筹建类型明细报表统计导出");
   }
+
+  @GetMapping("/position/query")
+  @SysLog("根据建筑物统计筹建记录")
+  public R getPreparationReportByPositionId(PreparationDTO dto) {
+    return new R(preparationService.getPreparationReportByPositionId(dto));
+  }
+
+  @GetMapping("/position/export")
+  @SysLog("根据建筑物统计筹建记录导出")
+  public void getPreparationReportExportByPositionId(HttpServletResponse response,PreparationDTO dto) {
+    List<ExportPreparationNumVO> exportPreparationNumVOS = preparationService.getPreparationReportByPositionId(dto);
+
+    ExcelUtil.exportResponseDict(response, ExportPreparationNumVO.class, BeanConverterUtil.copyListProperties(exportPreparationNumVOS, ExportPreparationNumVO.class), "筹建数量-费用统计导出");
+
+  }
+
+  @GetMapping("/position/detail/export")
+  @SysLog("根据建筑物统计筹建记录导出")
+  public void getPreparationReportDetailExportByPositionId(HttpServletResponse response,PreparationDTO dto) {
+    List<ExportPreparationNumVO> exportPreparationNumVOS = preparationService.getPreparationReportByPositionId(dto);
+    List<PreparationVO> list = new ArrayList<>();
+    if (exportPreparationNumVOS!=null &&exportPreparationNumVOS.size()>0){
+      list = exportPreparationNumVOS.get(0).getDetailList();
+    }
+    PreparationVO preparationVO = new PreparationVO();
+    preparationVO.setFee(exportPreparationNumVOS.get(0).getTotalFee());
+    preparationVO.setId("费用汇总");
+    list.add(preparationVO);
+    ExcelUtil.exportResponseDict(response, ExportPreparationVO.class, BeanConverterUtil.copyListProperties(list, ExportPreparationVO.class), "筹建数量-费用明细统计导出");
+
+  }
 }

+ 5 - 0
platform-rest/src/main/java/com/platform/rest/controller/sb/SbInfoController.java

@@ -683,6 +683,11 @@ public class SbInfoController {
         return new R<>(sbInfoService.getPositionNoHistory(dto,pageNum,pageSize));
     }
 
+    @GetMapping("/get/synchronous/sb")
+    public R getSynchronousSb(List<String> spareIds, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+        return new R(sbInfoService.getSynchronousSb(spareIds,pageNum,pageSize));
+    }
+
 
 
 }

+ 7 - 0
platform-rest/src/main/java/com/platform/rest/controller/sb/SbModelSpareBomController.java

@@ -320,4 +320,11 @@ public class SbModelSpareBomController {
     return new R<>();
   }
 
+    @SysLog("同步添加bom关系")
+    @PostMapping("/synchronous/add")
+    public R synchronousAdd(@RequestBody SbModelSpareBomDTO dto) throws Exception {
+        sbModelSpareBomService.synchronousAdd(dto);
+        return new R<>();
+    }
+
 }

+ 50 - 20
platform-service/src/main/java/com/platform/service/longyanpurchaseorder/impl/LongYanPurchaseOrderServiceImpl.java

@@ -166,30 +166,60 @@ public class LongYanPurchaseOrderServiceImpl extends BaseServiceImpl<LongYanPurc
         model.setTotalNum(totalNum);
 
         longYanPurchaseDetailMapper.insertListforComplex(BeanConverterUtil.copyListProperties(detailDTOS, LongYanPurchaseDetail.class));
-        SbModelSpareBomDTO sbModelSpareBomDTO = new SbModelSpareBomDTO();
-        sbModelSpareBomDTO.setSbId(model.getSbId());
-        List<SbModelSpareBomVO> bomVOS = sbModelSpareBomMapper.selectVOList(sbModelSpareBomDTO);
-        boolean flag = false;
-        List<SbModelSpareBom> boms = new ArrayList<>();
-        for (LongYanPurchaseDetailDTO detailDTO : detailDTOS) {
-            flag = false;
-            if (bomVOS != null) {
-                for (SbModelSpareBomVO vo : bomVOS) {
-                    if (vo.getSpareId().equals(detailDTO.getSpareId())) {
-                        flag = true;
-                        break;
+        List<String> sbIds = new ArrayList<>();
+            SbInfo sbInfo = sbInfoMapper.selectByPrimaryKey(model.getSbId());
+            SbInfoDTO queryDto = new SbInfoDTO();
+            if (sbInfo.getModel()!=null && !sbInfo.getModel().trim().equals("") &&!sbInfo.getModel().equals("暂无")) {
+                queryDto.setModel(sbInfo.getModel());
+                List<SbInfoVO> sbInfoVOS = sbInfoMapper.selectVOList(queryDto);
+                sbIds = sbInfoVOS.stream().map(SbInfoVO::getId).collect(Collectors.toList());
+                SbModelSpareBomDTO sbModelSpareBomDTO = new SbModelSpareBomDTO();
+
+//        sbModelSpareBomDTO.setSbIds(sbIds);
+                List<SbModelSpareBomVO> bomVOS = sbModelSpareBomMapper.selectVOList(sbModelSpareBomDTO);
+                List<String> spareIds = detailDTOS.stream().map(LongYanPurchaseDetailDTO::getSpareId).collect(Collectors.toList());
+                SbModelSpareBomDTO dto = new SbModelSpareBomDTO();
+                dto.setSpareIds(spareIds);
+                dto.setSbIds(sbIds);
+//                List<SbModelSpareBomVO> sbModelSpareBomVOS = sbModelSpareBomMapper.selectVOList(dto);
+                Weekend<SbModelSpareBom> weekend = new Weekend(SbModelSpareBom.class);
+                WeekendCriteria<SbModelSpareBom,Object> weekendCriteria = weekend.weekendCriteria();
+                weekendCriteria.andIn(SbModelSpareBom::getSpareId,spareIds);
+                weekendCriteria.andIn(SbModelSpareBom::getSbId,sbIds);
+                sbModelSpareBomMapper.deleteByExample(weekend);
+                List<SbModelSpareBom> boms = new ArrayList<>();
+                for (String sbId:sbIds){
+                    for (LongYanPurchaseDetailDTO detailDTO:detailDTOS){
+                        packageBom(boms,detailDTO,sbId);
                     }
                 }
-                if (!flag) {
-                    packageBom(boms,detailDTO, model.getSbId());
+                if (boms!=null && boms.size()>0){
+                    sbModelSpareBomMapper.insertListforComplex(boms);
                 }
-            } else {
-                packageBom(boms, detailDTO, model.getSbId());
             }
-        }
-        if (boms!=null&&boms.size()>0) {
-            sbModelSpareBomMapper.insertListforComplex(boms);
-        }
+
+
+
+//        List<SbModelSpareBom> boms = new ArrayList<>();
+//        for (LongYanPurchaseDetailDTO detailDTO : detailDTOS) {
+//            boolean flag = false;
+//            if (bomVOS != null) {
+//                for (SbModelSpareBomVO vo : bomVOS) {
+//                    if (vo.getSpareId().equals(detailDTO.getSpareId())) {
+//                        flag = true;
+//                        break;
+//                    }
+//                }
+//                if (!flag) {
+//                    packageBom(boms,detailDTO, model.getSbId());
+//                }
+//            } else {
+//                packageBom(boms, detailDTO, model.getSbId());
+//            }
+//        }
+//        if (boms!=null&&boms.size()>0) {
+//            sbModelSpareBomMapper.insertListforComplex(boms);
+//        }
         return super.saveModelByDTO(model);
     }
 

+ 2 - 0
platform-service/src/main/java/com/platform/service/preparation/PreparationService.java

@@ -1,6 +1,7 @@
 package com.platform.service.preparation;
 
 import com.platform.dao.dto.repair.RepairApplicationFormDTO;
+import com.platform.dao.vo.export.preparation.ExportPreparationNumVO;
 import com.platform.dao.vo.query.preparation.PreparationVO;
 import com.platform.dao.dto.preparation.PreparationDTO;
 import com.platform.dao.entity.preparation.Preparation;
@@ -20,6 +21,7 @@ import java.util.List;
  * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
  */
 public interface PreparationService extends IBaseService<Preparation, PreparationDTO> {
+    List<ExportPreparationNumVO> getPreparationReportByPositionId(PreparationDTO dto);
     List<PreparationReportByStatusVO> getPreparationReportGroupByStatus(PreparationDTO dto, Integer year, LocalDate startMonth, LocalDate endMonth);
 
     List<AllPreparationReportVO> getAllPreparationReport(PreparationDTO dto, Integer year, LocalDate startMonth, LocalDate endMonth);

+ 36 - 0
platform-service/src/main/java/com/platform/service/preparation/impl/PreparationServiceImpl.java

@@ -26,6 +26,7 @@ import com.platform.dao.mapper.upms.SysUserRoleMapper;
 import com.platform.dao.util.MessageTemplateUtil;
 import com.platform.dao.vo.SysUserRoleVO;
 import com.platform.dao.vo.SysUserVO;
+import com.platform.dao.vo.export.preparation.ExportPreparationNumVO;
 import com.platform.dao.vo.query.preparation.PreparationVO;
 import com.platform.dao.vo.repair.RepairApplicationFormVO;
 import com.platform.dao.vo.report.AllPreparationReportVO;
@@ -42,12 +43,14 @@ import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description 筹建管理 service 实现类
@@ -71,6 +74,39 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
     @Resource
     private SysUserRoleMapper sysUserRoleMapper;
 
+    @Override
+    public List<ExportPreparationNumVO> getPreparationReportByPositionId(PreparationDTO dto) {
+        dto.setStatus(PreparationStatusEnum.FINISHED.getValue());
+        List<PreparationVO> list = mapper.selectList(dto);
+        List<String> positionIds = list.stream().map(PreparationVO::getPositionId).distinct().collect(Collectors.toList());
+        List<ExportPreparationNumVO> exportPreparationNumVOS = new ArrayList<>();
+        if (positionIds!=null){
+            for (String id:positionIds){
+                ExportPreparationNumVO preparationNumVO = new ExportPreparationNumVO();
+                Integer preparationNum = 0;
+                BigDecimal totalFee = new BigDecimal(0);
+                String positionName = null;
+                List<PreparationVO> detailList = new ArrayList<>();
+                for (PreparationVO vo:list){
+                    if (id.equals(vo.getPositionId())){
+                        preparationNum++;
+                        totalFee=totalFee.add(vo.getFee());
+                        positionName = vo.getPositionName();
+                        detailList.add(vo);
+                    }
+                }
+                preparationNumVO.setPreparationNum(preparationNum);
+                preparationNumVO.setTotalFee(totalFee);
+                preparationNumVO.setPositionName(positionName);
+                preparationNumVO.setDetailList(detailList);
+                exportPreparationNumVOS.add(preparationNumVO);
+
+            }
+        }
+
+        return exportPreparationNumVOS;
+    }
+
     @Override
     public List<PreparationReportByStatusVO> getPreparationReportGroupByStatus(PreparationDTO dto, Integer searchYear, LocalDate startMonth, LocalDate endMonth) {
         List<Map<String, LocalDateTime>> monthStartAndEndList = new ArrayList<Map<String, LocalDateTime>>();

+ 1 - 0
platform-service/src/main/java/com/platform/service/sb/SbInfoService.java

@@ -25,6 +25,7 @@ import java.util.Map;
  * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
  */
 public interface SbInfoService extends IBaseService<SbInfo, SbInfoDTO> {
+    AbstractPageResultBean<SbInfoVO> getSynchronousSb(List<String> spareIds,Integer pageNum,Integer pageSize);
 
     AbstractPageResultBean<YiBiaoHisroryVO> getPositionNoHistory(SbChangeRecordDTO dto,Integer pageNum,Integer pageSize);
 

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

@@ -27,6 +27,8 @@ import java.util.List;
  */
 public interface SbModelSpareBomService extends IBaseService<SbModelSpareBom, SbModelSpareBomDTO> {
 
+ void synchronousAdd(SbModelSpareBomDTO dto);
+
    /**
     * 批量删除
     *

+ 61 - 0
platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java

@@ -79,6 +79,7 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.map.HashedMap;
 import org.apache.ibatis.exceptions.TooManyResultsException;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
@@ -140,6 +141,66 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
     private final SbChangeRecordMapper sbChangeRecordMapper;
     private final FillGatherTaskDetailMapper fillGatherTaskDetailMapper;
 
+    @Override
+    public AbstractPageResultBean<SbInfoVO> getSynchronousSb(List<String> spareIds,Integer pageNum,Integer pageSize) {
+        SbModelSpareBomDTO dto = new SbModelSpareBomDTO();
+        dto.setSpareIds(spareIds);
+        List<SbModelSpareBomVO> list = sbModelSpareBomMapper.selectVOList(dto);
+        List<String> needIds = new ArrayList<>();
+        if (list!=null &&list.size()>0) {
+            List<String> sbIds = list.stream().map(SbModelSpareBomVO::getSbId).collect(Collectors.toList());
+            List<String> distinctSbIds = list.stream().map(SbModelSpareBomVO::getSbId).distinct().collect(Collectors.toList());
+                for (String disSbId : distinctSbIds) {
+                    int count = 0;
+                    for (String sbId : sbIds) {
+                        if (sbId.equals(disSbId)) {
+                            count++;
+                        }
+                    }
+                    if (count<spareIds.size()){
+                        needIds.add(disSbId);
+                    }
+                }
+        }
+
+        List<String> sbIds = list.stream().map(SbModelSpareBomVO::getSbId).distinct().collect(Collectors.toList());
+        SbInfoDTO sbInfoDTO = new SbInfoDTO();
+        sbInfoDTO.setNotSbIds(sbIds);
+        List<SbInfoVO> sbInfoVOs = mapper.selectVOList(sbInfoDTO);
+        sbInfoDTO.setNotSbIds(null);
+        List<SbInfoVO> infoVOS = new ArrayList<>();
+        if (needIds!=null&&needIds.size()>0) {
+            sbInfoDTO.setSbIds(needIds);
+            infoVOS = mapper.selectVOList(sbInfoDTO);
+        }
+        if (infoVOS!=null){
+            infoVOS.addAll(sbInfoVOs);
+        }
+        AbstractPageResultBean<SbInfoVO> pageResultBean = getPageInfo(pageNum,pageSize,infoVOS);
+        return pageResultBean;
+    }
+
+    private static AbstractPageResultBean<SbInfoVO> getPageInfo(Integer pageNum, Integer pageSize, List<SbInfoVO> list){
+        AbstractPageResultBean<SbInfoVO> pageInfo = new MyPage(list);
+        pageInfo.setPageNum(pageNum);
+        pageInfo.setPageSize(pageSize);
+        List<SbInfoVO> dataList = new ArrayList<>();
+        for (int i = pageSize*(pageNum-1);i<pageSize*pageNum;i++){
+            if (i<list.size()) {
+                dataList.add(list.get(i));
+            }
+        }
+        pageInfo.setRows(dataList);
+        if (list!=null&&list.size()>0){
+            int pages = list.size()%pageSize==0?list.size()/pageSize:(list.size()/pageSize)+1;
+            pageInfo.setPages(pages);
+        }else {
+            pageInfo.setPages(0);
+        }
+        pageInfo.setTotal((long)list.size());
+        return pageInfo;
+    }
+
     @Override
     public AbstractPageResultBean<YiBiaoHisroryVO> getPositionNoHistory(SbChangeRecordDTO sbChangeRecordDTO,Integer pageNum,Integer pageSize) {
         sbChangeRecordDTO.setActionType(1);

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

@@ -12,6 +12,7 @@ import com.platform.common.util.StringUtils;
 import com.platform.dao.bean.MyPage;
 import com.platform.dao.dto.check.CheckProjectStandardRelationDTO;
 import com.platform.dao.dto.check.CheckStandardDTO;
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO;
 import com.platform.dao.dto.part.PartInfoDTO;
 import com.platform.dao.dto.sb.SbModelSpareBomDTO;
 import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
@@ -42,9 +43,11 @@ import org.springframework.web.multipart.MultipartFile;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Description 型号库-备件bom关联 service 实现类
@@ -57,6 +60,41 @@ import java.util.List;
 public class SbModelSpareBomServiceImpl extends BaseServiceImpl<SbModelSpareBomMapper, SbModelSpareBom, SbModelSpareBomDTO> implements SbModelSpareBomService {
     private final  SparePartInfoService sparePartInfoService;
     private PartInfoService partInfoService;
+    private SbModelSpareBomMapper sbModelSpareBomMapper;
+
+    @Override
+    public void synchronousAdd(SbModelSpareBomDTO dto) {
+        List<String> sbIds = dto.getSbIds();
+        List<SparePartInfoDTO> sparePartInfoDTOS = dto.getSparePartInfoList();
+        List<String> spareIds = sparePartInfoDTOS.stream().map(SparePartInfoDTO::getId).collect(Collectors.toList());
+        Weekend<SbModelSpareBom> weekend = new Weekend(SbModelSpareBom.class);
+        WeekendCriteria<SbModelSpareBom,Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(SbModelSpareBom::getSpareId,spareIds);
+        weekendCriteria.andIn(SbModelSpareBom::getSbId,sbIds);
+        sbModelSpareBomMapper.deleteByExample(weekend);
+        List<SbModelSpareBom> boms = new ArrayList<>();
+        for (String sbId:sbIds){
+            for (SparePartInfoDTO detailDTO:sparePartInfoDTOS){
+                packageBom(boms,detailDTO,sbId);
+            }
+        }
+        if (boms!=null && boms.size()>0){
+            sbModelSpareBomMapper.insertListforComplex(boms);
+        }
+    }
+    private void packageBom(List<SbModelSpareBom> boms, SparePartInfoDTO dto,String sbId){
+        SbModelSpareBom sbModelSpareBom = new SbModelSpareBom();
+        sbModelSpareBom.setSpareId(dto.getId());
+        sbModelSpareBom.setSbId(sbId);
+        sbModelSpareBom.setNum(new BigDecimal(1));
+        sbModelSpareBom.setId(IdGeneratorUtils.getObjectId());
+        sbModelSpareBom.setGgxh(dto.getGgxh());
+        sbModelSpareBom.setSpareName(dto.getName());
+        sbModelSpareBom.setModelId(sbId);
+        sbModelSpareBom.setNo(dto.getNo());
+        boms.add(sbModelSpareBom);
+    }
+
     @Override
     public int batchDelete(List<String> ids) {
         Weekend<SbModelSpareBom> weekend = new Weekend<>(SbModelSpareBom.class);