DeviceInfoDto.java 28 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052
  1. package com.xy.dto;
  2. import com.alibaba.excel.annotation.ExcelProperty;
  3. import com.fasterxml.jackson.annotation.JsonFormat;
  4. import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
  5. import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  6. import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
  7. import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
  8. import com.xy.annotate.DictFormat;
  9. import com.xy.consts.DictConsts;
  10. import com.xy.convert.DictConvert;
  11. import com.xy.utils.DataTime;
  12. import com.xy.utils.PageBean;
  13. import io.swagger.annotations.ApiModelProperty;
  14. import lombok.Data;
  15. import lombok.experimental.Accessors;
  16. import javax.validation.constraints.NotBlank;
  17. import javax.validation.constraints.NotNull;
  18. import java.math.BigDecimal;
  19. import java.time.LocalDate;
  20. import java.time.LocalDateTime;
  21. import java.util.List;
  22. @Data
  23. @Accessors(chain = true)
  24. public class DeviceInfoDto {
  25. /**
  26. * 删除线路\点位时时指定 传入 wherePlaceLineId\wherePlaceId
  27. */
  28. public final static String DEL = "del";
  29. /**
  30. * 更新线\点位时指定 传入 deviceIds、placeLineId\placeId
  31. */
  32. public final static String UPDATE = "update";
  33. /**
  34. * 解绑线路、点位时指定 传入 deviceIds
  35. */
  36. public final static String CLEAR = "clear";
  37. @Data
  38. @Accessors(chain = true)
  39. public static class AlgorithmCharging {
  40. @NotNull(message = "分页对象不能空")
  41. @ApiModelProperty(value = "分页对象", required = true)
  42. private PageBean page;
  43. @ApiModelProperty(value = "商户ID", hidden = true)
  44. private Long mercId;
  45. }
  46. @Data
  47. @Accessors(chain = true)
  48. public static class NetStateCount {
  49. @ApiModelProperty("商户ID")
  50. private Long mercId;
  51. @ApiModelProperty("网络状态")
  52. private String netState;
  53. @ApiModelProperty("数量")
  54. private Integer count;
  55. }
  56. @Data
  57. @Accessors(chain = true)
  58. public static class NetStateCountDto {
  59. @ApiModelProperty("商户ID")
  60. private List<Long> mercIdList;
  61. }
  62. @Data
  63. @Accessors(chain = true)
  64. public static class NetStateCountVo {
  65. @ApiModelProperty("商户ID")
  66. private Long mercId;
  67. @ApiModelProperty("总数")
  68. private Integer count = 0;
  69. @ApiModelProperty("在线数")
  70. private Integer onLineCount = 0;
  71. @ApiModelProperty("离线数")
  72. private Integer offLineCount = 0;
  73. }
  74. @Data
  75. @Accessors(chain = true)
  76. public static class Obj {
  77. @ApiModelProperty("商户ID")
  78. private Long mercId;
  79. @ApiModelProperty("设备id")
  80. private Long deviceId;
  81. @ApiModelProperty("门id 0=1号门 1=2号门")
  82. private Integer door;
  83. @ApiModelProperty("是否需要系统信息")
  84. private Boolean isSysinfo = false;
  85. @ApiModelProperty("是否需要状态信息")
  86. private Boolean isStatus = false;
  87. @ApiModelProperty("是否需要注册信息")
  88. private Boolean isRegister = false;
  89. }
  90. @Data
  91. @Accessors(chain = true)
  92. public static class ListDto {
  93. @ApiModelProperty(value = "设备id批量查")
  94. private List<Long> deviceIds;
  95. @ApiModelProperty(value = "商户id")
  96. private Long mercId;
  97. }
  98. @Data
  99. @Accessors(chain = true)
  100. public static class ListCommon {
  101. @ApiModelProperty("设备信息VO")
  102. Vo vo;
  103. // @ApiModelProperty("线路id多个")
  104. // private List<Long> placeLineIds;
  105. @ApiModelProperty("id")
  106. private List<Long> deviceIds;
  107. @ApiModelProperty("指定字段查询")
  108. private List<String> columnList;
  109. @ApiModelProperty(value = "根据名称或编码搜索")
  110. private String deviceSearch;
  111. }
  112. @Data
  113. @Accessors(chain = true)
  114. public static class UpdateLine {
  115. @NotNull(message = "更新类型")
  116. @ApiModelProperty(value = "更新类型", required = true)
  117. private String type;
  118. @NotNull(message = "商户id不能为空")
  119. @ApiModelProperty(value = "商户id", required = true)
  120. private Long mercId;
  121. @ApiModelProperty("设备id集合")
  122. private List<Long> deviceIds;
  123. @ApiModelProperty(value = "线路ID")
  124. private Long placeLineId;
  125. @ApiModelProperty(value = "原线路ID")
  126. private Long wherePlaceLineId;
  127. }
  128. @Data
  129. @Accessors(chain = true)
  130. public static class UpdatePlace {
  131. @NotNull(message = "更新类型")
  132. @ApiModelProperty(value = "更新类型", required = true)
  133. private String type;
  134. @NotNull(message = "商户id不能为空")
  135. @ApiModelProperty(value = "商户id", required = true)
  136. private Long mercId;
  137. @ApiModelProperty("设备id集合")
  138. private List<Long> deviceIds;
  139. @ApiModelProperty(value = "点位ID")
  140. private Long placeId;
  141. @ApiModelProperty(value = "原点位ID")
  142. private Long wherePlaceId;
  143. }
  144. @Data
  145. @Accessors(chain = true)
  146. public static class Update extends Vo {
  147. @NotNull(message = "deviceId不能为空")
  148. @ApiModelProperty("设备id")
  149. private Long deviceId;
  150. @ApiModelProperty(value = "系统信息", hidden = true)
  151. private DeviceSysinfoDto.Vo deviceSysinfo;
  152. @ApiModelProperty(value = "状态信息", hidden = true)
  153. private DeviceStatusDto.Vo deviceStatus;
  154. @ApiModelProperty(value = "注册信息", hidden = true)
  155. private DeviceRegisterDto.Vo deviceRegister;
  156. }
  157. @Data
  158. @Accessors(chain = true)
  159. public static class PageSingle extends Vo {
  160. @NotNull(message = "分页对象不能空")
  161. @ApiModelProperty(value = "分页对象", required = true)
  162. private PageBean page;
  163. }
  164. @Data
  165. @Accessors(chain = true)
  166. public static class Page extends Vo {
  167. @ApiModelProperty(value = "拥有的设备ID", hidden = true)
  168. private List<Long> myDeviceIds;
  169. @ApiModelProperty("缺货状态")
  170. private Integer stockStatus;
  171. /**
  172. * 设备ID
  173. */
  174. private List<Long> deviceIdList;
  175. @ApiModelProperty("是否查询故障设备")
  176. private Boolean fault;
  177. @ApiModelProperty("是否导出当前页")
  178. private Boolean exportPage = true;
  179. @ApiModelProperty(value = "分页对象", required = true)
  180. private PageBean page;
  181. @ApiModelProperty("是否绑定商户")
  182. private Boolean isBindMerc;
  183. /**
  184. * size -1 不分页
  185. *
  186. * @return
  187. */
  188. public PageBean getPage() {
  189. if (!this.exportPage) {
  190. this.page.setSize(-1L);
  191. }
  192. return page;
  193. }
  194. @ApiModelProperty("资产/sn/sim号")
  195. private String no;
  196. @ApiModelProperty("商户id/商户号/商户名称")
  197. private String merc;
  198. @ApiModelProperty("设备id/设备名称")
  199. private String deviceIdName;
  200. @ApiModelProperty("联网状态")
  201. private Integer netState;
  202. @ApiModelProperty("上位机版本号")
  203. private String appUpmVersion;
  204. @ApiModelProperty("下位机版本号")
  205. private String appDownmVersion;
  206. @JsonFormat(pattern = "yyyy-MM-dd")
  207. @ApiModelProperty(value = "激活时间-起")
  208. private LocalDate beginActiveTime;
  209. @JsonFormat(pattern = "yyyy-MM-dd")
  210. @ApiModelProperty(value = "激活时间-始")
  211. private LocalDate endActiveTime;
  212. @ApiModelProperty("附近最大距离,单位:米")
  213. private Integer nearby;
  214. @ApiModelProperty(value = "系统信息", hidden = true)
  215. private DeviceSysinfoDto.Vo deviceSysinfo;
  216. @ApiModelProperty(value = "状态信息", hidden = true)
  217. private DeviceStatusDto.Vo deviceStatus;
  218. @ApiModelProperty(value = "注册信息", hidden = true)
  219. private DeviceRegisterDto.Vo deviceRegister;
  220. @ApiModelProperty(value = "限制查询数量", required = false)
  221. private Integer limitNum;
  222. public String getBeginActiveTime() {
  223. return beginActiveTime == null ? null : DataTime.toString(beginActiveTime.atTime(0, 0, 0));
  224. }
  225. public String getEndActiveTime() {
  226. return endActiveTime == null ? null : DataTime.toString(endActiveTime.atTime(23, 59, 59));
  227. }
  228. }
  229. @Data
  230. @Accessors(chain = true)
  231. public static class Vo {
  232. @ApiModelProperty("通电状态")
  233. private Integer sysPower;
  234. @ApiModelProperty("左门锁机状态名称")
  235. private String deviceStateLName;
  236. @ApiModelProperty("右门锁机状态名称")
  237. private String deviceStateRName;
  238. @ApiModelProperty("左门锁机状态,字典类型:devcie_lock_status")
  239. private Integer deviceStateL;
  240. @ApiModelProperty("右门锁机状态,字典类型:devcie_lock_status")
  241. private Integer deviceStateR;
  242. @ApiModelProperty("设备id")
  243. private Long deviceId;
  244. @ApiModelProperty("设备名称")
  245. private String deviceName;
  246. @DictFormat(DictConsts.DEVICE_TYPE)
  247. @ApiModelProperty("设备类型")
  248. private Integer deviceType;
  249. @ApiModelProperty("商户设备资产编号")
  250. private String mercDeviceCode;
  251. @ApiModelProperty("商户id")
  252. private Long mercId;
  253. @ApiModelProperty("商户编码")
  254. private String mercCode;
  255. @ApiModelProperty("商户名称")
  256. private String mercName;
  257. @ApiModelProperty("算法平台id")
  258. private Long algorithmId;
  259. @ApiModelProperty("点位id")
  260. private Long placeId;
  261. @ApiModelProperty("点位")
  262. private String placeName;
  263. @ApiModelProperty("线路id")
  264. private Long placeLineId;
  265. @ApiModelProperty("线路")
  266. private String placeLineName;
  267. @ApiModelProperty("区域id")
  268. private Long districtId;
  269. @ApiModelProperty("区域")
  270. private String districtName;
  271. @DictFormat(DictConsts.DEVICE_ACTIVE_STATUS)
  272. @ApiModelProperty("激活状态")
  273. private Integer activeState;
  274. @JsonDeserialize(using = LocalDateTimeDeserializer.class)
  275. @JsonSerialize(using = LocalDateTimeSerializer.class)
  276. @ApiModelProperty("激活时间")
  277. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  278. private LocalDateTime activeTime;
  279. @DictFormat(DictConsts.DEVICE_BUSY_STATUS)
  280. @ApiModelProperty("运营状态")
  281. private Integer busyState;
  282. @ApiModelProperty("显示状态")
  283. private Boolean showStatus;
  284. @DictFormat(DictConsts.DEVICE_FREEZE_STATUS)
  285. @ApiModelProperty("冻结状态")
  286. private Integer freezeStatus;
  287. @ApiModelProperty("设备图片")
  288. private String deviceImg;
  289. @ApiModelProperty("经度")
  290. private String lon;
  291. @ApiModelProperty("纬度")
  292. private String lat;
  293. @DictFormat(DictConsts.DEVICE_FAULT_LEVEL)
  294. @ApiModelProperty("故障等级")
  295. private Integer faultLevel;
  296. @JsonDeserialize(using = LocalDateTimeDeserializer.class)
  297. @JsonSerialize(using = LocalDateTimeSerializer.class)
  298. @ApiModelProperty("创建时间")
  299. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  300. private LocalDateTime createTime;
  301. @JsonDeserialize(using = LocalDateTimeDeserializer.class)
  302. @JsonSerialize(using = LocalDateTimeSerializer.class)
  303. @ApiModelProperty("更新时间")
  304. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  305. private LocalDateTime updateTime;
  306. @ApiModelProperty("系统信息")
  307. private DeviceSysinfoDto.Vo deviceSysinfo;
  308. @ApiModelProperty("状态信息")
  309. private DeviceStatusDto.Vo deviceStatus;
  310. @ApiModelProperty("注册信息")
  311. private DeviceRegisterDto.Vo deviceRegister;
  312. @ApiModelProperty("联网状态名称")
  313. private String netStateName;
  314. @ApiModelProperty("温度设置信息")
  315. private TempSetInfo tempSetInfo;
  316. @ApiModelProperty("工作温度设置值")
  317. private Integer jobTempSetValue;
  318. }
  319. @Data
  320. @Accessors(chain = true)
  321. public static class AlgorithmChargingVo extends Vo {
  322. @ApiModelProperty(value = "卡包数量")
  323. private Integer algorithmChargingSize;
  324. }
  325. @Data
  326. @Accessors(chain = true)
  327. public static class TempSetInfo {
  328. @ApiModelProperty(value = "设备id")
  329. private Long deviceId;
  330. @ApiModelProperty(value = "最大温度告警值")
  331. private Integer tempMax;
  332. @ApiModelProperty(value = "最小温度告警值")
  333. private Integer tempMin;
  334. }
  335. @Data
  336. @Accessors(chain = true)
  337. public static class Vo2 extends Vo {
  338. @ApiModelProperty("商户名称")
  339. private String mercName;
  340. @ApiModelProperty("距离")
  341. private Integer m;
  342. @ApiModelProperty("点位名称")
  343. private String placeName;
  344. @ApiModelProperty("线路名称")
  345. private String placeLineName;
  346. @ApiModelProperty("区域名称")
  347. private String districtName;
  348. @ApiModelProperty("今日订单数")
  349. private Integer dayOrderNum;
  350. @ApiModelProperty("今日销售额")
  351. private Integer daySalesPrice;
  352. }
  353. @Data
  354. @Accessors(chain = true)
  355. public static class MerHomeSearchVO {
  356. @ApiModelProperty("今日订单数")
  357. private Integer dayOrderNum;
  358. @ApiModelProperty("今日销售额")
  359. private Integer daySalesPrice;
  360. @ApiModelProperty("设备id")
  361. private Long deviceId;
  362. @ApiModelProperty("设备名称")
  363. private String deviceName;
  364. @DictFormat(DictConsts.DEVICE_TYPE)
  365. @ApiModelProperty("设备类型")
  366. private Integer deviceType;
  367. @ApiModelProperty("商户编码")
  368. private String mercCode;
  369. @ApiModelProperty("商户名称")
  370. private String mercName;
  371. @DictFormat(DictConsts.DEVICE_BUSY_STATUS)
  372. @ApiModelProperty("运营状态")
  373. private Integer busyState;
  374. @ApiModelProperty("左门锁机状态,字典类型:devcie_lock_status")
  375. private Integer deviceStateL;
  376. @ApiModelProperty("右门锁机状态,字典类型:devcie_lock_status")
  377. private Integer deviceStateR;
  378. @ApiModelProperty("左门锁机状态名称")
  379. private String deviceStateLName;
  380. @ApiModelProperty("右门锁机状态名称")
  381. private String deviceStateRName;
  382. @DictFormat(DictConsts.DEVICE_FAULT_LEVEL)
  383. @ApiModelProperty("故障等级")
  384. private Integer faultLevel;
  385. @ApiModelProperty("更新时间")
  386. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  387. private LocalDateTime updateTime;
  388. @ApiModelProperty("上位机版本号=软件版本号")
  389. private String appUpmVersion;
  390. @ApiModelProperty("联网信号强度")
  391. private Integer netDbm;
  392. @ApiModelProperty("温度值")
  393. private Integer tempValue;
  394. }
  395. @Data
  396. @Accessors(chain = true)
  397. public static class DeviceExcelVO {
  398. @ExcelProperty("所属商户")
  399. @ApiModelProperty("商户名称")
  400. private String mercName;
  401. @ExcelProperty("点位")
  402. @ApiModelProperty("点位名称")
  403. private String placeName;
  404. @ExcelProperty("线路")
  405. @ApiModelProperty("线路名称")
  406. private String placeLineName;
  407. @ExcelProperty("区域")
  408. @ApiModelProperty("区域名称")
  409. private String districtName;
  410. @ExcelProperty("设备编号")
  411. @ApiModelProperty("设备id")
  412. private Long deviceId;
  413. @ExcelProperty("设备名称")
  414. @ApiModelProperty("设备名称")
  415. private String deviceName;
  416. @ExcelProperty(value = "设备类型", converter = DictConvert.class)
  417. @DictFormat(DictConsts.DEVICE_TYPE)
  418. @ApiModelProperty("设备类型")
  419. private Integer deviceType;
  420. @ExcelProperty("商户设备资产编号")
  421. @ApiModelProperty("商户设备资产编号")
  422. private String mercDeviceCode;
  423. @ExcelProperty(value = "商户编码")
  424. @ApiModelProperty("商户编码")
  425. private String mercCode;
  426. @ExcelProperty(value = "激活状态", converter = DictConvert.class)
  427. @DictFormat(DictConsts.DEVICE_ACTIVE_STATUS)
  428. @ApiModelProperty("激活状态")
  429. private Integer activeState;
  430. @ExcelProperty(value = "运营状态", converter = DictConvert.class)
  431. @DictFormat(DictConsts.DEVICE_BUSY_STATUS)
  432. @ApiModelProperty("运营状态")
  433. private Integer busyState;
  434. @ExcelProperty(value = "冻结状态", converter = DictConvert.class)
  435. @DictFormat(DictConsts.DEVICE_FREEZE_STATUS)
  436. @ApiModelProperty("冻结状态")
  437. private Integer freezeStatus;
  438. @ExcelProperty(value = "故障等级", converter = DictConvert.class)
  439. @DictFormat(DictConsts.DEVICE_FAULT_LEVEL)
  440. @ApiModelProperty("故障等级")
  441. private Integer faultLevel;
  442. }
  443. /**
  444. * 商户设备授权
  445. *
  446. * @author 谭斌
  447. * @date 2023/02/09
  448. */
  449. @Data
  450. @Accessors(chain = true)
  451. public static class MercDeviceAuthDto {
  452. @ApiModelProperty(value = "对应商户的全量设备ID(传空则取消商户所有机器)", required = false)
  453. private List<Long> deviceIds;
  454. @ApiModelProperty(value = "商户ID", required = false)
  455. private Long mercId;
  456. @ApiModelProperty(value = "父商户ID")
  457. private Long parentId;
  458. @ApiModelProperty(value = "商户名称", required = false)
  459. private String mercName;
  460. @NotBlank(message = "商户编码不可为空")
  461. @ApiModelProperty(value = "商户编码", required = true)
  462. private String mercCode;
  463. @ApiModelProperty(value = "算法ID", required = false)
  464. private Long algorithmId;
  465. }
  466. @Data
  467. @Accessors(chain = true)
  468. public static class MercDeviceUnBindDto {
  469. @ApiModelProperty(value = "设备ID", required = false)
  470. private List<Long> deviceIds;
  471. }
  472. @Data
  473. @Accessors(chain = true)
  474. public static class MercAlgorithmIdListDto {
  475. @ApiModelProperty(value = "商户ID")
  476. private Long mercId;
  477. }
  478. /**
  479. * 商户设备首页统计
  480. *
  481. * @author 谭斌
  482. * @date 2023/02/28
  483. */
  484. @Data
  485. @Accessors(chain = true)
  486. public static class MercHomeStatisticalVO {
  487. @ApiModelProperty(value = "在线设备数")
  488. private Integer onlineNum;
  489. @ApiModelProperty(value = "离线设备数")
  490. private Integer offlineNum;
  491. @ApiModelProperty(value = "锁机设备数")
  492. private Integer operatingNum;
  493. @ApiModelProperty(value = "未锁机设备数")
  494. private Integer closedNum;
  495. @ApiModelProperty(value = "待补货设备数")
  496. private Integer needToFillNum;
  497. }
  498. @Data
  499. @Accessors(chain = true)
  500. public static class MercHomeQueryDTO {
  501. @ApiModelProperty(value = "拥有的设备ID", hidden = true)
  502. private List<Long> myDeviceIds;
  503. @ApiModelProperty(value = "商户id")
  504. private Long mercId;
  505. @ApiModelProperty(value = "设备名称")
  506. private String deviceName;
  507. @ApiModelProperty(value = "搜索关键词")
  508. private String searchKey;
  509. @ApiModelProperty("设备编号")
  510. private Long deviceId;
  511. @ApiModelProperty("激活状态")
  512. private String activeState;
  513. @ApiModelProperty("在线状态-字典类型:device_online_status(1-在线,2-离线)")
  514. private Integer onlineStatus;
  515. @ApiModelProperty("运营状态-字典类型:device_busy_status(1-运营中,2-已停运)")
  516. private Integer busyStatus;
  517. @ApiModelProperty("设备类型-字典类型:device_type")
  518. private Integer deviceType;
  519. @ApiModelProperty(value = "设备ID", hidden = true)
  520. private List<Long> deviceIdList;
  521. }
  522. @Data
  523. @Accessors(chain = true)
  524. public static class MercHomeListVO {
  525. @ApiModelProperty(value = "区域名称")
  526. private String districtName;
  527. @ApiModelProperty(value = "区域ID")
  528. private Long districtId;
  529. @ApiModelProperty(value = "设备数")
  530. private Integer deviceNum;
  531. @ApiModelProperty(value = "列表设备信息")
  532. private List<MercHomeDeviceVo> deviceInfos;
  533. @ApiModelProperty(value = "线路名称")
  534. private String placeLineName;
  535. @ApiModelProperty(value = "线路ID")
  536. private Long placeLineId;
  537. }
  538. @Data
  539. @Accessors(chain = true)
  540. public static class MercHomeCountVO {
  541. @ApiModelProperty(value = "区域ID")
  542. private Long districtId;
  543. @ApiModelProperty(value = "设备数")
  544. private Integer deviceNum;
  545. }
  546. @Data
  547. @Accessors(chain = true)
  548. public static class MercHomeDeviceVo {
  549. @ApiModelProperty("温度值")
  550. private Integer tempValue;
  551. @ApiModelProperty("设备id")
  552. private Long deviceId;
  553. @ApiModelProperty("设备名称")
  554. private String deviceName;
  555. @ApiModelProperty("设备类型")
  556. private Integer deviceType;
  557. @ApiModelProperty(value = "算法平台ID")
  558. private Long algorithmId;
  559. @ApiModelProperty(value = "算法类型别名")
  560. private String algorithmAlias;
  561. @ApiModelProperty("设备类型名称")
  562. private String deviceTypeName;
  563. @ApiModelProperty("商户设备资产编号")
  564. private String mercDeviceCode;
  565. @ApiModelProperty("运营状态")
  566. private Integer busyState;
  567. @ApiModelProperty("联网状态")
  568. private Integer netState;
  569. @ApiModelProperty("联网状态名称")
  570. private String netStateName;
  571. @ApiModelProperty("运营状态名称")
  572. private String busyStateName;
  573. @ApiModelProperty("今日订单数")
  574. private Integer dayOrderNum;
  575. @ApiModelProperty("今日销售额")
  576. private Integer daySalesPrice;
  577. @ApiModelProperty("在售商品数")
  578. private Integer onSaleNum;
  579. @ApiModelProperty("补货数")
  580. private Integer fillNum;
  581. @ApiModelProperty("左门锁机状态名称")
  582. private String deviceStateLName;
  583. @ApiModelProperty("右门锁机状态名称")
  584. private String deviceStateRName;
  585. @ApiModelProperty("左门锁机状态,字典类型:devcie_lock_status")
  586. private Integer deviceStateL;
  587. @ApiModelProperty("右门锁机状态,字典类型:devcie_lock_status")
  588. private Integer deviceStateR;
  589. @ApiModelProperty("通电状态")
  590. private Integer sysPower;
  591. }
  592. @Data
  593. @Accessors(chain = true)
  594. public static class CheckOwnerDTO {
  595. @ApiModelProperty(value = "设备SN", required = false)
  596. private String deviceSn;
  597. @ApiModelProperty(value = "设备id", required = false)
  598. private Long deviceId;
  599. }
  600. @Data
  601. @Accessors(chain = true)
  602. public static class DeviceDataCountDTO {
  603. @NotNull(message = "mercId不能为空")
  604. @ApiModelProperty("商户ID")
  605. private Long mercId;
  606. @NotNull(message = "deviceId不能为空")
  607. @ApiModelProperty("设备id")
  608. private Long deviceId;
  609. /**
  610. * 统计类型(1=经营数据,2=经营图表,3=温度图表,4=信号图表,5=商品管理)
  611. */
  612. @ApiModelProperty(value = "统计类型(1=经营数据,2=经营图表,3=温度图表,4=信号图表,5=商品管理)", notes = "统计类型(1=经营数据,2=经营图表,3=温度图表,4=信号图表,5=商品管理)")
  613. private Integer type;
  614. @ApiModelProperty("温度、信号图表选择日期yyyy-MM-dd")
  615. private String choosDate;
  616. }
  617. @Data
  618. @Accessors(chain = true)
  619. public static class DeviceDataCountVO {
  620. @ApiModelProperty("(天)经营数据")
  621. private BusinessData dayBusinessData;
  622. @ApiModelProperty("(月)经营数据")
  623. private BusinessData monthBusinessData;
  624. @ApiModelProperty("商品统计数据")
  625. private GoodsData goodsData;
  626. @ApiModelProperty("经营图表")
  627. private BusinessChart businessChart;
  628. @ApiModelProperty("温度图表")
  629. private TemperatureChart temperatureChart;
  630. @ApiModelProperty("信号图表")
  631. private SignalChart signalChart;
  632. }
  633. /**
  634. * 信号图表数据
  635. */
  636. @Data
  637. @Accessors(chain = true)
  638. public static class SignalChart {
  639. @ApiModelProperty("横坐标:当天到秒的数据")
  640. private List<String> categories;
  641. @ApiModelProperty("名称、数据")
  642. private List<MyChartSeries> series;
  643. }
  644. /**
  645. * 温度图表数据
  646. */
  647. @Data
  648. @Accessors(chain = true)
  649. public static class TemperatureChart {
  650. @ApiModelProperty("横坐标:当天到秒的数据")
  651. private List<String> categories;
  652. @ApiModelProperty("名称、数据")
  653. private List<MyChartSeries2> series;
  654. }
  655. /**
  656. * 经营图表数据
  657. */
  658. @Data
  659. @Accessors(chain = true)
  660. public static class BusinessChart {
  661. @ApiModelProperty("横坐标:日期最近一个月的")
  662. private List<String> categories;
  663. @ApiModelProperty("名称、数据")
  664. private List<MyChartSeries3> series;
  665. }
  666. @Data
  667. @Accessors(chain = true)
  668. public static class MyChartSeries {
  669. @ApiModelProperty("数据")
  670. private List<Integer> data;
  671. @ApiModelProperty("名称")
  672. private String name;
  673. }
  674. @Data
  675. @Accessors(chain = true)
  676. public static class MyChartSeries2 {
  677. @ApiModelProperty("数据")
  678. private List<BigDecimal> data;
  679. @ApiModelProperty("名称")
  680. private String name;
  681. }
  682. @Data
  683. @Accessors(chain = true)
  684. public static class MyChartSeries3 {
  685. @ApiModelProperty("数据")
  686. private List<String> data;
  687. @ApiModelProperty("名称")
  688. private String name;
  689. }
  690. @Data
  691. @Accessors(chain = true)
  692. public static class BusinessData {
  693. @ApiModelProperty(value = "营业额;单位分")
  694. private Integer salesMoney;
  695. @ApiModelProperty(value = "销售笔数")
  696. private Integer salesCount;
  697. @ApiModelProperty(value = "销售商品数")
  698. private Integer goodsCount;
  699. @ApiModelProperty(value = "退款金额;单位分")
  700. private Integer refundMoney;
  701. @ApiModelProperty(value = "退款笔数")
  702. private Integer refundCount;
  703. @ApiModelProperty(value = "风险订单数")
  704. private Integer riskCount;
  705. @ApiModelProperty(value = "0元订单笔数")
  706. private Integer zeroCount;
  707. }
  708. /**
  709. * 商品管理统计数据
  710. */
  711. @Data
  712. @Accessors(chain = true)
  713. public static class GoodsData {
  714. @ApiModelProperty("在售商品种类")
  715. private Integer categoryNum;
  716. /**
  717. * 设备商品在售库存数
  718. */
  719. @ApiModelProperty("可售库存")
  720. private Integer stock;
  721. /**
  722. * 最近一次补货后的库存数
  723. */
  724. @ApiModelProperty("上次补货后库存")
  725. private Integer afterFillStock;
  726. }
  727. @Data
  728. @Accessors(chain = true)
  729. public static class DeviceIdDto {
  730. @NotNull(message = "设备id不能为空")
  731. @ApiModelProperty("设备id")
  732. private List<Long> deviceId;
  733. }
  734. @Data
  735. @Accessors(chain = true)
  736. public static class PlaceDeviceNumDto {
  737. @ApiModelProperty("点位id")
  738. private Long placeId;
  739. @ApiModelProperty("点位ID列表")
  740. private List<Long> placeIdList;
  741. }
  742. @Data
  743. @Accessors(chain = true)
  744. public static class PlaceDeviceNumVo {
  745. @ApiModelProperty("点位id")
  746. private Long placeId;
  747. @ApiModelProperty("数量")
  748. private Integer num;
  749. }
  750. }