skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgGxDO.java
New file @@ -0,0 +1,62 @@ package cn.gistack.sm.sg.DO; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; import org.springblade.core.tool.utils.DateUtil; import java.util.Date; import java.util.List; /** * <p> * 施工工序基本表 * </p> * * @author shenyijian * @since 2024-06-13 15:46:18 */ @Getter @Setter @TableName(value ="SG_GX" ,autoResultMap = true) @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) public class SgGxDO { @TableId(type = IdType.AUTO) private Long id; /** * 工序基本名称 */ private String gxName; /** * 创建人 */ private Long createUser; /** * 创建时间 */ private Date createTime; /** * 更新时间 */ private Date updateTime; private String gxType; public void setUpdateTime(){ Date now = DateUtil.now(); if (this.getId()== null) { this.createTime = now; } this.updateTime = now; } } skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgGxStepDO.java
New file @@ -0,0 +1,50 @@ package cn.gistack.sm.sg.DO; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Getter; import lombok.Setter; import org.springblade.core.mp.base.BaseEntity; import java.io.Serializable; import java.time.LocalDateTime; /** * <p> * 施工工序步骤表 * </p> * * @author shenyijian * @since 2024-06-13 15:46:18 */ @Getter @Setter @TableName("SG_GX_STEP") public class SgGxStepDO implements Serializable { private static final long serialVersionUID = 1L; @TableId(type = IdType.AUTO) private Long id; /** * 工序编号 */ private String gxStepNum; /** * 工序步骤名称 */ private String gxStepName; /** * 工序基础信息id */ private Long gxInfoId; /** * 介绍 */ private String remark; } skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgProjectInfoDO.java
@@ -5,7 +5,6 @@ import lombok.Setter; import java.io.Serializable; import java.time.LocalDateTime; /** * <p> @@ -72,7 +71,7 @@ /** * 注册到期时间 */ private LocalDateTime expTime; private String expTime; /** * 总承包 @@ -147,7 +146,7 @@ /** * 创建时间 */ private LocalDateTime createTime; private String createTime; /** * 修改人 @@ -157,7 +156,7 @@ /** * 修改时间 */ private LocalDateTime updateTime; private String updateTime; /** * 水库名 skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DTO/ProjectSearchDTO.java
@@ -9,4 +9,7 @@ public class ProjectSearchDTO { private String projectName; private String skName; private String gxType; private String gxName; private String createUser; } skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/VO/SgGxVO.java
New file @@ -0,0 +1,12 @@ package cn.gistack.sm.sg.VO; import cn.gistack.sm.sg.DO.SgGxDO; import cn.gistack.sm.sg.DO.SgGxStepDO; import lombok.Data; import java.util.List; @Data public class SgGxVO extends SgGxDO { private List<SgGxStepDO> stepDOList; } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/controller/SgDeviceController.java
@@ -1,12 +1,8 @@ package cn.gistack.sm.sg.controller; import cn.gistack.sm.patrol.entity.PatrolInfo; import cn.gistack.sm.sg.DO.SgDeviceDO; import cn.gistack.sm.sg.DO.SgProjectInfoDO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import cn.gistack.sm.sg.DTO.SgDeviceSearchDTO; import cn.gistack.sm.sg.service.SgDeviceService; import cn.gistack.sm.sg.service.SgProjectInfoService; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.ApiOperation; import org.springblade.core.boot.ctrl.BladeController; @@ -14,7 +10,6 @@ import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/controller/SgGxController.java
New file @@ -0,0 +1,66 @@ package cn.gistack.sm.sg.controller; import cn.gistack.sm.sg.DO.SgGxDO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import cn.gistack.sm.sg.VO.SgGxVO; import cn.gistack.sm.sg.service.SgGxService; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * <p> * 施工工序基本表 前端控制器 * </p> * * @author shenyijian * @since 2024-06-13 15:46:18 */ @RestController @RequestMapping("/sg_gx") public class SgGxController extends BladeController { @Autowired private SgGxService sgGxService; /** * 新增工序 */ @PostMapping(value = "/add") public R add(@RequestBody SgGxDO sgGxDO) { sgGxService.add(sgGxDO); return R.success("添加成功"); } /** * 修改工序 */ @PostMapping(value = "/update") public R update(@RequestBody SgGxDO sgGxDO) { sgGxService.update(sgGxDO); return R.success("修改成功"); } /** * 分页 */ @GetMapping(value = "/page") public R queryPageList(ProjectSearchDTO searchDTO, Query query) { IPage<SgGxVO> page = sgGxService.queryPageList(Condition.getPage(query), searchDTO); return R.data(page); } /** * 详情 */ @GetMapping(value = "/detail") public R detail(Long id) { SgGxVO sgGxDO = sgGxService.detail(id); return R.data(sgGxDO); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/controller/SgGxStepController.java
New file @@ -0,0 +1,50 @@ package cn.gistack.sm.sg.controller; import cn.gistack.sm.sg.DO.SgGxStepDO; import cn.gistack.sm.sg.service.SgGxStepService; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.tool.api.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * <p> * 施工工序步骤表 前端控制器 * </p> * * @author shenyijian * @since 2024-06-13 15:46:18 */ @RestController @RequestMapping("/sg_gx_step") public class SgGxStepController extends BladeController { @Autowired private SgGxStepService sgGxStepService; /** * 新增工序步骤 */ @PostMapping(value = "/add") public R add(@RequestBody SgGxStepDO sgGxStepDO) { sgGxStepService.add(sgGxStepDO); return R.success("添加成功"); } /** * 修改工序步骤 */ @PostMapping(value = "/update") public R update(@RequestBody SgGxStepDO sgGxStepDO) { sgGxStepService.updateOne(sgGxStepDO); return R.success("修改成功"); } /** * 删除工序步骤 */ @GetMapping(value = "/delete") public R delete(String id) { sgGxStepService.delete(id); return R.success("删除成功"); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/controller/SgProjectInfoController.java
@@ -1,11 +1,9 @@ package cn.gistack.sm.sg.controller; import cn.gistack.sm.patrol.entity.PatrolInfo; import cn.gistack.sm.sg.DO.SgProjectInfoDO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import cn.gistack.sm.sg.service.SgProjectInfoService; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.ApiOperation; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.java
New file @@ -0,0 +1,27 @@ package cn.gistack.sm.sg.mapper; import cn.gistack.sm.sg.DO.SgGxDO; import cn.gistack.sm.sg.DO.SgGxStepDO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import cn.gistack.sm.sg.VO.SgGxVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> * 施工工序基本表 Mapper 接口 * </p> * * @author shenyijian * @since 2024-06-13 15:46:18 */ public interface SgGxMapper extends BaseMapper<SgGxDO> { List<SgGxVO> queryPageList(@Param("dto") ProjectSearchDTO dto); List<SgGxStepDO> queryStepByIds(@Param("ids") List<Long> ids); SgGxDO selectByGxType(@Param("gxType") String gxType); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.xml
New file @@ -0,0 +1,26 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.gistack.sm.sg.mapper.SgGxMapper"> <select id="queryPageList" resultType="cn.gistack.sm.sg.VO.SgGxVO"> select * from YWXT.SG_GX gx where 1=1 <if test="dto.gxType != null and dto.gxType != ''"> and gx.gx_type = #{dto.gxType} </if> <if test="dto.gxName != null and dto.gxName != ''"> and gx.gx_name = #{dto.gxName} </if> </select> <select id="queryStepByIds" resultType="cn.gistack.sm.sg.DO.SgGxStepDO"> select * from YWXT.SG_GX_STEP step where 1=1 <if test="ids.size>0 and ids != null"> and step.gx_info_id in <foreach collection="ids" open="(" close=")" separator="," item="id"> #{id} </foreach> </if> </select> <select id="selectByGxType" resultType="cn.gistack.sm.sg.VO.SgGxVO"> select * from YWXT.SG_GX where gx_type = #{gxType} </select> </mapper> skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxStepMapper.java
New file @@ -0,0 +1,20 @@ package cn.gistack.sm.sg.mapper; import cn.gistack.sm.sg.DO.SgGxStepDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> * 施工工序步骤表 Mapper 接口 * </p> * * @author shenyijian * @since 2024-06-13 15:46:18 */ public interface SgGxStepMapper extends BaseMapper<SgGxStepDO> { List<SgGxStepDO> selectByGxInfoId(@Param("gxInfoId") Long gxInfoId); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxStepMapper.xml
New file @@ -0,0 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.gistack.sm.sg.mapper.SgGxStepMapper"> <select id="selectByGxInfoId" resultType="cn.gistack.sm.sg.DO.SgGxStepDO"> select * from YWXT.SG_GX_STEP step where step.GX_INFO_ID = #{gxInfoId} order by step.GX_STEP_NUM desc </select> </mapper> skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/SgDeviceService.java
@@ -1,7 +1,6 @@ package cn.gistack.sm.sg.service; import cn.gistack.sm.sg.DO.SgDeviceDO; import cn.gistack.sm.sg.DO.SgProjectInfoDO; import cn.gistack.sm.sg.DTO.SgDeviceSearchDTO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/SgGxService.java
New file @@ -0,0 +1,26 @@ package cn.gistack.sm.sg.service; import cn.gistack.sm.sg.DO.SgGxDO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import cn.gistack.sm.sg.VO.SgGxVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 施工工序基本表 服务类 * </p> * * @author shenyijian * @since 2024-06-13 15:46:18 */ public interface SgGxService extends IService<SgGxDO> { IPage<SgGxVO> queryPageList(IPage<SgGxVO> page, ProjectSearchDTO searchDTO); void add(SgGxDO sgGxDO); void update(SgGxDO sgGxDO); SgGxVO detail(Long id); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/SgGxStepService.java
New file @@ -0,0 +1,21 @@ package cn.gistack.sm.sg.service; import cn.gistack.sm.sg.DO.SgGxStepDO; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 施工工序步骤表 服务类 * </p> * * @author shenyijian * @since 2024-06-13 15:46:18 */ public interface SgGxStepService extends IService<SgGxStepDO> { void add(SgGxStepDO sgGxStepDO); void updateOne(SgGxStepDO sgGxStepDO); void delete(String id); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/SgProjectInfoService.java
@@ -1,6 +1,5 @@ package cn.gistack.sm.sg.service; import cn.gistack.sm.patrol.entity.PatrolInfo; import cn.gistack.sm.sg.DO.SgProjectInfoDO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import com.baomidou.mybatisplus.core.metadata.IPage; skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java
New file @@ -0,0 +1,69 @@ package cn.gistack.sm.sg.service.impl; import cn.gistack.sm.sg.DO.SgGxDO; import cn.gistack.sm.sg.DO.SgGxStepDO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import cn.gistack.sm.sg.VO.SgGxVO; import cn.gistack.sm.sg.mapper.SgGxMapper; import cn.gistack.sm.sg.service.SgGxService; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * <p> * 施工工序基本表 服务实现类 * </p> * * @author shenyijian * @since 2024-06-13 15:46:18 */ @Service public class SgGxServiceImpl extends ServiceImpl<SgGxMapper, SgGxDO> implements SgGxService { @Autowired private SgGxMapper sgGxMapper; @Override public IPage<SgGxVO> queryPageList(IPage<SgGxVO> page, ProjectSearchDTO searchDTO) { List<SgGxVO> list = sgGxMapper.queryPageList(searchDTO); if (CollectionUtils.isNotEmpty(list)){ List<Long> ids = list.stream().map(SgGxDO::getId).collect(Collectors.toList()); List<SgGxStepDO> stepDOS = sgGxMapper.queryStepByIds(ids); if (CollectionUtils.isNotEmpty(stepDOS)){ Map<Long, List<SgGxStepDO>> map = stepDOS.stream().collect(Collectors.groupingBy(SgGxStepDO::getGxInfoId)); for (SgGxVO sgGxDO : list) { sgGxDO.setStepDOList(map.get(sgGxDO.getId())); } } } return page.setRecords(list); } @Override public void add(SgGxDO sgGxDO) { if (sgGxMapper.selectByGxType(sgGxDO.getGxType())!= null){ throw new RuntimeException("工序类型已存在"); } this.save(sgGxDO); } @Override public void update(SgGxDO sgGxDO) { if (sgGxMapper.selectByGxType(sgGxDO.getGxType())!= null){ throw new RuntimeException("工序类型已存在"); } this.updateById(sgGxDO); } @Override public SgGxVO detail(Long id) { SgGxVO byId = (SgGxVO) this.getById(id); byId.setStepDOList(sgGxMapper.queryStepByIds(List.of(id))); return byId; } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxStepServiceImpl.java
New file @@ -0,0 +1,53 @@ package cn.gistack.sm.sg.service.impl; import cn.gistack.sm.sg.DO.SgGxStepDO; import cn.gistack.sm.sg.mapper.SgGxStepMapper; import cn.gistack.sm.sg.service.SgGxStepService; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import org.springblade.core.log.exception.ServiceException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.lang.reflect.Array; import java.util.Arrays; import java.util.List; /** * <p> * 施工工序步骤表 服务实现类 * </p> * * @author shenyijian * @since 2024-06-13 15:46:18 */ @Service public class SgGxStepServiceImpl extends ServiceImpl<SgGxStepMapper, SgGxStepDO> implements SgGxStepService { @Autowired private SgGxStepMapper sgGxStepMapper; @Override public void add(SgGxStepDO sgGxStepDO) { List<SgGxStepDO> list= sgGxStepMapper.selectByGxInfoId(sgGxStepDO.getGxInfoId()); if (CollectionUtils.isNotEmpty(list)){ if (Integer.parseInt(sgGxStepDO.getGxStepNum()) - Integer.parseInt(list.get(0).getGxStepNum()) != 1){ throw new ServiceException("请按顺序配置工序"); } } this.save(sgGxStepDO); } @Override public void updateOne(SgGxStepDO sgGxStepDO) { this.updateById(sgGxStepDO); } @Override public void delete(String id) { SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(id); List<SgGxStepDO> list= sgGxStepMapper.selectByGxInfoId(sgGxStepDO.getGxInfoId()); if (sgGxStepDO.getGxStepNum().equals(list.get(0).getGxStepNum())){ throw new ServiceException("请按顺序删除工序步骤"); } this.removeById(id); } }