Browse Source

选择物料

lipenghui 4 months ago
parent
commit
e2e6df2814

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

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.pms.controller.admin.maintain.material;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.material.vo.IotMaintainMaterialPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.material.vo.IotMaintainMaterialRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.material.vo.IotMaintainMaterialSaveReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
 import cn.iocoder.yudao.module.pms.service.maintain.material.IotMaintainMaterialService;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
@@ -29,7 +30,6 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
 
-import cn.iocoder.yudao.module.rq.dal.dataobject.iotmaintainmaterial.IotMaintainMaterialDO;
 
 
 @Tag(name = "管理后台 - 工单物料")
@@ -94,12 +94,12 @@ public class IotMaintainMaterialController {
         ExcelUtils.write(response, "工单物料.xls", "数据", IotMaintainMaterialRespVO.class,
                         BeanUtils.toBean(list, IotMaintainMaterialRespVO.class));
     }
-    @GetMapping("/get")
+    @GetMapping("/choose")
     @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));
+    public CommonResult<PageResult<IotMaintainMaterialDO>> getIotMaintainMaterials(@Valid IotMaintainMaterialPageReqVO pageReqVO) {
+        PageResult<IotMaintainMaterialDO> iotMaintainMaterials = iotMaintainMaterialService.getIotMaintainMaterials(pageReqVO);
+        return success(iotMaintainMaterials);
     }
 }

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/maintain/material/vo/IotMaintainMaterialPageReqVO.java

@@ -49,5 +49,7 @@ public class IotMaintainMaterialPageReqVO extends PageParam {
     @Schema(description = "创建时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;
+    @Schema(description = "部门id")
+    private Long deptId;
 
 }

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/maintain/material/IotMaintainMaterialDO.java

@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.module.rq.dal.dataobject.iotmaintainmaterial;
+package cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material;
 
 import lombok.*;
 import java.util.*;

+ 41 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/failure/IotFailureReportMapper.java

@@ -0,0 +1,41 @@
+package cn.iocoder.yudao.module.pms.dal.mysql.failure;
+
+import java.util.*;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportPageReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 故障上报 Mapper
+ *
+ * @author 芋道源码
+ */
+@Mapper
+public interface IotFailureReportMapper extends BaseMapperX<IotFailureReportDO> {
+
+    default PageResult<IotFailureReportDO> selectPage(IotFailureReportPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<IotFailureReportDO>()
+                .eqIfPresent(IotFailureReportDO::getFailureCode, reqVO.getFailureCode())
+                .likeIfPresent(IotFailureReportDO::getFailureName, reqVO.getFailureName())
+                .eqIfPresent(IotFailureReportDO::getDeviceId, reqVO.getDeviceId())
+                .eqIfPresent(IotFailureReportDO::getStatus, reqVO.getStatus())
+                .eqIfPresent(IotFailureReportDO::getIfStop, reqVO.getIfStop())
+                .betweenIfPresent(IotFailureReportDO::getFailureTime, reqVO.getFailureTime())
+                .eqIfPresent(IotFailureReportDO::getFailureInfluence, reqVO.getFailureInfluence())
+                .eqIfPresent(IotFailureReportDO::getFailureSystem, reqVO.getFailureSystem())
+                .eqIfPresent(IotFailureReportDO::getDescription, reqVO.getDescription())
+                .eqIfPresent(IotFailureReportDO::getPic, reqVO.getPic())
+                .eqIfPresent(IotFailureReportDO::getIfDeal, reqVO.getIfDeal())
+                .eqIfPresent(IotFailureReportDO::getNeedHelp, reqVO.getNeedHelp())
+                .eqIfPresent(IotFailureReportDO::getSolution, reqVO.getSolution())
+                .eqIfPresent(IotFailureReportDO::getRemark, reqVO.getRemark())
+                .eqIfPresent(IotFailureReportDO::getDeptId, reqVO.getDeptId())
+                .betweenIfPresent(IotFailureReportDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(IotFailureReportDO::getId));
+    }
+
+}

+ 6 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/maintain/material/IotMaintainMaterialMapper.java

@@ -1,13 +1,16 @@
 package cn.iocoder.yudao.module.pms.dal.mysql.maintain.material;
 
+import java.time.LocalDateTime;
 import java.util.*;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.material.vo.IotMaintainMaterialPageReqVO;
-import cn.iocoder.yudao.module.rq.dal.dataobject.iotmaintainmaterial.IotMaintainMaterialDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 工单物料 Mapper
@@ -33,4 +36,6 @@ public interface IotMaintainMaterialMapper extends BaseMapperX<IotMaintainMateri
                 .orderByDesc(IotMaintainMaterialDO::getId));
     }
 
+
+    IPage<IotMaintainMaterialDO> selectMaterialsByDept(IPage<IotMaintainMaterialDO> page, @Param("deptId") Long deptId, @Param("parentDept") Long parentDept);
 }

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

@@ -1,13 +1,11 @@
 package cn.iocoder.yudao.module.pms.service.maintain.material;
 
-import java.util.*;
 import javax.validation.*;
 
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.material.vo.IotMaintainMaterialPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.material.vo.IotMaintainMaterialSaveReqVO;
-import cn.iocoder.yudao.module.rq.dal.dataobject.iotmaintainmaterial.IotMaintainMaterialDO;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
 
 /**
  * 工单物料 Service 接口
@@ -52,7 +50,7 @@ public interface IotMaintainMaterialService {
      * @param id 编号
      * @return 工单物料
      */
-    List<IotMaintainMaterialDO> getIotMaintainMaterials(Long id);
+    PageResult<IotMaintainMaterialDO> getIotMaintainMaterials(IotMaintainMaterialPageReqVO pageReqVO);
 
     /**
      * 获得工单物料分页

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

@@ -1,17 +1,21 @@
 package cn.iocoder.yudao.module.pms.service.maintain.material;
 
+import cn.iocoder.yudao.framework.common.exception.ServiceException;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.material.vo.IotMaintainMaterialPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.material.vo.IotMaintainMaterialSaveReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.maintain.material.IotMaintainMaterialMapper;
+import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
+import cn.iocoder.yudao.module.system.service.dept.DeptService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
-import cn.iocoder.yudao.module.rq.dal.dataobject.iotmaintainmaterial.IotMaintainMaterialDO;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 
 
@@ -29,6 +33,8 @@ public class IotMaintainMaterialServiceImpl implements IotMaintainMaterialServic
 
     @Resource
     private IotMaintainMaterialMapper iotMaintainMaterialMapper;
+    @Autowired
+    private DeptService deptService;
 
     @Override
     public Long createIotMaintainMaterial(IotMaintainMaterialSaveReqVO createReqVO) {
@@ -68,8 +74,11 @@ public class IotMaintainMaterialServiceImpl implements IotMaintainMaterialServic
     }
 
     @Override
-    public List<IotMaintainMaterialDO> getIotMaintainMaterials(Long id) {
-        return Collections.emptyList();
+    public PageResult<IotMaintainMaterialDO> getIotMaintainMaterials(IotMaintainMaterialPageReqVO pageReqVO) {
+        DeptDO dept = deptService.getDept(pageReqVO.getDeptId());
+        if (Objects.isNull(dept)) {throw new ServiceException();}
+        IPage<IotMaintainMaterialDO> iotMaintainMaterialDOIPage = iotMaintainMaterialMapper.selectMaterialsByDept(Page.of(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO.getDeptId(), dept.getParentId());
+        return new PageResult<>(iotMaintainMaterialDOIPage.getRecords(), iotMaintainMaterialDOIPage.getTotal());
     }
 
     @Override

+ 6 - 58
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotMaintainMaterialMapper.xml

@@ -1,6 +1,6 @@
 <?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 namespace="cn.iocoder.yudao.module.pms.dal.mysql.maintain.material.IotMaintainMaterialMapper">
 
     <!--
         一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
@@ -8,62 +8,10 @@
         代码生成器暂时只生成 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 id="selectMaterialsByDept"
+            resultType="cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO">
+        select lo.material_code as code,lo.material_name as name,lo.unit_price as price,lo.quantity as totalCount,lo.unit as unit,'本地库存' as sourceType   from rq_iot_lock_stock lo where lo.dept_id = #{deptId}
+        union all
+        select sap.material_code as code,sap.material_name as name,sap.unit_price as price,sap.quantity as totalCount,sap.unit as unit,'sap库存' as sourceType from rq_iot_sap_stock sap where sap.dept_id = #{parentDept}
     </select>
 </mapper>