diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/DQBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/DQBomApi.java index 518622a8..391f2176 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/DQBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/DQBomApi.java @@ -7,9 +7,11 @@ import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.bomnew.pojo.query.BomNewDQbomPageQuery; import com.nflg.product.bomnew.pojo.query.BomNewDQbomSaveQuery; import com.nflg.product.bomnew.pojo.vo.BomNewDQbomVO; +import com.nflg.product.bomnew.pojo.vo.DQbomExcelVO; import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO; import com.nflg.product.bomnew.service.DQBomImportService; import com.nflg.product.bomnew.service.DQBomService; +import com.nflg.product.bomnew.util.EecExcelUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import nflg.product.common.vo.ResultVO; @@ -47,7 +49,7 @@ public class DQBomApi extends BaseApi { @PostMapping("importBom") @LogRecord(success = "电气BOM-导入:文件名:{{#fileNme}},操作结果:{{#_ret}}", bizNo = "", type = "电气BOM导入") public ResultVO> importBom(@RequestParam(value = "file") MultipartFile file) throws IOException { - String type = file.getContentType();//application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + String type = file.getContentType(); if (!"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet".equals(type) && !"application/vnd.ms-excel".equals(type)) { return ResultVO.error("请上传Excel文件"); } @@ -91,13 +93,13 @@ public class DQBomApi extends BaseApi { } /** - * 保存数据 + * 暂存 * @param query 保存的数据 * @return */ - @GetMapping("save") - @ApiOperation("保存数据") - public ResultVO save(@Valid @RequestBody @NotNull BomNewDQbomSaveQuery query) { + @GetMapping("temporary") + @ApiOperation("暂存") + public ResultVO temporary(@Valid @RequestBody @NotNull BomNewDQbomSaveQuery query) { dQBomService.save(query); return ResultVO.success(); } @@ -125,4 +127,60 @@ public class DQBomApi extends BaseApi { dQBomService.deleteBom(rowId); return ResultVO.success(); } + + /** + * 导出bom + * @param rootBomRowId 顶级bom的rowId + * @return + */ + @PostMapping("exportBom") + @ApiOperation("导出bom") + public ResultVO exportBom(@Valid @RequestBody @NotNull Long rootBomRowId) throws IOException { + List data = dQBomService.exportBom(rootBomRowId); + EecExcelUtil.export(response, data, DQbomExcelVO.class, "专用bom正式表"); + return ResultVO.success(); + } + + /** + * 生成pbom + * @param rootBomRowId 顶级bom的rowId + * @return + */ + @PostMapping("convertToPbom") + @ApiOperation("生成pbom") + public ResultVO convertToPbom(@Valid @RequestBody @NotNull Long rootBomRowId) { + //TODO 生成pbom + return ResultVO.error("暂未实现"); + } + + /** + * 提交 + * @param bomRowId 顶级bom的rowId + * @return + */ + @PostMapping("submit") + @ApiOperation("提交") + public ResultVO submit(@Valid @RequestBody @NotNull Long bomRowId) { + dQBomService.submit(bomRowId); + return ResultVO.success(); + } + + /** + * 更新物料行 + * @param bomRowId bom的rowId + * @return + */ + @PostMapping("changeMaterial") + @ApiOperation("更新物料行") + public ResultVO changeMaterial(@Valid @RequestBody @NotNull Long bomRowId) { + //TODO 更新物料行 + return ResultVO.error("暂未实现"); + } + + @PostMapping("convertToSAP") + @ApiOperation("导入SAP") + public ResultVO convertToSAP(@Valid @RequestBody @NotNull Long rootBomRowId) { + //TODO 导入SAP + return ResultVO.error("暂未实现"); + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewDQbomParentMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewDQbomParentMapper.java index 1a4e121c..be0f433d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewDQbomParentMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewDQbomParentMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.product.bomnew.pojo.entity.BomNewDQbomParentEntity; import com.nflg.product.bomnew.pojo.query.BomNewDQbomPageQuery; import com.nflg.product.bomnew.pojo.vo.BomNewDQbomVO; +import com.nflg.product.bomnew.pojo.vo.DQbomExcelVO; import java.util.List; @@ -19,4 +20,8 @@ public interface BomNewDQbomParentMapper extends BaseMapper getChild(Long bomRowId); void resetBomExist(Long rowId); + + DQbomExcelVO getRootBomByRowId(Long rootBomRowId); + + List getChildren(Long bomRowId); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewDQbomChildEntity.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewDQbomChildEntity.java index 057ca1e1..0c4f6718 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewDQbomChildEntity.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewDQbomChildEntity.java @@ -101,6 +101,13 @@ public class BomNewDQbomChildEntity implements Serializable { @ApiModelProperty(value = "异常标记") private String exceptionTag; + /** + * 备注 + */ + @TableField(value = "remark") + @ApiModelProperty(value = "备注") + private String remark; + /** * 创建人名称 */ diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewDQbomParentEntity.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewDQbomParentEntity.java index d6184bee..4e677588 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewDQbomParentEntity.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewDQbomParentEntity.java @@ -177,13 +177,6 @@ public class BomNewDQbomParentEntity implements Serializable { @ApiModelProperty(value = "来源") private Integer source; - /** - * 备注 - */ - @TableField(value = "remark") - @ApiModelProperty(value = "备注") - private String remark; - /** * 修改时间 */ diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/DQbomExcelVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/DQbomExcelVO.java index 84b6b43a..5ac7dbd7 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/DQbomExcelVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/DQbomExcelVO.java @@ -32,7 +32,7 @@ public class DQbomExcelVO extends BaseImportExcelDTO { private BigDecimal num; @ExcelColumn("单位") - private String unit; + private String material_unit; @ExcelColumn("项目类别") private String projectType; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java index 246e65a2..34f6bb64 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java @@ -187,7 +187,7 @@ public class DQBomImportService { parent.setDrawingNo(data.getDrawingNo()); parent.setMaterialNo(data.getMaterialNo()); parent.setMaterialName(data.getMaterialName()); - parent.setMaterialUnit(data.getUnit()); + parent.setMaterialUnit(data.getMaterial_unit()); parent.setUnitWeight(data.getUnitWeight()); parent.setRootIs(parentRowIdMap.containsKey(data.getLevel() - 1) ? 0 : 1); parent.setUserRootIs(parentRowIdMap.containsKey(data.getLevel() - 1) ? 0 : 1); @@ -195,7 +195,7 @@ public class DQBomImportService { parent.setCreatedBy(SessionUtil.getUserCode()); parent.setCreatedName(SessionUtil.getRealName()); parent.setCreatedJob(userRoleService.technician() ? UserJobEnum.ENGINEER.getValue() : UserJobEnum.DESIGNER.getValue()); - parent.setRemark(data.getRemark()); + //parent.setRemark(data.getRemark()); // if (index == datas.size() - 1 || datas.get(index + 1).getLevel() <= data.getLevel()) { // parent.setBomExist(0); // } else { @@ -225,6 +225,7 @@ public class DQBomImportService { child.setCreatedName(SessionUtil.getRealName()); child.setCreatedBy(SessionUtil.getUserCode()); child.setProjectType(data.getProjectType()); + child.setRemark(data.getRemark()); children.add(child); } return Pair.of(parents, children); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java index 93364c6a..80fc9d5c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.bomnew.constant.DQBomStatusEnum; +import com.nflg.product.bomnew.constant.EbomEditStatusEnum; import com.nflg.product.bomnew.constant.UserJobEnum; import com.nflg.product.bomnew.pojo.entity.BomNewDQbomChildEntity; import com.nflg.product.bomnew.pojo.entity.BomNewDQbomParentEntity; @@ -16,6 +17,7 @@ import com.nflg.product.bomnew.pojo.query.BomNewDQbomSaveQuery; import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; import com.nflg.product.bomnew.pojo.vo.BomNewDQbomSaveVO; import com.nflg.product.bomnew.pojo.vo.BomNewDQbomVO; +import com.nflg.product.bomnew.pojo.vo.DQbomExcelVO; import com.nflg.product.bomnew.util.BomUtil; import com.nflg.product.bomnew.util.VUtils; import lombok.extern.slf4j.Slf4j; @@ -75,6 +77,10 @@ public class DQBomService { }); } + /** + * 异常检查 + * @param rootRowIds 根节点id列表 + */ public void checkException(List rootRowIds) { BomNewDQbomExceptionCheckService checkService = new BomNewDQbomExceptionCheckService(); rootRowIds.forEach(checkService::check); @@ -196,4 +202,24 @@ public class DQBomService { }); } } + + public void submit(Long bomRowId) { + dQBomParentService.lambdaUpdate() + .eq(BomNewDQbomParentEntity::getRowId, bomRowId) + .set(BomNewDQbomParentEntity::getEditStatus, EbomEditStatusEnum.HANDLER_FINISHED.getValue()) + .set(BomNewDQbomParentEntity::getModifyTime, LocalDateTime.now()) + .update(); + checkException(CollUtil.toList(bomRowId)); + } + + public List exportBom(Long rootBomRowId) { + DQbomExcelVO root = dQBomParentService.getBaseMapper().getRootBomByRowId(rootBomRowId); + VUtils.isTure(Objects.isNull(root)).throwMessage("数据不存在"); + + List datas = new ArrayList<>(); + datas.add(root); + List children = dQBomParentService.getBaseMapper().getChildren(rootBomRowId); + + return datas; + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewDQbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewDQbomParentMapper.xml index 3dc8446c..46d6a31c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewDQbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewDQbomParentMapper.xml @@ -13,19 +13,15 @@ - - - - @@ -70,4 +66,38 @@ SET p.bom_exist = (IF(EXISTS (SELECT 1 FROM t_bom_new_dqbom_child WHERE parent_row_id = p.row_id), 1, 0)) WHERE p.row_id = #{rowId}; + + + + \ No newline at end of file