liujh пре 3 година
родитељ
комит
035b6f3c3f

+ 11 - 4
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/UseRecord.java

@@ -4,9 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.zd.common.core.web.domain.BaseBean;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.Setter;
 import lombok.experimental.Accessors;
 
 import java.math.BigDecimal;
@@ -21,8 +20,7 @@ import java.util.Date;
  * @author hanson
  * @since 2022-09-08
  */
-@Getter
-@Setter
+@Data
 @Accessors(chain = true)
 @ApiModel(value = "UseRecord对象", description = "使用记录表")
 @EqualsAndHashCode(callSuper = true)
@@ -64,4 +62,13 @@ public class UseRecord extends BaseBean {
 
     @ApiModelProperty("归还时间")
     private Date backTime;
+
+    /**
+     * 开始时间
+     */
+    private transient String startTime;
+    /**
+     * 结束时间
+     */
+    private transient String endTime;
 }

+ 1 - 1
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/vo/UsegasApplyVo.java

@@ -32,7 +32,7 @@ public class UsegasApplyVo extends UsegasApply {
     @ApiModelProperty(value = "使用气体")
     private String useGasName;
 
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
     @ApiModelProperty(value = "申请时间")
     private Date applyTime;
 

+ 3 - 14
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/controller/BottleStorageController.java

@@ -1,21 +1,17 @@
 package com.zd.bottle.controller;
 
 
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.zd.bottle.domain.BottleStorage;
-import com.zd.bottle.domain.RfidTag;
 import com.zd.bottle.service.BottleStorageService;
 import com.zd.bottle.service.UseRecordService;
+import com.zd.bottle.vo.BottleStorageUseVo;
 import com.zd.bottle.vo.BottleStorageVo;
 import com.zd.bottle.vo.UseRecordVo;
 import com.zd.common.core.domain.per.PerFun;
 import com.zd.common.core.domain.per.PerPrefix;
-import com.zd.common.core.utils.poi.ExcelUtil;
-import com.zd.common.core.web.domain.AjaxResult;
-import com.zd.bottle.vo.BottleStorageUseVo;
 import com.zd.common.core.utils.SecurityUtils;
+import com.zd.common.core.web.controller.BaseController;
+import com.zd.common.core.web.domain.AjaxResult;
 import com.zd.common.core.web.page.TableDataInfo;
 import com.zd.common.log.annotation.Log;
 import com.zd.common.log.enums.BusinessType;
@@ -25,14 +21,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import com.zd.common.core.web.controller.BaseController;
 
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;

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

@@ -4,12 +4,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 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.utils.poi.ExcelUtil;
 import com.zd.common.core.web.controller.BaseController;
 import com.zd.common.core.web.page.TableDataInfo;
 import com.zd.common.log.annotation.Log;
 import com.zd.common.log.enums.BusinessType;
 import com.zd.common.response.ResultData;
+import com.zd.common.security.annotation.PreAuthorize;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
@@ -41,7 +44,7 @@ public class RfidTagController extends BaseController<RfidTag> {
      * @param rfidTag 参数实体
      * @return TableDataInfo<RfidTag>
      */
-//    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_TAG+ PerFun.LIST)
+    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_TAG+ PerFun.LIST)
     @GetMapping("/list")
     @ApiOperation(value = "查询RFID标签管理列表")
     public TableDataInfo<RfidTag> list(RfidTag rfidTag) {
@@ -88,7 +91,7 @@ public class RfidTagController extends BaseController<RfidTag> {
      * @return Boolean
      */
     @ApiOperation(value = "新增RFID标签管理")
-//    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_TAG+ PerFun.ADD)
+    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_TAG+ PerFun.ADD)
     @Log(title = "RFID标签管理", businessType = BusinessType.INSERT)
     @PostMapping
     public ResultData<RfidTag> add(@RequestBody RfidTag rfidTag) {
@@ -108,7 +111,7 @@ public class RfidTagController extends BaseController<RfidTag> {
      * @return Boolean
      */
     @ApiOperation(value = "修改RFID标签管理")
-//    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_TAG+ PerFun.EDIT)
+    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_TAG+ PerFun.EDIT)
     @Log(title = "RFID标签管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public ResultData<Boolean> edit(@RequestBody RfidTag rfidTag) {
@@ -121,7 +124,7 @@ public class RfidTagController extends BaseController<RfidTag> {
      * @return Boolean
      */
     @ApiOperation(value = "删除RFID标签管理")
-//    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_TAG+ PerFun.REMOVE)
+    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_TAG+ PerFun.REMOVE)
     @Log(title = "RFID标签管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public ResultData<Boolean> remove(@PathVariable Long[] ids) {

+ 29 - 2
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/controller/UseRecordController.java

@@ -213,7 +213,7 @@ public class UseRecordController extends BaseController<UseRecord> {
      * 4:气瓶正在使用中
      */
     @ApiOperation(value = "新增使用登记")
-    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_USERECORD + PerFun.ADD)
+    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_USERECORDADMIN + PerFun.ADD)
     @Log(title = "新增使用登记", businessType = BusinessType.INSERT)
     @PostMapping
     public ResultData<Integer> add(@RequestBody UseRecordDto recordDto) {
@@ -224,13 +224,40 @@ public class UseRecordController extends BaseController<UseRecord> {
      * 归还登记
      */
     @ApiOperation(value = "归还登记")
-    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_USERECORD + PerFun.EDIT)
+    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_USERECORDADMIN + PerFun.EDIT)
     @Log(title = "归还登记", businessType = BusinessType.UPDATE)
     @PutMapping
     public ResultData<Boolean> edit(@RequestBody UseRecord useRecord) {
         return ResultData.result(useRecordService.updateUseRecord(useRecord));
     }
 
+    /**
+     * 领用气瓶-学生端
+     * value 说明:
+     * 1:正常状态
+     * 2:气瓶余量接近安全值
+     * 3:用户没有用气资格
+     * 4:气瓶正在使用中
+     */
+    @ApiOperation(value = "领用气瓶-学生端")
+    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_USERECORDADMIN + PerFun.ADD)
+    @Log(title = "领用气瓶-学生端", businessType = BusinessType.INSERT)
+    @PostMapping("/student")
+    public ResultData<Integer> addStudent(@RequestBody UseRecordDto recordDto) {
+        return ResultData.success(useRecordService.add(recordDto));
+    }
+
+    /**
+     * 归还登记-学生端
+     */
+    @ApiOperation(value = "归还登记-学生端")
+    @PreAuthorize(hasPermi = PerPrefix.BOTTLE_USERECORDADMIN + PerFun.EDIT)
+    @Log(title = "归还登记-学生端", businessType = BusinessType.UPDATE)
+    @PostMapping("/editStudent")
+    public ResultData<Boolean> editStudent(@RequestBody UseRecord useRecord) {
+        return ResultData.result(useRecordService.updateUseRecord(useRecord));
+    }
+
     /***
      * 查询使用记录(学生端)
      */

+ 5 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/impl/BottleStorageErrorServiceImpl.java

@@ -55,6 +55,11 @@ public class BottleStorageErrorServiceImpl extends ServiceImpl<BottleStorageErro
                     .or()
                     .like(BottleStorageError::getPhone, searchValue);
         }
+
+        List<Long> ids = bottleStorageError.getIds();
+        if (ids!=null && !ids.isEmpty()){
+            queryWrapper.in(BottleStorageError::getId,ids);
+        }
         return list(queryWrapper);
     }
 

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

@@ -11,6 +11,7 @@ import com.zd.bottle.vo.BottleStorageVo;
 import com.zd.bottle.vo.BottleStorageUseVo;
 import com.zd.bottle.vo.BottleStorageVo;
 import com.zd.common.core.domain.per.PerPrefix;
+import com.zd.common.core.exception.ServiceException;
 import com.zd.common.datascope.annotation.DataScope;
 import com.zd.common.security.service.TokenService;
 import com.zd.system.api.domain.SysUser;
@@ -50,6 +51,14 @@ public class BottleStorageServiceImpl extends ServiceImpl<BottleStorageMapper, B
      */
     @Override
     public boolean add(BottleStorage bottleStorage) {
+
+        BottleStorageVo bsVo = new BottleStorageVo();
+        bsVo.setElectronicTag(bottleStorage.getElectronicTag());
+        List<BottleStorageVo> list =  bottleStorageMapper.getListVo(bsVo);
+        if(list.size()>0){
+            throw  new ServiceException("该标签已存在!");
+        }
+
         SysUser sysUser = tokenService.getLoginUser().getSysUser();
         bottleStorage.setUserId(sysUser.getUserId());
         bottleStorage.setUserName(sysUser.getNickName());

+ 22 - 5
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/impl/UseRecordServiceImpl.java

@@ -30,6 +30,7 @@ import com.zd.system.api.domain.SysUser;
 import com.zd.system.api.model.LoginUser;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -81,6 +82,25 @@ public class UseRecordServiceImpl extends ServiceImpl<UseRecordMapper, UseRecord
     @Override
     public List<UseRecord> getList(UseRecord useRecord) {
         LambdaQueryWrapper<UseRecord> queryWrapper = Wrappers.lambdaQuery(UseRecord.class);
+        String startTime = useRecord.getStartTime();
+        if (StringUtils.hasLength(startTime)) {
+            queryWrapper.apply("DATE_FORMAT(use_time,'%Y-%m-%d') >=" + startTime);
+        }
+        String endTime = useRecord.getEndTime();
+        if (StringUtils.hasLength(endTime)) {
+            queryWrapper.apply("DATE_FORMAT(use_time,'%Y-%m-%d') <=" + endTime);
+        }
+        String searchValue = useRecord.getSearchValue();
+        if (StringUtils.hasLength(searchValue)) {
+            queryWrapper.like(UseRecord::getContacts, searchValue)
+                    .or()
+                    .like(UseRecord::getPhone, searchValue);
+        }
+
+        List<Long> ids = useRecord.getIds();
+        if (ids!=null && !ids.isEmpty()){
+            queryWrapper.in(UseRecord::getId,ids);
+        }
         queryWrapper.setEntity(useRecord);
         return list(queryWrapper);
     }
@@ -164,16 +184,13 @@ public class UseRecordServiceImpl extends ServiceImpl<UseRecordMapper, UseRecord
                 .eq(UsegasApply::getLeadAuditStaus, 1);
         List<UsegasApply> list = usegasApplyService.list(queryWrapper);
         if (list.isEmpty()) {
-            result = 3;
+            throw new ServiceException("请先申请用气资格");
         }
         LambdaQueryWrapper<UseRecord> wrapper = Wrappers.lambdaQuery(UseRecord.class);
         wrapper.eq(UseRecord::getStorageId, storageId)
                 .eq(UseRecord::getBackTime, null);
         if (getOne(wrapper) != null) {
-            result = 4;
-        }
-        if (result != 1) {
-            return result;
+            throw new ServiceException("气瓶正在使用中");
         }
 
         recordDto.setContacts(sysUser.getNickName())

+ 8 - 2
zd-modules/zd-bottle-parent/zd-bottle/src/main/resources/mapper/BottleStorageMapper.xml

@@ -79,9 +79,15 @@
         ( select max(ur.use_time) from ab_use_record ur where ur.storage_id=bs.id ORDER BY use_time desc ) lastTime
         from ab_bottle_storage bs
         where 1=1
+        <if test="electronicTag != null and electronicTag != ''">
+          and bs.electronic_tag = #{electronicTag}
+        </if>
         <if test="searchValue != null and searchValue != ''">
-            and (bs.electronic_tag like concat('%', #{searchValue}, '%')
-            or bs.air_number like concat('%', #{searchValue}, '%') )
+            and (
+            bs.electronic_tag like concat('%', #{searchValue}, '%')
+            or bs.air_number like concat('%', #{searchValue}, '%')
+            or bs.user_name like concat('%', #{searchValue}, '%')
+                )
         </if>
         <if test="storageStatus != null ">and storage_status = #{storageStatus}</if>
         <if test="ids != null ">