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/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 13b8ef1..29f06e5 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 @@ -86,7 +86,6 @@ public class MaterialPlanBoomDO 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 04b498a..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 @@ -66,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()) @@ -98,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 6366f5a..989f8d4 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 @@ -172,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); 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/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..5bcdb0c 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,7 @@ public class MaterialPlanServiceImpl implements MaterialPlanService { queryWrapper.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, id); materialPlanBoomMapper.delete(queryWrapper); materialPlanMapper.deleteById(id); - return null; + return CommonResult.success( true); } } 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/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 @@