diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java index 0c39f2a..cd975d3 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java @@ -102,7 +102,10 @@ public interface ErrorCodeConstants { ErrorCode PURCHASE_ORDER_MAKE_NOT_EXISTS = new ErrorCode(1_008_007, "采购单主不存在"); ErrorCode PURCHASE_ORDER_MAKE_DETAIL_NOT_EXISTS = new ErrorCode(1_008_008, "采购单明细不存在"); ErrorCode PURCHASE_ORDER_MAKE_DETAIL_IS_EXISTS = new ErrorCode(1_008_009, "存在物料清单已生成采购订单,请刷新界面!"); - ErrorCode PURCHASE_ORDER_MAKE_DETAIL_IS_STORAGE = new ErrorCode(1_008_010, "存在物料清单已转库存,请刷新界面!"); + ErrorCode PURCHASE_ORDER_MAKE_DETAIL_IS_STORAGE = new ErrorCode(1_008_010, "存在物料清单已转库存,请刷新界面!"); + ErrorCode PURCHASE_ORDER_MAKE_DETAIL_MATERIAL_NOT_EXISTS = new ErrorCode(1_008_011, "物料数据不能为空,请选择物料后重试!"); + ErrorCode PURCHASE_ORDER_MAKE_DETAIL_BOOM_DETAIL_IS_EXISTS = new ErrorCode(1_008_012, "BOM明细ID不能为空!"); + ErrorCode PURCHASE_ORDER_MAKE_DETAIL_PROJECTSUB_DETAIL_NOT_EXISTS = new ErrorCode(1_008_013, "子项目ID不能为空!"); /************生产管理***********/ ErrorCode TASK_DISPATCH_NOT_EXISTS = new ErrorCode(1_009_001, "派工单不存在"); ErrorCode TASK_REPORT_NOT_EXISTS = new ErrorCode(1_009_002, "任务报工不存在"); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/MaterialController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/MaterialController.java index dd964d8..af274b2 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/MaterialController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/material/MaterialController.java @@ -124,9 +124,8 @@ public class MaterialController { } @GetMapping({"/getbzjList"}) @Operation(summary = "TODO:获取物料标准件信息列表", description = "只包含被开启的物料,主要用于前端的下拉选项") - public CommonResult> > getbzjList() { - List> list = materialService.getbzjList(); - // 拼接数据 - return success(list); + public CommonResult > getbzjList(@Valid MaterialPageReqVO pageReqVO) { + PageResult pageResult = materialService.getbzjList(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialRespVO.class)); } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/MaterialPlanController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/MaterialPlanController.java index 34557a0..ae2b3c7 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/MaterialPlanController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/MaterialPlanController.java @@ -199,4 +199,18 @@ public class MaterialPlanController { public CommonResult delMaterial(@RequestParam("id") Long id) { return materialPlanService.delMaterial(id); } + +// @PostMapping("/getPartPurchasePages") +// @Operation(summary = "获得零件采购分页") +// public CommonResult> getPartPurchasePages(@Valid @RequestBody MaterialPlanPageReqVO pageReqVO) { +// PageResult pageResult = materialPlanService.getPartPurchasePages(pageReqVO); +// return success(pageResult); +// } + + @GetMapping("/getPartPurchasePages") + @Operation(summary = "获得零件采购分页") + public CommonResult> getPartPurchasePages() { + String a ="asdij"; + return null; + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanPageReqVO.java index 748e764..6b6f6cb 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanPageReqVO.java @@ -69,5 +69,11 @@ public class MaterialPlanPageReqVO extends PageParam { @Schema(description = "制单日期") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] matPlanDate; + @Schema(description = "物料名称") + private String matName; + @Schema(description = "零件采购需求状态(0-待送审 1 -已送审 2-已批准 3-已打回)") + private Integer mplanStatus; + @Schema(description = "责任人") + private String duEmpName; } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/MaterialPlanBoomSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/MaterialPlanBoomSaveReqVO.java index 7a2ff1a..920885a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/MaterialPlanBoomSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplanboom/vo/MaterialPlanBoomSaveReqVO.java @@ -21,12 +21,13 @@ public class MaterialPlanBoomSaveReqVO { @NotNull(message = "物料需求计划id不能为空") private Long projectMaterialPlanId; - @Schema(description = "工艺boom明细id,零件类型:加工件", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "工艺boom明细id,零件类型:加工件不能为空") + @Schema(description = "工艺boom明细id,零件类型:加工件") +// @NotNull(message = "工艺boom明细id,零件类型:加工件不能为空") private Long boomDetailId; - @Schema(description = "订单子项目id", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "订单子项目id不能为空") +// @Schema(description = "订单子项目id", requiredMode = Schema.RequiredMode.REQUIRED) +// @NotNull(message = "订单子项目id不能为空") + @Schema(description = "订单子项目id") private Long projectPlanSubId; @Schema(description = "需求数量") diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/material/MaterialDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/material/MaterialDO.java index efdfeb7..3edde13 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/material/MaterialDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/material/MaterialDO.java @@ -90,6 +90,8 @@ public class MaterialDO extends TenantBaseDO { * 材质id */ private Long compositionId; + @TableField(exist = false) + private String compositionName; /** * 销项税率或进项税率 (%) */ diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplanboom/MaterialPlanBoomDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplanboom/MaterialPlanBoomDO.java index 29f06e5..dc79f14 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplanboom/MaterialPlanBoomDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplanboom/MaterialPlanBoomDO.java @@ -161,4 +161,15 @@ public class MaterialPlanBoomDO extends BaseDO { private String customerBriefName; @TableField(exist = false) private String boomArriveDates; + + /** + * 单位 + */ + @TableField(exist = false) + private String unit; + /** + * 责任人姓名 + */ + @TableField(exist = false) + private String duEmpName; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordermakedetail/PurchaseOrderMakeDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordermakedetail/PurchaseOrderMakeDetailDO.java index 744416e..fe21389 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordermakedetail/PurchaseOrderMakeDetailDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordermakedetail/PurchaseOrderMakeDetailDO.java @@ -154,6 +154,7 @@ public class PurchaseOrderMakeDetailDO extends BaseDO { /** * 物料id */ + @TableField(exist = false) private Long materialId; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseorderno/PurchaseOrderNoDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseorderno/PurchaseOrderNoDO.java index 14cf877..49f3be6 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseorderno/PurchaseOrderNoDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseorderno/PurchaseOrderNoDO.java @@ -136,6 +136,8 @@ public class PurchaseOrderNoDO extends BaseDO { @TableField(exist = false) private String username; @TableField(exist = false) + private String auditorName; + @TableField(exist = false) private String userMobile; @TableField(exist = false) private String contactName; @@ -150,6 +152,10 @@ public class PurchaseOrderNoDO extends BaseDO { @TableField(exist = false) private Integer receivingStatus1; @TableField(exist = false) + private BigDecimal estimatedPriceSum; + @TableField(exist = false) + private BigDecimal purchaseAmountSum; + @TableField(exist = false) private List PurchaseOrderNoDetailList; /** * 是否打印 diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordernodetail/PurchaseOrderNoDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordernodetail/PurchaseOrderNoDetailDO.java index a6a3dcd..b1bdfbd 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordernodetail/PurchaseOrderNoDetailDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/purchaseordernodetail/PurchaseOrderNoDetailDO.java @@ -170,6 +170,8 @@ public class PurchaseOrderNoDetailDO extends BaseDO { */ private Long procedureId; @TableField(exist = false) + private String blueprintNo; + @TableField(exist = false) private Long matId; @TableField(exist = false) private String matName; @@ -184,6 +186,8 @@ public class PurchaseOrderNoDetailDO extends BaseDO { @TableField(exist = false) private BigDecimal matRest; @TableField(exist = false) + private BigDecimal unitPrice; + @TableField(exist = false) private BigDecimal requireAmount; @TableField(exist = false) private LocalDateTime requireArriveTime; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/material/MaterialMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/material/MaterialMapper.java index 21d5132..3ded47b 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/material/MaterialMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/material/MaterialMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.module.heli.controller.admin.material.vo.MaterialPageReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.pn.PnDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier.SupplierDO; @@ -31,6 +32,15 @@ public interface MaterialMapper extends BaseMapperX { query.eq(code != null, MaterialDO::getCode, code); return selectOne( query); } + //材质为空时查不出来数据注释 +// default MaterialDO selectById(Long id) { +// MPJLambdaWrapper query = new MPJLambdaWrapper<>(); +// query.selectAll(MaterialDO.class) +// .select("c.name as compositionName") +// .leftJoin(CompositionDO.class,"c",CompositionDO::getId,MaterialDO::getCompositionId); +// query.eq(MaterialDO::getId, id); +// return selectOne( query); +// } default MaterialDO selectMaterial(String code) { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); @@ -56,6 +66,7 @@ public interface MaterialMapper extends BaseMapperX { .orderByDesc(MaterialDO::getId); query.like(!StringUtils.isEmpty(reqVO.getName()), MaterialDO::getName, reqVO.getName()) .like(!StringUtils.isEmpty(reqVO.getCode()), MaterialDO::getCode, reqVO.getCode()) + .like(!StringUtils.isEmpty(reqVO.getShortName()), MaterialDO::getShortName, reqVO.getShortName()) .eq(!StringUtils.isEmpty(reqVO.getMaterialType()), MaterialDO::getMaterialType, reqVO.getMaterialType()) .eq(reqVO.getStatus() != null, MaterialDO::getStatus, reqVO.getStatus()) .eq(true,MaterialDO::getVirtualPart, YesOrNoEnum.N.name()) @@ -88,8 +99,35 @@ public interface MaterialMapper extends BaseMapperX { } - default List> getbzjList(){ - return selectMaps(new QueryWrapper().select("id", "name","short_name","code","material_type","spec","unit","brand").eq("material_type", 5)); + default PageResult getbzjList(MaterialPageReqVO reqVO){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(MaterialDO.class) + .select("s.name as mainSupplierName") + .leftJoin(SupplierDO.class, "s", SupplierDO::getId, MaterialDO::getMainSupplierId) + .disableSubLogicDel() + .orderByDesc(MaterialDO::getId); + query.like(!StringUtils.isEmpty(reqVO.getName()), MaterialDO::getName, reqVO.getName()) + .like(!StringUtils.isEmpty(reqVO.getSpec()), MaterialDO::getSpec, reqVO.getSpec()) + .like(!StringUtils.isEmpty(reqVO.getCode()), MaterialDO::getCode, reqVO.getCode()) + .like(!StringUtils.isEmpty(reqVO.getShortName()), MaterialDO::getShortName, reqVO.getShortName()) + .eq(!StringUtils.isEmpty(reqVO.getMaterialType()), MaterialDO::getMaterialType, reqVO.getMaterialType()) + .eq(reqVO.getStatus() != null, MaterialDO::getStatus, reqVO.getStatus()) + .eq(true,MaterialDO::getVirtualPart, YesOrNoEnum.N.name()) + .apply(!StringUtils.isEmpty(reqVO.getCodeAndName()), " (t.name like {0} or t.code like {0})", "%"+reqVO.getCodeAndName()+"%"); + query.eq(MaterialDO::getTenantId,2); + if (!StringUtils.isEmpty(reqVO.getInventoryName())) { + query.and(qw -> + qw.like("t.name", reqVO.getInventoryName()) + .or() + .like("t.code", reqVO.getInventoryName()) + ); + } +// if(!StringUtils.isEmpty(reqVO.getCodeAndName())){ +// query.like(MaterialDO::getName, reqVO.getCodeAndName()).or().like(MaterialDO::getCode, reqVO.getCodeAndName()); +// +// } + + return selectPage(reqVO, query); } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java index 6ef13c3..ae708b8 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/materialplanboom/MaterialPlanBoomMapper.java @@ -64,7 +64,9 @@ public interface MaterialPlanBoomMapper extends BaseMapperX query.selectAll(MaterialPlanBoomDO.class) // .select("mat.id as matId","mat.name as matName","mat.code as matCode","mat.spec as matSpec","mat.unit as matUnit","mat.material_type as matType") - .select("b.material_name as matName","m.code as matCode","b.spec as matSpec","b.unit as matUnit","b.blueprint_no as blueprintNo") + // .select("b.material_name as matName","m.code as matCode","b.spec as matSpec","b.unit as matUnit","b.blueprint_no as blueprintNo") + .select("b.spec as matSpec","b.unit as matUnit","b.blueprint_no as blueprintNo") + .select("bc.`name` as compositionName","b.`composition_id` as compositionId") .select("ma.brief as customerBriefName,ma.project_name as projectName,ma.name as projectSubName,ma.project_id as projectId") .leftJoin(MaterialPlanDO.class,"ma",MaterialPlanDO::getId, MaterialPlanBoomDO::getProjectMaterialPlanId) @@ -73,7 +75,7 @@ public interface MaterialPlanBoomMapper extends BaseMapperX .leftJoin(CompositionDO.class, "bc", CompositionDO::getId, ProcessBomDetailDO::getCompositionId) .leftJoin(ProjectOrderDO.class,"po",ProjectOrderDO::getId,MaterialPlanDO::getProjectId) .leftJoin(AdminUserDO.class,"u",AdminUserDO::getId, MaterialPlanBoomDO::getDuEmpId) - .leftJoin(MaterialDO.class,"m",MaterialDO::getId,MaterialPlanBoomDO::getMaterialId) +// .leftJoin(MaterialDO.class,"m",MaterialDO::getId,MaterialPlanBoomDO::getMaterialId) .eq(MaterialPlanDO::getMatType,0) .in(MaterialPlanBoomDO::getIsPurYard,Arrays.asList(0,5)) .disableSubLogicDel() @@ -170,13 +172,13 @@ public interface MaterialPlanBoomMapper extends BaseMapperX default PageResult getStandardPartsPages(MaterialPlanPageReqVO pageReqVO){ MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(MaterialPlanBoomDO.class) - .select("p.project_name as projectName","p.project_id as projectId","p.name as projectSubName","mat.material_id as matId","m.code as materialName") + .select("p.project_name as projectName","p.project_id as projectId","p.name as projectSubName","mat.material_id as matId","m.code as materialName","m.code as matCode") .select("d.spec as boomSpec","d.blueprint_no as blueprintNo","d.unit as boomUnit","DATE_FORMAT(t.boom_arrive_date, '%Y-%m-%d') AS boomArriveDates") .leftJoin(MaterialPlanDO.class, "p", MaterialPlanDO::getId,MaterialPlanBoomDO::getProjectMaterialPlanId) .leftJoin(ProjectOrderDO.class,"b",ProjectOrderDO::getId,MaterialPlanDO::getProjectId) .leftJoin(ProcessBomDetailDO.class,"d",ProcessBomDetailDO::getId,MaterialPlanBoomDO::getBoomDetailId) - .leftJoin("project_mat_req_detail mat on (t.id=mat.project_material_plan_detail_id and mat.deleted=0)") - .leftJoin(MaterialDO.class,"m",MaterialDO::getId,MatReqDetailDO::getMaterialId) + .leftJoin("project_mat_req_detail mat on (t.id=mat.project_material_plan_detail_id and mat.deleted=0 and mat.tenant_id = 2)") + .leftJoin("base_material m ON (m.id = mat.material_id and m.tenant_id = 2) ") .disableSubLogicDel() .groupBy(MaterialPlanBoomDO::getId) .orderByDesc(MaterialPlanBoomDO::getCreateTime); @@ -190,6 +192,35 @@ public interface MaterialPlanBoomMapper extends BaseMapperX return selectPage(pageReqVO, query); } + + default PageResult getPartsPages(MaterialPlanPageReqVO pageReqVO){ + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(MaterialPlanBoomDO.class) + .select("p.project_name as projectName","p.name as projectSubName") + .select("d.blueprint_no as blueprintNo","d.unit as unit") + .select("a.nickname as duEmpName","c.name as procedureName","e.name as compositionName") + .select(MaterialPlanDO::getBrief) + .leftJoin(MaterialPlanDO.class, "p", MaterialPlanDO::getId,MaterialPlanBoomDO::getProjectMaterialPlanId) + .leftJoin(ProcessBomDetailDO.class,"d",ProcessBomDetailDO::getId,MaterialPlanBoomDO::getBoomDetailId) + .leftJoin(AdminUserDO.class, "a", AdminUserDO::getId, MaterialPlanBoomDO::getDuEmpId) + .leftJoin(ProcedureDO.class, "c", ProcedureDO::getId, MaterialPlanBoomDO::getProcedureId) + .leftJoin(CompositionDO.class, "e", CompositionDO::getId, ProcessBomDetailDO::getCompositionId) + .disableSubLogicDel(); + query + .like(!StringUtils.isEmpty(pageReqVO.getProjectName()),MaterialPlanDO::getProjectName, pageReqVO.getProjectName()) + .like(!StringUtils.isEmpty(pageReqVO.getProjectSubName()), MaterialPlanDO::getName, pageReqVO.getProjectSubName()) + .like(!StringUtils.isEmpty(pageReqVO.getMaterialName()), MaterialPlanBoomDO::getMatName, pageReqVO.getMaterialName()) + .like(!StringUtils.isEmpty(pageReqVO.getMatName()), MaterialPlanBoomDO::getMatName, pageReqVO.getMatName()) + .like(!StringUtils.isEmpty(pageReqVO.getProjectCode()), ProjectOrderDO::getCode, pageReqVO.getProjectCode()) + .like(!StringUtils.isEmpty(pageReqVO.getDuEmpName()), AdminUserDO::getNickname, pageReqVO.getDuEmpName()) + .eq(!StringUtils.isEmpty(pageReqVO.getMatType()), MaterialPlanDO::getMatType, pageReqVO.getMatType()) + .eq(!StringUtils.isEmpty(pageReqVO.getStatus()), MaterialPlanBoomDO::getIsPurYard, pageReqVO.getStatus()) + .eq(Objects.nonNull(pageReqVO.getMplanStatus()), MaterialPlanBoomDO::getMplanStatus, pageReqVO.getMplanStatus()) + .eq(Objects.nonNull(pageReqVO.getProjectMaterialPlanNo()), MaterialPlanDO::getProjectMaterialPlanNo, pageReqVO.getProjectMaterialPlanNo()); + return selectPage(pageReqVO, query); + } + + // default PageResult selectPage(MaterialPlanBoomPageReqVO reqVO) { // return selectPage(reqVO, new LambdaQueryWrapperX() // .eqIfPresent(MaterialPlanBoomDO::getId, reqVO.getId()) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermake/PurchaseOrderMakeMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermake/PurchaseOrderMakeMapper.java index 730d424..c51fc36 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermake/PurchaseOrderMakeMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermake/PurchaseOrderMakeMapper.java @@ -2,10 +2,14 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake; import java.util.*; +import cn.smallbun.screw.core.util.ArrayUtils; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier.SupplierDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.*; @@ -43,4 +47,50 @@ public interface PurchaseOrderMakeMapper extends BaseMapperX selectJoinPage(PurchaseOrderMakePageReqVO reqVO) { + // 引入 MPJLambdaWrapper(MyBatis-Plus-Join 提供) + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + +// 构建查询条件 + wrapper + .selectAll(PurchaseOrderMakeDO.class) // 查询主表所有字段 + + .leftJoin(PurchaseOrderMakeDetailDO.class, "a", PurchaseOrderMakeDetailDO::getPurchaseOrderId, PurchaseOrderMakeDO::getId) + .like(Objects.nonNull(reqVO.getProjectSubName()), PurchaseOrderMakeDetailDO::getName, reqVO.getProjectSubName()) + + .leftJoin(SupplierDO.class, "b", SupplierDO::getId, PurchaseOrderMakeDetailDO::getSupplierId) + .like(Objects.nonNull(reqVO.getSupplierName()), SupplierDO::getName, reqVO.getSupplierName()) + + // eqIfPresent 替换为 eq 方法,并结合 Objects.nonNull 判断 + .eq(Objects.nonNull(reqVO.getPurchaseNo()), PurchaseOrderMakeDO::getPurchaseNo, reqVO.getPurchaseNo()) + .eq(Objects.nonNull(reqVO.getContractNo()), PurchaseOrderMakeDO::getContractNo, reqVO.getContractNo()) + .eq(Objects.nonNull(reqVO.getPurchaseType()), PurchaseOrderMakeDO::getPurchaseType, reqVO.getPurchaseType()) + .eq(Objects.nonNull(reqVO.getGoodsType()), PurchaseOrderMakeDO::getGoodsType, reqVO.getGoodsType()) + .eq(Objects.nonNull(reqVO.getCurrencyType()), PurchaseOrderMakeDO::getCurrencyType, reqVO.getCurrencyType()) + .eq(Objects.nonNull(reqVO.getTaxRatio()), PurchaseOrderMakeDO::getTaxRatio, reqVO.getTaxRatio()) + .eq(Objects.nonNull(reqVO.getEstimatedPrice()), PurchaseOrderMakeDO::getEstimatedPrice, reqVO.getEstimatedPrice()) + .eq(Objects.nonNull(reqVO.getActualPrice()), PurchaseOrderMakeDO::getActualPrice, reqVO.getActualPrice()) + .eq(Objects.nonNull(reqVO.getStatus()), PurchaseOrderMakeDO::getStatus, reqVO.getStatus()) + .eq(Objects.nonNull(reqVO.getSubmitUserId()), PurchaseOrderMakeDO::getSubmitUserId, reqVO.getSubmitUserId()) + + .eq(Objects.nonNull(reqVO.getAuditor()), PurchaseOrderMakeDO::getAuditor, reqVO.getAuditor()) + + .eq(Objects.nonNull(reqVO.getDescription()), PurchaseOrderMakeDO::getDescription, reqVO.getDescription()) + + .eq(Objects.nonNull(reqVO.getProjectId()), PurchaseOrderMakeDO::getProjectId, reqVO.getProjectId()) + .eq(Objects.nonNull(reqVO.getProjectPlanId()), PurchaseOrderMakeDO::getProjectPlanId, reqVO.getProjectPlanId()) + .eq(Objects.nonNull(reqVO.getCustomerId()), PurchaseOrderMakeDO::getCustomerId, reqVO.getCustomerId()) + .eq(Objects.nonNull(reqVO.getBrief()), PurchaseOrderMakeDO::getBrief, reqVO.getBrief()) + + // likeIfPresent 替换为 like + .like(Objects.nonNull(reqVO.getProjectName()), PurchaseOrderMakeDO::getProjectName, reqVO.getProjectName()) + + .eq(Objects.nonNull(reqVO.getProjectNameSim()), PurchaseOrderMakeDO::getProjectNameSim, reqVO.getProjectNameSim()) + .orderByDesc(PurchaseOrderMakeDO::getId); + +// 使用 selectJoinPage 进行分页查询 + return selectJoinPage(reqVO, PurchaseOrderMakeDO.class, wrapper); + + } + } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermakedetail/PurchaseOrderMakeDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermakedetail/PurchaseOrderMakeDetailMapper.java index 9e64734..ec84a43 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermakedetail/PurchaseOrderMakeDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermakedetail/PurchaseOrderMakeDetailMapper.java @@ -38,10 +38,9 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX selectPage(PurchaseOrderMakeDetailPageReqVO reqVO) { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(PurchaseOrderMakeDetailDO.class) - .select("b.material_name as boomName","m.code as boomCode","b.spec as boomSpec","b.unit as boomUnit") + .select("b.material_name as boomName","b.spec as boomSpec","b.unit as boomUnit") // .select("pom.purchase_no as purchaseNo") .leftJoin(ProcessBomDetailDO.class,"b",ProcessBomDetailDO::getId,PurchaseOrderMakeDetailDO::getBoomDetailId) - .leftJoin(MaterialDO.class,"m",MaterialDO::getId,PurchaseOrderMakeDetailDO::getMaterialId) .leftJoin(ProjectOrderSubDO.class,"pos",ProjectOrderSubDO::getId,PurchaseOrderMakeDetailDO::getProjectPlanSubId) .leftJoin(ProjectOrderDO.class,"po",ProjectOrderDO::getId, ProjectOrderSubDO::getProjectOrderId) .leftJoin(PurchaseOrderMakeDO.class,"pom",PurchaseOrderMakeDO::getId,PurchaseOrderMakeDetailDO::getPurchaseOrderId) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordernodetail/PurchaseOrderNoDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordernodetail/PurchaseOrderNoDetailMapper.java index 35b9bac..f550741 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordernodetail/PurchaseOrderNoDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordernodetail/PurchaseOrderNoDetailMapper.java @@ -58,7 +58,7 @@ public interface PurchaseOrderNoDetailMapper extends BaseMapperX query = new MPJLambdaWrapper<>(); query.selectAll(PurchaseOrderNoDetailDO.class) - .select("t.composition as compositionName","t.purchase_rem_amount as purchaseRemAmounts","mat.code as matCode","pro.name as procedureName") + .select("t.composition as compositionName","t.purchase_rem_amount as purchaseRemAmounts","mat.code as matCode","pro.name as procedureName","bom.blueprint_no as blueprintNo") .leftJoin(PurchaseOrderNoDO.class, "pb", PurchaseOrderNoDO::getId, PurchaseOrderBoomDO::getPurchaseOrderId) .leftJoin(ProcessBomDetailDO.class,"bom", ProcessBomDetailDO::getId, PurchaseOrderNoDetailDO::getBoomDetailId) .leftJoin(MaterialPlanBoomDO.class,"plan", MaterialPlanBoomDO::getId, PurchaseOrderNoDetailDO::getProjectMaterialPlanBoomId) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialService.java index a6cf4d5..d97b0be 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialService.java @@ -59,5 +59,7 @@ public interface MaterialService { void importExcel(List materialExcelVOList, Boolean updateSupport); - List> getbzjList(); + + PageResult getbzjList(MaterialPageReqVO pageReqVO); + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialServiceImpl.java index 7462353..6cc7bc9 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/material/MaterialServiceImpl.java @@ -205,8 +205,9 @@ public class MaterialServiceImpl implements MaterialService { } @Override - public List> getbzjList() { - return materialMapper.getbzjList(); } + public PageResult getbzjList(MaterialPageReqVO pageReqVO) { + return materialMapper.getbzjList( pageReqVO); + } private void checkData(List materialExcelVOList) { // 基础校验 diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanService.java index 734b85d..a358f0a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanService.java @@ -80,4 +80,6 @@ public interface MaterialPlanService { Boolean supplement(List list); CommonResult delMaterial(Long id); + + PageResult getPartPurchasePages(MaterialPlanPageReqVO pageReqVO); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java index ed7e0cb..434af8f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java @@ -422,7 +422,12 @@ public class MaterialPlanServiceImpl implements MaterialPlanService { queryWrapper.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, id); materialPlanBoomMapper.delete(queryWrapper); materialPlanMapper.deleteById(id); - return null; + return CommonResult.success( true); + } + + @Override + public PageResult getPartPurchasePages(MaterialPlanPageReqVO pageReqVO) { + return materialPlanBoomMapper.getPartsPages(pageReqVO); } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomServiceImpl.java index 7242542..76165d3 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplanboom/MaterialPlanBoomServiceImpl.java @@ -114,6 +114,12 @@ public class MaterialPlanBoomServiceImpl implements MaterialPlanBoomService { HashMap planSubMap = new HashMap<>(); for (MaterialPlanBoomDO dp : materialPlanBoomDOList) { PurchaseOrderMakeDetailDO makeDetailDO = new PurchaseOrderMakeDetailDO(); + if (dp.getBoomDetailId() == null){ + throw exception(PURCHASE_ORDER_MAKE_DETAIL_BOOM_DETAIL_IS_EXISTS); + } + if(dp.getProjectPlanSubId() == null){ + throw exception(PURCHASE_ORDER_MAKE_DETAIL_PROJECTSUB_DETAIL_NOT_EXISTS); + } makeDetailDO.setBoomDetailId(dp.getBoomDetailId()); makeDetailDO.setBoomName(dp.getMatName()); makeDetailDO.setBoomSpec(dp.getMatSpec()); @@ -178,7 +184,8 @@ public class MaterialPlanBoomServiceImpl implements MaterialPlanBoomService { serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); // 入库前缀 - purchaseOrderMakeDO.setPurchaseNo(PURCHASE_ORDER.getCode(serialNumberDO.getSerialNumber().toString())); + String code = PURCHASE_ORDER.getCode(serialNumberDO.getSerialNumber().toString()); + purchaseOrderMakeDO.setPurchaseNo(code); purchaseOrderMakeDO.setGoodsType(1); purchaseOrderMakeDO.setStatus(1); purchaseOrderMakeDO.setSubmitUserId(loginUserId); @@ -206,7 +213,7 @@ public class MaterialPlanBoomServiceImpl implements MaterialPlanBoomService { dp.setMplanStatus(1); dp.setProjectPurchaseOrderMakeId(purchaseOrderMakeDO.getId()); dp.setProjectPurchaseOrderMakeDetailId(purchaseOrderMakeDetailDO.getId()); - dp.setPurchaseNo(purchaseOrderMakeDO.getPurchaseNo()); + dp.setPurchaseNo(code); } } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderServiceImpl.java index a4e1998..5251bdf 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderServiceImpl.java @@ -133,7 +133,7 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{ List list= purchaseOrderMakeDetailMapper.selectList("purchase_order_id", updateReqVO.getId()); list.forEach(detailDO -> { - purchaseOrderNoDetailMapper.deleteById(detailDO.getId()); + purchaseOrderNoDetailMapper.deleteById(detailDO); }); List materialPlanBoomDOs= materialPlanBoomMapper.selectList("project_purchase_order_make_id", updateReqVO.getId()); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java index 27ddf4e..9fdd3ae 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processbom/ProcessBomServiceImpl.java @@ -402,8 +402,13 @@ public class ProcessBomServiceImpl implements ProcessBomService { List processBomDetails = updateReqVO.getProcessBomDetails(); //不论怎么样,都要校验这次的数据它图号是否唯一、非标准件的名称是否重复,规格是否为空 if (CollUtil.isNotEmpty(processBomDetails)){ + for (ProcessBomDetailDO processBomDetail : processBomDetails) { + if (processBomDetail.getId() == null){ + processBomDetail.setDeleted(false); + } + } //校验这次的数据它图号是否唯一 - Map> groupedByBluePrintfNo = processBomDetails.stream().collect(Collectors.groupingBy(vo -> vo.getBlueprintNo() == null ? "NULL" : vo.getBlueprintNo())); + Map> groupedByBluePrintfNo = processBomDetails.stream().filter(e -> e.getDeleted() == false).collect(Collectors.groupingBy(vo -> vo.getBlueprintNo() == null ? "NULL" : vo.getBlueprintNo())); groupedByBluePrintfNo.forEach((printNo,list)->{ if (printNo.equals("NULL")){ throw exception(PROCESS_BOM_DETAIL_BLUE_PRINT_NO_NOT_EXISTS); @@ -439,6 +444,14 @@ public class ProcessBomServiceImpl implements ProcessBomService { // processBomDetail.setMaterialCode(""); // } // } + }else { + if(operateTypeEnum == OperateTypeEnum.SUBMIT){ + if (processBomDetail.getSpec() == null){ + throw exception(new ErrorCode(1_006_9998,processBomDetail.getMaterialName()+"规格型号不能为空,请确认!")); + + } + } + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordermake/PurchaseOrderMakeServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordermake/PurchaseOrderMakeServiceImpl.java index e89822d..2cfe569 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordermake/PurchaseOrderMakeServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordermake/PurchaseOrderMakeServiceImpl.java @@ -1,74 +1,74 @@ -package com.chanko.yunxi.mes.module.heli.service.purchaseordermake; - -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; - -import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake.PurchaseOrderMakeMapper; - -import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; - -/** - * 采购单主 Service 实现类 - * - * @author 管理员 - */ -@Service -@Validated -public class PurchaseOrderMakeServiceImpl implements PurchaseOrderMakeService { - - @Resource - private PurchaseOrderMakeMapper purchaseOrderMakeMapper; - - @Override - public Long createPurchaseOrderMake(PurchaseOrderMakeSaveReqVO createReqVO) { - // 插入 - PurchaseOrderMakeDO purchaseOrderMake = BeanUtils.toBean(createReqVO, PurchaseOrderMakeDO.class); - purchaseOrderMakeMapper.insert(purchaseOrderMake); - // 返回 - return purchaseOrderMake.getId(); - } - - @Override - public void updatePurchaseOrderMake(PurchaseOrderMakeSaveReqVO updateReqVO) { - // 校验存在 - validatePurchaseOrderMakeExists(updateReqVO.getId()); - // 更新 - PurchaseOrderMakeDO updateObj = BeanUtils.toBean(updateReqVO, PurchaseOrderMakeDO.class); - purchaseOrderMakeMapper.updateById(updateObj); - } - - @Override - public void deletePurchaseOrderMake(Long id) { - // 校验存在 - validatePurchaseOrderMakeExists(id); - // 删除 - purchaseOrderMakeMapper.deleteById(id); - } - - private void validatePurchaseOrderMakeExists(Long id) { - if (purchaseOrderMakeMapper.selectById(id) == null) { - throw exception(PURCHASE_ORDER_MAKE_NOT_EXISTS); - } - } - - @Override - public PurchaseOrderMakeDO getPurchaseOrderMake(Long id) { - return purchaseOrderMakeMapper.selectById(id); - } - - @Override - public PageResult getPurchaseOrderMakePage(PurchaseOrderMakePageReqVO pageReqVO) { - return purchaseOrderMakeMapper.selectPage(pageReqVO); - } - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.service.purchaseordermake; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; + +import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake.PurchaseOrderMakeMapper; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; + +/** + * 采购单主 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class PurchaseOrderMakeServiceImpl implements PurchaseOrderMakeService { + + @Resource + private PurchaseOrderMakeMapper purchaseOrderMakeMapper; + + @Override + public Long createPurchaseOrderMake(PurchaseOrderMakeSaveReqVO createReqVO) { + // 插入 + PurchaseOrderMakeDO purchaseOrderMake = BeanUtils.toBean(createReqVO, PurchaseOrderMakeDO.class); + purchaseOrderMakeMapper.insert(purchaseOrderMake); + // 返回 + return purchaseOrderMake.getId(); + } + + @Override + public void updatePurchaseOrderMake(PurchaseOrderMakeSaveReqVO updateReqVO) { + // 校验存在 + validatePurchaseOrderMakeExists(updateReqVO.getId()); + // 更新 + PurchaseOrderMakeDO updateObj = BeanUtils.toBean(updateReqVO, PurchaseOrderMakeDO.class); + purchaseOrderMakeMapper.updateById(updateObj); + } + + @Override + public void deletePurchaseOrderMake(Long id) { + // 校验存在 + validatePurchaseOrderMakeExists(id); + // 删除 + purchaseOrderMakeMapper.deleteById(id); + } + + private void validatePurchaseOrderMakeExists(Long id) { + if (purchaseOrderMakeMapper.selectById(id) == null) { + throw exception(PURCHASE_ORDER_MAKE_NOT_EXISTS); + } + } + + @Override + public PurchaseOrderMakeDO getPurchaseOrderMake(Long id) { + return purchaseOrderMakeMapper.selectById(id); + } + + @Override + public PageResult getPurchaseOrderMakePage(PurchaseOrderMakePageReqVO pageReqVO) { + return purchaseOrderMakeMapper.selectJoinPage(pageReqVO); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordermakedetail/PurchaseOrderMakeDetailServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordermakedetail/PurchaseOrderMakeDetailServiceImpl.java index 434443f..516de5c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordermakedetail/PurchaseOrderMakeDetailServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordermakedetail/PurchaseOrderMakeDetailServiceImpl.java @@ -1,11 +1,15 @@ package com.chanko.yunxi.mes.module.heli.service.purchaseordermakedetail; import cn.hutool.core.collection.CollUtil; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorder.PurchaseOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.composition.CompositionMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake.PurchaseOrderMakeMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.PurchaseOrderNoDetailMapper; @@ -53,7 +57,10 @@ public class PurchaseOrderMakeDetailServiceImpl implements PurchaseOrderMakeDeta private PurchaseOrderNoDetailMapper purchaseOrderNoDetailMapper; @Resource private PurchaseOrderMakeMapper purchaseOrderMakeMapper; - + @Resource + private MaterialMapper materialMapper; + @Resource + private CompositionMapper compositionMapper; @Override public Long createPurchaseOrderMakeDetail(PurchaseOrderMakeDetailSaveReqVO createReqVO) { // 插入 @@ -75,7 +82,8 @@ public class PurchaseOrderMakeDetailServiceImpl implements PurchaseOrderMakeDeta serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); // 入库前缀 - purchaseOrderNoDO.setPurchaseNo(PURCHASE_ORDER.getCode(serialNumberDO.getSerialNumber().toString())); + String code = PURCHASE_ORDER.getCode(serialNumberDO.getSerialNumber().toString()); + purchaseOrderNoDO.setPurchaseNo(code); serialNumberService.updateSerialNumber(serialNumberDO); purchaseOrderNoDO.setGoodsType(1); purchaseOrderNoDO.setPurchaseType(1); @@ -84,16 +92,39 @@ public class PurchaseOrderMakeDetailServiceImpl implements PurchaseOrderMakeDeta purchaseOrderNoMapper.insert(purchaseOrderNoDO); List insertList =new ArrayList<>(); HashMap insertMap = new HashMap<>(); + HashMap insertMaterialMap = new HashMap<>(); + HashMap compositionDOHashMap = new HashMap<>(); for (PurchaseOrderMakeDetailDO pmd : updateList) { PurchaseOrderNoDetailDO pd = new PurchaseOrderNoDetailDO(); pd.setMakeDetailId(pmd.getId()); pd.setPurchaseOrderId(purchaseOrderNoDO.getId()); pd.setBoomDetailId(pmd.getBoomDetailId()); - pd.setBoomName(pmd.getBoomName()); - pd.setBoomSpec(pmd.getBoomSpec()); - pd.setBoomUnit(pmd.getBoomUnit()); - pd.setComposition(pmd.getComposition()); + if (pd.getMakeDetailId() != null) { + MaterialDO materialDO = insertMaterialMap.get(pmd.getMaterialId()); + + if (materialDO == null) { + materialDO = materialMapper.selectById(pmd.getMaterialId()); + insertMaterialMap.put(pd.getMakeDetailId(), materialDO); + } + if (materialDO.getCompositionId() != null) { + CompositionDO compositionDO = compositionDOHashMap.get(materialDO.getCompositionId()); + if (compositionDO == null) { + compositionDO = compositionMapper.selectById(materialDO.getCompositionId()); + compositionDOHashMap.put(materialDO.getCompositionId(), compositionDO); + } + pd.setComposition(compositionDO == null ?"":compositionDO.getName()); + } + + pd.setBoomName(materialDO.getName()); + pd.setMaterialId(materialDO.getId()); + pd.setBoomSpec(materialDO.getSpec()); + pd.setBoomUnit(materialDO.getUnit()); + + }else { + throw exception(PURCHASE_ORDER_MAKE_DETAIL_MATERIAL_NOT_EXISTS); + } + pd.setPurchaseAmount(pmd.getPurchaseAmount()); pd.setEstimatedPrice(pmd.getEstimatedPrice()); pd.setArriveTime(pmd.getArriveTime()); @@ -131,6 +162,7 @@ public class PurchaseOrderMakeDetailServiceImpl implements PurchaseOrderMakeDeta pmd.setPurchaseOrderNoId(purchaseOrderNoDO.getId()); pmd.setPurchaseOrderNoDetailId(pd.getId()); pmd.setOrderStatus(2); + pmd.setPurchaseNo(code); break; } } @@ -143,12 +175,12 @@ public class PurchaseOrderMakeDetailServiceImpl implements PurchaseOrderMakeDeta validatePurchaseOrderMakeDetailExists(updateReqVO.getId()); // 更新 PurchaseOrderMakeDetailDO updateObj = BeanUtils.toBean(updateReqVO, PurchaseOrderMakeDetailDO.class); - if (updateObj.getMaterialId() == null){ - purchaseOrderMakeDetailMapper.clearMaterialId(updateObj.getId()); +// if (updateObj.getMaterialId() == null){ +// purchaseOrderMakeDetailMapper.clearMaterialId(updateObj.getId()); +// purchaseOrderMakeDetailMapper.updateById(updateObj); +// }else { purchaseOrderMakeDetailMapper.updateById(updateObj); - }else { - purchaseOrderMakeDetailMapper.updateById(updateObj); - } + // } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseorderno/PurchaseOrderNoServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseorderno/PurchaseOrderNoServiceImpl.java index 4c10a4d..c8c50d6 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseorderno/PurchaseOrderNoServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseorderno/PurchaseOrderNoServiceImpl.java @@ -39,6 +39,8 @@ import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; @@ -315,6 +317,49 @@ public class PurchaseOrderNoServiceImpl implements PurchaseOrderNoService { purchaseOrderNoDO.setDeliveryAddress("浙江省杭州市余杭区良渚街道刘林圩路5号"); purchaseOrderNoDO.setBuyer("杭州合立机械有限公司"); List detailList = purchaseOrderNoDetailMapper.getPurchaseOrderNoDetailById(id); +// if ("1".equals(purchaseOrderNoDO.getGoodsType())){ + if (detailList != null && !detailList.isEmpty()) { + detailList.forEach(detail -> { + // 跳过对象本身为null的情况 + if (detail == null) return; + + BigDecimal estimatedPrice = detail.getEstimatedPrice(); + BigDecimal purchaseAmount = detail.getPurchaseAmount(); + + if (estimatedPrice != null && + purchaseAmount != null && + purchaseAmount.compareTo(BigDecimal.ZERO) != 0) { + + // 计算并保留1位小数 + BigDecimal result = estimatedPrice + .divide(purchaseAmount, 1, RoundingMode.HALF_UP); + + detail.setUnitPrice(result); + } else { + // 设置默认值(根据业务需求选择) + detail.setUnitPrice(BigDecimal.ZERO); + } + }); + // 计算 purchaseAmount 的总和 + BigDecimal purchaseAmountSum = detailList.stream() + .filter(Objects::nonNull) // 过滤掉空对象 + .map(PurchaseOrderNoDetailDO::getPurchaseAmount) + .filter(Objects::nonNull) // 过滤掉空值 + .reduce(BigDecimal.ZERO, BigDecimal::add); // 累加求和 + // 计算 estimatedPrice 的总和 + BigDecimal estimatedPriceSum = detailList.stream() + .filter(Objects::nonNull) // 过滤掉空对象 + .map(PurchaseOrderNoDetailDO::getEstimatedPrice) + .filter(Objects::nonNull) // 过滤掉空值 + .reduce(BigDecimal.ZERO, BigDecimal::add); // 累加求和 + purchaseOrderNoDO.setPurchaseAmountSum(purchaseAmountSum); + purchaseOrderNoDO.setEstimatedPriceSum(estimatedPriceSum); + } + AdminUserDO users = adminUserService.getUser(purchaseOrderNoDO.getAuditor()); + if (ObjectUtil.isNotEmpty(users)){ + purchaseOrderNoDO.setAuditorName(users.getNickname()); + } +// } purchaseOrderNoDO.setPurchaseOrderNoDetailList(detailList); } return CommonResult.success(purchaseOrderNoDO); @@ -339,6 +384,7 @@ public class PurchaseOrderNoServiceImpl implements PurchaseOrderNoService { lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getPurchaseOrderNoId, null); lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getPurchaseOrderNoDetailId,null); lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getOrderStatus,1); + lambdaUpdateWrapper.set(PurchaseOrderMakeDetailDO::getPurchaseNo,null); purchaseOrderMakeDetailMapper.update(lambdaUpdateWrapper); return CommonResult.success(true); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagein/StorageInServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagein/StorageInServiceImpl.java index 8dad26b..1eefd19 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagein/StorageInServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagein/StorageInServiceImpl.java @@ -71,7 +71,7 @@ public class StorageInServiceImpl implements StorageInService { for (StorageInDetailDO storageInDetailDO : storageInDetailDOS) { LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); wrapper1.eq(PurchaseOrderNoDetailDO::getStorageId,storageInDetailDO.getStorageNoId()); - wrapper1.eq(PurchaseOrderNoDetailDO::getStorageMatId,storageInDetailDO.getMaterialId()); + wrapper1.eq(PurchaseOrderNoDetailDO::getStorageMatId,storageInDetailDO.getId()); PurchaseOrderNoDetailDO purchaseOrderNoDetailDO = purchaseOrderNoDetailMapper.selectOne(wrapper1); if (ObjectUtil.isNotEmpty(purchaseOrderNoDetailDO)){ LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java index d81fbd9..7b7bb86 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java @@ -1,15 +1,18 @@ package com.chanko.yunxi.mes.module.heli.service.taskdispatch; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.generator.IFill; import com.chanko.yunxi.mes.framework.common.exception.ErrorCode; +import com.chanko.yunxi.mes.framework.common.exception.ServiceException; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum; +import com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo.ProcessBoomRespVO; import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.*; import com.chanko.yunxi.mes.module.heli.controller.admin.ygjx.vo.YgjxPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO; @@ -17,6 +20,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.equipmanufacture.EquipMan import com.chanko.yunxi.mes.module.heli.dal.dataobject.fpuserdetail.FpUserDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO; @@ -28,6 +32,7 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.equipmanufacture.EquipManufact import com.chanko.yunxi.mes.module.heli.dal.mysql.fpuserdetail.FpUserDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.plan.PlanMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.procedure.ProcedureMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderSubMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchMapper; @@ -101,6 +106,8 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { private bdgzsomthingMapper bdgzsomthingMapper; @Resource private ProcedureMapper procedureMapper; + @Resource + private ProcessBomDetailMapper processBomDetailMapper; @Override @Transactional(rollbackFor = Exception.class) public Long createTaskDispatch(TaskDispatchSaveReqVO createReqVO) { @@ -141,7 +148,28 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { if(!updateObj.canOperate(operateTypeEnum)){ throw exception(INVALID_OPERATE); } - // 明细工序状态更新 + if (updateReqVO.getDispatchType() != null && updateReqVO.getDispatchType().equals("PRODUCTION")){ + List idList = updateReqVO.getTaskDispatchDetails().stream() + .filter(o -> o.getId() != null) + .map(TaskDispatchDetailDO::getId) + .collect(Collectors.toList()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(TaskDispatchDetailDO::getId, idList); + wrapper.eq(TaskDispatchDetailDO::getDeleted, 0); + List detailDOS = taskDispatchDetailMapper.selectList(wrapper); + for (TaskDispatchDetailDO dispatchDetailDO : detailDOS) { + if (dispatchDetailDO.getPlanStatus()==1){ + TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectById(dispatchDetailDO.getDispatchId()); + ProcessBomDetailDO bomDetailDO = processBomDetailMapper.selectById(taskDispatchDO.getBomDetailId()); + ProcedureDO procedureDO = procedureMapper.selectById(dispatchDetailDO.getProcedureId()); + if (ObjectUtil.isNotEmpty(bomDetailDO)&&ObjectUtil.isNotEmpty(procedureDO)){ + throw exception(new ErrorCode(400,bomDetailDO.getMaterialName()+" "+procedureDO.getName()+"已做物料需求计划,不能更改,请确认")); + } + } + } + } + + // 明细工序状态更新 if(operateTypeEnum == OperateTypeEnum.SUBMIT){ if (updateReqVO.getDispatchType() != null && updateReqVO.getDispatchType().equals("ASSEMBLE")){ updateReqVO.getTaskDispatchDetailOwnerDOList().forEach(taskDispatchDetailDO -> { @@ -437,10 +465,20 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { @Override public void deleteTaskDispatchDetail(Long id) { + TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(id); + if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)&&taskDispatchDetailDO.getPlanStatus()==1){ + TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectById(taskDispatchDetailDO.getDispatchId()); + ProcessBomDetailDO bomDetailDO = processBomDetailMapper.selectById(taskDispatchDO.getBomDetailId()); + ProcedureDO procedureDO = procedureMapper.selectById(taskDispatchDetailDO.getProcedureId()); + if (ObjectUtil.isNotEmpty(bomDetailDO)&&ObjectUtil.isNotEmpty(procedureDO)){ + throw exception(new ErrorCode(400,bomDetailDO.getMaterialName()+" "+procedureDO.getName()+"已做物料需求计划,不能更改,请确认")); + } + } taskDispatchDetailMapper.deleteByDispatchId(id); } @Override public void deleteTaskDispatchDetailOwner(Long id) { + taskDispatchDetailMapper.deleteByOwnerId(id,null); taskDispatchDetailOwnerMapper.deleteById(id); } diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/material/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/material/index.ts index f77fe5d..a93f7a5 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/material/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/material/index.ts @@ -67,6 +67,6 @@ export const deleteMaterial = async (id: number) => { export const exportMaterial = async (params) => { return await request.download({ url: `/heli/material/export-excel`, params }) } -export const getbzjList = async () => { - return await request.get({ url: `/heli/material/getbzjList` }) +export const getbzjList = async (params) => { + return await request.get({ url: `/heli/material/getbzjList`,params }) } diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplan/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplan/index.ts index 4622a51..346afff 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplan/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplan/index.ts @@ -94,3 +94,13 @@ export const supplement = async (data) => { export const delMaterial = async (id: number) => { return await request.delete({ url: `/heli/material-plan/delMaterial?id=` + id }) } + +// // 查询零件采购分页 +// export const getPartPurchasePages = async (params) => { +// return await request.post({ url: `/heli/material-plan/getPartPurchasePages`, params }) +// } + +// 更新采购单主驳回 +export const getPartPurchasePages = async () => { + return await request.get({ url: `/heli/material-plan/getPartPurchasePage` }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplanboom/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplanboom/index.ts index ae50060..844b8e0 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplanboom/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/materialplanboom/index.ts @@ -11,6 +11,7 @@ export interface MaterialPlanBoomVO { purchaseAmount:number estimatedPrice:number arriveTime:Date + projectPurchaseOrderMakeDetailId:number supplierId:number materialPlanBoomDOList:Array } diff --git a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts index b9407cb..42cb07a 100644 --- a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts +++ b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts @@ -292,5 +292,6 @@ export enum DICT_TYPE { HELI_MAT_REQ_STATUS='heli_mat_req_status', HELI_MATERIAL_STATUS='heli_material_status', HELI_DOCUMENT_STATUS='heli_document_status', - HELI_STORAGEIN_STATUS='heli_storagein_status' + HELI_STORAGEIN_STATUS='heli_storagein_status', + MATERIAL_PLAN_BOOM_MPLAN_STATUS='material_plan_boom_mplan_status' } diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/purchasemake.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/purchasemake.vue index e4f3146..25af90e 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/purchasemake.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/purchasemake.vue @@ -1,7 +1,7 @@ - - - - + + + + @@ -134,7 +135,7 @@ - + - - + + + + + @@ -214,6 +220,7 @@ const exportLoading = ref(false) // 导出的加载中 const getList = async () => { loading.value = true try { + multipleTable.value.clearSelection(); const data = await materialPlanBoomApi.getStandardBuyPage(queryParams) list.value = data.list total.value = data.total @@ -230,9 +237,10 @@ const getRowKeys=(row)=>{ const handleSelectionChange = (selection) => { ids.value = selection; - console.log(ids.value) } - +const clearItem = (e) =>{ + multipleTable.value.clearSelection(); +} /** 导出按钮操作 */ const handleExportDetail = async () => { try { @@ -247,13 +255,14 @@ const handleExportDetail = async () => { exportLoading.value = false } } -const getMat = async (rowids,amount,ids) => { +const getMat = async (rowids,amount,ids,matCodes) => { //formData.value.boomItemDOList = arrBoom for(var i = 0 ; i < list.value.length ; i ++){ if(list.value[i].id == rowids){ list.value[i].matRest = amount + list.value[i].matCode = matCodes list.value[i].materialId = ids - await updateRow(2,list.value[i]); + // await updateRow(2,list.value[i]); break; } } @@ -332,23 +341,24 @@ const opearteForm = async(type) =>{ await materialPlanBoomApi.updateMaterialPlanBoom(form); message.success("送审成功") await getList() - }catch(e){ + }catch{ loading.value = false }finally{ loading.value = false } - - + + }else{ //去库存 - for(var i = 0 ; i{ await materialPlanBoomApi.updateMaterialPlanBoom(form); message.success("去库存成功") await getList() - }catch(e){ + }catch{ loading.value = false }finally{ loading.value = false } - - + + } }else{ message.error("至少选择一项后进行操作!") @@ -478,8 +488,8 @@ const handleExport = async () => { await message.exportConfirm() // 发起导出 exportLoading.value = true - const data = await ProcessBomApi.exportProcessBom(queryParams) - download.excel(data, '工艺bom.xls') + // const data = await ProcessBomApi.exportProcessBom(queryParams) + // download.excel(data, '工艺bom.xls') } catch { } finally { exportLoading.value = false diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/storageLog.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/storageLog.vue index 8b12aa0..9cf4a1e 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/storageLog.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/materialplan/storageLog.vue @@ -7,7 +7,7 @@ - + @@ -22,7 +22,9 @@ - + @@ -114,12 +116,28 @@ const getList = async () => { } const clickItem = ref([]) const handleCurrentChange = (val) => { - multipleTableRef.value!.clearSelection() clickItem.value = val; + if(val.length > 1){ + multipleTableRef.value!.clearSelection() + multipleTableRef.value!.toggleRowSelection(val.pop()) + } + +} +const clickRow = (row) => { + // 单选选中行 + if ( clickItem.value[0] == row) { + // 取消 + clickItem.value = []; + multipleTableRef.value!.clearSelection() + } else { + // 选择 + clickItem.value.push(row); + multipleTableRef.value!.clearSelection() + multipleTableRef.value!.toggleRowSelection(row, true); + } + } - multipleTableRef.value!.toggleRowSelection(val, undefined) -}; /** 搜索按钮操作 */ const handleQuery = () => { queryParams.pageNo = 1 @@ -162,7 +180,8 @@ const emit = defineEmits(['success']) // emit('success', multipleSelection.value) const success = () =>{ dialogVisible.value = false; - emit('success',rowid.value,clickItem.value.storageOkQty,clickItem.value.id) + console.log(clickItem.value) + emit('success',rowid.value,clickItem.value[0].storageOkQty,clickItem.value[0].id,clickItem.value[0].matCode) } const handleRg = async (rgid) => { pnCurrentList.value =[] diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue index c0cd0e2..06d2cbd 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue @@ -1,7 +1,7 @@