Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/controller/RfidTagController.java
liujh 3 lat temu
rodzic
commit
56d412aff2

+ 1 - 2
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/feign/service/RemoteBottleService.java

@@ -3,7 +3,6 @@ package com.zd.bottle.feign.service;
 import com.zd.bottle.feign.RemoteBottleFallbackFactory;
 import com.zd.common.core.constant.ServiceNameConstants;
 import com.zd.common.core.domain.R;
-import com.zd.system.api.airbottle.factory.RemoteAirBottleFallbackFactory;
 import com.zd.system.api.domain.InventoryTag;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -20,7 +19,7 @@ public interface RemoteBottleService {
      * @param tag 标签信息
      * @return R<Boolean>
      */
-    @PostMapping("alarm/record/remote/add")
+    @PostMapping("alarmRecord/remote/add")
     R<Boolean> remoteAdd(@RequestBody InventoryTag tag);
 
 }

+ 8 - 7
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/controller/RfidTagController.java

@@ -6,7 +6,6 @@ import com.zd.bottle.domain.RfidTag;
 import com.zd.bottle.service.RfidTagService;
 import com.zd.common.core.domain.per.PerFun;
 import com.zd.common.core.domain.per.PerPrefix;
-import com.zd.common.core.exception.ServiceException;
 import com.zd.common.core.utils.poi.ExcelUtil;
 import com.zd.common.core.web.controller.BaseController;
 import com.zd.common.core.web.page.TableDataInfo;
@@ -129,13 +128,15 @@ public class RfidTagController extends BaseController<RfidTag> {
     @Log(title = "RFID标签管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public ResultData<Boolean> remove(@PathVariable Long[] ids) {
-        for (Long id:ids) {
-            RfidTag rfidTag = service.getById(id);
-            if(rfidTag!=null && rfidTag.getIsBind()==1){
-                throw new ServiceException("识别码:"+rfidTag.getAuthCode()+",已绑定不允许删除。");
-            }
+        List<Long> idList = Arrays.asList(ids);
+        LambdaQueryWrapper<RfidTag> wrapper = Wrappers.lambdaQuery(RfidTag.class);
+        wrapper.in(RfidTag::getId,idList).eq(RfidTag::getIsBind,1);
+        List<RfidTag> list = service.list(wrapper);
+        if (!list.isEmpty()){
+            List<String> authCodeList = list.stream().map(RfidTag::getAuthCode).collect(Collectors.toList());
+            throw new ServiceException(String.join(",", authCodeList)+"已被绑定");
         }
-        return ResultData.result(service.removeBatchByIds(Arrays.asList(ids)));
+        return ResultData.result(service.removeBatchByIds(idList));
     }
 
 }

+ 9 - 2
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/impl/AlarmRecordServiceImpl.java

@@ -114,14 +114,14 @@ public class AlarmRecordServiceImpl extends ServiceImpl<AlarmRecordMapper, Alarm
         String electronicTag = tag.getEpc();
         RemoteLabHardware hardware = tag.getRemoteLabHardware();
         LambdaQueryWrapper<RfidTag> queryWrapper = Wrappers.lambdaQuery(RfidTag.class);
-        queryWrapper.eq(RfidTag::getAuthCode, electronicTag);
+        queryWrapper.eq(RfidTag::getTagCode, electronicTag);
         RfidTag rfidTag = tagService.getOne(queryWrapper);
         if (rfidTag == null) {
             log.info(MSG_MATCH, electronicTag, "标签未录入");
             return false;
         }
         LambdaQueryWrapper<BottleStorage> wrapper = Wrappers.lambdaQuery(BottleStorage.class);
-        wrapper.eq(BottleStorage::getElectronicTag, rfidTag.getId());
+        wrapper.eq(BottleStorage::getElectronicTag, rfidTag.getAuthCode());
         BottleStorage bottleStorage = storageService.getOne(wrapper);
         if (bottleStorage != null) {
             String airName = bottleStorage.getAirName();
@@ -131,6 +131,13 @@ public class AlarmRecordServiceImpl extends ServiceImpl<AlarmRecordMapper, Alarm
             List<UsegasApply> applies = applyService.list(lambdaQuery);
             if (applies.isEmpty()){
                 Long id = bottleStorage.getId();
+                //触发RFID警报
+                if (hardware!=null){
+                    R<Boolean> alarm = remoteNettyService.alarm(hardware);//RFID设备报警
+                    log.info(MSG_MATCH,alarm.getCode(),alarm.getMsg());
+                }else {
+                    log.info("==================> rfid 参数有误!"+ tag);
+                }
                 String key = FRID_CODE + electronicTag + id;
                 String frid = redisService.getCacheObject(key);
                 if (frid != null) {

+ 5 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabMessageContentServiceImpl.java

@@ -86,8 +86,12 @@ public class LabMessageContentServiceImpl implements ILabMessageContentService {
     @Autowired
     private LabContentMachineMsgMapper labContentMachineMsgMapper;
 
+    public Integer phoneMode;
+
     @Value("${phoneMode:0}")
-    public static Integer phoneMode;
+    private void setPhoneMode(Integer phoneMode){
+        this.phoneMode = phoneMode;
+    }
 
     @Autowired
     RemoteStockService remoteStockService;

+ 33 - 11
zd-modules/zd-modules-system/src/main/java/com/zd/system/controller/SysUserController.java

@@ -25,9 +25,7 @@ import com.zd.system.api.model.SimpleUserVO;
 import com.zd.system.domain.SysLogoConfig;
 import com.zd.system.domain.SysPost;
 import com.zd.system.service.*;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.*;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -717,13 +715,15 @@ public class SysUserController extends BaseController {
 
     /**
      * 发送验证码
+     * @param phone 手机号码
+     * @return 验证码
      */
+    @ApiOperation("发送验证码")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "phone",required = true,value = "手机号")
+    })
     @PostMapping("/send/code")
     public R<?> send(@RequestParam String phone) {
-        SysUser sysUser = userService.selectUserIdByPhone(phone);
-        if (sysUser == null) {
-            throw new ServiceException("手机号:" + phone + " 关联用户不存在", 530);
-        }
         String key = Constants.DEFAULT_CODE_KEY + Constants.UPDATE_TYPE_MOBILE + "@" + phone;
         String code = RandomUtil.randomNumbers(6);
         redisTemplate.opsForValue().set(key, code, CODE_EXPIRATION, TimeUnit.MINUTES);
@@ -733,19 +733,41 @@ public class SysUserController extends BaseController {
     }
 
     /**
-     * 发送验证码
+     * 验证码校验
+     * @param phone 手机号
+     * @param code 验证码
+     * @return 校对结果
      */
-    @PostMapping("/check/code")
+    @ApiOperation("验证码校验")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "phone",required = true,value = "手机号"),
+            @ApiImplicitParam(name = "code",required = true,value = "验证码")
+    })
+    @GetMapping("/check/code")
     public R<?> checkCode(@RequestParam("phone") String phone, @RequestParam("code") String code) {
         return R.ok(check(phone, code));
     }
 
     /**
-     * 用户自己修改手机号
+     * 用户修改手机号
+     * @param oldPhone 原手机号
+     * @param newPhone 新手机号
+     * @param code 验证码
+     * @return  AjaxResult
      */
-    @Log(title = "用户自己修改手机号", businessType = BusinessType.UPDATE)
+    @ApiOperation("修改手机号")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "oldPhone",required = true,value = "原手机号"),
+            @ApiImplicitParam(name = "newPhone",required = true,value = "新手机号"),
+            @ApiImplicitParam(name = "code",required = true,value = "验证码")
+    })
+    @Log(title = "用户修改手机号", businessType = BusinessType.UPDATE)
     @PutMapping("/update/phone")
     public AjaxResult updatePhone(@RequestParam("oldPhone") String oldPhone,@RequestParam("newPhone") String newPhone,@RequestParam("code") String code) {
+        if (StringUtils.isEmpty(oldPhone) || StringUtils.isEmpty(newPhone)){
+            throw new ServiceException("原密码或新密码不能为空");
+        }
+
         SysUser user = userService.selectUserIdByPhone(oldPhone);
         if(user==null){
             throw new ServiceException("用户查询失败");

+ 6 - 6
zd-modules/zd-netty/src/main/java/com/zd/netty/sdk/DeJuRFIDClientImpl.java

@@ -106,6 +106,12 @@ public class DeJuRFIDClientImpl implements IService {
     }
 
     private void reSet(RemoteLabHardware hardware, GClient client) {
+        MsgBaseSetBaseband msgBaseSetBaseband = DeJuRFIDServerImpl.setSession(hardware, client);
+        if (0 != msgBaseSetBaseband.getRtCode()) {
+            log.error("Session configuration error.");
+            reConnect(hardware, client);
+            return;
+        }
         MsgBaseSetPower msgBaseSetPower = DeJuRFIDServerImpl.setPower(hardware, client);
         if (0 != msgBaseSetPower.getRtCode()) {
             log.error("Power configuration error.");
@@ -116,12 +122,6 @@ public class DeJuRFIDClientImpl implements IService {
         if (0 != msgBaseInventoryEpc.getRtCode()) {
             log.error("Inventory epc error.");
             reConnect(hardware, client);
-            return;
-        }
-        MsgBaseSetBaseband msgBaseSetBaseband = DeJuRFIDServerImpl.setSession(hardware, client);
-        if (0 != msgBaseSetBaseband.getRtCode()) {
-            log.error("Session configuration error.");
-            reConnect(hardware, client);
         }
     }
 

+ 15 - 7
zd-modules/zd-netty/src/main/java/com/zd/netty/sdk/DeJuRFIDServerImpl.java

@@ -63,8 +63,20 @@ public class DeJuRFIDServerImpl implements IService {
             client = new GClient();
             clientMap.put(ipAddress, client);
         }
+        String[] ip = ipAddress.split(":");
+        int port=8160;
+        if (ip.length==1){
+            ipAddress+=":"+port;
+        }
         if (client.openTcp(ipAddress, TIME_OUT)) {
             stopMsg(client);
+            MsgBaseSetBaseband msgBaseSetBaseband = setSession(hardware, client);
+            if (0 != msgBaseSetBaseband.getRtCode()) {
+                log.info("Session epc error.");
+                close(hardware);
+                open(hardware);
+                return;
+            }
             // 功率配置, 将4个天线功率都设置为30dBm.
             MsgBaseSetPower msgBaseSetPower = setPower(hardware, client);
             if (0 != msgBaseSetPower.getRtCode()) {
@@ -84,14 +96,10 @@ public class DeJuRFIDServerImpl implements IService {
 
             // 订阅标签上报事件
             subscribeHandler(client, hardware);
-            MsgBaseSetBaseband msgBaseSetBaseband = setSession(hardware, client);
-            if (0 != msgBaseSetBaseband.getRtCode()) {
-                log.info("Session epc error.");
-                close(hardware);
-                open(hardware);
-                return;
+            String serialNumber = client.getSerialNumber();
+            if (StringUtils.hasLength(serialNumber)){
+                redisTemplate.opsForValue().set(serialNumber, hardware);
             }
-            redisTemplate.opsForValue().set(client.getSerialNumber(), hardware);
         } else {
             throw new ServiceException("Connect failure.");
         }