Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

liujh лет назад: 3
Родитель
Сommit
9dce1cf934
33 измененных файлов с 966 добавлено и 407 удалено
  1. 3 2
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/AlarmRecord.java
  2. 3 3
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/BottleStorage.java
  3. 3 2
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/BottleStorageError.java
  4. 4 3
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/BottleStorageOut.java
  5. 4 3
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/UseRecord.java
  6. 7 16
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/UsegasApply.java
  7. 3 2
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/UsegasAuditRecord.java
  8. 65 0
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/dto/UseRecordDto.java
  9. 28 0
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/vo/AirAmount.java
  10. 116 0
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/vo/AlarmRecordVo.java
  11. 4 0
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/vo/UseRecordVo.java
  12. 32 0
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/vo/UsegasApplyTabVo.java
  13. 2 3
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/vo/UsegasApplyVo.java
  14. 37 0
      zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/vo/WebUseRecordVo.java
  15. 112 182
      zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/controller/UseRecordController.java
  16. 34 2
      zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/controller/UsegasApplyController.java
  17. 24 0
      zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/controller/UsegasAuditRecordController.java
  18. 27 0
      zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/mapper/UseRecordMapper.java
  19. 9 0
      zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/mapper/UsegasApplyMapper.java
  20. 66 0
      zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/UseRecordService.java
  21. 3 0
      zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/UsegasApplyService.java
  22. 4 0
      zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/UsegasAuditRecordService.java
  23. 193 3
      zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/impl/UseRecordServiceImpl.java
  24. 12 21
      zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/impl/UsegasApplyServiceImpl.java
  25. 13 0
      zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/impl/UsegasAuditRecordServiceImpl.java
  26. 56 0
      zd-modules/zd-bottle-parent/zd-bottle/src/main/resources/mapper/UseRecordMapper.xml
  27. 27 6
      zd-modules/zd-bottle-parent/zd-bottle/src/main/resources/mapper/UsegasApplyMapper.xml
  28. 0 1
      zd-modules/zd-forward/src/main/java/com/zd/forward/controller/SignInCheckController.java
  29. 8 10
      zd-modules/zd-forward/src/main/java/com/zd/forward/serivce/CheckService.java
  30. 0 129
      zd-modules/zd-forward/src/main/java/com/zd/forward/util/HttpUtils.java
  31. 2 18
      zd-modules/zd-forward/src/main/java/com/zd/forward/utils/HttpUtils.java
  32. 55 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabRiskPlanListVO.java
  33. 10 1
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabControlMapper.xml

+ 3 - 2
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/AlarmRecord.java

@@ -8,7 +8,8 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.experimental.Accessors;
 
-import java.sql.Timestamp;
+import java.util.Date;
+
 
 /**
  * <p>
@@ -38,5 +39,5 @@ public class AlarmRecord extends BaseBean{
     private Byte productType;
 
     @ApiModelProperty("报警时间")
-    private Timestamp alarmTime;
+    private Date alarmTime;
 }

+ 3 - 3
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/BottleStorage.java

@@ -9,7 +9,7 @@ import lombok.Setter;
 import lombok.experimental.Accessors;
 
 import java.math.BigDecimal;
-import java.sql.Timestamp;
+
 import java.util.Date;
 
 /**
@@ -76,13 +76,13 @@ public class BottleStorage extends BaseBean {
     private Long rejectionApplyUserid;
 
     @ApiModelProperty("拒收发起时间")
-    private Timestamp rejectionApplyTime;
+    private Date rejectionApplyTime;
 
     @ApiModelProperty("拒收处理人id")
     private Long rejectionUserid;
 
     @ApiModelProperty("拒收处理时间")
-    private Timestamp rejectionTime;
+    private Date rejectionTime;
 
     @ApiModelProperty("待办清单详情表id")
     private Long taskDetailId;

+ 3 - 2
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/BottleStorageError.java

@@ -9,7 +9,8 @@ import lombok.Setter;
 import lombok.experimental.Accessors;
 
 import java.math.BigDecimal;
-import java.sql.Timestamp;
+import java.util.Date;
+
 
 /**
  * <p>
@@ -42,7 +43,7 @@ public class BottleStorageError extends BaseBean {
     private BigDecimal afterEdit;
 
     @ApiModelProperty("操作时间")
-    private Timestamp opTime;
+    private Date opTime;
 
     @ApiModelProperty("联系方式")
     private String phone;

+ 4 - 3
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/BottleStorageOut.java

@@ -9,7 +9,8 @@ import lombok.Setter;
 import lombok.experimental.Accessors;
 
 import java.math.BigDecimal;
-import java.sql.Timestamp;
+import java.util.Date;
+
 
 /**
  * <p>
@@ -56,10 +57,10 @@ public class BottleStorageOut extends BaseBean{
     private String disposeUsername;
 
     @ApiModelProperty("处理时间")
-    private Timestamp disposeTime;
+    private Date disposeTime;
 
     @ApiModelProperty("实际出库时间")
-    private Timestamp completeTime;
+    private Date completeTime;
 
     @ApiModelProperty("实际出库确认用户id")
     private Long completeUserid;

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

@@ -9,7 +9,8 @@ import lombok.Setter;
 import lombok.experimental.Accessors;
 
 import java.math.BigDecimal;
-import java.sql.Timestamp;
+import java.util.Date;
+
 
 /**
  * <p>
@@ -60,8 +61,8 @@ public class UseRecord extends BaseBean {
     private BigDecimal amount;
 
     @ApiModelProperty("使用时间")
-    private Timestamp useTime;
+    private Date useTime;
 
     @ApiModelProperty("归还时间")
-    private Timestamp backTime;
+    private Date backTime;
 }

+ 7 - 16
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/UsegasApply.java

@@ -1,5 +1,6 @@
 package com.zd.bottle.domain;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zd.common.core.web.domain.BaseBean;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -8,7 +9,7 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.experimental.Accessors;
 
-import java.sql.Timestamp;
+
 import java.util.Date;
 
 /**
@@ -47,9 +48,11 @@ public class UsegasApply extends BaseBean {
     @ApiModelProperty("联系方式")
     private String phone;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty("期限开始")
     private Date startTime;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty("期限结束")
     private Date endTime;
 
@@ -78,24 +81,12 @@ public class UsegasApply extends BaseBean {
     private String leadAuditUsername;
 
     @ApiModelProperty("审核时间")
-    private Timestamp leadAuditTime;
+    private Date leadAuditTime;
 
     @ApiModelProperty("原因(实验室负责人)")
     private String leadAuditCause;
 
-    @ApiModelProperty("审核状态 0 未审核 1.通过 2.驳回")
-    private Short centerAuditStatus;
-
-    @ApiModelProperty("审核人id")
-    private Long centerAuditUserid;
-
-    @ApiModelProperty("审核人(实验中心)")
-    private String centerAuditUsername;
-
-    @ApiModelProperty("审核时间")
-    private Timestamp centerAuditTime;
-
-    @ApiModelProperty("原因(实验中心)")
-    private String centerAuditCause;
+    @ApiModelProperty("用气申请表地址")
+    private String useGasFile;
 
 }

+ 3 - 2
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/domain/UsegasAuditRecord.java

@@ -8,7 +8,8 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.experimental.Accessors;
 
-import java.sql.Timestamp;
+import java.util.Date;
+
 
 /**
  * <p>
@@ -32,7 +33,7 @@ public class UsegasAuditRecord extends BaseBean {
     private String auditUser;
 
     @ApiModelProperty("审核时间")
-    private Timestamp auditTime;
+    private Date auditTime;
 
     @ApiModelProperty("审核状态(0未审核1.通过 2.驳回)")
     private Long auditStatus;

+ 65 - 0
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/dto/UseRecordDto.java

@@ -0,0 +1,65 @@
+package com.zd.bottle.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@ApiModel("气瓶库存视图")
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+public class UseRecordDto {
+
+    /** 主键id,数据唯一标识 */
+    @ApiModelProperty(value = "${comment}")
+    private Long id;
+    /** 联系人 */
+    @ApiModelProperty(value = "联系人")
+    private String contacts;
+    /** 联系方式 */
+    @ApiModelProperty(value = "联系方式")
+    private String phone;
+    /** 实验地点 */
+    @ApiModelProperty(value = "实验地点")
+    private String location;
+    /** 气瓶ID */
+    @ApiModelProperty(value = "气瓶ID")
+    private Long storageId;
+    /** 气瓶名称 */
+    @ApiModelProperty(value = "气瓶名称")
+    private String bottleName;
+    /** 使用前照片 */
+    @ApiModelProperty(value = "使用前照片")
+    private String beforeUsePic;
+    /** 使用前气压 */
+    @ApiModelProperty(value = "使用前气压")
+    private BigDecimal beforeUse;
+    /** 使用后照片 */
+    @ApiModelProperty(value = "使用后照片")
+    private String afterUsePic;
+    /** 使用后气压 */
+    @ApiModelProperty(value = "使用后气压")
+    private BigDecimal afterUse;
+    /** 使用量 */
+    @ApiModelProperty(value = "使用量")
+    private BigDecimal amount;
+    /** 使用时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "使用时间")
+    private Date useTime;
+    /** 归还时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "归还时间")
+    private Date backTime;
+
+    @ApiModelProperty(value = "余量不符(0:正常,1:余量不符 默认为0)")
+    private Integer isSurplus;
+}

+ 28 - 0
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/vo/AirAmount.java

@@ -0,0 +1,28 @@
+package com.zd.bottle.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Administrator
+ */
+@ApiModel("信息记录统计视图类")
+@Data
+public class AirAmount {
+
+    @ApiModelProperty("年月")
+    private String date;
+    @ApiModelProperty("楼栋名称/实验室名称")
+    private String name;
+    @ApiModelProperty("入库数量/气瓶库存数/楼栋库存数")
+    private Integer inNum;
+    @ApiModelProperty("出库数量")
+    private Integer outNum;
+    @ApiModelProperty("用气量")
+    private BigDecimal amount;
+    @ApiModelProperty("气瓶数")
+    private Integer bottleNum;
+}

+ 116 - 0
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/vo/AlarmRecordVo.java

@@ -0,0 +1,116 @@
+package com.zd.bottle.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zd.common.core.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * @author Administrator
+ */
+@ApiModel("报警记录")
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+public class AlarmRecordVo {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "${comment}")
+    private Long id;
+    /**
+     * 数据主键,关联其他业务表中的数据id
+     */
+    @ApiModelProperty(value = "数据主键,关联其他业务表中的数据id")
+    private Long masterId;
+    /**
+     * 报警类型;1:出门,2:进门
+     */
+    @ApiModelProperty(value = "报警类型;1:出门,2:进门")
+    private Integer type;
+    /**
+     * 产品类型;1:气瓶,2:其他
+     */
+    @ApiModelProperty(value = "产品类型;1:气瓶,2:其他")
+    private Integer productType;
+
+    /**
+     * 当前使用人
+     */
+    @Excel(name = "当前使用人" )
+    @ApiModelProperty(value = "当前使用人")
+    private String currentUser;
+    /**
+     * 联系方式
+     */
+    @Excel(name = "联系方式" )
+    @ApiModelProperty(value = "联系方式")
+    private String currentPhone;
+
+    /**
+     * 气瓶所有人id
+     */
+    @ApiModelProperty(value = "气瓶所有人id")
+    private Long ownerId;
+
+    /**
+     * 气瓶所有人
+     */
+    @Excel(name = "气瓶所有人" )
+    @ApiModelProperty(value = "气瓶所有人")
+    private String owner;
+
+    /**
+     * 联系方式
+     */
+    @Excel(name = "联系方式" )
+    @ApiModelProperty(value = "联系方式")
+    private String ownerPhone;
+
+    /**
+     * 实验地点
+     */
+    @Excel(name = "实验地点" )
+    @ApiModelProperty(value = "实验地点")
+    private String location;
+
+    /**
+     * 气体名称
+     */
+    @Excel(name = "气体名称" )
+    @ApiModelProperty(value = "气体名称")
+    private String airName;
+    /**
+     * 气瓶规格
+     */
+    @Excel(name = "气瓶级别/规格" )
+    @ApiModelProperty(value = "气瓶规格")
+    private String configName;
+    /**
+     * 气瓶余量
+     */
+    @ApiModelProperty(value = "气瓶余量")
+    private Double currentPressure;
+
+    /**
+     * 气瓶余量导出字段
+     */
+    @Excel(name = "气瓶余量" )
+    private String currentPressureValue;
+    /**
+     * 报警时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "使用时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "报警时间")
+    private Date alarmTime;
+
+}

+ 4 - 0
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/vo/UseRecordVo.java

@@ -1,6 +1,7 @@
 package com.zd.bottle.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zd.bottle.domain.BottleStorage;
 import com.zd.common.core.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -125,4 +126,7 @@ public class UseRecordVo {
 
     @ApiModelProperty(value = "格式化后的归还时间")
     private String backTimeApp;
+
+    @ApiModelProperty(value = "气瓶入库信息")
+    private BottleStorage storage;
 }

+ 32 - 0
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/vo/UsegasApplyTabVo.java

@@ -0,0 +1,32 @@
+package com.zd.bottle.vo;
+
+import com.zd.bottle.domain.UsegasApply;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * Controller
+ *
+ * @author cyl
+ * @date 2022/9/8
+ */
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "UsegasApply对象", description = "用气申请表选项卡统计")
+public class UsegasApplyTabVo {
+
+    @ApiModelProperty(value = "待审核统计")
+    private Long waitApplyCount;
+
+    @ApiModelProperty(value = "已通过统计")
+    private String passApplyCount;
+
+    @ApiModelProperty(value = "未通过统计")
+    private String refuseApplyCount;
+
+}

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

@@ -1,5 +1,6 @@
 package com.zd.bottle.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zd.bottle.domain.UsegasApply;
 import com.zd.common.core.web.domain.BaseBean;
 import io.swagger.annotations.ApiModel;
@@ -31,10 +32,8 @@ public class UsegasApplyVo extends UsegasApply {
     @ApiModelProperty(value = "使用气体")
     private String useGasName;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "申请时间")
     private Date applyTime;
 
-    @ApiModelProperty(value = "当前审批人id")
-    private Long auditUserid;
-
 }

+ 37 - 0
zd-modules/zd-bottle-parent/zd-bottle-api/src/main/java/com/zd/bottle/vo/WebUseRecordVo.java

@@ -0,0 +1,37 @@
+package com.zd.bottle.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * @author Administrator
+ */
+@ApiModel("管理端使用记录详情视图")
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+public class WebUseRecordVo {
+
+    @ApiModelProperty("气瓶编号")
+    private String airNumber;
+
+    @ApiModelProperty("气体名称")
+    private String airName;
+    @ApiModelProperty(value = "气瓶规格名称")
+    private String configName;
+    @ApiModelProperty("气瓶厂家")
+    private String companyName;
+    @ApiModelProperty("气体组分")
+    private String airConstituents;
+    @ApiModelProperty(value = "入库状态 1闲置 2使用 3出库")
+    private Integer storageStatus;
+
+    private List<UseRecordVo> recordVos;
+}

+ 112 - 182
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/controller/UseRecordController.java

@@ -2,24 +2,27 @@ package com.zd.bottle.controller;
 
 import cn.hutool.core.collection.CollUtil;
 import com.zd.bottle.domain.UseRecord;
+import com.zd.bottle.dto.UseRecordDto;
 import com.zd.bottle.service.UseRecordService;
+import com.zd.bottle.vo.AirAmount;
 import com.zd.bottle.vo.UseRecordVo;
+import com.zd.bottle.vo.WebUseRecordVo;
 import com.zd.common.core.utils.DateUtils;
 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 com.zd.common.security.service.TokenService;
+import com.zd.system.api.domain.SysUser;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.math.BigDecimal;
@@ -40,12 +43,9 @@ import java.util.List;
 public class UseRecordController extends BaseController<UseRecord> {
     SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm");
 
-    @Autowired
+    @Resource
     private UseRecordService useRecordService;
 
-    @Autowired
-    private TokenService tokenService;
-
     /**
      * 查询使用记录列表
      */
@@ -65,16 +65,16 @@ public class UseRecordController extends BaseController<UseRecord> {
         return info;
     }
 
-//    /**
-//     * 信息统计查询使用记录列表
-//     * @param storageId 库存主ID
-//     * @return 集合对象
-//     */
-//    @GetMapping("/bottle/list/{storageId}")
-//    @ApiOperation(value = "信息统计查询使用记录列表")
-//    public List<QpUseRecordVo> bottleList(@PathVariable Long storageId) {
-//        return qpUseRecordService.getBottleInfoByStorageId(storageId);
-//    }
+    /**
+     * 信息统计查询使用记录列表
+     * @param storageId 库存主ID
+     * @return 集合对象
+     */
+    @GetMapping("/bottle/list/{storageId}")
+    @ApiOperation(value = "信息统计查询使用记录列表")
+    public List<UseRecordVo> bottleList(@PathVariable Long storageId) {
+        return useRecordService.getBottleInfoByStorageId(storageId);
+    }
 
     /**
      * 导出使用记录列表
@@ -98,168 +98,98 @@ public class UseRecordController extends BaseController<UseRecord> {
         ExcelUtil<UseRecordVo> util = new ExcelUtil<>(UseRecordVo.class);
         util.exportExcel(response, info, "使用记录数据" + DateUtils.getDate());
     }
-//
-//    /**
-//     * 小程序端获取使用记录详细信息
-//     */
-//    @ApiOperation(value = "小程序端获取使用记录详细信息")
-//    @GetMapping(value = "/{id}")
-//    public ResultData<QpUseRecordVo> getInfo(@PathVariable("id") Long id) {
-//        return ResultData.success(qpUseRecordService.selectQpUseRecordById(id));
-//    }
-//
-//    /**
-//     * 管理端端获取使用记录详细信息
-//     */
-//    @ApiOperation(value = "管理端端获取使用记录详细信息")
-//    @GetMapping(value = "/bottle/{id}")
-//    public ResultData<WebUseRecordVo> getBottleInfo(@PathVariable("id") Long id) {
-//        return ResultData.success(qpUseRecordService.getBottleInfo(id));
-//    }
-//
-//    /**
-//     * 信息统计管理端端获取气瓶使用记录详细信息
-//     */
-//    @ApiOperation(value = "信息统计管理端端获取气瓶使用记录详细信息")
-//    @GetMapping(value = "/bottle/record/{storageId}")
-//    public ResultData<WebUseRecordVo> getBottleRecord(@PathVariable("storageId") Long storageId) {
-//        return ResultData.success(qpUseRecordService.getBottleRecord(storageId));
-//    }
-//
-//    /**
-//     * 出入库信息统计
-//     */
-//    @ApiOperation(value = "出入库信息统计")
-//    @GetMapping(value = "/calcRepertory")
-//    public ResultData<List<AirAmount>> calcRepertory(String airName) {
-//        return ResultData.success(qpUseRecordService.calcRepertory(airName));
-//    }
-//
-//    /**
-//     * 用气量信息统计
-//     */
-//    @ApiOperation(value = "用气量信息统计")
-//    @GetMapping(value = "/calcAmount")
-//    public ResultData<List<AirAmount>> calcAmount(String airName) {
-//        return ResultData.success(qpUseRecordService.calcAmount(airName));
-//    }
-//
-//    /**
-//     * 气瓶申请统计
-//     */
-//    @ApiOperation(value = "气瓶申请统计")
-//    @GetMapping(value = "/calcApply")
-//    public ResultData<List<AirAmount>> calcApply(String airName) {
-//        return ResultData.success(qpUseRecordService.calcApply(airName));
-//    }
-//
-//    /**
-//     * 新增使用登记
-//     * value 说明:
-//     * 1:正常状态
-//     * 2:气瓶余量接近安全值
-//     * 3:用户没有用气资格
-//     * 4:气瓶正在使用中
-//     */
-//    @ApiOperation(value = "新增使用登记")
-//    @Log(title = "新增使用登记", businessType = BusinessType.INSERT)
-//    @PostMapping
-//    public ResultData<Integer> add(@RequestBody QpUseRecordDto recordDto) {
-//        return ResultData.success(qpUseRecordService.insertQpUseRecord(recordDto));
-//    }
-//
-//    /**
-//     * 归还登记
-//     */
-//    @ApiOperation(value = "归还登记")
-//    @Log(title = "归还登记", businessType = BusinessType.UPDATE)
-//    @PutMapping
-//    public ResultData<Boolean> edit(@RequestBody QpUseRecord qpUseRecord) {
-//        return ResultData.result(qpUseRecordService.updateQpUseRecord(qpUseRecord));
-//    }
-//
-//    /***
-//     * 查询使用记录
-//     */
-//    @ApiOperation(value = "查询使用记录")
-//    @GetMapping(value = "/getUseDetails")
-//    public TableDataInfo<QpUseRecord> getUseDetails( QpUseRecord qpUseRecord) {
-//        startPage();
-//        List<QpUseRecordVo> list =  qpUseRecordService.getUseDetailsList(qpUseRecord);
-//        return getDataTable(list);
-//    }
-//
-//    /**
-//     * 当前登录人 申请并入库的气瓶使用记录
-//     */
-//    @ApiOperation(value = "当前登录人 申请并入库的气瓶使用记录")
-//    @GetMapping(value = "/getUseDetailsByUserId")
-//    public TableDataInfo<QpUseRecord> getUseDetailsByUserId(QpUseRecord qpUseRecord) {
-//        SysUser sysUser = tokenService.getLoginUser().getSysUser();
-//        List<QpUseRecordVo> list =  qpUseRecordService.getUseDetailsListByUserId(qpUseRecord);
-//        qpUseRecord.setUserId(sysUser.getUserId());
-//        startPage();
-//        return getDataTable(list);
-//    }
-//
-//    /***
-//     * 查询某个气瓶的使用记录汇总
-//     */
-//    @ApiOperation(value = "查询某个气瓶的使用记录汇总")
-//    @GetMapping(value = "/getUseDetailsByStorageId")
-//    public TableDataInfo<QpUseRecordVo> getUseDetailsByStorageId(QpUseRecordVo qpUseRecordVo) {
-//        startPage();
-//        List<QpUseRecordVo> list =  qpUseRecordService.getUseDetailsListByStorageId(qpUseRecordVo);
-//        return new TableDataInfo<QpUseRecordVo>().getDataTable(list);
-//    }
-//
-//    /***
-//     * 查询使用记录-小程序端
-//     */
-//    @ApiOperation(value = "查询使用记录")
-//    @GetMapping(value = "/getUseDetailsApp")
-//    public TableDataInfo<QpUseRecord> getUseDetailsApp( QpUseRecord qpUseRecord) {
-//        startPage();
-//        List<QpUseRecordVo> list =  qpUseRecordService.getUseDetailsList(qpUseRecord);
-//        for (QpUseRecordVo useRecordVo:list) {
-//            useRecordVo.setUseTimeApp(useRecordVo.getUseTime()!=null?sdf.format(useRecordVo.getUseTime()):null);
-//            useRecordVo.setBackTimeApp(useRecordVo.getBackTime()!=null?sdf.format(useRecordVo.getBackTime()):null);
-//        }
-//        return getDataTable(list);
-//    }
-//
-//    /**
-//     * 当前登录人 申请并入库的气瓶使用记录-小程序端
-//     */
-//    @ApiOperation(value = "当前登录人 申请并入库的气瓶使用记录-小程序端")
-//    @GetMapping(value = "/getUseDetailsByUserIdApp")
-//    public TableDataInfo<QpUseRecord> getUseDetailsByUserIdApp(QpUseRecord qpUseRecord) {
-//        SysUser sysUser = tokenService.getLoginUser().getSysUser();
-//        qpUseRecord.setUserId(sysUser.getUserId());
-//        startPage();
-//        List<QpUseRecordVo> list =  qpUseRecordService.getUseDetailsListByUserId(qpUseRecord);
-//        //时间格式化处理
-//        for (QpUseRecordVo useRecord: list) {
-//            useRecord.setUseTimeApp(useRecord.getUseTime()!=null?sdf.format(useRecord.getUseTime()):null);
-//            useRecord.setBackTimeApp(useRecord.getBackTime()!=null?sdf.format(useRecord.getBackTime()):null);
-//        }
-//        return getDataTable(list);
-//    }
-//
-//    /**
-//     * 当前登录人 申请并入库的气瓶使用记录-小程序端
-//     */
-//    @ApiOperation(value = "当前登录人 申请并入库的气瓶使用记录-小程序端")
-//    @GetMapping(value = "/getUseRecordSpecsListApp")
-//    public TableDataInfo<QpAirGoodsConfigRelationVo> getUseRecordSpecsListApp(QpAirGoodsConfigRelationVo vo) {
-//        SysUser sysUser = tokenService.getLoginUser().getSysUser();
-//        vo.setUserId(sysUser.getUserId());
-//        startPage();
-//        List<QpAirGoodsConfigRelationVo> list =  qpUseRecordService.getUseRecordSpecsList(vo);
-//        for (QpAirGoodsConfigRelationVo useRecord:list) {
-//            useRecord.setUseTimeApp(useRecord.getUseTime()!=null?sdf.format(useRecord.getUseTime()):null);
-//            useRecord.setBackTimeApp(useRecord.getBackTime()!=null?sdf.format(useRecord.getBackTime()):null);
-//        }
-//        return getDataTable(list);
-//    }
+
+    /**
+     * 管理端端获取使用记录详细信息
+     */
+    @ApiOperation(value = "管理端端获取使用记录详细信息")
+    @GetMapping(value = "/bottle/{id}")
+    public ResultData<WebUseRecordVo> getBottleInfo(@PathVariable("id") Long id) {
+        return ResultData.success(useRecordService.getBottleInfo(id));
+    }
+
+    /**
+     * 信息统计管理端端获取气瓶使用记录详细信息
+     */
+    @ApiOperation(value = "信息统计管理端端获取气瓶使用记录详细信息")
+    @GetMapping(value = "/bottle/record/{storageId}")
+    public ResultData<WebUseRecordVo> getBottleRecord(@PathVariable("storageId") Long storageId) {
+        return ResultData.success(useRecordService.getBottleRecord(storageId));
+    }
+
+    /**
+     * 出入库信息统计
+     */
+    @ApiOperation(value = "出入库信息统计")
+    @GetMapping(value = "/calcRepertory")
+    public ResultData<List<AirAmount>> calcRepertory(String airName) {
+        return ResultData.success(useRecordService.calcRepertory(airName));
+    }
+
+    /**
+     * 用气量信息统计
+     */
+    @ApiOperation(value = "用气量信息统计")
+    @GetMapping(value = "/calcAmount")
+    public ResultData<List<AirAmount>> calcAmount(String airName) {
+        return ResultData.success(useRecordService.calcAmount(airName));
+    }
+
+    /**
+     * 新增使用登记
+     * value 说明:
+     * 1:正常状态
+     * 2:气瓶余量接近安全值
+     * 3:用户没有用气资格
+     * 4:气瓶正在使用中
+     */
+    @ApiOperation(value = "新增使用登记")
+    @Log(title = "新增使用登记", businessType = BusinessType.INSERT)
+    @PostMapping
+    public ResultData<Integer> add(@RequestBody UseRecordDto recordDto) {
+        return ResultData.success(useRecordService.add(recordDto));
+    }
+
+    /**
+     * 归还登记
+     */
+    @ApiOperation(value = "归还登记")
+    @Log(title = "归还登记", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public ResultData<Boolean> edit(@RequestBody UseRecord useRecord) {
+        return ResultData.result(useRecordService.updateUseRecord(useRecord));
+    }
+
+    /***
+     * 查询使用记录
+     */
+    @ApiOperation(value = "查询使用记录")
+    @GetMapping(value = "/getUseDetails")
+    public TableDataInfo<UseRecord> getUseDetails(UseRecord useRecord) {
+        startPage("create_time","descending");
+        List<UseRecord> records =useRecordService.getList(useRecord);
+        return getDataTable(records);
+    }
+
+    /**
+     * 当前登录人的气瓶使用记录
+     */
+    @ApiOperation(value = "当前登录人的气瓶使用记录")
+    @GetMapping(value = "/getUseDetailsByUserId")
+    public TableDataInfo<UseRecord> getUseDetailsByUserId(UseRecord useRecord) {
+        startPage();
+        List<UseRecord> list =  useRecordService.getByUserId(useRecord);
+        return getDataTable(list);
+    }
+
+    /***
+     * 查询某个气瓶的使用记录汇总
+     */
+    @ApiOperation(value = "查询某个气瓶的使用记录汇总")
+    @GetMapping(value = "/getUseDetailsByStorageId")
+    public TableDataInfo<UseRecord> getUseDetailsByStorageId(UseRecord useRecord) {
+        startPage();
+        List<UseRecord> list =  useRecordService.getByStorageId(useRecord.getStorageId());
+        return getDataTable(list);
+    }
 }

+ 34 - 2
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/controller/UsegasApplyController.java

@@ -2,12 +2,15 @@ package com.zd.bottle.controller;
 
 import com.zd.bottle.domain.UsegasApply;
 import com.zd.bottle.service.UsegasApplyService;
+import com.zd.bottle.vo.UsegasApplyTabVo;
 import com.zd.bottle.vo.UsegasApplyVo;
 import com.zd.common.core.domain.per.PerFun;
 import com.zd.common.core.domain.per.PerPrefix;
 import com.zd.common.core.web.domain.BaseBean;
 import com.zd.common.core.web.page.TableDataInfo;
+import com.zd.common.response.ResultData;
 import com.zd.common.security.annotation.PreAuthorize;
+import io.swagger.annotations.ApiModelProperty;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -31,12 +34,41 @@ public class UsegasApplyController extends BaseController<UsegasApply> {
     @Autowired
     private UsegasApplyService usegasApplyService;
 
+    @ApiModelProperty(value = "待审核")
     @PreAuthorize(hasPermi = PerPrefix.QP_USEGASAPPLY + PerFun.LIST)
-    @GetMapping("/list")
-    public TableDataInfo <UsegasApply> list(UsegasApply usegasApply){
+    @GetMapping("/waitApplyList")
+    public TableDataInfo <UsegasApply> waitApplyList(UsegasApply usegasApply){
         startPage();
+        usegasApply.setLeadAuditStaus((short) 0);
         List <UsegasApplyVo> list = usegasApplyService.selectUseagsApplyList(usegasApply);
         return getDataTable(list);
     }
 
+    @ApiModelProperty(value = "已通过")
+    @PreAuthorize(hasPermi = PerPrefix.QP_USEGASAPPLY + PerFun.LIST)
+    @GetMapping("/passApplyList")
+    public TableDataInfo <UsegasApply> passApplyList(UsegasApply usegasApply){
+        startPage();
+        usegasApply.setLeadAuditStaus((short) 1);
+        List <UsegasApplyVo> list = usegasApplyService.selectUseagsApplyList(usegasApply);
+        return getDataTable(list);
+    }
+
+    @ApiModelProperty(value = "未通过")
+    @PreAuthorize(hasPermi = PerPrefix.QP_USEGASAPPLY + PerFun.LIST)
+    @GetMapping("/refuseApplyList")
+    public TableDataInfo <UsegasApply> refuseApplyList(UsegasApply usegasApply){
+        startPage();
+        usegasApply.setLeadAuditStaus((short) 2);
+        List <UsegasApplyVo> list = usegasApplyService.selectUseagsApplyList(usegasApply);
+        return getDataTable(list);
+    }
+
+
+    @ApiModelProperty(value = "审批选项卡统计")
+    @GetMapping("/applyTabCount")
+    public ResultData<UsegasApplyTabVo> selectApplyTabCount(UsegasApply usegasApply){
+        UsegasApplyTabVo usegasApplyTabVo = usegasApplyService.selectApplyTabCount(usegasApply);
+        return ResultData.success(usegasApplyTabVo);
+    }
 }

+ 24 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/controller/UsegasAuditRecordController.java

@@ -1,10 +1,23 @@
 package com.zd.bottle.controller;
 
+import com.zd.bottle.domain.UsegasApply;
 import com.zd.bottle.domain.UsegasAuditRecord;
+import com.zd.bottle.service.UsegasAuditRecordService;
+import com.zd.bottle.vo.UsegasApplyVo;
+import com.zd.common.core.domain.per.PerFun;
+import com.zd.common.core.domain.per.PerPrefix;
+import com.zd.common.core.web.page.TableDataInfo;
+import com.zd.common.security.annotation.PreAuthorize;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import com.zd.common.core.web.controller.BaseController;
 
+import java.util.List;
+
 /**
  * <p>
  * 用气审核表 前端控制器
@@ -17,4 +30,15 @@ import com.zd.common.core.web.controller.BaseController;
 @RequestMapping("/usegasAuditRecord")
 public class UsegasAuditRecordController extends BaseController<UsegasAuditRecord> {
 
+    @Autowired
+    private UsegasAuditRecordService usegasAuditRecordService;
+
+    @ApiModelProperty(value = "审核记录表")
+    @GetMapping("/auditRecordList")
+    public TableDataInfo <UsegasAuditRecord> auditRecordList(UsegasAuditRecord usegasAuditRecord){
+        startPage();
+        List <UsegasAuditRecord> list = usegasAuditRecordService.auditRecordList(usegasAuditRecord);
+        return getDataTable(list);
+    }
+
 }

+ 27 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/mapper/UseRecordMapper.java

@@ -2,6 +2,11 @@ package com.zd.bottle.mapper;
 
 import com.zd.bottle.domain.UseRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zd.bottle.vo.AirAmount;
+import com.zd.bottle.vo.UseRecordVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +18,26 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface UseRecordMapper extends BaseMapper<UseRecord> {
 
+    /**
+     * 信息统计查询使用记录列表
+     * @param storageId 库存主ID
+     * @return 集合对象
+     */
+    List<UseRecordVo> getBottleInfoByStorageId(Long storageId);
+
+    /**
+     * 用气量统计
+     *
+     * @param airName 气体名称
+     * @return 数据集合
+     */
+    List<AirAmount> calcRepertory(@Param("airName") String airName);
+
+    /**
+     * 用气量信息统计
+     *
+     * @param airName 气体名称
+     * @return 数据集合
+     */
+    List<AirAmount> calcAmount(@Param("airName") String airName);
 }

+ 9 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/mapper/UsegasApplyMapper.java

@@ -2,6 +2,10 @@ package com.zd.bottle.mapper;
 
 import com.zd.bottle.domain.UsegasApply;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zd.bottle.vo.UsegasApplyTabVo;
+import com.zd.bottle.vo.UsegasApplyVo;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface UsegasApplyMapper extends BaseMapper<UsegasApply> {
 
+
+    List <UsegasApplyVo> selectUseagsApplyList(UsegasApply usegasApply);
+
+    UsegasApplyTabVo selectApplyTabCount(UsegasApply usegasApply);
+
 }

+ 66 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/UseRecordService.java

@@ -2,7 +2,10 @@ package com.zd.bottle.service;
 
 import com.zd.bottle.domain.UseRecord;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zd.bottle.dto.UseRecordDto;
+import com.zd.bottle.vo.AirAmount;
 import com.zd.bottle.vo.UseRecordVo;
+import com.zd.bottle.vo.WebUseRecordVo;
 
 import java.util.List;
 
@@ -29,4 +32,67 @@ public interface UseRecordService extends IService<UseRecord> {
      * @return List
      */
     List<UseRecord> getList(UseRecord useRecord);
+
+    /**
+     * 信息统计查询使用记录列表
+     * @param storageId 库存主ID
+     * @return 集合对象
+     */
+    List<UseRecordVo> getBottleInfoByStorageId(Long storageId);
+    /**
+     * 管理端端获取使用记录详细信息
+     * @param id 记录ID
+     * @return 组合数据
+     */
+    WebUseRecordVo getBottleInfo(Long id);
+
+    /**
+     * 管理端端获取使用记录详细信息
+     * @param storageId 气瓶ID
+     * @return 组合数据
+     */
+    WebUseRecordVo getBottleRecord(Long storageId);
+
+    /**
+     * 出入库信息统计
+     * @param airName 气体名称
+     * @return 数据集合
+     */
+    List<AirAmount> calcRepertory(String airName);
+
+    /**
+     * 用气量信息统计
+     * @param airName 气体名称
+     * @return 数据集合
+     */
+    List<AirAmount> calcAmount(String airName);
+
+    /**
+     * 新增使用记录
+     *
+     * @param recordDto 使用记录
+     * @return 结果
+     */
+    Integer add(UseRecordDto recordDto);
+    /**
+     * 修改使用记录
+     *
+     * @param useRecord 使用记录
+     * @return 结果
+     */
+    Integer updateUseRecord(UseRecord useRecord);
+
+    /**
+     * 当前登录人的气瓶使用记录
+     * @param useRecord 参数
+     * @return List
+     */
+    List<UseRecord> getByUserId(UseRecord useRecord);
+
+    /**
+     * 根据气瓶ID查询
+     * @param storageId 气瓶主键
+     * @return List
+     */
+    List<UseRecord> getByStorageId(Long storageId);
 }

+ 3 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/UsegasApplyService.java

@@ -2,6 +2,7 @@ package com.zd.bottle.service;
 
 import com.zd.bottle.domain.UsegasApply;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zd.bottle.vo.UsegasApplyTabVo;
 import com.zd.bottle.vo.UsegasApplyVo;
 
 import java.util.List;
@@ -18,4 +19,6 @@ public interface UsegasApplyService extends IService<UsegasApply> {
 
     List <UsegasApplyVo> selectUseagsApplyList(UsegasApply usegasApply);
 
+    UsegasApplyTabVo selectApplyTabCount(UsegasApply usegasApply);
+
 }

+ 4 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/UsegasAuditRecordService.java

@@ -3,6 +3,8 @@ package com.zd.bottle.service;
 import com.zd.bottle.domain.UsegasAuditRecord;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  * 用气审核表 服务类
@@ -13,4 +15,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface UsegasAuditRecordService extends IService<UsegasAuditRecord> {
 
+    List <UsegasAuditRecord> auditRecordList(UsegasAuditRecord usegasAuditRecord);
+
 }

+ 193 - 3
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/impl/UseRecordServiceImpl.java

@@ -1,20 +1,40 @@
 package com.zd.bottle.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.zd.bottle.domain.BottleStorage;
+import com.zd.bottle.domain.BottleStorageError;
 import com.zd.bottle.domain.UseRecord;
+import com.zd.bottle.domain.UsegasApply;
+import com.zd.bottle.dto.UseRecordDto;
 import com.zd.bottle.mapper.UseRecordMapper;
+import com.zd.bottle.service.BottleStorageErrorService;
 import com.zd.bottle.service.BottleStorageService;
 import com.zd.bottle.service.UseRecordService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zd.bottle.service.UsegasApplyService;
+import com.zd.bottle.vo.AirAmount;
 import com.zd.bottle.vo.UseRecordVo;
+import com.zd.bottle.vo.WebUseRecordVo;
+import com.zd.common.core.constant.HttpStatus;
+import com.zd.common.core.constant.SecurityConstants;
+import com.zd.common.core.domain.R;
+import com.zd.common.core.exception.ServiceException;
+import com.zd.common.core.utils.DateUtils;
+import com.zd.common.core.utils.SecurityUtils;
 import com.zd.common.core.utils.bean.TransferUtils;
+import com.zd.common.security.service.TokenService;
+import com.zd.common.security.utils.SaveUtil;
+import com.zd.system.api.RemoteUserService;
+import com.zd.system.api.model.LoginUser;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.List;
-import java.util.Map;
+import java.math.BigDecimal;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -30,6 +50,14 @@ public class UseRecordServiceImpl extends ServiceImpl<UseRecordMapper, UseRecord
 
     @Resource
     private BottleStorageService storageService;
+    @Resource
+    private RemoteUserService userService;
+    @Resource
+    private UsegasApplyService usegasApplyService;
+    @Resource
+    private BottleStorageErrorService errorService;
+    @Resource
+    private TokenService tokenService;
 
     @Override
     public List<UseRecordVo> getListVo(List<UseRecord> records) {
@@ -41,7 +69,7 @@ public class UseRecordServiceImpl extends ServiceImpl<UseRecordMapper, UseRecord
             Long storageId = u.getStorageId();
             if (storageMap.containsKey(storageId)) {
                 BottleStorage bottleStorage = storageMap.get(storageId);
-                u.setAirName(bottleStorage.getAirBottleName());
+                u.setAirName(bottleStorage.getAirBottleName()).setStorage(bottleStorage);
             }
         });
         return recordVos;
@@ -53,4 +81,166 @@ public class UseRecordServiceImpl extends ServiceImpl<UseRecordMapper, UseRecord
         queryWrapper.setEntity(useRecord);
         return list(queryWrapper);
     }
+
+    @Override
+    public List<UseRecordVo> getBottleInfoByStorageId(Long storageId) {
+        return this.baseMapper.getBottleInfoByStorageId(storageId);
+    }
+
+    @Override
+    public WebUseRecordVo getBottleInfo(Long id) {
+        // 获取使用记录
+        UseRecord useRecord = getById(id);
+        Long storageId = useRecord.getStorageId();
+        List<UseRecord> records = getByStorageId(storageId);
+        return getWebUseRecordVo(records, storageId);
+    }
+
+    @Override
+    public WebUseRecordVo getBottleRecord(Long storageId) {
+        // 获取使用记录
+        List<UseRecord> useRecords = getByStorageId(storageId);
+        WebUseRecordVo recordVo = getWebUseRecordVo(useRecords, storageId);
+        List<UseRecordVo> recordVos = Optional.ofNullable(recordVo.getRecordVos()).orElseGet(Collections::emptyList);
+
+        Map<Long, Long> recordCount = recordVos.stream().collect(Collectors.groupingBy(UseRecordVo::getUserId, Collectors.counting()));
+
+        recordVos = recordVos.stream().collect(Collectors.toCollection(() ->
+                        new TreeSet<>(Comparator.comparing(UseRecordVo::getUserId))))
+                .stream().map(r -> r.setCountNumber(Math.toIntExact(recordCount.get(r.getUserId()))))
+                .sorted(Comparator.comparing(UseRecordVo::getUseTime).reversed())
+                .collect(Collectors.toList());
+
+        recordVo.setRecordVos(recordVos);
+        return recordVo;
+    }
+
+    @Override
+    public List<UseRecord> getByStorageId(Long storageId) {
+        LambdaQueryWrapper<UseRecord> queryWrapper = Wrappers.lambdaQuery(UseRecord.class);
+        queryWrapper.eq(UseRecord::getStorageId, storageId);
+        return list(queryWrapper);
+    }
+
+    @Override
+    public List<AirAmount> calcRepertory(String airName) {
+        return baseMapper.calcRepertory(airName);
+    }
+
+    @Override
+    public List<AirAmount> calcAmount(String airName) {
+        return baseMapper.calcAmount(airName);
+    }
+
+    @Override
+    public Integer add(UseRecordDto recordDto) {
+        int result = 1;
+        R<LoginUser> userInfo = userService.getUserInfo(SecurityUtils.getUsername(), SecurityConstants.INNER);
+        if (userInfo.getCode() != HttpStatus.SUCCESS || userInfo.getData() == null) {
+            throw new ServiceException("用户账号异常");
+        }
+        //查询用户使用资格
+        LoginUser user = userInfo.getData();
+        Long storageId = recordDto.getStorageId();
+        LambdaQueryWrapper<UsegasApply> queryWrapper = Wrappers.lambdaQuery(UsegasApply.class);
+        queryWrapper.eq(UsegasApply::getUserId, user.getSysUser().getUserId())
+                .ge(UsegasApply::getEndTime, new Date())
+                //todo 气体ID待确认
+                .eq(UsegasApply::getUseGasName, recordDto.getBottleName());
+        UsegasApply usegasApply = usegasApplyService.getOne(queryWrapper);
+        if (usegasApply == null) {
+            result = 3;
+        }
+        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;
+        }
+
+        recordDto.setContacts(user.getSysUser().getNickName())
+                .setPhone(user.getSysUser().getPhonenumber())
+                .setUseTime(Calendar.getInstance().getTime());
+        UseRecord useRecord = new UseRecord();
+        BeanUtils.copyProperties(recordDto, useRecord);
+
+        BottleStorage storage = storageService.getById(useRecord.getStorageId());
+        if (storage == null) {
+            throw new ServiceException("气瓶不存在");
+        }
+
+        LambdaUpdateWrapper<BottleStorage> updateWrapper = Wrappers.lambdaUpdate(BottleStorage.class);
+        updateWrapper.eq(BottleStorage::getId, useRecord.getStorageId()).set(BottleStorage::getStorageStatus,2);
+        Integer isSurplus = recordDto.getIsSurplus();
+        if (isSurplus == 1) {
+            // 修改库存中气瓶余量标记
+            storage.setIsSurplus(isSurplus).setCurrentPressure(useRecord.getBeforeUse());
+            BottleStorageError bottleStorageError = new BottleStorageError();
+            bottleStorageError.setStorageId(useRecord.getStorageId())
+                    .setBeforeEdit(storage.getCurrentPressure())
+                    .setAfterEdit(useRecord.getBeforeUse());
+            errorService.save(bottleStorageError);
+        }
+        if (!storageService.update(updateWrapper)) {
+            throw new ServiceException("入库数据异常");
+        }
+        //设置其他公共字段
+        useRecord.setUserId(user.getUserid());
+        useRecord.setCommonValue(user.getSysUser().getUserName());
+        if (save(useRecord)) {
+            return result;
+        }
+        throw new ServiceException("使用登记记录错误");
+    }
+
+    @Override
+    public Integer updateUseRecord(UseRecord useRecord) {
+        Long storageId = useRecord.getStorageId();
+        LambdaQueryWrapper<UseRecord> queryWrapper = Wrappers.lambdaQuery(UseRecord.class);
+        queryWrapper.eq(UseRecord::getStorageId,storageId).eq(UseRecord::getBackTime,null);
+        UseRecord temp = getOne(queryWrapper);
+        if (temp==null) {
+            throw new ServiceException("数据异常");
+        }
+        BigDecimal afterUse = useRecord.getAfterUse();
+        BigDecimal beforeUse = temp.getBeforeUse();
+        if (afterUse.compareTo(beforeUse) > 0) {
+            throw new ServiceException("使用后的气压不能大于使用前的气压");
+        }
+        if (ObjectUtil.isNotEmpty(beforeUse) && ObjectUtil.isNotEmpty(afterUse)) {
+            useRecord.setAmount(beforeUse.subtract(afterUse));
+            useRecord.setBackTime(Calendar.getInstance().getTime());
+        }
+        //修改库存中气瓶余量
+        BottleStorage storage = storageService.getById(storageId);
+        storage.setStorageStatus(1);
+        storage.setCurrentPressure(afterUse);
+        storage.setId(storage.getId());
+        storageService.updateById(storage);
+
+        useRecord.setId(temp.getId());
+        useRecord.setCommonValue(SecurityUtils.getUsername());
+        return baseMapper.updateById(useRecord);
+    }
+
+    @Override
+    public List<UseRecord> getByUserId(UseRecord useRecord) {
+        Long userId = tokenService.getLoginUser().getSysUser().getUserId();
+        LambdaQueryWrapper<UseRecord> queryWrapper = Wrappers.lambdaQuery(UseRecord.class);
+        queryWrapper.eq(UseRecord::getUserId,userId);
+        return list(queryWrapper);
+    }
+
+    private WebUseRecordVo getWebUseRecordVo(List<UseRecord> useRecords, Long storageId) {
+        List<UseRecordVo> recordVos = TransferUtils.transferList(useRecords, UseRecordVo.class);
+        BottleStorage storage = storageService.getById(storageId);
+        // 获取入库信息
+        //气瓶名称等相关内容
+        WebUseRecordVo recordVo = new WebUseRecordVo();
+        BeanUtils.copyProperties(storage, recordVo);
+        return recordVo.setRecordVos(recordVos);
+    }
 }

+ 12 - 21
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/impl/UsegasApplyServiceImpl.java

@@ -1,12 +1,16 @@
 package com.zd.bottle.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.BeanUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.zd.bottle.domain.UsegasApply;
 import com.zd.bottle.mapper.UsegasApplyMapper;
 import com.zd.bottle.service.UsegasApplyService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zd.bottle.vo.UsegasApplyTabVo;
 import com.zd.bottle.vo.UsegasApplyVo;
+import com.zd.common.core.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Collections;
@@ -25,29 +29,16 @@ import java.util.stream.Collectors;
 @Service
 public class UsegasApplyServiceImpl extends ServiceImpl<UsegasApplyMapper, UsegasApply> implements UsegasApplyService {
 
+    @Autowired
+    private UsegasApplyMapper usegasApplyMapper;
+
     @Override
     public List <UsegasApplyVo> selectUseagsApplyList(UsegasApply usegasApply) {
-        LambdaQueryWrapper <UsegasApply> wrapper = Wrappers.lambdaQuery();
-        wrapper.setEntity(usegasApply);
-        List <UsegasApply> list = list(wrapper);
-        List <UsegasApplyVo> collect = Optional.ofNullable(list).orElseGet(Collections::emptyList)
-                .stream()
-                .map(a -> {
-                    UsegasApplyVo usegasApplyVo = new UsegasApplyVo();
-                    usegasApplyVo.setId(a.getId());
-                    usegasApplyVo.setApplyUserName(a.getApplyUser());
-                    usegasApplyVo.setApplyUserPhone(a.getPhone());
-                    usegasApplyVo.setUseGasName(a.getUseGasName());
-                    usegasApplyVo.setApplyTime(a.getCreateTime());
-                    //todo 这里需要判断第一个审批人是否审批通过,如果第一个通过了,那么需要返回第二个审批人的id
-                    if (a.getLeadAuditStaus() == 0) {
-                        usegasApplyVo.setAuditUserid(a.getLeadAuditUserid());
-                    } else if (a.getCenterAuditStatus() == 0) {
-                        usegasApplyVo.setAuditUserid(a.getCenterAuditUserid());
-                    }
+        return usegasApplyMapper.selectUseagsApplyList(usegasApply);
+    }
 
-                    return usegasApplyVo;
-                }).collect(Collectors.toList());
-        return collect;
+    @Override
+    public UsegasApplyTabVo selectApplyTabCount(UsegasApply usegasApply) {
+        return usegasApplyMapper.selectApplyTabCount(usegasApply);
     }
 }

+ 13 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/java/com/zd/bottle/service/impl/UsegasAuditRecordServiceImpl.java

@@ -1,11 +1,16 @@
 package com.zd.bottle.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.zd.bottle.domain.UsegasApply;
 import com.zd.bottle.domain.UsegasAuditRecord;
 import com.zd.bottle.mapper.UsegasAuditRecordMapper;
 import com.zd.bottle.service.UsegasAuditRecordService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 用气审核表 服务实现类
@@ -17,4 +22,12 @@ import org.springframework.stereotype.Service;
 @Service
 public class UsegasAuditRecordServiceImpl extends ServiceImpl<UsegasAuditRecordMapper, UsegasAuditRecord> implements UsegasAuditRecordService {
 
+    @Override
+    public List <UsegasAuditRecord> auditRecordList(UsegasAuditRecord usegasAuditRecord) {
+        LambdaQueryWrapper <UsegasAuditRecord> wrapper = Wrappers.lambdaQuery();
+        wrapper.ge(UsegasAuditRecord::getUsegasApplyId,usegasAuditRecord.getUsegasApplyId());
+        wrapper.setEntity(usegasAuditRecord);
+        List <UsegasAuditRecord> list = list(wrapper);
+        return list;
+    }
 }

+ 56 - 0
zd-modules/zd-bottle-parent/zd-bottle/src/main/resources/mapper/UseRecordMapper.xml

@@ -33,5 +33,61 @@
         update_time,
         contacts, user_id, phone, location, subject_id, storage_id, before_use_pic, before_use, after_use_pic, after_use, amount, use_time, back_time
     </sql>
+    <select id="getBottleInfoByStorageId" resultType="com.zd.bottle.vo.UseRecordVo"
+            parameterType="java.lang.Long">
+        SELECT ur.contacts,
+               ur.phone,
+               (SELECT COUNT(1)
+                FROM ab_use_record r
+                WHERE r.user_id = ur.user_id
+                  AND r.storage_id = ur.storage_id
+                GROUP BY r.user_id) count_number,
+               (SELECT SUM(r.amount)
+                FROM ab_use_record r
+                WHERE r.user_id = ur.user_id
+                  AND r.storage_id = ur.storage_id
+                GROUP BY r.user_id) as amount,
+               ur.use_time
+        FROM ab_use_record ur
+        WHERE id IN (SELECT max(id)
+                     FROM ab_use_record
+                     WHERE storage_id = #{storageId}
+                       AND use_time IS NOT NULL
+                     GROUP BY user_id)
+    </select>
+    <select id="calcRepertory" resultType="com.zd.bottle.vo.AirAmount" parameterType="java.lang.String">
+        SELECT
+        DATE_FORMAT( S.create_time, '%Y年-%m月' ) date,
+        COUNT( s.id ) inNum,
+        COUNT( o.id ) outNum
+        FROM
+        ab_bottle_storage s
+        LEFT JOIN ab_bottle_storage_out o ON s.id = o.storage_id
+        WHERE
+        s.air_status=0 AND DATE_FORMAT( s.create_time, '%Y-%m' )> DATE_FORMAT( date_sub( curdate(), INTERVAL 12 MONTH ),
+        '%Y-%m' )
+        <if test="airName != null and airName!=''">
+            and s.air_bottle_name=#{airName}
+        </if>
+        GROUP BY
+        MONTH (s.create_time
+        )
+    </select>
+    <select id="calcAmount" resultType="com.zd.bottle.vo.AirAmount" parameterType="java.lang.String">
+        SELECT
+        DATE_FORMAT( r.create_time, '%Y年-%m月' ) date,
+        SUM(r.amount) as amount
+        FROM
+        ab_use_record r
+        INNER JOIN ab_bottle_storage s ON r.storage_id=s.id
+        WHERE
+        DATE_FORMAT( r.create_time, '%Y-%m' )> DATE_FORMAT( date_sub( curdate(), INTERVAL 12 MONTH ), '%Y-%m' )
+        <if test="airName != null and airName!=''">
+            and s.specification_name LIKE concat( '%', #{airName}, '%' ) )
+        </if>
+        GROUP BY
+        MONTH (r.create_time
+        )
+    </select>
 
 </mapper>

+ 27 - 6
zd-modules/zd-bottle-parent/zd-bottle/src/main/resources/mapper/UsegasApplyMapper.xml

@@ -25,18 +25,39 @@
         <result column="lead_audit_username" property="leadAuditUsername" />
         <result column="lead_audit_time" property="leadAuditTime" />
         <result column="lead_audit_cause" property="leadAuditCause" />
-        <result column="center_audit_status" property="centerAuditStatus" />
-        <result column="center_audit_userid" property="centerAuditUserid" />
-        <result column="center_audit_username" property="centerAuditUsername" />
-        <result column="center_audit_time" property="centerAuditTime" />
-        <result column="center_audit_cause" property="centerAuditCause" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
         id,
         create_time,
-        location, subject_id, apply_user, user_id, dept_id, dept_name, phone, start_time, end_time, gas_use, apply_certificate, safety_precautions, use_gas_id, use_gas_name, lead_audit_staus, lead_audit_userid, lead_audit_username, lead_audit_time, lead_audit_cause, center_audit_status, center_audit_userid, center_audit_username, center_audit_time, center_audit_cause
+        location, subject_id, apply_user, user_id, dept_id, dept_name, phone, start_time, end_time, gas_use, apply_certificate, safety_precautions, use_gas_id, use_gas_name, lead_audit_staus, lead_audit_userid, lead_audit_username, lead_audit_time, lead_audit_cause
     </sql>
 
+
+    <select id="selectUseagsApplyList" parameterType="com.zd.bottle.domain.UsegasApply" resultType="com.zd.bottle.vo.UsegasApplyVo">
+        select ua.id,ua.apply_user applyUserName,ua.phone applyUserPhone,ua.use_gas_name useGasName,ua.create_time applyTime,
+        ua.start_time startTime,ua.end_time endTime,ua.gas_use gasUse,ua.safety_precautions safetyPrecautions,
+        ua.use_gas_file useGasFile
+        from ab_usegas_apply ua
+        <where>
+            <if test="searchValue != null ">
+                and (
+                ua.apply_user like concat('%', #{searchValue}, '%') or
+                ua.phone like concat('%', #{searchValue}, '%')
+                )
+            </if>
+            <if test="leadAuditStaus != null ">
+                and ua.lead_audit_staus = #{leadAuditStaus}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectApplyTabCount" parameterType="com.zd.bottle.domain.UsegasApply" resultType="com.zd.bottle.vo.UsegasApplyTabVo">
+        SELECT
+         (SELECT COUNT(ua.id) FROM ab_usegas_apply ua WHERE ua.lead_audit_staus = 0) waitApplyCount,
+         (SELECT COUNT(ua.id) FROM ab_usegas_apply ua WHERE ua.lead_audit_staus = 1) passApplyCount,
+         (SELECT COUNT(ua.id) FROM ab_usegas_apply ua WHERE ua.lead_audit_staus = 2) refuseApplyCount
+        FROM DUAL
+    </select>
 </mapper>

+ 0 - 1
zd-modules/zd-forward/src/main/java/com/zd/forward/controller/SignInCheckController.java

@@ -82,7 +82,6 @@ public class SignInCheckController {
     public R checkInAll(@ApiParam("进出记录ID") @RequestParam("id") Long id,
                         @ApiParam("图片文件") @RequestParam("file") MultipartFile file,
                         @ApiParam("实验室ID") @RequestParam("subId") Long subId) {
-
         return checkService.checkAndCommit(id, file, subId);
     }
 

+ 8 - 10
zd-modules/zd-forward/src/main/java/com/zd/forward/serivce/CheckService.java

@@ -93,19 +93,16 @@ public class CheckService {
      * 合并检查 三合一套餐
      */
     public R checkAndCommit(Long id, MultipartFile file, Long subId) {
-        logger.info("===============1.进入方法=================");
         try {
             int alarmNum = 0;
             //========= 请求超时验证部分开始 ===========
             //600 则代表退出验证流程 需要重新刷卡
-            R<Long> fail = getObjectR(id);
-            logger.info("===============1================={}", fail);
-            if (fail.getCode() != 200) {
-                return fail;
-            }
+//            R<Long> fail = getObjectR(id);
+//            if (fail.getCode() != 200) {
+//                return fail;
+//            }
             //根据实验室id查询检查项
             R<Map<Object, Object>> subject = laboratoryService.getCheckInfo(subId);
-            logger.info("===============2================={}", subject);
             if (subject.getCode() != 200) {
                 return subject;
             }
@@ -124,20 +121,22 @@ public class CheckService {
             if (StringUtils.isNotNull(labCheckCountObj)) {
                 labCheckCount = String.valueOf(labCheckCountObj);
             }
-            logger.info("########{}########", labCheckCount);
             String labCheckIn = String.valueOf(labCheckInObj);
             String[] checkItem = labCheckIn.split(",");
+            File toFile = multipartFileToFile(file);
             for (String code : checkItem) {
                 //========= 获取算法INFO ===========
                 AlgorithmYml.CheckValid checkValid = algorithmYml.getCheckValid(Integer.valueOf(code));
                 MultiValueMap<String, Object> params = getStringObjectMultiValueMap(checkValid, String.valueOf(id));
-                HttpEntity<MultiValueMap<String, Object>> files = getHttpEntityMap(file, params);
+                HttpEntity<MultiValueMap<String, Object>> files = getHttpEntityMap(toFile, params);
+                logger.info("===============4=================");
                 ImgPostResponse<DataPostAnalysisRespDto> send = HttpUtils.send(restTemplateLocal, files, algorithmYml);
                 if (send == null || send.getStatus_code() != 1000) {
                     assert send != null;
                     logger.error(send.getMessage());
                     return R.fail("算法服务错误,请重试!");
                 }
+                logger.info("===============5=================");
                 R algorithm = saveAlgorithm(send, checkValid);
                 if (algorithm.getCode() != 200) return algorithm;
                 DataPostAnalysisRespDto data = send.getData();
@@ -146,7 +145,6 @@ public class CheckService {
                 Map<String, Object> algorithmData = (Map<String, Object>) result.get("algorithm_data");
                 Map<String, Object> modelResult = (Map<String, Object>) result.get("model_data");
                 List<Map<String, Object>> objects = (List<Map<String, Object>>) modelResult.get("objects");
-                logger.info("============{}============", data);
                 logger.info("============算法请求日志打印:算法ID:{},请求结果:{}", code, algorithmData.getOrDefault("is_alert", ""));
                 //通过的
                 if (algorithmData.getOrDefault("is_alert", "").toString().equals("false") && !objects.isEmpty()) {

+ 0 - 129
zd-modules/zd-forward/src/main/java/com/zd/forward/util/HttpUtils.java

@@ -1,129 +0,0 @@
-package com.zd.forward.util;
-
-import com.zd.forward.config.AlgorithmYml;
-import com.zd.forward.domain.DataPostAnalysisRespDto;
-import com.zd.forward.domain.ImgPostResponse;
-import com.zd.forward.properties.FireProperties;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.core.ParameterizedTypeReference;
-import org.springframework.core.io.FileSystemResource;
-import org.springframework.http.*;
-import org.springframework.util.LinkedMultiValueMap;
-import org.springframework.util.MultiValueMap;
-import org.springframework.web.client.RestTemplate;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.File;
-import java.io.IOException;
-import java.time.LocalDateTime;
-import java.time.ZoneOffset;
-
-/**
- * @author Administrator
- */
-@Slf4j
-public class HttpUtils {
-
-    private HttpUtils() {
-        throw new IllegalStateException("HttpUtils class");
-    }
-
-    /**
-     * 构造算法文件逆流
-     */
-    public static HttpEntity<MultiValueMap<String, Object>> getHttpEntityMap(MultipartFile file, MultiValueMap<String, Object> params) {
-        try {
-            //设置请求头
-            HttpHeaders headers = new HttpHeaders();
-            headers.setContentType(MediaType.MULTIPART_FORM_DATA);
-            //MultipartFile 转为临时文件
-            File uploadFile = multipartFileToFile(file);
-            //文件转为文件系统资源
-            return getHttpEntity(uploadFile, params, headers);
-        } catch (IOException ex) {
-            ex.printStackTrace();
-        }
-        return null;
-    }
-
-    /**
-     * 构造算法文件逆流
-     */
-    public static HttpEntity<MultiValueMap<String, Object>> getHttpEntityMap(File file, MultiValueMap<String, Object> params) {
-        //设置请求头
-        HttpHeaders headers = new HttpHeaders();
-        headers.setContentType(MediaType.MULTIPART_FORM_DATA);
-        return getHttpEntity(file, params, headers);
-    }
-
-    private static HttpEntity<MultiValueMap<String, Object>> getHttpEntity(File file, MultiValueMap<String, Object> params, HttpHeaders headers) {
-        //文件转为文件系统资源
-        FileSystemResource fileSystemResource = new FileSystemResource(file);
-        //设置请求体,注意是LinkedMultiValueMap
-        MultiValueMap<String, Object> form = getStringObjectMultiValueMap(fileSystemResource);
-        form.addAll(params);
-        //用HttpEntity封装整个请求报文
-        return new HttpEntity<>(form, headers);
-    }
-
-    public static File multipartFileToFile(MultipartFile file) throws IOException {
-        String originalFilename = file.getOriginalFilename() == null ? "" : file.getOriginalFilename();
-        assert originalFilename!=null;
-        String[] filename = originalFilename.split("\\.");
-        File toFile = File.createTempFile(filename[0], "." + filename[1]);
-        file.transferTo(toFile);
-        //toFile.deleteOnExit();//在jvm 退出时删除
-        return toFile;
-    }
-
-    /**
-     * 构建算法图片post请求 参数:只构建文件
-     */
-    public static MultiValueMap<String, Object> getStringObjectMultiValueMap(FileSystemResource fileSystemResource) {
-        MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
-        form.add("file", fileSystemResource);
-        return form;
-    }
-
-    private static MultiValueMap<String, Object> getStringObjectMultiValueMap(String extension) {
-        MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
-        //1-同步(默认),0-异步
-        form.add("sync", 1);
-        form.add("timeStamp", LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli() / 1000);
-        form.add("extension", extension);
-        return form;
-    }
-
-    /**
-     * 构建算法图片post请求 参数
-     */
-    public static MultiValueMap<String, Object> getStringObjectMultiValueMap(AlgorithmYml.CheckValid checkValid, String extension) {
-        MultiValueMap<String, Object> form = getStringObjectMultiValueMap(extension);
-        form.add("algoId", checkValid.getAlgoId());
-        form.add("did", checkValid.getDid());
-        return form;
-    }
-
-    /**
-     * 构建算法图片post请求 参数
-     */
-    public static MultiValueMap<String, Object> getMultiValueMap(FireProperties properties, String extension) {
-        MultiValueMap<String, Object> form = getStringObjectMultiValueMap(extension);
-        form.add("algoId", properties.getAlgoId());
-        form.add("did", properties.getDid());
-        return form;
-    }
-
-    public static ImgPostResponse<DataPostAnalysisRespDto> send(RestTemplate restTemplate, HttpEntity<MultiValueMap<String, Object>> files, AlgorithmYml algorithmYml) {
-        ParameterizedTypeReference<ImgPostResponse<DataPostAnalysisRespDto>> reference = new ParameterizedTypeReference<ImgPostResponse<DataPostAnalysisRespDto>>() {
-        };
-        ResponseEntity<ImgPostResponse<DataPostAnalysisRespDto>> response = restTemplate.exchange(algorithmYml.getImgPostUrl(), HttpMethod.POST, files, reference);
-        if (response.getStatusCode() != HttpStatus.OK) {
-            log.error("算法服务请求异常,请查看算服务器");
-        }
-        if (response.getBody() == null) {
-            log.error("算法服务接口返回异常");
-        }
-        return response.getBody();
-    }
-}

+ 2 - 18
zd-modules/zd-forward/src/main/java/com/zd/forward/utils/HttpUtils.java

@@ -33,28 +33,11 @@ public class HttpUtils {
     /**
      * 构造算法文件逆流
      */
-    public static HttpEntity<MultiValueMap<String, Object>> getHttpEntityMap(MultipartFile file, MultiValueMap<String, Object> params) {
-        try {
-            //设置请求头
-            HttpHeaders headers = new HttpHeaders();
-            headers.setContentType(MediaType.MULTIPART_FORM_DATA);
-            //MultipartFile 转为临时文件
-            File uploadFile = multipartFileToFile(file);
-            //文件转为文件系统资源
-            return getHttpEntity(uploadFile, params, headers);
-        } catch (IOException ex) {
-            ex.printStackTrace();
-        }
-        return null;
-    }
-
-    /**
-     * 构造算法文件逆流
-     */
     public static HttpEntity<MultiValueMap<String, Object>> getHttpEntityMap(File file, MultiValueMap<String, Object> params) {
         //设置请求头
         HttpHeaders headers = new HttpHeaders();
         headers.setContentType(MediaType.MULTIPART_FORM_DATA);
+        //文件转为文件系统资源
         return getHttpEntity(file, params, headers);
     }
 
@@ -74,6 +57,7 @@ public class HttpUtils {
         String[] filename = originalFilename.split("\\.");
         File toFile = File.createTempFile(filename[0], "." + filename[1]);
         file.transferTo(toFile);
+        log.info("================>{}",toFile.getAbsoluteFile());
         //toFile.deleteOnExit();//在jvm 退出时删除
         return toFile;
     }

+ 55 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabRiskPlanListVO.java

@@ -35,6 +35,21 @@ public class LabRiskPlanListVO extends BaseEntity {
     @ApiModelProperty("院系名称")
     private String groupDeptName;
 
+    @ApiModelProperty("声光报警")
+    private Integer alarmInfo;
+
+    @ApiModelProperty("电话短信")
+    private Integer phoneInfo;
+
+    @ApiModelProperty("通风")
+    private Integer windInfo;
+
+    @ApiModelProperty("电源")
+    private Integer powerInfo;
+
+    @ApiModelProperty("预案结束时间")
+    private String overTime;
+
     public String getCreateTimeStr() {
         return createTimeStr;
     }
@@ -91,4 +106,44 @@ public class LabRiskPlanListVO extends BaseEntity {
     public void setSesorContent(String sesorContent) {
         this.sesorContent = sesorContent;
     }
+
+    public Integer getAlarmInfo() {
+        return alarmInfo;
+    }
+
+    public void setAlarmInfo(Integer alarmInfo) {
+        this.alarmInfo = alarmInfo;
+    }
+
+    public Integer getPhoneInfo() {
+        return phoneInfo;
+    }
+
+    public void setPhoneInfo(Integer phoneInfo) {
+        this.phoneInfo = phoneInfo;
+    }
+
+    public Integer getWindInfo() {
+        return windInfo;
+    }
+
+    public void setWindInfo(Integer windInfo) {
+        this.windInfo = windInfo;
+    }
+
+    public Integer getPowerInfo() {
+        return powerInfo;
+    }
+
+    public void setPowerInfo(Integer powerInfo) {
+        this.powerInfo = powerInfo;
+    }
+
+    public String getOverTime() {
+        return overTime;
+    }
+
+    public void setOverTime(String overTime) {
+        this.overTime = overTime;
+    }
 }

+ 10 - 1
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabControlMapper.xml

@@ -445,7 +445,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         s.name subject_name,
         (SELECT dt.dept_name
         FROM  sys_dept d JOIN sys_dept dt ON d.dept_id = dt.parent_id
-        WHERE d.parent_id = 0 AND FIND_IN_SET(dt.dept_id,t.`ancestors`)) groupDeptName
+        WHERE d.parent_id = 0 AND FIND_IN_SET(dt.dept_id,t.`ancestors`)) groupDeptName,
+        CASE WHEN (SELECT COUNT(pal.id) FROM lab_risk_plan_abnormal_log pal WHERE pal.`group_id` = gp.`id` AND pal.risk_status = 3 AND pal.risk_plan_name LIKE '%报警器%')>0
+        THEN 1 ELSE 0 END alarmInfo,
+        CASE WHEN (SELECT COUNT(pal.id) FROM lab_risk_plan_abnormal_log pal WHERE pal.`group_id` = gp.`id` AND pal.risk_status = 4 AND pal.risk_plan_name LIKE '%语音电话%')>0
+        THEN 1 ELSE 0 END phoneInfo,
+        CASE WHEN (SELECT COUNT(pal.id) FROM lab_risk_plan_abnormal_log pal WHERE pal.`group_id` = gp.`id` AND pal.risk_status = 3 AND pal.risk_plan_name LIKE '%智能通风%')>0
+        THEN 1 ELSE 0 END windInfo,
+        CASE WHEN (SELECT COUNT(pal.id) FROM lab_risk_plan_abnormal_log pal WHERE pal.`group_id` = gp.`id` AND pal.risk_status = 0 AND pal.risk_plan_name LIKE '%电源开关%')>0
+        THEN 1 ELSE 0 END powerInfo,
+        (SELECT pal.create_time FROM lab_risk_plan_abnormal_log pal WHERE pal.`group_id` = gp.`id` AND pal.risk_status = 2 LIMIT 1) overTime
         FROM
         lab_risk_plan_abnormal_group gp INNER JOIN lab_subject s ON gp.`subject_id` = s.`id`
         INNER JOIN lab_risk_plan_abnormal_log al ON gp.`id` = al.`group_id`