| | |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.framework.web.domain.R; |
| | | import com.ruoyi.production.dto.BomImportDto; |
| | | import com.ruoyi.production.dto.ProductStructureDto; |
| | | import com.ruoyi.production.pojo.ProductStructure; |
| | | import com.ruoyi.production.bean.dto.BomImportDto; |
| | | import com.ruoyi.production.bean.dto.ProductStructureDto; |
| | | import com.ruoyi.technology.bean.dto.TechnologyBomDto; |
| | | import com.ruoyi.technology.bean.vo.TechnologyBomVo; |
| | | import com.ruoyi.technology.mapper.TechnologyBomMapper; |
| | |
| | | import com.ruoyi.technology.pojo.TechnologyRouting; |
| | | import com.ruoyi.technology.service.TechnologyBomService; |
| | | import com.ruoyi.technology.service.TechnologyBomStructureService; |
| | | import jakarta.servlet.http.HttpServletResponse; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import jakarta.servlet.http.HttpServletResponse; |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean batchDelete(List<Integer> ids) { |
| | | public boolean batchDelete(List<Long> ids) { |
| | | if (ids == null || ids.isEmpty()) { |
| | | throw new ServiceException("Select at least one BOM"); |
| | | } |
| | |
| | | |
| | | //处理根节点,第一行且子项为空 |
| | | if (i == 0 && StringUtils.isBlank(dto.getChildName())) { |
| | | ProductStructure rootNode = new ProductStructure(); |
| | | rootNode.setBomId(bom.getId()); |
| | | TechnologyBomStructure rootNode = new TechnologyBomStructure(); |
| | | rootNode.setBomId(bom.getId().longValue()); |
| | | rootNode.setParentId(null); // 顶层没有父节点 |
| | | rootNode.setProductModelId(rootModel.getId()); |
| | | rootNode.setUnitQuantity(BigDecimal.ONE); |
| | | rootNode.setUnit(rootModel.getUnit()); |
| | | // productStructureService.save(rootNode); |
| | | technologyBomStructureService.save(rootNode); |
| | | |
| | | treePathMap.put(parentKey, rootNode.getId()); |
| | | continue; |
| | |
| | | ProductModel childModel = findModel(dto.getChildName(), dto.getChildSpec()); |
| | | |
| | | // 插入结构表 |
| | | ProductStructure node = new ProductStructure(); |
| | | node.setBomId(bom.getId()); |
| | | TechnologyBomStructure node = new TechnologyBomStructure(); |
| | | node.setBomId(bom.getId().longValue()); |
| | | node.setParentId(parentStructureId); // 父节点ID |
| | | node.setProductModelId(childModel.getId()); |
| | | node.setUnitQuantity(dto.getUnitQty()); |
| | |
| | | // if (processMap.containsKey(dto.getProcess())) { |
| | | // node.setProcessId(processMap.get(dto.getProcess())); |
| | | // } |
| | | // productStructureService.save(node); |
| | | technologyBomStructureService.save(node); |
| | | |
| | | // 把当前子项记录到 Map,作为以后更深层级的父项查找依据 |
| | | // 同一父项下的同名子项不需要重复记录 |