From 06c85a2cd54618d27cc753b6fd34d58970202fe5 Mon Sep 17 00:00:00 2001 From: xs Date: Wed, 26 Mar 2025 17:25:50 +0800 Subject: [PATCH] =?UTF-8?q?1.3.1=EF=BC=9A=20=E5=90=8E=E7=AB=AF=EF=BC=9A?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A1=E5=88=92=E7=94=B1=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E7=89=A9=E6=96=99bom=E6=94=B9=E4=B8=BAbom=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../provider/DynamicBaseSqlProvider.java | 4 +-- .../controller/ProdPlanInfoController.java | 32 +++++++++++++++++-- .../mes/domain/ProdMaterialBomVersion.java | 4 +++ .../org/dromara/mes/domain/ProdPlanInfo.java | 5 +++ .../domain/bo/ProdMaterialBomVersionBo.java | 5 +++ .../dromara/mes/domain/bo/ProdPlanInfoBo.java | 6 ++++ .../domain/vo/ProdMaterialBomVersionVo.java | 5 +++ .../dromara/mes/domain/vo/ProdPlanInfoVo.java | 5 +++ .../mes/mapper/ProdPlanInfoMapper.java | 15 +++++++-- .../ProdMaterialBomVersionServiceImpl.java | 29 +++++++++++++---- .../mapper/mes/ProdPlanInfoMapper.xml | 29 +++++++++++++++++ 11 files changed, 125 insertions(+), 14 deletions(-) diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/provider/DynamicBaseSqlProvider.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/provider/DynamicBaseSqlProvider.java index 8438b43..8da03d8 100644 --- a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/provider/DynamicBaseSqlProvider.java +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/provider/DynamicBaseSqlProvider.java @@ -16,10 +16,10 @@ public class DynamicBaseSqlProvider { sql.INSERT_INTO(tableName); switch (tableNamePrefix) { case "prod_plan_info": - sql.INTO_COLUMNS("plan_code", "material_id", "material_bom_id", "plan_amount", "dispatch_amount", + sql.INTO_COLUMNS("plan_code", "material_id", "material_bom_version", "plan_amount", "dispatch_amount", "process_id", "plan_begin_time", "plan_end_time", "release_type", "release_id", "shift_id", "import_flag", "class_team_id", "model_code", "create_dept", "create_by", "create_time"); - sql.INTO_VALUES("#{entity.planCode}", "#{entity.materialId}", "#{entity.materialBomId}", "#{entity.planAmount}", "#{entity.dispatchAmount}", + sql.INTO_VALUES("#{entity.planCode}", "#{entity.materialId}", "#{entity.materialBomVersion}", "#{entity.planAmount}", "#{entity.dispatchAmount}", "#{entity.processId}", "#{entity.planBeginTime}", "#{entity.planEndTime}", "#{entity.releaseType}", "#{entity.releaseId}", "#{entity.shiftId}", "#{entity.importFlag}", "#{entity.classTeamId}", "#{entity.modelCode}", "#{entity.createDept}", "#{entity.createBy}", "#{entity.createTime}"); break; diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java index 2a60ef7..9abff05 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java @@ -16,11 +16,13 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; import org.dromara.mes.domain.ProdBaseRouteProcess; +import org.dromara.mes.domain.bo.ProdMaterialBomBo; +import org.dromara.mes.domain.bo.ProdMaterialBomVersionBo; import org.dromara.mes.domain.bo.ProdPlanInfoBo; -import org.dromara.mes.domain.vo.MesProductPlanEditVo; -import org.dromara.mes.domain.vo.PlanMonitorVo; -import org.dromara.mes.domain.vo.ProdPlanInfoVo; +import org.dromara.mes.domain.vo.*; import org.dromara.mes.service.IProdBaseRouteProcessService; +import org.dromara.mes.service.IProdMaterialBomService; +import org.dromara.mes.service.IProdMaterialBomVersionService; import org.dromara.mes.service.IProdPlanInfoService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -44,6 +46,10 @@ public class ProdPlanInfoController extends BaseController { private final IProdBaseRouteProcessService prodBaseRouteProcessService; + private final IProdMaterialBomService prodMaterialBomService; + + private final IProdMaterialBomVersionService prodMaterialBomVersionService; + /** * 查询生产工单信息列表 */ @@ -184,4 +190,24 @@ public class ProdPlanInfoController extends BaseController { return R.ok(prodPlanInfoService.queryMoritorList(bo)); } + + /** + * 查询bom版本信息列表树,供选择 + */ + @SaCheckPermission("mes:planInfo:list") + @GetMapping("/materialBomTreeSelect") + public R> materialBomTreeSelect(ProdMaterialBomBo prodMaterialBomBo) { + return R.ok(prodMaterialBomService.selectMaterialBomTreeList(prodMaterialBomBo)); + } + + + /** + * 查询bom版本信息列表,供选择 + */ + @SaCheckPermission("mes:planInfo:list") + @GetMapping("/materialBomVersionSelect") + public R> materialBomVersionSelect(ProdMaterialBomVersionBo prodMaterialBomBo) { + return R.ok(prodMaterialBomVersionService.queryList(prodMaterialBomBo)); + } + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdMaterialBomVersion.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdMaterialBomVersion.java index aefa8ec..fa12632 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdMaterialBomVersion.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdMaterialBomVersion.java @@ -31,6 +31,10 @@ public class ProdMaterialBomVersion extends TenantEntity { */ private String activeFlag; + /** + * 删除标识(1是 0否) + */ + private String deleteFlag; /** * bom版本说明 diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdPlanInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdPlanInfo.java index 444edf9..d5235e9 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdPlanInfo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdPlanInfo.java @@ -64,6 +64,11 @@ public class ProdPlanInfo extends TenantEntity { */ private Long materialBomId; + /** + * 物料bom版本 + */ + private String materialBomVersion; + /** * 工序ID */ diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdMaterialBomVersionBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdMaterialBomVersionBo.java index 42e3baf..bc43d8d 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdMaterialBomVersionBo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdMaterialBomVersionBo.java @@ -32,6 +32,11 @@ public class ProdMaterialBomVersionBo extends BaseEntity { @NotBlank(message = "激活标识(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) private String activeFlag; + /** + * 删除标识(1是 0否) + */ + private String deleteFlag; + /** * bom版本说明 */ diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdPlanInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdPlanInfoBo.java index c87ca0f..d62b7b3 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdPlanInfoBo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdPlanInfoBo.java @@ -67,6 +67,12 @@ public class ProdPlanInfoBo extends BaseEntity { @NotNull(message = "物料BOM不能为空", groups = { AddGroup.class, EditGroup.class }) private Long materialBomId; + /** + * 物料bom版本 + */ + private String materialBomVersion; + + /** * 工序ID */ diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdMaterialBomVersionVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdMaterialBomVersionVo.java index d824f9d..415ea4d 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdMaterialBomVersionVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdMaterialBomVersionVo.java @@ -41,6 +41,11 @@ public class ProdMaterialBomVersionVo implements Serializable { @ExcelDictFormat(readConverterExp = "1=是,0=否") private String activeFlag; + /** + * 删除标识(1是 0否) + */ + private String deleteFlag; + /** * bom版本说明 */ diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java index 518370a..15e501f 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java @@ -80,6 +80,11 @@ public class ProdPlanInfoVo implements Serializable { @ExcelProperty(value = "物料BOM_ID") private Long materialBomId; + /** + * 物料bom版本 + */ + private String materialBomVersion; + /** * 工序ID */ diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java index 43b8810..ef4d97d 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java @@ -32,7 +32,7 @@ public interface ProdPlanInfoMapper extends BaseMapperPlus selectProdPlanInfoJoinProcessList(ProdPlanInfoBo bo); @@ -41,7 +41,7 @@ public interface ProdPlanInfoMapper extends BaseMapperPlus selectProdPlanInfoList(@Param("tableName") String tableName, @Param(Constants.WRAPPER) Wrapper queryWrapper); @@ -51,4 +51,15 @@ public interface ProdPlanInfoMapper extends BaseMapperPlus queryMoritorList(@Param("tableName") String tableName, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + + /** + * 根据查询条件从指定表中获取生产计划列表,主要是供物料bom等查询是否被引用 + * + * @param tableName 动态表名 + * @param queryWrapper 查询条件封装对象 + * @return 计划列表 + */ + List selectProdPlan4Check(@Param("tableName") String tableName, @Param(Constants.WRAPPER) Wrapper queryWrapper); + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomVersionServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomVersionServiceImpl.java index de39058..aa86123 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomVersionServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomVersionServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.mes.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -9,6 +11,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.mes.domain.ProdMaterialBom; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdMaterialBomVersionBo; import org.dromara.mes.domain.vo.ProdMaterialBomVersionVo; @@ -39,7 +42,7 @@ public class ProdMaterialBomVersionServiceImpl implements IProdMaterialBomVersio * @return 物料bom版本 */ @Override - public ProdMaterialBomVersionVo queryById(String materialBomVersion){ + public ProdMaterialBomVersionVo queryById(String materialBomVersion) { return baseMapper.selectVoById(materialBomVersion); } @@ -72,10 +75,22 @@ public class ProdMaterialBomVersionServiceImpl implements IProdMaterialBomVersio private MPJLambdaWrapper buildQueryWrapper(ProdMaterialBomVersionBo bo) { Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdMaterialBomVersion.class) - .selectAll(ProdMaterialBomVersion.class) - .eq(StringUtils.isNotBlank(bo.getMaterialBomVersion()), ProdMaterialBomVersion::getMaterialBomVersion, bo.getMaterialBomVersion()) - .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ProdMaterialBomVersion::getActiveFlag, bo.getActiveFlag()) - .orderByDesc(ProdMaterialBomVersion::getCreateTime).orderByDesc(ProdMaterialBomVersion::getActiveFlag); + .exists(params.get("parentId") != null, "SELECT 1\n" + + "\tFROM\n" + + "\t\tprod_material_bom st\n" + + "\tWHERE\n" + + "\t\t(st.material_bom_version = t.material_bom_version\n" + + "\t\t\tAND st.parent_id = "+params.get("parentId")+"\n" + + "\t\t\tAND st.delete_flag = '0')") + .eq(StringUtils.isNotBlank(bo.getMaterialBomVersion()), ProdMaterialBomVersion::getMaterialBomVersion, bo.getMaterialBomVersion()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ProdMaterialBomVersion::getActiveFlag, bo.getActiveFlag()) + + .orderByDesc(ProdMaterialBomVersion::getCreateTime).orderByDesc(ProdMaterialBomVersion::getActiveFlag); + +// boolean exist = baseMapper.exists(new LambdaQueryWrapper() +// .eq(SysUser::getUserName, user.getUserName()) +// .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId())); + return lqw; } @@ -112,7 +127,7 @@ public class ProdMaterialBomVersionServiceImpl implements IProdMaterialBomVersio /** * 保存前的数据校验 */ - private void validEntityBeforeSave(ProdMaterialBomVersion entity){ + private void validEntityBeforeSave(ProdMaterialBomVersion entity) { //TODO 做一些数据校验,如唯一约束 } @@ -125,7 +140,7 @@ public class ProdMaterialBomVersionServiceImpl implements IProdMaterialBomVersio */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml index 2da8053..9859341 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml @@ -270,4 +270,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY r.machineId, t.shift_id, t.plan_id + + + + +