Selaa lähdekoodia

设备台账瑞恒数据导入及oa接口

lipenghui 2 päivää sitten
vanhempi
commit
faf31f1e27

+ 38 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/constant/OaFlow.java

@@ -0,0 +1,38 @@
+package cn.iocoder.yudao.module.pms.constant;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.stereotype.Component;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+
+@Component
+public class OaFlow {
+    @Value("${oa.appid}")
+    private String appid;
+    @Value("${oa.cpk}")
+    private String cpk;
+    @Value("${oa.register}")
+    private String registerUrl;
+    @Value("${oa.gettoken}")
+    private String tokenUrl;
+
+
+    @Resource
+    private RestTemplate restTemplate;;
+
+
+    public void regist() throws Exception{
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("appid", appid);
+        headers.add("cpk", cpk);
+
+        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(headers);
+        String result = restTemplate.postForObject(registerUrl, requestEntity, String.class);
+        System.out.println("result:" + result);
+
+    }
+}

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

@@ -10,12 +10,14 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.module.pms.ThingsModelDTO;
+import cn.iocoder.yudao.module.pms.constant.OaFlow;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceperson.vo.IotDevicePersonRelationSaveReqVO;
 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.controller.admin.vo.IotDeviceSimpleRespVO;
+import cn.iocoder.yudao.module.pms.controller.admin.vo.excel.DeviceImportExcelVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.YfDeviceDO;
@@ -38,11 +40,13 @@ import cn.iocoder.yudao.module.system.service.dict.DictDataService;
 import com.google.common.collect.ImmutableList;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.annotation.security.PermitAll;
@@ -545,4 +549,28 @@ public class IotDeviceController {
     public void initCharge() {
         iotDeviceService.updateCharge();
     }
+
+    @Autowired
+    private OaFlow oaFlow;
+
+    @PermitAll
+    @GetMapping("/oa/register")
+    public void oaRegister() {
+        try {
+            oaFlow.regist();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @PermitAll
+    @PostMapping("/import")
+    @Operation(summary = "导入设备")
+    @Parameters({
+            @Parameter(name = "file", description = "Excel 文件", required = true),
+    })
+    public void importExcel(@RequestParam("file") MultipartFile file) throws Exception {
+        List<DeviceImportExcelVO> list = ExcelUtils.read(file, DeviceImportExcelVO.class);
+        iotDeviceService.importDevice(list);
+    }
 }

+ 0 - 19
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/stat/IotStaticController.java

@@ -408,25 +408,6 @@ public class IotStaticController {
             List<DeviceVO> deviceVOS = new ArrayList<>();
             return CommonResult.success(deviceVOS);
         }
-//        DeviceHistoryParam deviceHistoryParam = new DeviceHistoryParam();
-//        List<IotDeviceDO> iotDeviceDOS = iotDeviceMapper.selectByCodeIn(ImmutableList.of(deviceName));
-//        if (CollUtil.isEmpty(iotDeviceDOS)) {return CommonResult.success(new JSONArray());}
-//        deviceHistoryParam.setDeviceId(iotDeviceDOS.get(0).getYfDeviceId());
-//        deviceHistoryParam.setSerialNumber(deviceName);
-//        List<DeviceHistoryParam.IdentifierVO> list = Lists.newArrayList();
-//        DeviceHistoryParam.IdentifierVO identifierVO = new DeviceHistoryParam.IdentifierVO();
-//        identifierVO.setIdentifier(identifier);
-//        identifierVO.setType(1);
-//        list.add(identifierVO);
-//        deviceHistoryParam.setIdentifierList(list);
-//        deviceHistoryParam.setBeginTime(beginTime);
-//        deviceHistoryParam.setEndTime(endTime);
-//
-//        JSONObject jsonObject = restTemplate.postForObject(yanfanUrl + "/prod-api/data/center/deviceHistory", deviceHistoryParam, JSONObject.class);
-//        JSONArray object = JSON.parseArray(JSON.toJSONString(jsonObject.get("data")));
-
-//        return CommonResult.success(object);
-
     }
 
     private Set<Long> getDeptIds(String dept) {

+ 39 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/vo/excel/DeviceImportExcelVO.java

@@ -0,0 +1,39 @@
+package cn.iocoder.yudao.module.pms.controller.admin.vo.excel;
+
+import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
+import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
+import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * 用户 Excel 导入 VO
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
+public class DeviceImportExcelVO {
+
+    @ExcelProperty("资产编号")
+    private String deviceCode;
+
+    @ExcelProperty("资产名称")
+    private String deviceName;
+
+    @ExcelProperty("启用时间")
+    private LocalDateTime enableDate;
+
+    @ExcelProperty("使用项目")
+    private String useProject;
+
+    @ExcelProperty("资产归属")
+    private String assetOwnership;
+}

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

@@ -168,4 +168,6 @@ public class IotDeviceDO extends BaseDO {
     private String brandName;
 
     private String vehicleName;
+    private String assetOwnership;
+    private String useProject;
 }

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/IotDeviceService.java

@@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.pms.ThingsModelDTO;
 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.controller.admin.vo.excel.DeviceImportExcelVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 
 import javax.validation.Valid;
@@ -20,6 +21,7 @@ import java.util.Map;
  * @author 芋道源码
  */
 public interface IotDeviceService {
+    void importDevice(List<DeviceImportExcelVO> list);
     List<IotDeviceDO> getMapDevice();
     List<ThingsModelDTO> getTdParams(IotDeviceDO iotDeviceDO);
     /**

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

@@ -18,6 +18,7 @@ import cn.iocoder.yudao.module.pms.controller.admin.iotmodeltemplateattrs.vo.Iot
 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.controller.admin.vo.excel.DeviceImportExcelVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotInfoClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotTreeDO;
@@ -122,6 +123,18 @@ public class IotDeviceServiceImpl implements IotDeviceService {
     private IotOpeationFillMapper zhbdmapper;
     private final static String parameter = "lng~~经度,lat~~纬度,today_distance~~当日里程,distance~~总里程,todayoil~~当日油量,totaloil~~总油量,online~~是否在线,oil1~~1路油量,oil2~~2路油量,oil3~~3路油量,oil4~~4路油量,vehicle_name~~车牌号码";
 
+    @Override
+    public void importDevice(List<DeviceImportExcelVO> list) {
+        List<IotDeviceDO> iotDeviceDOS = iotDeviceMapper.selectList();
+        for (DeviceImportExcelVO deviceImportExcelVO : list) {
+            iotDeviceDOS.stream().filter(e -> e.getDeviceCode().equals(deviceImportExcelVO.getDeviceCode())).forEach(f ->{
+                f.setAssetOwnership(deviceImportExcelVO.getAssetOwnership());
+                f.setUseProject(deviceImportExcelVO.getUseProject());
+                iotDeviceMapper.updateById(f);
+            });
+        }
+    }
+
     @Override
     public List<IotDeviceDO> getMapDevice() {
         return iotDeviceMapper.selectDataCollect();