|
@@ -37,7 +37,6 @@ import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.io.OutputStream;
|
|
|
import java.time.LocalDateTime;
|
|
|
-import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
import static com.xy.utils.PlusBeans.*;
|
|
@@ -281,11 +280,11 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
|
|
|
|
|
|
@ApiOperation("上传sn注册设备")
|
|
|
@PostMapping("uploadSaveBySn")
|
|
|
- public R uploadSaveBySn(@RequestParam("file") MultipartFile file, @RequestParam("deviceType") Integer deviceType, @RequestParam("devicePc") String devicePc, @RequestParam("assetNo") String assetNo) {
|
|
|
+ public R uploadSaveBySn(@RequestParam("file") MultipartFile file, @RequestParam("devicePc") String devicePc) {
|
|
|
ThreadPoolUtils.excPoll(DeviceThreadPoolConfig.DEVICE_COMMON_POLL, 1)
|
|
|
.execute(() -> {
|
|
|
try {
|
|
|
- EasyExcel.read(file.getInputStream(), UploadSaveBySn.class, new UploadSaveBySnListener(deviceCreateIdsService, this, alipayDeviceService, deviceType, devicePc, assetNo)).sheet().doRead();
|
|
|
+ EasyExcel.read(file.getInputStream(), UploadSaveBySn.class, new UploadSaveBySnListener(deviceCreateIdsService, this, alipayDeviceService, devicePc)).sheet().doRead();
|
|
|
} catch (IOException e) {
|
|
|
log.error("", e);
|
|
|
}
|
|
@@ -318,13 +317,9 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
|
|
|
|
|
|
private final AlipayDeviceService alipayDeviceService;
|
|
|
|
|
|
- private final Integer deviceType;
|
|
|
-
|
|
|
private final String devicePc;
|
|
|
|
|
|
- private final String assetNo;
|
|
|
-
|
|
|
- private List<UploadSaveBySn> sns = new ArrayList<>();
|
|
|
+ private JList<UploadSaveBySn> sns = new JArrayList<>();
|
|
|
|
|
|
/**
|
|
|
* 这个每一条数据解析都会来调用
|
|
@@ -334,6 +329,20 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
|
|
|
*/
|
|
|
@Override
|
|
|
public void invoke(UploadSaveBySn data, AnalysisContext context) {
|
|
|
+ String deviceType = data.getDeviceType();
|
|
|
+ if (deviceType == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Integer deviceTypeValue = deviceType.equals("动态视觉柜(单门)") ? 1
|
|
|
+ : deviceType.equals("动态视觉柜(双门)") ? 2
|
|
|
+ : deviceType.equals("重力柜(单门)") ? 3
|
|
|
+ : deviceType.equals("重力柜(双门)") ? 4
|
|
|
+ : deviceType.equals("支付宝视动态觉柜") ? 5
|
|
|
+ : null;
|
|
|
+ if (deviceTypeValue == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ data.setDeviceTypeValue(deviceTypeValue);
|
|
|
sns.add(data);
|
|
|
}
|
|
|
|
|
@@ -345,42 +354,44 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
|
|
|
@Override
|
|
|
public void doAfterAllAnalysed(AnalysisContext context) {
|
|
|
log.info("上传sn注册设备文件解析完毕,总数量:{},批次:{}", sns.size(), devicePc);
|
|
|
- //生成设备号
|
|
|
- JList<DeviceCreateIds> deviceCreateIds = deviceCreateIdsService.save(new DeviceCreateIdsDto.Save()
|
|
|
- .setDeviceType(deviceType)
|
|
|
- .setDoorType("1")
|
|
|
- .setCreatePc(devicePc)
|
|
|
- .setNum(sns.size())
|
|
|
- ).getData();
|
|
|
- JList<Long> deviceIds = deviceCreateIds.getProperty(DeviceCreateIds::getDeviceId);
|
|
|
- //注册设备
|
|
|
- ThreadPoolUtils.Execute execute = ThreadPoolUtils.excPoll(DeviceThreadPoolConfig.DEVICE_COMMON_POLL, sns.size());
|
|
|
- for (int i = 0; i < sns.size(); i++) {
|
|
|
- UploadSaveBySn sn = sns.get(i);
|
|
|
- Long deviceId = deviceIds.get(i);
|
|
|
- execute.execute(() -> {
|
|
|
- DeviceRegisterDto.Save save = new DeviceRegisterDto.Save()
|
|
|
- .setDeviceId(deviceId)
|
|
|
- .setDeviceSn(sn.getSn())
|
|
|
- .setDevicePc(devicePc)
|
|
|
- .setAssetNo(assetNo);
|
|
|
- R r = deviceRegisterService.save(save);
|
|
|
- if (r.getCode() == R.Enum.FAIL.getCode()) {
|
|
|
- log.error("{},{}", sn.getSn(), r.getMsg());
|
|
|
- } else {
|
|
|
- //初始化支付宝设备
|
|
|
- if (deviceType == 5) {
|
|
|
- alipayDeviceService.deviceAssign(new DeviceAssignDTO()
|
|
|
- .setTerminalId(String.valueOf(deviceId))
|
|
|
- .setDeviceIdentifyType("DYNAMIC")
|
|
|
- .setDeviceSn(sn.getSn())
|
|
|
- .setDeviceName(String.valueOf(deviceId))
|
|
|
- );
|
|
|
+ JMap<Integer, List<UploadSaveBySn>> group = sns.toMap(UploadSaveBySn::getDeviceTypeValue).group();
|
|
|
+ group.forEach((deviceTypeValue, uploadSaveBySns) -> {
|
|
|
+ ThreadPoolUtils.Execute execute = ThreadPoolUtils.excPoll(DeviceThreadPoolConfig.DEVICE_COMMON_POLL, uploadSaveBySns.size());
|
|
|
+ //生成设备号
|
|
|
+ JList<DeviceCreateIds> deviceCreateIds = deviceCreateIdsService.save(new DeviceCreateIdsDto.Save()
|
|
|
+ .setDeviceType(deviceTypeValue)
|
|
|
+ .setDoorType("1")
|
|
|
+ .setCreatePc(devicePc)
|
|
|
+ .setNum(uploadSaveBySns.size())
|
|
|
+ ).getData();
|
|
|
+ //注册设备
|
|
|
+ for (int i = 0; i < uploadSaveBySns.size(); i++) {
|
|
|
+ UploadSaveBySn sn = uploadSaveBySns.get(i);
|
|
|
+ Long deviceId = deviceCreateIds.get(i).getDeviceId();
|
|
|
+ execute.execute(() -> {
|
|
|
+ DeviceRegisterDto.Save save = new DeviceRegisterDto.Save()
|
|
|
+ .setDeviceId(deviceId)
|
|
|
+ .setDeviceSn(sn.getSn())
|
|
|
+ .setDevicePc(devicePc)
|
|
|
+ .setAssetNo(sn.getAssetNo());
|
|
|
+ R r = deviceRegisterService.save(save);
|
|
|
+ if (r.getCode() == R.Enum.FAIL.getCode()) {
|
|
|
+ log.error("{},{}", sn.getSn(), r.getMsg());
|
|
|
+ } else {
|
|
|
+ //初始化支付宝设备
|
|
|
+ if (deviceTypeValue == 5) {
|
|
|
+ alipayDeviceService.deviceAssign(new DeviceAssignDTO()
|
|
|
+ .setTerminalId(String.valueOf(deviceId))
|
|
|
+ .setDeviceIdentifyType("DYNAMIC")
|
|
|
+ .setDeviceSn(sn.getSn())
|
|
|
+ .setDeviceName(String.valueOf(deviceId))
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- execute.end();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ execute.end();
|
|
|
+ });
|
|
|
log.info("上传sn注册设备注册完毕,批次:{}", devicePc);
|
|
|
}
|
|
|
}
|
|
@@ -388,6 +399,24 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
|
|
|
@Data
|
|
|
public static class UploadSaveBySn {
|
|
|
|
|
|
+ /**
|
|
|
+ * sn
|
|
|
+ */
|
|
|
private String sn;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设备类型
|
|
|
+ */
|
|
|
+ private String deviceType;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 资产编号
|
|
|
+ */
|
|
|
+ private String assetNo;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设备类型值
|
|
|
+ */
|
|
|
+ private Integer deviceTypeValue;
|
|
|
}
|
|
|
}
|