diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseMaintStation.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseMaintStation.java index 80d3b63..caf3d28 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseMaintStation.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseMaintStation.java @@ -1,11 +1,15 @@ package org.dromara.dms.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; +import java.util.List; /** * 保养部位信息对象 dms_base_maint_station @@ -63,5 +67,9 @@ public class DmsBaseMaintStation extends TenantEntity { @TableField(exist = false) private String deviceTypeName;//JOIN +/* + @TableField(exist = false) + private List dmsBaseMaintProject; +*/ } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseStationProject.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseStationProject.java index 2d2d206..f52b5e1 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseStationProject.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseStationProject.java @@ -1,7 +1,6 @@ package org.dromara.dms.domain; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; @@ -14,9 +13,9 @@ import java.io.Serial; * @date 2025-03-21 */ @Data -@EqualsAndHashCode(callSuper = true) +@EqualsAndHashCode @TableName("dms_base_station_project") -public class DmsBaseStationProject extends BaseEntity { +public class DmsBaseStationProject { @Serial private static final long serialVersionUID = 1L; diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBaseMaintStationBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBaseMaintStationBo.java index 8c0a78d..df759e8 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBaseMaintStationBo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBaseMaintStationBo.java @@ -1,13 +1,14 @@ package org.dromara.dms.domain.bo; -import org.dromara.dms.domain.DmsBaseMaintStation; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.dms.domain.DmsBaseMaintStation; /** * 保养部位信息业务对象 dms_base_maint_station @@ -60,4 +61,8 @@ public class DmsBaseMaintStationBo extends BaseEntity { private String remark; + /** + * 保养项目 + */ + Long[] maintProjectIds; } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBaseMaintStationVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBaseMaintStationVo.java index b6742f3..98f48ca 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBaseMaintStationVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBaseMaintStationVo.java @@ -1,17 +1,16 @@ package org.dromara.dms.domain.vo; -import org.dromara.dms.domain.DmsBaseMaintStation; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.dms.domain.DmsBaseMaintStation; import java.io.Serial; import java.io.Serializable; -import java.util.Date; - +import java.util.List; /** @@ -76,4 +75,9 @@ public class DmsBaseMaintStationVo implements Serializable { */ private String deviceTypeName;//JOIN + + @ExcelProperty(value = "保养项目") + private List dmsBaseMaintProjectList; + + private Long[] maintProjectIds; } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseMaintProjectMapper.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseMaintProjectMapper.java index 7f25db6..949ca48 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseMaintProjectMapper.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseMaintProjectMapper.java @@ -4,6 +4,8 @@ import org.dromara.dms.domain.DmsBaseMaintProject; import org.dromara.dms.domain.vo.DmsBaseMaintProjectVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * 保养项目信息Mapper接口 * @@ -12,4 +14,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface DmsBaseMaintProjectMapper extends BaseMapperPlus { + List selectProjectMenuByStationId(Long maintStationId); + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseStationProjectMapper.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseStationProjectMapper.java index ebbe1e0..d4c13a5 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseStationProjectMapper.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseStationProjectMapper.java @@ -12,4 +12,22 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface DmsBaseStationProjectMapper extends BaseMapperPlus { + /** + * 删除保养部位关联项目信息 + * + * @param maintStationId 保养部位关联项目信息主键 + * @return 结果 + */ + public int deleteDmsBaseStationProjectByMaintStationId(Long maintStationId); + + + /** + * 批量删除保养部位关联项目信息 + * + * @param maintStationIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteDmsBaseStationProjectByMaintStationIds(Long[] maintStationIds); + + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMaintProjectServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMaintProjectServiceImpl.java index 6255a3d..da385d5 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMaintProjectServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMaintProjectServiceImpl.java @@ -1,24 +1,27 @@ package org.dromara.dms.service.impl; -import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.dromara.dms.domain.bo.DmsBaseMaintProjectBo; -import org.dromara.dms.domain.vo.DmsBaseMaintProjectVo; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.dms.domain.DmsBaseMaintProject; +import org.dromara.dms.domain.bo.DmsBaseMaintProjectBo; +import org.dromara.dms.domain.bo.DmsBaseStationProjectBo; +import org.dromara.dms.domain.vo.DmsBaseMaintProjectVo; +import org.dromara.dms.domain.vo.DmsBaseStationProjectVo; import org.dromara.dms.mapper.DmsBaseMaintProjectMapper; import org.dromara.dms.service.IDmsBaseMaintProjectService; +import org.dromara.dms.service.IDmsBaseStationProjectService; +import org.springframework.stereotype.Service; +import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Collection; /** * 保养项目信息Service业务层处理 @@ -32,6 +35,8 @@ public class DmsBaseMaintProjectServiceImpl implements IDmsBaseMaintProjectServi private final DmsBaseMaintProjectMapper baseMapper; + private final IDmsBaseStationProjectService dmsBaseStationProjectService; + /** * 查询保养项目信息 * @@ -129,6 +134,16 @@ public class DmsBaseMaintProjectServiceImpl implements IDmsBaseMaintProjectServi public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 + + + for (Long id : ids ){ + DmsBaseStationProjectBo qurey = new DmsBaseStationProjectBo(); + qurey.setMaintProjectId(id); + List dmsBaseStationProjectVos = dmsBaseStationProjectService.queryList(qurey); + if ( ! dmsBaseStationProjectVos.isEmpty()){ + throw new ServiceException("项目已绑定润滑部位,请先取消绑定"); + } + } } return baseMapper.deleteByIds(ids) > 0; } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMaintStationServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMaintStationServiceImpl.java index 1c3670e..f6c9449 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMaintStationServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMaintStationServiceImpl.java @@ -1,26 +1,32 @@ package org.dromara.dms.service.impl; -import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.dms.domain.DmsBaseDeviceType; import org.dromara.dms.domain.DmsBaseMaintStandard; -import org.springframework.stereotype.Service; -import org.dromara.dms.domain.bo.DmsBaseMaintStationBo; -import org.dromara.dms.domain.vo.DmsBaseMaintStationVo; import org.dromara.dms.domain.DmsBaseMaintStation; +import org.dromara.dms.domain.DmsBaseStationProject; +import org.dromara.dms.domain.bo.DmsBaseMaintStationBo; +import org.dromara.dms.domain.bo.DmsBaseStationProjectBo; +import org.dromara.dms.domain.vo.DmsBaseMaintStationVo; +import org.dromara.dms.domain.vo.DmsBaseStationProjectVo; import org.dromara.dms.mapper.DmsBaseMaintStationMapper; +import org.dromara.dms.mapper.DmsBaseStationProjectMapper; import org.dromara.dms.service.IDmsBaseMaintStationService; +import org.dromara.dms.service.IDmsBaseStationProjectService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Collection; /** * 保养部位信息Service业务层处理 @@ -34,6 +40,11 @@ public class DmsBaseMaintStationServiceImpl implements IDmsBaseMaintStationServi private final DmsBaseMaintStationMapper baseMapper; + private final DmsBaseStationProjectMapper baseStationProjectMapper; + + private final IDmsBaseStationProjectService dmsBaseStationProjectService; + + /** * 查询保养部位信息 * @@ -42,7 +53,16 @@ public class DmsBaseMaintStationServiceImpl implements IDmsBaseMaintStationServi */ @Override public DmsBaseMaintStationVo queryById(Long maintStationId){ - return baseMapper.selectVoById(maintStationId); + DmsBaseStationProjectBo dmsBaseStationProject = new DmsBaseStationProjectBo(); + dmsBaseStationProject.setMaintStationId(maintStationId); + List dmsBaseStationProjectVos = dmsBaseStationProjectService.queryList(dmsBaseStationProject); + Long[] maintProjectIds = dmsBaseStationProjectVos + .stream() + .map(DmsBaseStationProjectVo::getMaintProjectId) + .toArray(Long[]::new); + DmsBaseMaintStationVo dmsBaseMaintStationVo = baseMapper.selectVoById(maintStationId); + dmsBaseMaintStationVo.setMaintProjectIds(maintProjectIds); + return dmsBaseMaintStationVo; } /** @@ -101,6 +121,7 @@ public class DmsBaseMaintStationServiceImpl implements IDmsBaseMaintStationServi * @return 是否新增成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(DmsBaseMaintStationBo bo) { DmsBaseMaintStation add = MapstructUtils.convert(bo, DmsBaseMaintStation.class); validEntityBeforeSave(add); @@ -108,6 +129,18 @@ public class DmsBaseMaintStationServiceImpl implements IDmsBaseMaintStationServi if (flag) { bo.setMaintStationId(add.getMaintStationId()); } + + Long maintStationId = bo.getMaintStationId();//保养部位ID + // 保存保养项目关联信息 + Long[] maintProjectIds = bo.getMaintProjectIds(); + List dmsBaseStationProjectList = new ArrayList<>(); + for (Long maintProjectId : maintProjectIds){ + DmsBaseStationProject addStationProject = new DmsBaseStationProject(); + addStationProject.setMaintStationId(maintStationId); + addStationProject.setMaintProjectId(maintProjectId); + dmsBaseStationProjectList.add(addStationProject); + } + baseStationProjectMapper.insertBatch(dmsBaseStationProjectList); return flag; } @@ -118,9 +151,24 @@ public class DmsBaseMaintStationServiceImpl implements IDmsBaseMaintStationServi * @return 是否修改成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean updateByBo(DmsBaseMaintStationBo bo) { DmsBaseMaintStation update = MapstructUtils.convert(bo, DmsBaseMaintStation.class); validEntityBeforeSave(update); + + // 删除保养项目关联信息,先删再加 + Long maintStationId = bo.getMaintStationId();//保养部位ID + baseStationProjectMapper.deleteDmsBaseStationProjectByMaintStationId(maintStationId); + Long[] maintProjectIds = bo.getMaintProjectIds(); + // 保存保养项目关联信息 + List dmsBaseStationProjectList = new ArrayList<>(); + for (Long maintProjectId : maintProjectIds){ + DmsBaseStationProject addStationProject = new DmsBaseStationProject(); + addStationProject.setMaintStationId(maintStationId); + addStationProject.setMaintProjectId(maintProjectId); + dmsBaseStationProjectList.add(addStationProject); + } + baseStationProjectMapper.insertBatch(dmsBaseStationProjectList); return baseMapper.updateById(update) > 0; } @@ -139,10 +187,14 @@ public class DmsBaseMaintStationServiceImpl implements IDmsBaseMaintStationServi * @return 是否删除成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } + + Long[] maintStationIds = ids.toArray(new Long[0]); + baseStationProjectMapper.deleteDmsBaseStationProjectByMaintStationIds(maintStationIds); return baseMapper.deleteByIds(ids) > 0; } } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseStationProjectServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseStationProjectServiceImpl.java index a9a0afe..125b64f 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseStationProjectServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseStationProjectServiceImpl.java @@ -1,24 +1,22 @@ package org.dromara.dms.service.impl; -import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.dms.domain.DmsBaseStationProject; import org.dromara.dms.domain.bo.DmsBaseStationProjectBo; import org.dromara.dms.domain.vo.DmsBaseStationProjectVo; -import org.dromara.dms.domain.DmsBaseStationProject; import org.dromara.dms.mapper.DmsBaseStationProjectMapper; import org.dromara.dms.service.IDmsBaseStationProjectService; +import org.springframework.stereotype.Service; +import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Collection; /** * 保养部位关联项目信息Service业务层处理 @@ -73,9 +71,18 @@ public class DmsBaseStationProjectServiceImpl implements IDmsBaseStationProjectS Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(DmsBaseStationProject.class) .selectAll(DmsBaseStationProject.class) + +/* // 关联查询项目 + .select(DmsBaseMaintProject::getMaintProjectName) + .leftJoin(DmsBaseMaintProject.class,DmsBaseMaintProject::getMaintProjectId,DmsBaseStationProject::getMaintProjectId) + // 关联查询部位 + .select(DmsBaseMaintStation::getMaintStationName) + .leftJoin(DmsBaseMaintStation.class, DmsBaseMaintStation::getMaintStationId,DmsBaseStationProject::getMaintStationId)*/ + .eq(bo.getMaintStationId() != null, DmsBaseStationProject::getMaintStationId, bo.getMaintStationId()) .eq(bo.getMaintProjectId() != null, DmsBaseStationProject::getMaintProjectId, bo.getMaintProjectId()) - .orderByDesc(DmsBaseStationProject::getCreateTime); +// .orderByDesc(DmsBaseStationProject::getCreateTime) + ; return lqw; } diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseMaintProjectMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseMaintProjectMapper.xml index c65a696..4f156cb 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseMaintProjectMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseMaintProjectMapper.xml @@ -4,4 +4,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + + + + select dbmp.maint_project_id, + dbmp.maint_project_name, + dbmp.maint_project_desc, + dbmp.remark, dbmp.create_by, dbmp.create_time, dbmp.update_by, dbmp.update_time, + dbsp.maint_station_id + from dms_base_maint_project dbmp + left join dms_base_station_project dbsp on dbmp.maint_project_id = dbsp.maint_project_id + + + + + + diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseMaintStationMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseMaintStationMapper.xml index 58e9320..6ab2e3b 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseMaintStationMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseMaintStationMapper.xml @@ -4,4 +4,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseStationProjectMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseStationProjectMapper.xml index fd09381..5432e9e 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseStationProjectMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseStationProjectMapper.xml @@ -4,4 +4,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + delete from dms_base_station_project where maint_station_id = #{maintStationId} + + + + delete from dms_base_station_project where maint_station_id in + + #{maintStationId} + + +