cxd 6 mēneši atpakaļ
vecāks
revīzija
70700f2238

+ 8 - 3
gqy-admin/src/main/java/com/gqy/web/controller/document/ProductController.java

@@ -1,14 +1,17 @@
 package com.gqy.web.controller.document;
 
+import com.gqy.common.core.controller.BaseController;
 import com.gqy.common.core.domain.AjaxResult;
 import com.gqy.common.core.domain.AjaxResultCQY;
 import com.gqy.common.core.page.TableDataInfo;
+import com.gqy.document.domain.DcWork;
 import com.gqy.document.domain.vo.PageResult;
 import com.gqy.document.service.IDcProductService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 import java.util.Map;
 
 
@@ -19,7 +22,7 @@ import java.util.Map;
  */
 @RestController
 @RequestMapping("/product")
-public class ProductController {
+public class ProductController extends BaseController {
 
     @Autowired
     IDcProductService iDcProductService;
@@ -41,8 +44,10 @@ public class ProductController {
 
     @GetMapping("/list")
     public TableDataInfo list(@RequestParam Map<String, Object> maps) {
-
-        return null;
+        // 开启分页
+        startPage();
+        List<Map> list = iDcProductService.selectProductBaseList(maps);
+        return getDataTable(list);
     }
 
 }

+ 19 - 0
gqy-system/src/main/java/com/gqy/document/mapper/DcProductMapper.java

@@ -2,6 +2,9 @@ package com.gqy.document.mapper;
 
 import com.gqy.document.domain.DcProduct;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 产品对象 dc_product 最新
  */
@@ -16,4 +19,20 @@ public interface DcProductMapper {
     public int insertDcProduct(DcProduct dcProduct);
 
 
+    /**
+     * 新增产品对象 dc_product
+     *
+     * @param dcProduct 产品对象 dc_product
+     * @return 结果
+     */
+    public List<Map> selectProductBaseList(Map dcProduct);
+
+
+    /**
+     * 查询所有参数名称
+     * @return
+     */
+    public  List<String> selectAllParamNames();
+
+
 }

+ 9 - 0
gqy-system/src/main/java/com/gqy/document/service/IDcProductService.java

@@ -1,5 +1,6 @@
 package com.gqy.document.service;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -15,4 +16,12 @@ public interface IDcProductService {
     public int add(Map<String, Object> params);
 
 
+    /**
+     * 查询所有参数名称
+     * @param params
+     * @return
+     */
+    public List<Map> selectProductBaseList(Map params);
+
+
 }

+ 14 - 0
gqy-system/src/main/java/com/gqy/document/service/impl/DcProductServiceImpl.java

@@ -13,6 +13,7 @@ import com.gqy.document.service.IDcProductService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -31,6 +32,19 @@ public class DcProductServiceImpl implements IDcProductService {
     @Autowired
     private DcSystemProductMapper dcSystemProductMapper;
 
+
+    /**
+     * 查询所有参数名称
+     * @param params
+     * @return
+     */
+    public List<Map> selectProductBaseList(Map params) {
+        // 先获取所有规格参数名称
+        List<String> paramNames = dcProductMapper.selectAllParamNames();
+        params.put("paramNames", paramNames);
+        return dcProductMapper.selectProductBaseList(params);
+    }
+
     /**
      *
      * @param params

+ 43 - 0
gqy-system/src/main/resources/mapper/document/DcProductMapper.xml

@@ -27,6 +27,49 @@
         from dc_product
     </sql>
 
+
+    <!-- 先查询所有规格参数名称 -->
+    <select id="selectAllParamNames" resultType="string">
+        SELECT DISTINCT ps_name
+        FROM dc_ps_param
+        ORDER BY ps_name
+    </select>
+
+    <!-- 动态构建SQL的查询 -->
+    <select id="selectProductBaseList" parameterType="map" resultType="java.util.Map">
+        SELECT
+        p.dcp_oa_code,
+        p.dcp_p_no,
+        p.dcp_name,
+        p.dcp_model,
+        <foreach item="paramName" collection="paramNames" separator=",">
+            MAX(CASE WHEN param.ps_name = #{paramName} THEN spec.ps_value END) as "${paramName}"
+        </foreach>
+        FROM
+        dc_product p
+        LEFT JOIN dc_p_spec spec ON p.dcp_id = spec.ps_p_id
+        LEFT JOIN dc_ps_param param ON spec.ps_no = param.ps_no
+        <where>
+            <if test="dcp_oa_code != null and dcp_oa_code != ''">
+                AND p.dcp_oa_code like concat('%', #{dcp_oa_code}, '%')
+            </if>
+            <if test="dcp_p_no != null and dcp_p_no != ''">
+                AND p.dcp_p_no like concat('%', #{dcp_p_no}, '%')
+            </if>
+            <if test="dcp_name != null and dcp_name != ''">
+                AND p.dcp_name like concat('%', #{dcp_name}, '%')
+            </if>
+            <if test="dcp_model != null and dcp_model != ''">
+                AND p.dcp_model like concat('%', #{dcp_model}, '%')
+            </if>
+        </where>
+        GROUP BY
+        p.dcp_id, p.dcp_oa_code, p.dcp_p_no, p.dcp_name, p.dcp_model
+        ORDER BY
+        p.create_time DESC
+    </select>
+
+
     <select id="selectDcProductList" parameterType="DcProduct" resultMap="DcProductResult">
         <include refid="selectDcProductVo"/>
         <where>