Explorar el Código

气瓶出库、入库标签状态修改

liujh hace 3 años
padre
commit
8fe6aa3037

+ 13 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/mapper/RfidTagMapper.java

@@ -13,4 +13,17 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface RfidTagMapper extends BaseMapper<RfidTag> {
 
+    /***
+     * 根据标签码查询
+     * @param tagCode
+     * @return
+     */
+    RfidTag getRfidByTagCode(String tagCode);
+
+    /***
+     * 修改标签
+     * @param rfidTag
+     * @return
+     */
+    int updateQpRfidTag(RfidTag rfidTag);
 }

+ 14 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/RfidTagService.java

@@ -19,4 +19,18 @@ public interface RfidTagService extends IService<RfidTag> {
      * @return boolean
      */
     RfidTag add(RfidTag rfidTag);
+
+    /***
+     * 根据标签码查询
+     * @param tagCode
+     * @return
+     */
+    RfidTag getRfidByTagCode(String tagCode);
+
+    /***
+     * 修改标签
+     * @param rfidTag
+     * @return
+     */
+    int updateQpRfidTag(RfidTag rfidTag);
 }

+ 20 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/impl/BottleStorageOutServiceImpl.java

@@ -2,11 +2,13 @@ package com.zd.bottle.service.impl;
 
 import com.zd.bottle.domain.BottleStorage;
 import com.zd.bottle.domain.BottleStorageOut;
+import com.zd.bottle.domain.RfidTag;
 import com.zd.bottle.domain.UseRecord;
 import com.zd.bottle.mapper.BottleStorageOutMapper;
 import com.zd.bottle.service.BottleStorageOutService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zd.bottle.service.BottleStorageService;
+import com.zd.bottle.service.RfidTagService;
 import com.zd.bottle.service.UseRecordService;
 import com.zd.bottle.vo.BottleStorageOutVo;
 import com.zd.bottle.vo.UseRecordVo;
@@ -16,6 +18,7 @@ import com.zd.common.security.service.TokenService;
 import com.zd.system.api.domain.SysUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.Date;
@@ -44,7 +47,11 @@ public class BottleStorageOutServiceImpl extends ServiceImpl<BottleStorageOutMap
     @Autowired
     private UseRecordService useRecordService;
 
+    @Autowired
+    private RfidTagService rfidTagService;
+
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean add(BottleStorageOut bottleStorageOut) {
         if(StringUtils.isNull(bottleStorageOut.getStorageId())){
             throw new ServiceException("入库ID不能为空。");
@@ -62,8 +69,21 @@ public class BottleStorageOutServiceImpl extends ServiceImpl<BottleStorageOutMap
             throw new ServiceException("请先归还后再出库。");
         }
 
+        //查询标签码
+        RfidTag rfidTag = rfidTagService.getRfidByTagCode(bottleStorage.getElectronicTag());
+        if(rfidTag!=null){
+            //修改标签码状态
+            RfidTag rfid = new RfidTag();
+            rfid.setIsBind((short) 0);
+            rfid.setId(rfidTag.getId());
+            rfidTagService.updateQpRfidTag(rfid);
+        }
+
+
         //出库状态
         bottleStorage.setStorageStatus(3);
+        //标签码
+        bottleStorage.setElectronicTag("--");
         //刷新入库状态
         bottleStorageService.updateById(bottleStorage);
 

+ 17 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/impl/BottleStorageServiceImpl.java

@@ -1,12 +1,15 @@
 package com.zd.bottle.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.zd.bottle.domain.BottleStorage;
+import com.zd.bottle.domain.RfidTag;
 import com.zd.bottle.domain.UsegasAuditRecord;
 import com.zd.bottle.mapper.BottleStorageMapper;
 import com.zd.bottle.service.BottleStorageService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zd.bottle.service.RfidTagService;
 import com.zd.bottle.vo.BottleStorageVo;
 import com.zd.bottle.vo.BottleStorageUseVo;
 import com.zd.bottle.vo.BottleStorageVo;
@@ -17,6 +20,7 @@ import com.zd.common.security.service.TokenService;
 import com.zd.system.api.domain.SysUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.Date;
@@ -42,6 +46,8 @@ public class BottleStorageServiceImpl extends ServiceImpl<BottleStorageMapper, B
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private RfidTagService rfidTagService;
 
     /**
      * 新增入库信息
@@ -50,6 +56,7 @@ public class BottleStorageServiceImpl extends ServiceImpl<BottleStorageMapper, B
      * @return boolean
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean add(BottleStorage bottleStorage) {
 
         BottleStorageVo bsVo = new BottleStorageVo();
@@ -59,6 +66,16 @@ public class BottleStorageServiceImpl extends ServiceImpl<BottleStorageMapper, B
             throw  new ServiceException("该标签码已存在!");
         }
 
+        //查询标签码
+        RfidTag rfidTag = rfidTagService.getRfidByTagCode(bottleStorage.getElectronicTag());
+        if(rfidTag==null){
+            throw  new ServiceException("未查询到相关标签码!");
+        }
+        RfidTag rfid = new RfidTag();
+        rfid.setIsBind((short) 1);
+        rfid.setId(rfidTag.getId());
+        rfidTagService.updateQpRfidTag(rfid);
+
         SysUser sysUser = tokenService.getLoginUser().getSysUser();
         bottleStorage.setUserId(sysUser.getUserId());
         bottleStorage.setUserName(sysUser.getNickName());

+ 25 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/impl/RfidTagServiceImpl.java

@@ -28,6 +28,9 @@ public class RfidTagServiceImpl extends ServiceImpl<RfidTagMapper, RfidTag> impl
     private TokenService tokenService;
     private static final Integer DATA_LENGTH=8;
 
+    @Resource
+    private RfidTagMapper rfidTagMapper;
+
     protected static final String[] CHARS = new String[] { "a", "b", "c", "d", "e", "f",
             "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",
             "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",
@@ -67,4 +70,26 @@ public class RfidTagServiceImpl extends ServiceImpl<RfidTagMapper, RfidTag> impl
         }
         throw new ServiceException("存储失败");
     }
+
+    /***
+     * 根据标签码查询
+     * @param tagCode
+     * @return
+     */
+    @Override
+    public RfidTag getRfidByTagCode(String tagCode) {
+        return rfidTagMapper.getRfidByTagCode(tagCode);
+    }
+
+    /***
+     * 修改标签
+     * @param rfidTag
+     * @return
+     */
+    @Override
+    public int updateQpRfidTag(RfidTag rfidTag) {
+        return rfidTagMapper.updateQpRfidTag(rfidTag);
+    }
+
+
 }

+ 15 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/resources/mapper/RfidTagMapper.xml

@@ -21,4 +21,19 @@
         tag_code, is_bind
     </sql>
 
+    <!-- 根据标签码查询-->
+    <select id="getRfidByTagCode" parameterType="java.lang.String"
+            resultType="com.zd.bottle.domain.RfidTag">
+         select * from ab_rfid_tag where tag_code=#{tagCode}
+    </select>
+
+
+    <update id="updateQpRfidTag" parameterType="com.zd.bottle.domain.RfidTag">
+        update ab_rfid_tag
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="isBind != null">is_bind = #{isBind},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
 </mapper>