Jelajahi Sumber

Merge branch 'dev' of http://192.168.1.220:10080/jiwei/jw2.0 into dev

Conflicts:
	app/app-iot-server/pom.xml
yeshijie 7 tahun lalu
induk
melakukan
226a2de49c
28 mengubah file dengan 772 tambahan dan 234 penghapusan
  1. 15 0
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/constant/ServiceApi.java
  2. 3 3
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/company/IotCompanyController.java
  3. 15 0
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/device/IotDeviceController.java
  4. 92 0
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/device/IotDeviceQualityController.java
  5. 15 0
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/device/DeviceService.java
  6. 95 0
      app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/device/IotDeviceQualityService.java
  7. 30 2
      common/common-entity/src/main/java/com/yihu/jw/iot/device/IotDeviceQualityInspectionPlanDO.java
  8. 9 9
      common/common-entity/src/main/java/com/yihu/jw/iot/device/IotOrderPurchaseDO.java
  9. 9 90
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/iot/IotRequestMapping.java
  10. 31 3
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/base/BaseEnvelop.java
  11. 3 3
      svr/svr-iot/src/main/java/com/yihu/iot/controller/company/IotCompanyController.java
  12. 15 0
      svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceController.java
  13. 127 0
      svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceQualityController.java
  14. 0 100
      svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceQualityInspectionPlanController.java
  15. 3 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/device/IotDeviceQualityInspectionPlanDao.java
  16. 16 5
      svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceOrderService.java
  17. 46 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceQualityInspectionPlanService.java
  18. 17 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceService.java
  19. 1 0
      web-gateway/src/main/java/com/yihu/jw/commnon/iot/IotCommonContants.java
  20. 3 3
      web-gateway/src/main/java/com/yihu/jw/controller/iot/company/IotCompanyController.java
  21. 14 6
      web-gateway/src/main/java/com/yihu/jw/controller/iot/device/IotDeviceController.java
  22. 68 0
      web-gateway/src/main/java/com/yihu/jw/controller/iot/device/IotDeviceQualityController.java
  23. 3 3
      web-gateway/src/main/java/com/yihu/jw/feign/fallbackfactory/iot/company/IotCompanyFallbackFactory.java
  24. 11 1
      web-gateway/src/main/java/com/yihu/jw/feign/fallbackfactory/iot/device/IotDeviceFallbackFactory.java
  25. 77 0
      web-gateway/src/main/java/com/yihu/jw/feign/fallbackfactory/iot/device/IotDeviceQualityFallbackFactory.java
  26. 3 3
      web-gateway/src/main/java/com/yihu/jw/feign/iot/company/IotCompanyFeign.java
  27. 7 3
      web-gateway/src/main/java/com/yihu/jw/feign/iot/device/IotDeviceFeign.java
  28. 44 0
      web-gateway/src/main/java/com/yihu/jw/feign/iot/device/IotDeviceQualityFeign.java

+ 15 - 0
app/app-iot-server/src/main/java/com/yihu/ehr/iot/constant/ServiceApi.java

@ -62,6 +62,7 @@ public class ServiceApi {
        public static final String IsSnExist = Base +"isSnExist";
        public static final String IsSimExist = Base +"isSimExist";
        public static final String UpdSim = Base +"updSim";
        public static final String ImportDevice = Base +"importDevice";
        public static final String IsImportDevice = Base +"isImportDevice";
@ -85,4 +86,18 @@ public class ServiceApi {
        }
    }
    public static class Quality{
        public static final String Base = "wg/quality/";
        public static final String CreateDevice = Base +"createDevice";
        public static final String AddQualityPlan = Base +"addQualityPlan";
        public static final String DelQualityPlan = Base +"delQualityPlan";
        public static final String UpdQualityPlan = Base +"updQualityPlan";
        public static final String CompleteQualityPlan = Base +"completeQualityPlan";
        public static final String QueryQualityPlanPage = Base +"queryQualityPlanPage";
        public static final String FindById = Base +"findById";
        public Quality() {
        }
    }
}

+ 3 - 3
app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/company/IotCompanyController.java

@ -46,7 +46,7 @@ public class IotCompanyController extends BaseController {
    @PostMapping(value = IotRequestMapping.Company.addCompany)
    @ApiOperation(value = "创建企业", notes = "创建企业")
    public Envelop<IotCompanyVO> addCompany(@ApiParam(name = "jsonData", value = "json", defaultValue = "")
                                            @RequestParam(value = "jsonData", required = false)String jsonData) {
                                            @RequestParam(value = "jsonData", required = true)String jsonData) {
        try {
            return companyService.addCompany(jsonData);
        } catch (Exception e) {
@ -94,7 +94,7 @@ public class IotCompanyController extends BaseController {
    @PostMapping(value = IotRequestMapping.Company.updCompany)
    @ApiOperation(value = "修改企业信息", notes = "修改企业信息")
    public Envelop<IotCompanyVO> updCompany(@ApiParam(name = "jsonData", value = "json", defaultValue = "")
                                            @RequestParam(value = "jsonData", required = false)String jsonData) {
                                            @RequestParam(value = "jsonData", required = true)String jsonData) {
        try {
            return companyService.updCompany(jsonData);
        } catch (Exception e) {
@ -153,7 +153,7 @@ public class IotCompanyController extends BaseController {
    @PostMapping(value = IotRequestMapping.Company.addCompanyCert)
    @ApiOperation(value = "创建企业证书", notes = "创建企业证书")
    public Envelop<IotCompanyCertificateVO> addCompanyCert(@ApiParam(name = "jsonData", value = "json", defaultValue = "")
                                                           @RequestParam(value = "jsonData", required = false)String jsonData) {
                                                           @RequestParam(value = "jsonData", required = true)String jsonData) {
        try {
            return companyService.addCompanyCert(jsonData);
        } catch (Exception e) {

+ 15 - 0
app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/device/IotDeviceController.java

@ -3,6 +3,7 @@ package com.yihu.ehr.iot.controller.device;
import com.yihu.ehr.iot.controller.common.BaseController;
import com.yihu.ehr.iot.service.device.DeviceService;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.base.BaseEnvelop;
import com.yihu.jw.restmodel.iot.common.ExistVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportRecordVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
@ -75,6 +76,20 @@ public class IotDeviceController extends BaseController{
        }
    }
    @PostMapping(value = IotRequestMapping.Device.updSim)
    @ApiOperation(value = "修改sim卡号", notes = "修改sim卡号")
    public BaseEnvelop updSim(@ApiParam(name = "sim", value = "sim")
                              @RequestParam(value = "sim", required = true) String sim,
                              @ApiParam(name = "id", value = "设备id")
                              @RequestParam(value = "id", required = true) String id) {
        try {
            return deviceService.updSim(sim,id);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.Device.api_queryPage)
    @ApiOperation(value = "分页查找设备", notes = "分页查找设备")
    public Envelop<IotDeviceVO> findProductPageByCompanyId(@ApiParam(name = "sn", value = "SN码或SIM卡号", defaultValue = "")

+ 92 - 0
app/app-iot-server/src/main/java/com/yihu/ehr/iot/controller/device/IotDeviceQualityController.java

@ -0,0 +1,92 @@
package com.yihu.ehr.iot.controller.device;
import com.yihu.ehr.iot.controller.common.BaseController;
import com.yihu.ehr.iot.service.device.IotDeviceQualityService;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.iot.device.IotDeviceQualityInspectionPlanVO;
import com.yihu.jw.rm.iot.IotRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * @author yeshijie on 2018/01/24.
 */
@RestController
@RequestMapping(IotRequestMapping.Common.quality)
@Api(tags = "设备质检管理相关操作", description = "设备质检管理相关操作")
public class IotDeviceQualityController extends BaseController{
    @Autowired
    private IotDeviceQualityService iotDeviceQualityService;
    @PostMapping(value = IotRequestMapping.DeviceQuality.addQualityPlan)
    @ApiOperation(value = "创建设备质检", notes = "创建设备质检")
    public Envelop<IotDeviceQualityInspectionPlanVO> create(@ApiParam(name = "jsonData", value = "", defaultValue = "")
                          @RequestParam String jsonData) {
        try {
            return iotDeviceQualityService.create(jsonData);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.DeviceQuality.findById)
    @ApiOperation(value = "根据code查找设备质检", notes = "根据code查找设备质检")
    public Envelop<IotDeviceQualityInspectionPlanVO> findByCode(@ApiParam(name = "id", value = "id")
                              @RequestParam(value = "id", required = true) String id
    ) {
        try {
            return iotDeviceQualityService.findByCode(id);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.DeviceQuality.queryQualityPlanPage)
    @ApiOperation(value = "分页获取设备质检计划", notes = "分页获取设备质检计划")
    public Envelop<IotDeviceQualityInspectionPlanVO> queryQualityPlanPage(@ApiParam(name = "purcharseId", value = "采购id", defaultValue = "")
                                                           @RequestParam(value = "purcharseId", required = true) String purcharseId,
                                                           @ApiParam(name = "page", value = "第几页", defaultValue = "")
                                                           @RequestParam(value = "page", required = false) Integer page,
                                                           @ApiParam(name = "size", value = "每页记录数", defaultValue = "")
                                                           @RequestParam(value = "size", required = false) Integer size){
        try {
            return iotDeviceQualityService.queryQualityPlanPage(purcharseId, page, size);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.DeviceQuality.delQualityPlan)
    @ApiOperation(value = "删除质检计划", notes = "删除质检计划")
    public Envelop<IotDeviceQualityInspectionPlanVO> delQualityPlan(@ApiParam(name = "id", value = "id")
                                            @RequestParam(value = "id", required = true) String id) {
        try {
            return iotDeviceQualityService.delQualityPlan(id);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.DeviceQuality.completeQualityPlan)
    @ApiOperation(value = "完成质检计划", notes = "完成质检计划")
    public Envelop<IotDeviceQualityInspectionPlanVO> completeQualityPlan(@ApiParam(name = "actualTime", value = "完成时间", defaultValue = "")
                                            @RequestParam(value = "actualTime", required = true) String actualTime,
                                            @ApiParam(name = "id", value = "id")
                                            @RequestParam(value = "id", required = true) String id) {
        try {
            return iotDeviceQualityService.completeQualityPlan(actualTime, id);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
}

+ 15 - 0
app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/device/DeviceService.java

@ -11,6 +11,7 @@ import com.yihu.ehr.iot.util.excel.reader.IotDeviceImportVOReader;
import com.yihu.ehr.iot.util.http.HttpHelper;
import com.yihu.ehr.iot.util.http.HttpResponse;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.base.BaseEnvelop;
import com.yihu.jw.restmodel.iot.common.ExistVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportRecordVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportVO;
@ -97,6 +98,20 @@ public class DeviceService extends BaseService{
        return envelop;
    }
    /**
     * 修改sim卡号
     * @param sim
     * @param id
     * @return
     */
    public BaseEnvelop updSim(String sim,String id) throws IOException{
        Map<String, Object> params = new HashMap<>();
        params.put("sim", sim);
        HttpResponse response = HttpHelper.get(iotUrl + ServiceApi.Device.UpdSim, params);
        BaseEnvelop envelop = objectMapper.readValue(response.getBody(),BaseEnvelop.class);
        return envelop;
    }
    /**
     * 分页查找设备
     * @param sn

+ 95 - 0
app/app-iot-server/src/main/java/com/yihu/ehr/iot/service/device/IotDeviceQualityService.java

@ -0,0 +1,95 @@
package com.yihu.ehr.iot.service.device;
import com.yihu.ehr.iot.constant.ServiceApi;
import com.yihu.ehr.iot.service.common.BaseService;
import com.yihu.ehr.iot.util.http.HttpHelper;
import com.yihu.ehr.iot.util.http.HttpResponse;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.iot.device.IotDeviceQualityInspectionPlanVO;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
 * @author yeshijie on 2018/01/24.
 */
@Service
public class IotDeviceQualityService extends BaseService{
    /**
     * 创建设备质检
     * @param jsonData
     * @return
     */
    public Envelop<IotDeviceQualityInspectionPlanVO> create(String jsonData) throws IOException {
        Map<String, Object> params = new HashMap<>();
        params.put("jsonData", jsonData);
        HttpResponse response = HttpHelper.post(iotUrl + ServiceApi.Quality.CreateDevice, params);
        Envelop<IotDeviceQualityInspectionPlanVO> envelop = objectMapper.readValue(response.getBody(),Envelop.class);
        return envelop;
    }
    /**
     * 根据code查找设备质检
     * @param id
     * @return
     */
    public Envelop<IotDeviceQualityInspectionPlanVO> findByCode(String id) throws IOException {
        Map<String, Object> params = new HashMap<>();
        params.put("id", id);
        HttpResponse response = HttpHelper.get(iotUrl + ServiceApi.Quality.FindById, params);
        Envelop<IotDeviceQualityInspectionPlanVO> envelop = objectMapper.readValue(response.getBody(),Envelop.class);
        return envelop;
    }
    /**
     * 分页获取设备质检计划
     * @param purcharseId
     * @param page
     * @param size
     * @return
     * @throws IOException
     */
    public Envelop<IotDeviceQualityInspectionPlanVO> queryQualityPlanPage(String purcharseId,Integer page,Integer size) throws IOException{
        Map<String, Object> params = new HashMap<>();
        params.put("purcharseId", purcharseId);
        params.put("page", page);
        params.put("size", size);
        HttpResponse response = HttpHelper.get(iotUrl + ServiceApi.Quality.QueryQualityPlanPage, params);
        Envelop<IotDeviceQualityInspectionPlanVO> envelop = objectMapper.readValue(response.getBody(),Envelop.class);
        return envelop;
    }
    /**
     * 删除质检计划
     * @param id
     * @return
     * @throws IOException
     */
    public Envelop<IotDeviceQualityInspectionPlanVO> delQualityPlan(String id) throws IOException {
        Map<String, Object> params = new HashMap<>();
        params.put("id", id);
        HttpResponse response = HttpHelper.post(iotUrl + ServiceApi.Quality.DelQualityPlan, params);
        Envelop<IotDeviceQualityInspectionPlanVO> envelop = objectMapper.readValue(response.getBody(),Envelop.class);
        return envelop;
    }
    /**
     * 完成质检计划
     * @param actualTime
     * @param id
     * @return
     * @throws IOException
     */
    public Envelop<IotDeviceQualityInspectionPlanVO> completeQualityPlan(String actualTime,String id) throws IOException {
        Map<String, Object> params = new HashMap<>();
        params.put("actualTime", actualTime);
        params.put("id", id);
        HttpResponse response = HttpHelper.post(iotUrl + ServiceApi.Quality.CompleteQualityPlan, params);
        Envelop<IotDeviceQualityInspectionPlanVO> envelop = objectMapper.readValue(response.getBody(),Envelop.class);
        return envelop;
    }
}

+ 30 - 2
common/common-entity/src/main/java/com/yihu/jw/iot/device/IotDeviceQualityInspectionPlanDO.java

@ -9,7 +9,7 @@ import java.io.Serializable;
import java.util.Date;
/**
 * 设备质检计划表
 * 设备质检计划表(质检计划是针对采购清单的)
 * @author yeshijie on 2017/12/1.
 */
@Entity
@ -29,7 +29,7 @@ public class IotDeviceQualityInspectionPlanDO extends IdEntityWithOperation impl
    private String orderNo;//订单编号
    @Column(name = "device_id")
    private String deviceId;//设备code
    private String deviceId;//产品id
    @Column(name = "device_name")
    private String deviceName;//设备名称
@ -61,6 +61,34 @@ public class IotDeviceQualityInspectionPlanDO extends IdEntityWithOperation impl
    @Column(name = "del")
    private Integer del;//删除标志
    public enum QualityPlanStatus {
        create("未完成", "1"),
        complete("已完成", "2");
        private String name;
        private String value;
        QualityPlanStatus(String name, String value) {
            this.name = name;
            this.value = value;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getValue() {
            return value;
        }
        public void setValue(String value) {
            this.value = value;
        }
    }
    public String getSaasId() {
        return saasId;
    }

+ 9 - 9
common/common-entity/src/main/java/com/yihu/jw/iot/device/IotOrderPurchaseDO.java

@ -54,8 +54,8 @@ public class IotOrderPurchaseDO extends IdEntityWithOperation implements Seriali
//    @Column(name = "next_quality_time")
//    private Date nextQualityTime;//'下次质检时间'
    @Column(name = "quality_status")
    private String qualityStatus;//'质检状态'
//    @Column(name = "quality_status")
//    private String qualityStatus;//'质检状态'
    @Column(name = "maintenance_unit_id")
    private String maintenanceUnitId;//维护单位Id
@ -171,13 +171,13 @@ public class IotOrderPurchaseDO extends IdEntityWithOperation implements Seriali
        this.productId = productId;
    }
    public String getQualityStatus() {
        return qualityStatus;
    }
    public void setQualityStatus(String qualityStatus) {
        this.qualityStatus = qualityStatus;
    }
//    public String getQualityStatus() {
//        return qualityStatus;
//    }
//
//    public void setQualityStatus(String qualityStatus) {
//        this.qualityStatus = qualityStatus;
//    }
    public Integer getDel() {
        return del;

+ 9 - 90
common/common-request-mapping/src/main/java/com/yihu/jw/rm/iot/IotRequestMapping.java

@ -18,6 +18,7 @@ public class IotRequestMapping {
        public static final String product = api_iot_common + "/product";
        public static final String order = api_iot_common + "/order";
        public static final String device = api_iot_common + "/device";
        public static final String quality = api_iot_common + "/quality";
        public static final String message_success_update = "update success";
@ -105,57 +106,6 @@ public class IotRequestMapping {
    }
    /**
     * 供应设备常量模块
     */
    public static class SupplyDevice{
        public static final String api_create = "supplyDevice";
        public static final String api_delete = "supplyDevice";
        public static final String api_getById = "getSupplyDeviceById";
        public static final String api_update = "supplyDevice";
        public static final String api_queryPage = "querySupplyDevicePage";
        public static final String api_getList = "getSupplierDeviceList";
        public static final String message_success_update = "supplyDevice update success";
        public static final String message_success_delete = "supplyDevice delete success";
        public static final String message_success_find = "supplyDevice find success";
        public static final String message_success_create = "supplyDevice create success";
        public static final String message_success_find_functions = "supplyDevice find success";
        public static final String message_fail_name_is_null = "name is null";
        public static final String message_fail_iotSupplyDevice_is_no_exist = "iotSupplyDevice is no exist";
        public static final String message_fail_id_no_exist = "id no exist";
        public static final String message_fail_status_is_null = "status is null";
        public static final String message_fail_id_is_null = "id is null";
        public static final String message_fail_id_exist = "id exist";
        public static final String message_fail_saasId_is_null = "saasId is null";
    }
    /**
     * 供应设备数据类型
     */
    public static class SupplyDeviceDataType{
        public static final String api_create = "supplyDeviceDataType";
        public static final String api_delete = "supplyDeviceDataType";
        public static final String api_getById = "getSupplyDeviceDataTypeById";
        public static final String api_update = "supplyDeviceDataType";
        public static final String api_queryPage = "querySupplyDeviceDataTypePage";
        public static final String api_getList = "getSupplyDeviceDataTypeList";
        public static final String message_success_update = "supplyDeviceDataType update success";
        public static final String message_success_delete = "supplyDeviceDataType delete success";
        public static final String message_success_find = "supplyDeviceDataType find success";
        public static final String message_success_create = "supplyDeviceDataType create success";
        public static final String message_success_find_functions = "supplyDeviceDataType find success";
        public static final String message_fail_name_is_null = "name is null";
        public static final String message_fail_iotSupplyDeviceDataType_is_no_exist = "iotSupplyDeviceDataType is no exist";
        public static final String message_fail_id_no_exist = "id no exist";
        public static final String message_fail_status_is_null = "status is null";
        public static final String message_fail_id_is_null = "id is null";
        public static final String message_fail_id_exist = "id exist";
        public static final String message_fail_saasId_is_null = "saasId is null";
    }
    /**
     * 设备字典模块常量
@ -196,6 +146,7 @@ public class IotRequestMapping {
        public static final String isSnExist = "isSnExist";
        public static final String isSimExist = "isSimExist";
        public static final String updSim = "updSim";
        public static final String importDevice = "importDevice";
        public static final String isImportDevice = "isImportDevice";
@ -250,51 +201,19 @@ public class IotRequestMapping {
        public static final String message_fail_saasId_is_null = "saasId is null";
    }
    /**
     * 订单采购模块常量
     */
    public static class DevicePurchase{
        public static final String api_create = "devicePurchase";
        public static final String api_delete = "devicePurchase";
        public static final String api_getById = "getDevicePurchaseById";
        public static final String api_update = "devicePurchase";
        public static final String api_queryPage = "queryDevicePurchasePage";
        public static final String api_getList = "getDevicePurchaseList";
        public static final String message_success_update = "devicePurchase update success";
        public static final String message_success_delete = "devicePurchase delete success";
        public static final String message_success_find = "devicePurchase find success";
        public static final String message_success_create = "devicePurchase create success";
        public static final String message_success_find_functions = "devicePurchase find success";
        public static final String message_fail_name_is_null = "name is null";
        public static final String message_fail_iotDevicePurchase_is_no_exist = "iotDevicePurchase is no exist";
        public static final String message_fail_id_no_exist = "id no exist";
        public static final String message_fail_status_is_null = "status is null";
        public static final String message_fail_id_is_null = "id is null";
        public static final String message_fail_id_exist = "id exist";
        public static final String message_fail_saasId_is_null = "saasId is null";
    }
    /**
     * 设备质检模块常量
     */
    public static class DeviceQualityInspectionPlan{
        public static final String api_create = "deviceQualityInspectionPlan";
        public static final String api_delete = "deviceQualityInspectionPlan";
        public static final String api_getById = "getDeviceQualityInspectionPlanById";
        public static final String api_update = "deviceQualityInspectionPlan";
        public static final String api_queryPage = "queryDeviceQualityInspectionPlanPage";
        public static final String api_getList = "getDeviceQualityInspectionPlanList";
        public static final String message_success_update = "deviceQualityInspectionPlan update success";
        public static final String message_success_delete = "deviceQualityInspectionPlan delete success";
        public static final String message_success_find = "deviceQualityInspectionPlan find success";
        public static final String message_success_create = "deviceQualityInspectionPlan create success";
        public static final String message_success_find_functions = "deviceQualityInspectionPlan find success";
    public static class DeviceQuality{
        public static final String addQualityPlan = "addQualityPlan";
        public static final String delQualityPlan = "delQualityPlan";
        public static final String updQualityPlan = "updQualityPlan";
        public static final String completeQualityPlan = "completeQualityPlan";
        public static final String queryQualityPlanPage = "queryQualityPlanPage";
        public static final String findById = "findById";
        public static final String message_fail_name_is_null = "name is null";
        public static final String message_fail_iotDeviceQualityInspectionPlan_is_no_exist = "iotDeviceQualityInspectionPlan is no exist";
        public static final String message_fail_id_no_exist = "id no exist";
        public static final String message_fail_status_is_null = "status is null";
        public static final String message_fail_id_is_null = "id is null";

+ 31 - 3
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/common/base/BaseEnvelop.java

@ -1,16 +1,24 @@
package com.yihu.jw.restmodel.common.base;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.yihu.jw.restmodel.common.Envelop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
 * Created by chenweida on 2018/1/16.
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(description = "基础实体")
public class BaseEnvelop {
    @ApiModelProperty("错误编码")
    protected String errorCode;
    @ApiModelProperty("成功信息")
    protected String errorMsg;
    @ApiModelProperty("成功信息")
    protected String successMsg;
    @ApiModelProperty("状态(200成功,-1是失败)")
    protected Integer status;
    public BaseEnvelop() {
@ -53,4 +61,24 @@ public class BaseEnvelop {
        this.errorCode = errorCode;
    }
    public static BaseEnvelop getSuccess(String message) {
        BaseEnvelop envelop = new BaseEnvelop();
        envelop.setSuccessMsg(message);
        return envelop;
    }
    public static BaseEnvelop getError(String message, int errorCode) {
        BaseEnvelop envelop = new BaseEnvelop();
        envelop.setErrorMsg(message);
        envelop.setStatus(errorCode);
        return envelop;
    }
    public static BaseEnvelop getError(String message) {
        BaseEnvelop envelop = new BaseEnvelop();
        envelop.setErrorMsg(message);
        envelop.setStatus(-1);
        return envelop;
    }
}

+ 3 - 3
svr/svr-iot/src/main/java/com/yihu/iot/controller/company/IotCompanyController.java

@ -66,7 +66,7 @@ public class IotCompanyController extends EnvelopRestController {
    @PostMapping(value = IotRequestMapping.Company.addCompany)
    @ApiOperation(value = "创建企业", notes = "创建企业")
    public Envelop<IotCompanyVO> addCompany(@ApiParam(name = "jsonData", value = "json", defaultValue = "")
                                  @RequestParam(value = "jsonData", required = false)String jsonData) {
                                  @RequestParam(value = "jsonData", required = true)String jsonData) {
        try {
            IotCompanyDO iotCompany = toEntity(jsonData, IotCompanyDO.class);
            return Envelop.getSuccess(IotRequestMapping.Company.message_success_create, iotCompanyService.create(iotCompany));
@ -120,7 +120,7 @@ public class IotCompanyController extends EnvelopRestController {
    @PostMapping(value = IotRequestMapping.Company.updCompany)
    @ApiOperation(value = "修改企业信息", notes = "修改企业信息")
    public Envelop<IotCompanyVO> updCompany(@ApiParam(name = "jsonData", value = "json", defaultValue = "")
                                  @RequestParam(value = "jsonData", required = false)String jsonData) {
                                  @RequestParam(value = "jsonData", required = true)String jsonData) {
        try {
            IotCompanyDO iotCompany = toEntity(jsonData, IotCompanyDO.class);
            iotCompanyService.updCompany(iotCompany);
@ -185,7 +185,7 @@ public class IotCompanyController extends EnvelopRestController {
    @PostMapping(value = IotRequestMapping.Company.addCompanyCert)
    @ApiOperation(value = "创建企业证书", notes = "创建企业证书")
    public Envelop<IotCompanyCertificateVO> addCompanyCert(@ApiParam(name = "jsonData", value = "json", defaultValue = "")
                                            @RequestParam(value = "jsonData", required = false)String jsonData) {
                                            @RequestParam(value = "jsonData", required = true)String jsonData) {
        try {
            IotCompanyCertificateDO iotCompanyCertificate = toEntity(jsonData, IotCompanyCertificateDO.class);
            return Envelop.getSuccess(IotRequestMapping.Common.message_success_create, iotCompanyCertificateService.create(iotCompanyCertificate));

+ 15 - 0
svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceController.java

@ -10,6 +10,7 @@ import com.yihu.jw.iot.device.IotDeviceDO;
import com.yihu.jw.iot.device.IotDeviceImportRecordDO;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.EnvelopRestController;
import com.yihu.jw.restmodel.common.base.BaseEnvelop;
import com.yihu.jw.restmodel.iot.common.ExistVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportRecordVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportVO;
@ -116,6 +117,20 @@ public class IotDeviceController extends EnvelopRestController{
        }
    }
    @PostMapping(value = IotRequestMapping.Device.updSim)
    @ApiOperation(value = "修改sim卡号", notes = "修改sim卡号")
    public BaseEnvelop updSim(@ApiParam(name = "sim", value = "sim")
                                   @RequestParam(value = "sim", required = true) String sim,
                              @ApiParam(name = "id", value = "设备id")
                                   @RequestParam(value = "id", required = true) String id) {
        try {
            return iotDeviceService.updSim(sim,id);
        } catch (Exception e) {
            e.printStackTrace();
            return BaseEnvelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.Device.api_queryPage)
    @ApiOperation(value = "分页查找设备", notes = "分页查找设备")
    public Envelop<IotDeviceVO> findProductPageByCompanyId(@ApiParam(name = "sn", value = "SN码或SIM卡号", defaultValue = "")

+ 127 - 0
svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceQualityController.java

@ -0,0 +1,127 @@
package com.yihu.iot.controller.device;
import com.yihu.iot.service.device.IotDeviceQualityInspectionPlanService;
import com.yihu.jw.iot.device.IotDeviceDO;
import com.yihu.jw.iot.device.IotDeviceQualityInspectionPlanDO;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.EnvelopRestController;
import com.yihu.jw.restmodel.iot.device.IotDeviceQualityInspectionPlanVO;
import com.yihu.jw.rm.iot.IotRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
 * @author yeshijie on 2017/12/8.
 */
@RestController
@RequestMapping(IotRequestMapping.Common.quality)
@Api(tags = "设备质检管理相关操作", description = "设备质检管理相关操作")
public class IotDeviceQualityController extends EnvelopRestController{
    @Autowired
    private IotDeviceQualityInspectionPlanService iotDeviceQualityInspectionPlanService;
    @PostMapping(value = IotRequestMapping.DeviceQuality.addQualityPlan)
    @ApiOperation(value = "创建设备质检", notes = "创建设备质检")
    public Envelop<IotDeviceQualityInspectionPlanVO> create(@ApiParam(name = "jsonData", value = "", defaultValue = "")
                          @RequestParam String jsonData) {
        try {
            IotDeviceQualityInspectionPlanDO iotDeviceQualityInspectionPlan = toEntity(jsonData, IotDeviceQualityInspectionPlanDO.class);
            return Envelop.getSuccess(IotRequestMapping.Common.message_success_create, iotDeviceQualityInspectionPlanService.create(iotDeviceQualityInspectionPlan));
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.DeviceQuality.findById)
    @ApiOperation(value = "根据code查找设备质检", notes = "根据code查找设备质检")
    public Envelop<IotDeviceQualityInspectionPlanVO> findByCode(@ApiParam(name = "id", value = "id")
                              @RequestParam(value = "id", required = true) String id
    ) {
        try {
            IotDeviceQualityInspectionPlanDO planDO = iotDeviceQualityInspectionPlanService.findById(id);
            IotDeviceQualityInspectionPlanVO planVO = convertToModel(planDO,IotDeviceQualityInspectionPlanVO.class);
            return Envelop.getSuccess(IotRequestMapping.Common.message_success_find, planVO);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.DeviceQuality.queryQualityPlanPage)
    @ApiOperation(value = "分页获取设备质检计划", notes = "分页获取设备质检计划")
    public Envelop<IotDeviceQualityInspectionPlanVO> findProductPageByCompanyId(@ApiParam(name = "purcharseId", value = "采购id", defaultValue = "")
                                                           @RequestParam(value = "purcharseId", required = true) String purcharseId,
                                                           @ApiParam(name = "page", value = "第几页", defaultValue = "")
                                                           @RequestParam(value = "page", required = false) Integer page,
                                                           @ApiParam(name = "size", value = "每页记录数", defaultValue = "")
                                                           @RequestParam(value = "size", required = false) Integer size){
        try {
            if(page == null|| page < 0){
                page = 1;
            }
            if(size == null){
                size = 10;
            }
            String filters = "";
            String semicolon = "";
            if(StringUtils.isNotBlank(purcharseId)){
                filters += semicolon +"purcharseId="+purcharseId;
                semicolon = ";";
            }
            if(StringUtils.isBlank(filters)){
                filters+= semicolon + "del=1";
            }
            String sorts = "-updateTime";
            //得到list数据
            List<IotDeviceDO> list = iotDeviceQualityInspectionPlanService.search(null, filters, sorts, page, size);
            //获取总数
            long count = iotDeviceQualityInspectionPlanService.getCount(filters);
            //DO转VO
            List<IotDeviceQualityInspectionPlanVO> voList = convertToModels(list,new ArrayList<>(list.size()),IotDeviceQualityInspectionPlanVO.class);
            return Envelop.getSuccessListWithPage(IotRequestMapping.Common.message_success_find_functions,voList, page, size,count);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.DeviceQuality.delQualityPlan)
    @ApiOperation(value = "删除质检计划", notes = "删除质检计划")
    public Envelop<IotDeviceQualityInspectionPlanVO> delCompany(@ApiParam(name = "id", value = "id")
                                            @RequestParam(value = "id", required = true) String id) {
        try {
            iotDeviceQualityInspectionPlanService.delPlan(id);
            return Envelop.getSuccess(IotRequestMapping.Common.message_success_find);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.DeviceQuality.completeQualityPlan)
    @ApiOperation(value = "完成质检计划", notes = "完成质检计划")
    public Envelop<IotDeviceQualityInspectionPlanVO> updCompany(@ApiParam(name = "actualTime", value = "完成时间", defaultValue = "")
                                            @RequestParam(value = "actualTime", required = true) String actualTime,
                                            @ApiParam(name = "id", value = "id")
                                            @RequestParam(value = "id", required = true) String id) {
        try {
            iotDeviceQualityInspectionPlanService.completePlan(id,actualTime);
            return Envelop.getSuccess(IotRequestMapping.Common.message_success_find);
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
}

+ 0 - 100
svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceQualityInspectionPlanController.java

@ -1,100 +0,0 @@
package com.yihu.iot.controller.device;
import com.yihu.iot.service.device.IotDeviceQualityInspectionPlanService;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.iot.device.IotDeviceQualityInspectionPlanDO;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.EnvelopRestController;
import com.yihu.jw.rm.iot.IotRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * @author yeshijie on 2017/12/8.
 */
@RestController
@RequestMapping(IotRequestMapping.api_iot_common)
@Api(tags = "设备质检管理相关操作", description = "设备质检管理相关操作")
public class IotDeviceQualityInspectionPlanController extends EnvelopRestController{
    @Autowired
    private IotDeviceQualityInspectionPlanService iotDeviceQualityInspectionPlanService;
    @PostMapping(value = IotRequestMapping.DeviceQualityInspectionPlan.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建设备质检", notes = "创建设备质检")
    public Envelop create(@ApiParam(name = "json_data", value = "", defaultValue = "")
                          @RequestBody String jsonData) {
        try {
            IotDeviceQualityInspectionPlanDO iotDeviceQualityInspectionPlan = toEntity(jsonData, IotDeviceQualityInspectionPlanDO.class);
            return Envelop.getSuccess(IotRequestMapping.DeviceQualityInspectionPlan.message_success_create, iotDeviceQualityInspectionPlanService.create(iotDeviceQualityInspectionPlan));
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.DeviceQualityInspectionPlan.api_getById)
    @ApiOperation(value = "根据code查找设备质检", notes = "根据code查找设备质检")
    public Envelop findByCode(@ApiParam(name = "id", value = "id")
                              @RequestParam(value = "id", required = true) String id
    ) {
        try {
            return Envelop.getSuccess(IotRequestMapping.DeviceQualityInspectionPlan.message_success_find, iotDeviceQualityInspectionPlanService.findById(id));
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError(e.getMessage());
        }
    }
    @RequestMapping(value = IotRequestMapping.DeviceQualityInspectionPlan.api_queryPage, method = RequestMethod.GET)
    @ApiOperation(value = "分页获取设备质检")
    public Envelop queryPage(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段(id,supplierName,type,contactsName,contactsMobile)", defaultValue = "")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件(supplierName?中 g1;contactsName?中 g1)")
            @RequestParam(value = "filters", required = false,defaultValue = "") String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "-createTime")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
            @RequestParam(value = "size", required = false) Integer size,
            @ApiParam(name = "page", value = "页码", defaultValue = "1")
            @RequestParam(value = "page", required = false) Integer page,
            HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        //得到list数据
        List<IotDeviceQualityInspectionPlanDO> list = iotDeviceQualityInspectionPlanService.search(fields, filters, sorts, page, size);
        //获取总数
        long count=iotDeviceQualityInspectionPlanService.getCount(filters);
        //封装头信息
        pagedResponse(request, response, count, page, size);
        //封装返回格式
        List<IotDeviceQualityInspectionPlanDO> iotDeviceQualityInspectionPlans = convertToModels(list, new ArrayList<>(list.size()), IotDeviceQualityInspectionPlanDO.class, fields);
        return Envelop.getSuccessListWithPage(IotRequestMapping.DeviceQualityInspectionPlan.message_success_find_functions,iotDeviceQualityInspectionPlans, page, size,count);
    }
    @GetMapping(value = IotRequestMapping.DeviceQualityInspectionPlan.api_getList)
    @ApiOperation(value = "获取设备质检列表(不分页)")
    public Envelop getList(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段(id,supplierName,type,contactsName,contactsMobile)", defaultValue = "")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档", defaultValue = "-createTime")
            @RequestParam(value = "sorts", required = false) String sorts) throws Exception {
        //得到list数据
        List<IotDeviceQualityInspectionPlanDO> list = iotDeviceQualityInspectionPlanService.search(fields,filters,sorts);
        //封装返回格式
        List<IotDeviceQualityInspectionPlanDO> iotDeviceQualityInspectionPlans = convertToModels(list, new ArrayList<>(list.size()), IotDeviceQualityInspectionPlanDO.class, fields);
        return Envelop.getSuccessList(IotRequestMapping.DeviceQualityInspectionPlan.message_success_find_functions,iotDeviceQualityInspectionPlans);
    }
}

+ 3 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/device/IotDeviceQualityInspectionPlanDao.java

@ -13,4 +13,7 @@ public interface IotDeviceQualityInspectionPlanDao extends PagingAndSortingRepos
    @Query("from IotDeviceQualityInspectionPlanDO w where w.id =?1")
    IotDeviceQualityInspectionPlanDO findById(String id);
    @Query(value = "SELECT a.* from iot_device_quality_inspection_plan a WHERE a.purchase_id = ?1 and a.del=1 ORDER BY a.status asc,a.plan_time desc limit 1",nativeQuery = true)
    IotDeviceQualityInspectionPlanDO findLastByPurchaseId(String purchaseId);
}

+ 16 - 5
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceOrderService.java

@ -4,9 +4,11 @@ import com.yihu.base.mysql.query.BaseJpaService;
import com.yihu.iot.dao.company.IotCompanyTypeDao;
import com.yihu.iot.dao.device.IotDeviceDao;
import com.yihu.iot.dao.device.IotDeviceOrderDao;
import com.yihu.iot.dao.device.IotDeviceQualityInspectionPlanDao;
import com.yihu.iot.dao.device.IotOrderPurchaseDao;
import com.yihu.jw.iot.company.IotCompanyTypeDO;
import com.yihu.jw.iot.device.IotDeviceOrderDO;
import com.yihu.jw.iot.device.IotDeviceQualityInspectionPlanDO;
import com.yihu.jw.iot.device.IotOrderPurchaseDO;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.iot.company.IotCompanyTypeVO;
@ -43,6 +45,8 @@ public class IotDeviceOrderService extends BaseJpaService<IotDeviceOrderDO,IotDe
    private JdbcTemplate jdbcTempalte;
    @Autowired
    private IotDeviceDao iotDeviceDao;
    @Autowired
    private IotDeviceQualityInspectionPlanDao iotDeviceQualityInspectionPlanDao;
    /**
     * 新增
@ -246,15 +250,22 @@ public class IotDeviceOrderService extends BaseJpaService<IotDeviceOrderDO,IotDe
        //DO转VO
        List<IotOrderPurchaseVO> iotOrderPurchaseVOList = convertToModels(list,new ArrayList<>(list.size()),IotOrderPurchaseVO.class);
        if("1".equals(type)){
            iotOrderPurchaseVOList.forEach(purchase->{
                //计算已关联设备数量
        iotOrderPurchaseVOList.forEach(purchase->{
            //计算已关联设备数量
            if("1".equals(type)){
                Integer num = iotDeviceDao.countByPurchaseId(purchase.getId());
                Long unNum = (purchase.getPurchaseNum()-num)>0? (purchase.getPurchaseNum()-num):0;
                purchase.setAssociatedNum(Long.valueOf(num));
                purchase.setUnAssociatedNum(unNum);
            });
        }
            }
            //获取质检信息
            IotDeviceQualityInspectionPlanDO planDO = iotDeviceQualityInspectionPlanDao.findLastByPurchaseId(purchase.getId());
            if(planDO!=null){
                purchase.setQualityStatus(planDO.getStatus());//质检状态
                purchase.setNextQualityTime(planDO.getPlanTime());//下次质检时间
            }
        });
        return Envelop.getSuccessListWithPage(IotRequestMapping.Common.message_success_find_functions,iotOrderPurchaseVOList, page, size,count);
    }

+ 46 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceQualityInspectionPlanService.java

@ -1,8 +1,12 @@
package com.yihu.iot.service.device;
import com.yihu.base.mysql.query.BaseJpaService;
import com.yihu.iot.dao.device.IotDeviceOrderDao;
import com.yihu.iot.dao.device.IotDeviceQualityInspectionPlanDao;
import com.yihu.iot.dao.device.IotOrderPurchaseDao;
import com.yihu.jw.iot.device.IotDeviceQualityInspectionPlanDO;
import com.yihu.jw.iot.device.IotOrderPurchaseDO;
import com.yihu.jw.util.date.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -14,6 +18,14 @@ public class IotDeviceQualityInspectionPlanService extends BaseJpaService<IotDev
    @Autowired
    private IotDeviceQualityInspectionPlanDao iotDeviceQualityInspectionPlanDao;
    @Autowired
    private IotOrderPurchaseService iotOrderPurchaseService;
    @Autowired
    private IotOrderPurchaseDao iotOrderPurchaseDao;
    @Autowired
    private IotDeviceOrderService iotDeviceOrderService;
    @Autowired
    private IotDeviceOrderDao iotDeviceOrderDao;
    /**
     * 新增
@ -22,12 +34,46 @@ public class IotDeviceQualityInspectionPlanService extends BaseJpaService<IotDev
     */
    public IotDeviceQualityInspectionPlanDO create(IotDeviceQualityInspectionPlanDO iotDeviceQualityInspectionPlan) {
        IotOrderPurchaseDO purchaseDO = iotOrderPurchaseDao.findById(iotDeviceQualityInspectionPlan.getPurchaseId());
        iotDeviceQualityInspectionPlan.setOrderNo(purchaseDO.getOrderNo());
        iotDeviceQualityInspectionPlan.setDeviceId(purchaseDO.getProductId());
        iotDeviceQualityInspectionPlan.setDeviceName(purchaseDO.getDeviceName());
        iotDeviceQualityInspectionPlan.setOrderId(purchaseDO.getOrderId());
        iotDeviceQualityInspectionPlan.setPurchaseNum(purchaseDO.getPurchaseNum());
        iotDeviceQualityInspectionPlan.setSaasId(getCode());
        iotDeviceQualityInspectionPlan.setStatus(IotDeviceQualityInspectionPlanDO.QualityPlanStatus.create.getValue());
        iotDeviceQualityInspectionPlan.setDel(1);
        return iotDeviceQualityInspectionPlanDao.save(iotDeviceQualityInspectionPlan);
    }
    /**
     * 按id查找
     * @param id
     * @return
     */
    public IotDeviceQualityInspectionPlanDO findById(String id) {
        return iotDeviceQualityInspectionPlanDao.findById(id);
    }
    /**
     * 删除
     * @param id
     */
    public void delPlan(String id){
        IotDeviceQualityInspectionPlanDO planDO = iotDeviceQualityInspectionPlanDao.findById(id);
        planDO.setDel(0);
        iotDeviceQualityInspectionPlanDao.save(planDO);
    }
    /**
     * 完成质检计划
     * @param id
     */
    public void completePlan(String id,String time){
        IotDeviceQualityInspectionPlanDO planDO = iotDeviceQualityInspectionPlanDao.findById(id);
        planDO.setStatus(IotDeviceQualityInspectionPlanDO.QualityPlanStatus.complete.getValue());
        planDO.setActualTime(DateUtil.strToDate(time));
        iotDeviceQualityInspectionPlanDao.save(planDO);
    }
}

+ 17 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceService.java

@ -9,6 +9,7 @@ import com.yihu.jw.iot.device.IotDeviceDO;
import com.yihu.jw.iot.device.IotDeviceImportRecordDO;
import com.yihu.jw.iot.device.IotOrderPurchaseDO;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.base.BaseEnvelop;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportRecordVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportVO;
import com.yihu.jw.rm.iot.IotRequestMapping;
@ -75,6 +76,22 @@ public class IotDeviceService extends BaseJpaService<IotDeviceDO,IotDeviceDao> {
        return iotDeviceDao.findBySimNo(simNo);
    }
    /**
     * 修改sim卡号
     * @param sim
     * @param id
     */
    public BaseEnvelop updSim(String sim, String id){
        if(findBySimNo(sim)!=null){
            return BaseEnvelop.getError("sim卡号已存在");
        }
        IotDeviceDO deviceDO = findById(id);
        deviceDO.setSimNo(sim);
        iotDeviceDao.save(deviceDO);
        return BaseEnvelop.getSuccess("修改成功");
    }
    /**
     * 设备注册及绑定
     * @param iotDeviceDO

+ 1 - 0
web-gateway/src/main/java/com/yihu/jw/commnon/iot/IotCommonContants.java

@ -18,6 +18,7 @@ public class IotCommonContants {
        public static final String product = api_iot_common + "/wg/product";
        public static final String order = api_iot_common + "/wg/order";
        public static final String device = api_iot_common + "/wg/device";
        public static final String quality = api_iot_common + "/wg/quality";
    }
}

+ 3 - 3
web-gateway/src/main/java/com/yihu/jw/controller/iot/company/IotCompanyController.java

@ -50,7 +50,7 @@ public class IotCompanyController extends EnvelopRestController {
            @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "-1"),//超时时间
            @HystrixProperty(name = "execution.timeout.enabled", value = "false") })
    public Envelop<IotCompanyVO> addCompany(@ApiParam(name = "jsonData", value = "json", defaultValue = "")
                                  @RequestParam(value = "jsonData", required = false)String jsonData) {
                                  @RequestParam(value = "jsonData", required = true)String jsonData) {
        return iotCompanyFeign.addCompany(jsonData);
    }
@ -90,7 +90,7 @@ public class IotCompanyController extends EnvelopRestController {
            @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "-1"),//超时时间
            @HystrixProperty(name = "execution.timeout.enabled", value = "false") })
    public Envelop<IotCompanyVO> updCompany(@ApiParam(name = "jsonData", value = "json", defaultValue = "")
                                  @RequestParam(value = "jsonData", required = false)String jsonData) {
                                  @RequestParam(value = "jsonData", required = true)String jsonData) {
        return iotCompanyFeign.updCompany(jsonData);
    }
@ -132,7 +132,7 @@ public class IotCompanyController extends EnvelopRestController {
            @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "-1"),//超时时间
            @HystrixProperty(name = "execution.timeout.enabled", value = "false") })
    public Envelop<IotCompanyCertificateVO> addCompanyCert(@ApiParam(name = "jsonData", value = "json", defaultValue = "")
                                            @RequestParam(value = "jsonData", required = false)String jsonData) {
                                            @RequestParam(value = "jsonData", required = true)String jsonData) {
        return iotCompanyFeign.addCompanyCert(jsonData);
    }

+ 14 - 6
web-gateway/src/main/java/com/yihu/jw/controller/iot/device/IotDeviceController.java

@ -4,6 +4,7 @@ import com.yihu.jw.commnon.iot.IotCommonContants;
import com.yihu.jw.feign.iot.device.IotDeviceFeign;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.EnvelopRestController;
import com.yihu.jw.restmodel.common.base.BaseEnvelop;
import com.yihu.jw.restmodel.iot.common.ExistVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportRecordVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
@ -12,7 +13,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
/**
@ -26,10 +26,10 @@ public class IotDeviceController extends EnvelopRestController{
    @Autowired
    private IotDeviceFeign iotDeviceFeign;
    @PostMapping(value = IotRequestMapping.Device.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @PostMapping(value = IotRequestMapping.Device.api_create)
    @ApiOperation(value = "创建设备", notes = "创建设备")
    public Envelop<IotDeviceVO> create(@ApiParam(name = "json_data", value = "", defaultValue = "")
                          @RequestParam String jsonData) {
    public Envelop<IotDeviceVO> create(@ApiParam(name = "jsonData", value = "", defaultValue = "")
                          @RequestParam(value = "jsonData", required = true) String jsonData) {
        return iotDeviceFeign.create(jsonData);
    }
@ -53,11 +53,19 @@ public class IotDeviceController extends EnvelopRestController{
    @GetMapping(value = IotRequestMapping.Device.isSimExist)
    @ApiOperation(value = "sim卡号是否存在", notes = "sim卡号是否存在")
    public Envelop<ExistVO> isSimExist(@ApiParam(name = "sim", value = "sim")
                                           @RequestParam(value = "sim", required = true) String sim
    ) {
                                           @RequestParam(value = "sim", required = true) String sim) {
        return iotDeviceFeign.isSimExist(sim);
    }
    @PostMapping(value = IotRequestMapping.Device.updSim)
    @ApiOperation(value = "修改sim卡号", notes = "修改sim卡号")
    public BaseEnvelop updSim(@ApiParam(name = "sim", value = "sim")
                              @RequestParam(value = "sim", required = true) String sim,
                              @ApiParam(name = "id", value = "设备id")
                              @RequestParam(value = "id", required = true) String id) {
        return iotDeviceFeign.updSim(sim,id);
    }
    @GetMapping(value = IotRequestMapping.Device.api_queryPage)
    @ApiOperation(value = "分页查找设备", notes = "分页查找设备")
    public Envelop<IotDeviceVO> findProductPageByCompanyId(@ApiParam(name = "sn", value = "SN码或SIM卡号", defaultValue = "")

+ 68 - 0
web-gateway/src/main/java/com/yihu/jw/controller/iot/device/IotDeviceQualityController.java

@ -0,0 +1,68 @@
package com.yihu.jw.controller.iot.device;
import com.yihu.jw.commnon.iot.IotCommonContants;
import com.yihu.jw.feign.iot.device.IotDeviceQualityFeign;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.EnvelopRestController;
import com.yihu.jw.restmodel.iot.device.IotDeviceQualityInspectionPlanVO;
import com.yihu.jw.rm.iot.IotRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * @author yeshijie on 2018/01/24.
 */
@RestController
@RequestMapping(IotCommonContants.Common.quality)
@Api(tags = "设备质检管理相关操作", description = "设备质检管理相关操作")
public class IotDeviceQualityController extends EnvelopRestController{
    @Autowired
    private IotDeviceQualityFeign iotDeviceQualityFeign;
    @PostMapping(value = IotRequestMapping.DeviceQuality.addQualityPlan)
    @ApiOperation(value = "创建设备质检", notes = "创建设备质检")
    public Envelop<IotDeviceQualityInspectionPlanVO> create(@ApiParam(name = "jsonData", value = "", defaultValue = "")
                          @RequestParam(value = "jsonData", required = true) String jsonData) {
        return iotDeviceQualityFeign.create(jsonData);
    }
    @GetMapping(value = IotRequestMapping.DeviceQuality.findById)
    @ApiOperation(value = "根据code查找设备质检", notes = "根据code查找设备质检")
    public Envelop<IotDeviceQualityInspectionPlanVO> findByCode(@ApiParam(name = "id", value = "id")
                              @RequestParam(value = "id", required = true) String id
    ) {
        return iotDeviceQualityFeign.findByCode(id);
    }
    @GetMapping(value = IotRequestMapping.DeviceQuality.queryQualityPlanPage)
    @ApiOperation(value = "分页获取设备质检计划", notes = "分页获取设备质检计划")
    public Envelop<IotDeviceQualityInspectionPlanVO> queryQualityPlanPage(@ApiParam(name = "purcharseId", value = "采购id", defaultValue = "")
                                                           @RequestParam(value = "purcharseId", required = true) String purcharseId,
                                                           @ApiParam(name = "page", value = "第几页", defaultValue = "")
                                                           @RequestParam(value = "page", required = false) Integer page,
                                                           @ApiParam(name = "size", value = "每页记录数", defaultValue = "")
                                                           @RequestParam(value = "size", required = false) Integer size){
        return iotDeviceQualityFeign.queryQualityPlanPage(purcharseId,page,size);
    }
    @PostMapping(value = IotRequestMapping.DeviceQuality.delQualityPlan)
    @ApiOperation(value = "删除质检计划", notes = "删除质检计划")
    public Envelop<IotDeviceQualityInspectionPlanVO> delQualityPlan(@ApiParam(name = "id", value = "id")
                                            @RequestParam(value = "id", required = true) String id) {
        return iotDeviceQualityFeign.delQualityPlan(id);
    }
    @PostMapping(value = IotRequestMapping.DeviceQuality.completeQualityPlan)
    @ApiOperation(value = "完成质检计划", notes = "完成质检计划")
    public Envelop<IotDeviceQualityInspectionPlanVO> completeQualityPlan(@ApiParam(name = "actualTime", value = "完成时间", defaultValue = "")
                                            @RequestParam(value = "actualTime", required = true) String actualTime,
                                            @ApiParam(name = "id", value = "id")
                                            @RequestParam(value = "id", required = true) String id) {
        return iotDeviceQualityFeign.completeQualityPlan(actualTime,id);
    }
}

+ 3 - 3
web-gateway/src/main/java/com/yihu/jw/feign/fallbackfactory/iot/company/IotCompanyFallbackFactory.java

@ -39,7 +39,7 @@ public class IotCompanyFallbackFactory implements FallbackFactory<IotCompanyFeig
            }
            @Override
            public Envelop<IotCompanyVO> addCompany(@RequestParam(value = "jsonData", required = false)String jsonData) {
            public Envelop<IotCompanyVO> addCompany(@RequestParam(value = "jsonData", required = true)String jsonData) {
                tracer.getCurrentSpan().logEvent("创建企业失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("jsonData:" + jsonData);
                return null;
@ -67,7 +67,7 @@ public class IotCompanyFallbackFactory implements FallbackFactory<IotCompanyFeig
            }
            @Override
            public Envelop<IotCompanyVO> updCompany(@RequestParam(value = "jsonData", required = false)String jsonData) {
            public Envelop<IotCompanyVO> updCompany(@RequestParam(value = "jsonData", required = true)String jsonData) {
                tracer.getCurrentSpan().logEvent("修改企业信息失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("jsonData:" + jsonData);
                return null;
@ -100,7 +100,7 @@ public class IotCompanyFallbackFactory implements FallbackFactory<IotCompanyFeig
            }
            @Override
            public Envelop<IotCompanyCertificateVO> addCompanyCert(@RequestParam(value = "jsonData", required = false)String jsonData) {
            public Envelop<IotCompanyCertificateVO> addCompanyCert(@RequestParam(value = "jsonData", required = true)String jsonData) {
                tracer.getCurrentSpan().logEvent("创建企业证书失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("jsonData:" + jsonData);
                return null;

+ 11 - 1
web-gateway/src/main/java/com/yihu/jw/feign/fallbackfactory/iot/device/IotDeviceFallbackFactory.java

@ -2,6 +2,7 @@ package com.yihu.jw.feign.fallbackfactory.iot.device;
import com.yihu.jw.feign.iot.device.IotDeviceFeign;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.base.BaseEnvelop;
import com.yihu.jw.restmodel.iot.common.ExistVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportRecordVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
@ -27,7 +28,7 @@ public class IotDeviceFallbackFactory implements FallbackFactory<IotDeviceFeign>
        return new IotDeviceFeign() {
            @Override
            public Envelop<IotDeviceVO> create(@RequestBody String jsonData) {
            public Envelop<IotDeviceVO> create(@RequestParam(value = "jsonData", required = true) String jsonData) {
                tracer.getCurrentSpan().logEvent("创建设备失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("jsonData:" + jsonData);
                return null;
@ -57,6 +58,15 @@ public class IotDeviceFallbackFactory implements FallbackFactory<IotDeviceFeign>
                return null;
            }
            @Override
            public BaseEnvelop updSim(@RequestParam(value = "sim", required = true) String sim,
                                      @RequestParam(value = "id", required = true) String id) {
                tracer.getCurrentSpan().logEvent("修改sim卡号失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("sim:" + sim);
                tracer.getCurrentSpan().logEvent("id:" + id);
                return null;
            }
            @Override
            public Envelop<IotDeviceVO> findProductPageByCompanyId(@RequestParam(value = "sn", required = false) String sn,
                                                                   @RequestParam(value = "hospital", required = false) String hospital,

+ 77 - 0
web-gateway/src/main/java/com/yihu/jw/feign/fallbackfactory/iot/device/IotDeviceQualityFallbackFactory.java

@ -0,0 +1,77 @@
package com.yihu.jw.feign.fallbackfactory.iot.device;
import com.yihu.jw.feign.iot.device.IotDeviceQualityFeign;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.iot.device.IotDeviceQualityInspectionPlanVO;
import feign.hystrix.FallbackFactory;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;
/**
 * @author yeshijie on 2018/01/24.
 */
@Component
public class IotDeviceQualityFallbackFactory implements FallbackFactory<IotDeviceQualityFeign> {
    @Autowired
    private Tracer tracer;
    @Override
    public IotDeviceQualityFeign create(Throwable e) {
        return new IotDeviceQualityFeign() {
            @Override
            public Envelop<IotDeviceQualityInspectionPlanVO> create(@ApiParam(name = "jsonData", value = "", defaultValue = "")
                                                                    @RequestParam(value = "jsonData", required = true) String jsonData) {
                tracer.getCurrentSpan().logEvent("创建质检计划失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("jsonData:" + jsonData);
                return null;
            }
            @Override
            public Envelop<IotDeviceQualityInspectionPlanVO> findByCode(@ApiParam(name = "id", value = "id")
                                                                        @RequestParam(value = "id", required = true) String id
            ) {
                tracer.getCurrentSpan().logEvent("查找质检计划失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("id:" + id);
                return null;
            }
            @Override
            public Envelop<IotDeviceQualityInspectionPlanVO> queryQualityPlanPage(
                    @RequestParam(value = "purcharseId", required = true) String purcharseId,
                    @RequestParam(value = "page", required = false) Integer page,
                    @RequestParam(value = "size", required = false) Integer size){
                tracer.getCurrentSpan().logEvent("分页获取设备质检计划失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("purcharseId:" + purcharseId);
                tracer.getCurrentSpan().logEvent("page:" + page);
                tracer.getCurrentSpan().logEvent("size:" + size);
                return null;
            }
            @Override
            public Envelop<IotDeviceQualityInspectionPlanVO> delQualityPlan(@ApiParam(name = "id", value = "id")
                                                                        @RequestParam(value = "id", required = true) String id) {
                tracer.getCurrentSpan().logEvent("删除质检计划失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("id:" + id);
                return null;
            }
            @Override
            public Envelop<IotDeviceQualityInspectionPlanVO> completeQualityPlan(
                        @RequestParam(value = "actualTime", required = true) String actualTime,
                        @RequestParam(value = "id", required = true) String id) {
                tracer.getCurrentSpan().logEvent("完成质检计划失败:原因:" + e.getMessage());
                tracer.getCurrentSpan().logEvent("actualTime:" + actualTime);
                tracer.getCurrentSpan().logEvent("id:" + id);
                return null;
            }
        };
    }
}

+ 3 - 3
web-gateway/src/main/java/com/yihu/jw/feign/iot/company/IotCompanyFeign.java

@ -32,7 +32,7 @@ public interface IotCompanyFeign {
                                       @RequestParam(value = "size", required = false) Integer size);
    @PostMapping(value = IotRequestMapping.Company.addCompany)
    public Envelop<IotCompanyVO> addCompany(@RequestParam(value = "jsonData", required = false)String jsonData);
    public Envelop<IotCompanyVO> addCompany(@RequestParam(value = "jsonData", required = true)String jsonData);
    @GetMapping(value = IotRequestMapping.Company.findCompanyById)
    public Envelop<IotCompanyVO> findByCode(@RequestParam(value = "id", required = true) String id);
@ -44,7 +44,7 @@ public interface IotCompanyFeign {
    public Envelop<IotCompanyVO> delCompany(@RequestParam(value = "id", required = true) String id);
    @PostMapping(value = IotRequestMapping.Company.updCompany)
    public Envelop<IotCompanyVO> updCompany(@RequestParam(value = "jsonData", required = false)String jsonData);
    public Envelop<IotCompanyVO> updCompany(@RequestParam(value = "jsonData", required = true)String jsonData);
    @PostMapping(value = IotRequestMapping.Company.findCompanyCertPage)
    public Envelop<IotCompanyCertificateVO> findCompanyCertPage
@ -59,6 +59,6 @@ public interface IotCompanyFeign {
    public Envelop<IotCompanyCertificateVO> findCompanyCertByCompanyId(@RequestParam(value = "companyId", required = true) String companyId);
    @PostMapping(value = IotRequestMapping.Company.addCompanyCert)
    public Envelop<IotCompanyCertificateVO> addCompanyCert(@RequestParam(value = "jsonData", required = false)String jsonData);
    public Envelop<IotCompanyCertificateVO> addCompanyCert(@RequestParam(value = "jsonData", required = true)String jsonData);
}

+ 7 - 3
web-gateway/src/main/java/com/yihu/jw/feign/iot/device/IotDeviceFeign.java

@ -3,12 +3,12 @@ package com.yihu.jw.feign.iot.device;
import com.yihu.jw.feign.fallbackfactory.iot.device.IotDeviceFallbackFactory;
import com.yihu.jw.restmodel.CommonContants;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.common.base.BaseEnvelop;
import com.yihu.jw.restmodel.iot.common.ExistVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportRecordVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
import com.yihu.jw.rm.iot.IotRequestMapping;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
/**
@ -21,8 +21,8 @@ import org.springframework.web.bind.annotation.*;
@RequestMapping(IotRequestMapping.Common.device)
public interface IotDeviceFeign{
    @PostMapping(value = IotRequestMapping.Device.api_create, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public Envelop<IotDeviceVO> create(@RequestBody String jsonData);
    @PostMapping(value = IotRequestMapping.Device.api_create)
    public Envelop<IotDeviceVO> create(@RequestParam(value = "jsonData", required = true) String jsonData);
    @GetMapping(value = IotRequestMapping.Device.api_getById)
    public Envelop<IotDeviceVO> findByCode(@RequestParam(value = "id", required = true) String id);
@ -33,6 +33,10 @@ public interface IotDeviceFeign{
    @GetMapping(value = IotRequestMapping.Device.isSimExist)
    public Envelop<ExistVO> isSimExist(@RequestParam(value = "sim", required = true) String sim);
    @PostMapping(value = IotRequestMapping.Device.updSim)
    public BaseEnvelop updSim(@RequestParam(value = "sim", required = true) String sim,
                             @RequestParam(value = "id", required = true) String id);
    @GetMapping(value = IotRequestMapping.Device.api_queryPage)
    public Envelop<IotDeviceVO> findProductPageByCompanyId(
            @RequestParam(value = "sn", required = false) String sn,

+ 44 - 0
web-gateway/src/main/java/com/yihu/jw/feign/iot/device/IotDeviceQualityFeign.java

@ -0,0 +1,44 @@
package com.yihu.jw.feign.iot.device;
import com.yihu.jw.feign.fallbackfactory.iot.device.IotDeviceQualityFallbackFactory;
import com.yihu.jw.restmodel.CommonContants;
import com.yihu.jw.restmodel.common.Envelop;
import com.yihu.jw.restmodel.iot.device.IotDeviceQualityInspectionPlanVO;
import com.yihu.jw.rm.iot.IotRequestMapping;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
 * @author yeshijie on 2018/01/24.
 */
@FeignClient(
        name = CommonContants.svr_iot // name值是eurika的实例名字
        ,fallbackFactory  = IotDeviceQualityFallbackFactory.class
)
@RequestMapping(IotRequestMapping.Common.quality)
public interface IotDeviceQualityFeign{
    @PostMapping(value = IotRequestMapping.DeviceQuality.addQualityPlan)
    public Envelop<IotDeviceQualityInspectionPlanVO> create(@RequestParam(value = "jsonData", required = true) String jsonData);
    @GetMapping(value = IotRequestMapping.DeviceQuality.findById)
    public Envelop<IotDeviceQualityInspectionPlanVO> findByCode(@RequestParam(value = "id", required = true) String id);
    @GetMapping(value = IotRequestMapping.DeviceQuality.queryQualityPlanPage)
    public Envelop<IotDeviceQualityInspectionPlanVO> queryQualityPlanPage(
           @RequestParam(value = "purcharseId", required = true) String purcharseId,
           @RequestParam(value = "page", required = false) Integer page,
           @RequestParam(value = "size", required = false) Integer size);
    @PostMapping(value = IotRequestMapping.DeviceQuality.delQualityPlan)
    public Envelop<IotDeviceQualityInspectionPlanVO> delQualityPlan(@RequestParam(value = "id", required = true) String id);
    @PostMapping(value = IotRequestMapping.DeviceQuality.completeQualityPlan)
    public Envelop<IotDeviceQualityInspectionPlanVO> completeQualityPlan(
        @RequestParam(value = "actualTime", required = true) String actualTime,
        @RequestParam(value = "id", required = true) String id);
}