车车 4 ヶ月 前
コミット
badabe868d

+ 2 - 2
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/sop/SopController.java

@@ -67,8 +67,8 @@ public class SopController {
     @Operation(summary = "获得SOP信息分页")
     @PreAuthorize("@ss.hasPermission('iscs:sop:query')")
     public CommonResult<PageResult<SopRespVO>> getSopPage(@Valid SopPageReqVO pageReqVO) {
-        PageResult<SopDO> pageResult = sopService.getSopPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, SopRespVO.class));
+        PageResult<SopRespVO> pageResult = sopService.getSopPage(pageReqVO);
+        return success(pageResult);
     }
 
 }

+ 9 - 11
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/sop/vo/SopPageReqVO.java

@@ -1,13 +1,8 @@
 package cn.iocoder.yudao.module.iscs.controller.admin.sop.vo;
 
-import lombok.*;
-import java.util.*;
-import io.swagger.v3.oas.annotations.media.Schema;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import org.springframework.format.annotation.DateTimeFormat;
-import java.time.LocalDateTime;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
 
 @Schema(description = "管理后台 - SOP信息分页 Request VO")
 @Data
@@ -46,8 +41,11 @@ public class SopPageReqVO extends PageParam {
     @Schema(description = "备注", example = "你说的对")
     private String remark;
 
-    @Schema(description = "创建时间")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDateTime[] createTime;
+    @Schema(description = "开始时间")
+    private String startTime;
+
+    @Schema(description = "结束时间")
+    private String endTime;
+
 
-}
+}

+ 18 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/sop/vo/SopRespVO.java

@@ -65,6 +65,24 @@ public class SopRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    @Schema(description = "SOP类型")
+    private String sopTypeName;
+
+    @Schema(description = "所属车间Name")
+    private String workshopName;
+
+    @Schema(description = "所属区域Name")
+    private String workareaName;
+
+    @Schema(description = "隔离点数量")
+    private Integer pointCount;
+
+    @Schema(description = "所属岗位Name")
+    private String workstationName;
+
+    @Schema(description = "设备工艺Name")
+    private String machineryName;
+
     @Schema(description = "流程步骤数据")
     private List<SopWorkflowStepRespVO> sopStepList;
 

+ 6 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/mysql/sop/SopMapper.java

@@ -4,8 +4,11 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.SopPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.SopRespVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.sop.SopDO;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * SOP信息 Mapper
@@ -28,8 +31,10 @@ public interface SopMapper extends BaseMapperX<SopDO> {
                 .eqIfPresent(SopDO::getSopStatus, reqVO.getSopStatus())
                 .eqIfPresent(SopDO::getSopIndex, reqVO.getSopIndex())
                 .eqIfPresent(SopDO::getRemark, reqVO.getRemark())
-                .betweenIfPresent(SopDO::getCreateTime, reqVO.getCreateTime())
+                // .betweenIfPresent(SopDO::getCreateTime, reqVO.getCreateTime())
                 .orderByAsc(SopDO::getId));
     }
 
+    Page<SopRespVO> getSopPage(Page<SopDO> page, @Param(value = "vo") SopPageReqVO vo);
+
 }

+ 1 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopService.java

@@ -53,6 +53,6 @@ public interface SopService extends IService<SopDO> {
      * @param pageReqVO 分页查询
      * @return SOP信息分页
      */
-    PageResult<SopDO> getSopPage(SopPageReqVO pageReqVO);
+    PageResult<SopRespVO> getSopPage(SopPageReqVO pageReqVO);
 
 }

+ 8 - 2
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopServiceImpl.java

@@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.*;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.sop.SopDO;
 import cn.iocoder.yudao.module.iscs.dal.mysql.sop.SopMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
@@ -114,8 +115,13 @@ public class SopServiceImpl extends ServiceImpl<SopMapper, SopDO> implements Sop
     }
 
     @Override
-    public PageResult<SopDO> getSopPage(SopPageReqVO pageReqVO) {
-        return sopMapper.selectPage(pageReqVO);
+    public PageResult<SopRespVO> getSopPage(SopPageReqVO pageReqVO) {
+        Page<SopDO> page = new Page<SopDO>().setCurrent(pageReqVO.getPageNo()).setSize(pageReqVO.getPageSize());
+        Page<SopRespVO> pageResult = sopMapper.getSopPage(page, pageReqVO);
+        PageResult<SopRespVO> respVOPageResult = new PageResult<>();
+        respVOPageResult.setList(pageResult.getRecords());
+        respVOPageResult.setTotal(pageResult.getTotal());
+        return respVOPageResult;
     }
 
 }

+ 53 - 1
yudao-module-iscs/src/main/resources/mapper/SopMapper.xml

@@ -9,4 +9,56 @@
         文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
      -->
 
-</mapper>
+    <select id="getSopPage" resultType="cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.SopRespVO">
+        SELECT
+        s.*,
+        ws.workshop_name,
+        wa.workarea_name,
+        w.workstation_name,
+        d.machinery_name,
+        any_value(di.label) as sopTypeName,
+        COUNT( p.record_id ) AS pointCount
+        FROM
+        isc_sop s
+        LEFT JOIN isc_workarea wa ON wa.id = s.workarea_id
+        LEFT JOIN isc_workstation w ON w.id = s.workstation_id
+        LEFT JOIN system_users u ON u.id = s.creator
+        LEFT JOIN isc_machinery d ON d.id = s.machinery_id
+        LEFT JOIN isc_sop_points p ON p.sop_id = s.id
+        LEFT JOIN system_dict_data di ON di.dict_type = "sop_type" and di.value = s.sop_type
+        <where>
+            <if test="dto.sopCode != null and dto.sopCode.trim != ''">
+                and s.sop_code like concat('%',#{dto.sopCode},'%')
+            </if>
+            <if test="dto.sopName != null and dto.sopName.trim != ''">
+                and s.sop_name like concat('%',#{dto.sopName},'%')
+            </if>
+            <if test="dto.sopStatus != null and dto.sopStatus.trim != ''">
+                and s.sop_status = #{dto.sopStatus}
+            </if>
+            <if test="dto.workshopId != null">
+                and s.workshop_id = #{dto.workshopId}
+            </if>
+            <if test="dto.workareaId != null">
+                and s.workarea_id = #{dto.workareaId}
+            </if>
+            <if test="dto.sopType != null and dto.sopType.trim != ''">
+                and s.sop_type = #{dto.sopType}
+            </if>
+            <if test="dto.startTime != null and dto.startTime.trim != ''">
+                and s.create_time &gt;= #{dto.startTime}
+            </if>
+            <if test="dto.endTime != null and dto.endTime.trim != ''">
+                and s.create_time &lt;= #{dto.endTime}
+            </if>
+            <if test="dto.workstationId != null">
+                and s.workstation_id = #{dto.workstationId}
+            </if>
+            <if test="dto.machineryId != null">
+                and s.machinery_id = #{dto.machineryId}
+            </if>
+        </where>
+        GROUP BY s.id
+        ORDER BY s.sop_index ASC, s.id DESC
+    </select>
+</mapper>