lipenghui 5 mēneši atpakaļ
vecāks
revīzija
6280e46e87

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/pom.xml

@@ -60,6 +60,12 @@
             <groupId>cn.iocoder.boot</groupId>
             <artifactId>yudao-spring-boot-starter-excel</artifactId>
         </dependency>
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-module-supplier-biz</artifactId>
+            <version>2.4.1-jdk8-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
 
     </dependencies>
 

+ 34 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/IotDeviceController.java

@@ -1,10 +1,20 @@
 package cn.iocoder.yudao.module.pms.controller.admin;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDevicePageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.service.IotDeviceService;
+import cn.iocoder.yudao.module.pms.util.IotDeviceConvert;
+import cn.iocoder.yudao.module.supplier.dal.dataobject.product.SupplierDO;
+import cn.iocoder.yudao.module.supplier.service.product.SupplierService;
+import cn.iocoder.yudao.module.system.convert.user.UserConvert;
+import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
+import cn.iocoder.yudao.module.system.service.dept.DeptService;
+import cn.iocoder.yudao.module.system.service.dict.DictDataService;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -29,6 +39,7 @@ 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 static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
 
 
 @Tag(name = "管理后台 - 设备台账")
@@ -39,6 +50,12 @@ public class IotDeviceController {
 
     @Resource
     private IotDeviceService iotDeviceService;
+    @Resource
+    private DeptService deptService;
+    @Resource
+    private DictDataService dictDataService;
+    @Resource
+    private SupplierService supplierService;
 
     @PostMapping("/create")
     @Operation(summary = "创建设备台账")
@@ -70,7 +87,15 @@ public class IotDeviceController {
     @PreAuthorize("@ss.hasPermission('rq:iot-device:query')")
     public CommonResult<IotDeviceRespVO> getIotDevice(@RequestParam("id") Long id) {
         IotDeviceDO iotDevice = iotDeviceService.getIotDevice(id);
-        return success(BeanUtils.toBean(iotDevice, IotDeviceRespVO.class));
+        IotDeviceRespVO iotDeviceRespVO = new IotDeviceRespVO();
+        BeanUtils.copyProperties(iotDevice, iotDeviceRespVO);
+        DictDataDO dictData = dictDataService.getDictData(iotDevice.getBrand());
+        iotDeviceRespVO.setBrandName(Objects.nonNull(dictData)?dictData.getLabel():"");
+        SupplierDO supplierDO = supplierService.get(iotDevice.getSupplierId());
+        iotDeviceRespVO.setSupplierName(Objects.nonNull(supplierDO)?supplierDO.getName():"");
+        SupplierDO supplierDO1 = supplierService.get(iotDevice.getManufacturerId());
+        iotDeviceRespVO.setZzName(Objects.nonNull(supplierDO1)?supplierDO1.getName():"");
+        return success(iotDeviceRespVO);
     }
 
     @GetMapping("/page")
@@ -78,7 +103,14 @@ public class IotDeviceController {
     @PreAuthorize("@ss.hasPermission('rq:iot-device:query')")
     public CommonResult<PageResult<IotDeviceRespVO>> getIotDevicePage(@Valid IotDevicePageReqVO pageReqVO) {
         PageResult<IotDeviceDO> pageResult = iotDeviceService.getIotDevicePage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, IotDeviceRespVO.class));
+        if (CollUtil.isEmpty(pageResult.getList())) {
+            return success(new PageResult<>(pageResult.getTotal()));
+        }
+        Map<Long, DeptDO> deptMap = deptService.getDeptMap(
+                convertList(pageResult.getList(), IotDeviceDO::getOrgId));
+        return success(new PageResult<>(IotDeviceConvert.INSTANCE.convertList(pageResult.getList(), deptMap),
+                pageResult.getTotal()));
+        //return success(BeanUtils.toBean(pageResult, IotDeviceRespVO.class));
     }
 
     @GetMapping("/export-excel")

+ 7 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/vo/IotDevicePageReqVO.java

@@ -8,6 +8,7 @@ import lombok.ToString;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 
 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
 
@@ -52,7 +53,7 @@ public class IotDevicePageReqVO extends PageParam {
 
     @Schema(description = "生产日期")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDate[] manDate;
+    private LocalDateTime manDate;
 
     @Schema(description = "铭牌信息")
     private String nameplate;
@@ -65,7 +66,7 @@ public class IotDevicePageReqVO extends PageParam {
 
     @Schema(description = "采购/租赁日期")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDate[] plDate;
+    private LocalDateTime plDate;
 
     @Schema(description = "折旧年限")
     private Integer plYear;
@@ -101,4 +102,8 @@ public class IotDevicePageReqVO extends PageParam {
     @Schema(description = "动态模板信息")
     private String templateJson;
 
+    @Schema(description = "资产类别")
+    private String assetClass;
+    @Schema(description = "创建时间")
+    private LocalDateTime createTime;
 }

+ 18 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/vo/IotDeviceRespVO.java

@@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.*;
 import com.alibaba.excel.annotation.*;
 
@@ -62,7 +63,7 @@ public class IotDeviceRespVO {
 
     @Schema(description = "生产日期", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("生产日期")
-    private LocalDate manDate;
+    private LocalDateTime manDate;
 
     @Schema(description = "铭牌信息")
     @ExcelProperty("铭牌信息")
@@ -78,7 +79,7 @@ public class IotDeviceRespVO {
 
     @Schema(description = "采购/租赁日期")
     @ExcelProperty("采购/租赁日期")
-    private LocalDate plDate;
+    private LocalDateTime plDate;
 
     @Schema(description = "折旧年限")
     @ExcelProperty("折旧年限")
@@ -124,4 +125,19 @@ public class IotDeviceRespVO {
     @ExcelProperty("动态模板信息")
     private String templateJson;
 
+    @Schema(description = "资产类别")
+    @ExcelProperty("资产类别")
+    private String assetClass;
+    @Schema(description = "创建时间")
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+    @Schema(description = "部门名称")
+    @ExcelProperty("部门名称")
+    private String deptName;
+    @Schema(description = "品牌型号")
+    private String brandName;
+    @Schema(description = "制造商名称")
+    private String zzName;
+    @Schema(description = "供应商名称")
+    private String supplierName;
 }

+ 5 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/vo/IotDeviceSaveReqVO.java

@@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.*;
 import javax.validation.constraints.*;
 
@@ -56,7 +57,7 @@ public class IotDeviceSaveReqVO {
 
     @Schema(description = "生产日期", requiredMode = Schema.RequiredMode.REQUIRED)
     @NotNull(message = "生产日期不能为空")
-    private LocalDate manDate;
+    private LocalDateTime manDate;
 
     @Schema(description = "铭牌信息")
     private String nameplate;
@@ -68,7 +69,7 @@ public class IotDeviceSaveReqVO {
     private Integer plPrice;
 
     @Schema(description = "采购/租赁日期")
-    private LocalDate plDate;
+    private LocalDateTime plDate;
 
     @Schema(description = "折旧年限")
     private Integer plYear;
@@ -103,4 +104,6 @@ public class IotDeviceSaveReqVO {
     @Schema(description = "动态模板信息")
     private String templateJson;
 
+    @Schema(description = "资产类别")
+    private String assetClass;
 }

+ 5 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/IotDeviceDO.java

@@ -6,7 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
 
-import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Date;
 
 /**
  * 设备台账 DO
@@ -75,7 +76,7 @@ public class IotDeviceDO extends BaseDO {
     /**
      * 生产日期
      */
-    private LocalDate manDate;
+    private LocalDateTime manDate;
     /**
      * 铭牌信息
      */
@@ -91,7 +92,7 @@ public class IotDeviceDO extends BaseDO {
     /**
      * 采购/租赁日期
      */
-    private LocalDate plDate;
+    private LocalDateTime plDate;
     /**
      * 折旧年限
      */
@@ -137,4 +138,5 @@ public class IotDeviceDO extends BaseDO {
      */
     private String templateJson;
 
+    private String assetClass;
 }

+ 2 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/IotDeviceMapper.java

@@ -28,11 +28,11 @@ public interface IotDeviceMapper extends BaseMapperX<IotDeviceDO> {
                 .eqIfPresent(IotDeviceDO::getRemark, reqVO.getRemark())
                 .eqIfPresent(IotDeviceDO::getManufacturerId, reqVO.getManufacturerId())
                 .eqIfPresent(IotDeviceDO::getSupplierId, reqVO.getSupplierId())
-                .betweenIfPresent(IotDeviceDO::getManDate, reqVO.getManDate())
                 .eqIfPresent(IotDeviceDO::getNameplate, reqVO.getNameplate())
                 .eqIfPresent(IotDeviceDO::getExpires, reqVO.getExpires())
                 .eqIfPresent(IotDeviceDO::getPlPrice, reqVO.getPlPrice())
-                .betweenIfPresent(IotDeviceDO::getPlDate, reqVO.getPlDate())
+                //.betweenIfPresent(IotDeviceDO::getPlDate, reqVO.getPlDate())
+                //.betweenIfPresent(IotDeviceDO::getManDate, reqVO.getManDate())
                 .eqIfPresent(IotDeviceDO::getPlYear, reqVO.getPlYear())
                 .betweenIfPresent(IotDeviceDO::getPlStartDate, reqVO.getPlStartDate())
                 .eqIfPresent(IotDeviceDO::getPlMonthed, reqVO.getPlMonthed())

+ 1 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IotDeviceServiceImpl.java

@@ -30,6 +30,7 @@ public class IotDeviceServiceImpl implements IotDeviceService {
     public Long createIotDevice(IotDeviceSaveReqVO createReqVO) {
         // 插入
         IotDeviceDO iotDevice = BeanUtils.toBean(createReqVO, IotDeviceDO.class);
+        iotDevice.setDeleted(false);
         iotDeviceMapper.insert(iotDevice);
         // 返回
         return iotDevice.getId();

+ 60 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/util/IotDeviceConvert.java

@@ -0,0 +1,60 @@
+package cn.iocoder.yudao.module.pms.util;
+
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
+import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
+import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostSimpleRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSimpleRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserRespVO;
+import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSimpleRespVO;
+import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface IotDeviceConvert {
+
+    IotDeviceConvert INSTANCE = Mappers.getMapper(IotDeviceConvert.class);
+
+    default List<IotDeviceRespVO> convertList(List<IotDeviceDO> list, Map<Long, DeptDO> deptMap) {
+        return CollectionUtils.convertList(list, de -> convert(de, deptMap.get(de.getOrgId())));
+    }
+
+    default IotDeviceRespVO convert(IotDeviceDO user, DeptDO dept) {
+        IotDeviceRespVO userVO = BeanUtils.toBean(user, IotDeviceRespVO.class);
+        if (dept != null) {
+            userVO.setDeptName(dept.getName());
+        }
+        return userVO;
+    }
+
+    default List<UserSimpleRespVO> convertSimpleList(List<AdminUserDO> list, Map<Long, DeptDO> deptMap) {
+        return CollectionUtils.convertList(list, user -> {
+            UserSimpleRespVO userVO = BeanUtils.toBean(user, UserSimpleRespVO.class);
+            MapUtils.findAndThen(deptMap, user.getDeptId(), dept -> userVO.setDeptName(dept.getName()));
+            return userVO;
+        });
+    }
+
+    default UserProfileRespVO convert(AdminUserDO user, List<RoleDO> userRoles,
+                                      DeptDO dept, List<PostDO> posts, List<SocialUserDO> socialUsers) {
+        UserProfileRespVO userVO = BeanUtils.toBean(user, UserProfileRespVO.class);
+        userVO.setRoles(BeanUtils.toBean(userRoles, RoleSimpleRespVO.class));
+        userVO.setDept(BeanUtils.toBean(dept, DeptSimpleRespVO.class));
+        userVO.setPosts(BeanUtils.toBean(posts, PostSimpleRespVO.class));
+        userVO.setSocialUsers(BeanUtils.toBean(socialUsers, UserProfileRespVO.SocialUser.class));
+        return userVO;
+    }
+
+}