lipenghui 4 сар өмнө
parent
commit
611fea9c24

+ 8 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/material/IotMaintainMaterialController.java

@@ -94,5 +94,12 @@ public class IotMaintainMaterialController {
         ExcelUtils.write(response, "工单物料.xls", "数据", IotMaintainMaterialRespVO.class,
                         BeanUtils.toBean(list, IotMaintainMaterialRespVO.class));
     }
-
+    @GetMapping("/get")
+    @Operation(summary = "获得工单物料")
+    @Parameter(name = "deptId", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('rq:iot-maintain-material:query')")
+    public CommonResult<List<IotMaintainMaterialRespVO>> getIotMaintainMaterials(@RequestParam("deptId") Long deptId) {
+        List<IotMaintainMaterialDO> iotMaintainMaterial = iotMaintainMaterialService.getIotMaintainMaterials(deptId);
+        return success(BeanUtils.toBean(iotMaintainMaterial, IotMaintainMaterialRespVO.class));
+    }
 }

+ 8 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/material/IotMaintainMaterialService.java

@@ -46,6 +46,14 @@ public interface IotMaintainMaterialService {
      */
     IotMaintainMaterialDO getIotMaintainMaterial(Long id);
 
+    /**
+     * 获得选择的工单物料
+     *
+     * @param id 编号
+     * @return 工单物料
+     */
+    List<IotMaintainMaterialDO> getIotMaintainMaterials(Long id);
+
     /**
      * 获得工单物料分页
      *

+ 5 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/material/IotMaintainMaterialServiceImpl.java

@@ -67,6 +67,11 @@ public class IotMaintainMaterialServiceImpl implements IotMaintainMaterialServic
         return iotMaintainMaterialMapper.selectById(id);
     }
 
+    @Override
+    public List<IotMaintainMaterialDO> getIotMaintainMaterials(Long id) {
+        return Collections.emptyList();
+    }
+
     @Override
     public PageResult<IotMaintainMaterialDO> getIotMaintainMaterialPage(IotMaintainMaterialPageReqVO pageReqVO) {
         return iotMaintainMaterialMapper.selectPage(pageReqVO);

+ 69 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotMaintainMaterialMapper.xml

@@ -0,0 +1,69 @@
+<?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.iocoder.yudao.module.rq.dal.mysql.iotmaintainmaterial.IotMaintainMaterialMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+    <select id="selectMaterialsByDeptId"
+            resultType="cn.iocoder.yudao.module.statistics.dal.dataobject.maintain.material.IotMaintainMaterialDO">
+        SELECT spu.id                                                       AS spuId
+             -- 浏览量:一个用户可以有多次
+             , (SELECT COUNT(1)
+                FROM product_browse_history
+                WHERE spu_id = spu.id
+                  AND create_time BETWEEN #{beginTime} AND #{endTime})      AS browse_count
+             -- 访客量:按用户去重计数
+             , (SELECT COUNT(DISTINCT user_id)
+                FROM product_browse_history
+                WHERE spu_id = spu.id
+                  AND create_time BETWEEN #{beginTime} AND #{endTime})      AS browse_user_count
+             -- 收藏数量:按用户去重计数
+             , (SELECT COUNT(DISTINCT user_id)
+                FROM product_favorite
+                WHERE spu_id = spu.id
+                  AND create_time BETWEEN #{beginTime} AND #{endTime})      AS favorite_count
+             -- 加购数量:按用户去重计数
+             , (SELECT COUNT(DISTINCT user_id)
+                FROM trade_cart
+                WHERE spu_id = spu.id
+                  AND create_time BETWEEN #{beginTime} AND #{endTime})      AS cart_count
+             -- 下单件数
+             , (SELECT IFNULL(SUM(count), 0)
+                FROM trade_order_item
+                WHERE spu_id = spu.id
+                  AND create_time BETWEEN #{beginTime} AND #{endTime})      AS order_count
+             -- 支付件数
+             , (SELECT IFNULL(SUM(item.count), 0)
+                FROM trade_order_item item
+                         JOIN trade_order o ON item.order_id = o.id
+                WHERE spu_id = spu.id
+                  AND o.pay_status = TRUE
+                  AND item.create_time BETWEEN #{beginTime} AND #{endTime}) AS order_pay_count
+             -- 支付金额
+             , (SELECT IFNULL(SUM(item.pay_price), 0)
+                FROM trade_order_item item
+                         JOIN trade_order o ON item.order_id = o.id
+                WHERE spu_id = spu.id
+                  AND o.pay_status = TRUE
+                  AND item.create_time BETWEEN #{beginTime} AND #{endTime}) AS order_pay_price
+             -- 退款件数
+             , (SELECT IFNULL(SUM(count), 0)
+                FROM trade_after_sale
+                WHERE spu_id = spu.id
+                  AND refund_time IS NOT NULL
+                  AND create_time BETWEEN #{beginTime} AND #{endTime})      AS after_sale_count
+             -- 退款金额
+             , (SELECT IFNULL(SUM(refund_price), 0)
+                FROM trade_after_sale
+                WHERE spu_id = spu.id
+                  AND refund_time IS NOT NULL
+                  AND create_time BETWEEN #{beginTime} AND #{endTime})      AS after_sale_refund_price
+        FROM product_spu spu
+        WHERE spu.deleted = FALSE
+        ORDER BY spu.id
+    </select>
+</mapper>