소스 검색

Merge branch 'feature/1.0.0' of github.com:ab-inbev-apac/abi-cloud-qr-platform into feature/1.0.0

tanzhongran 3 년 전
부모
커밋
c3191ecd24
16개의 변경된 파일260개의 추가작업 그리고 82개의 파일을 삭제
  1. 15 25
      abi-cloud-qr-platform-common/src/main/java/com/abi/task/common/tablestore/TableStoreUtils.java
  2. 8 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/QrPackageBookingOrderController.java
  3. 8 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/QrPackageBookingOrderMapper.java
  4. 2 2
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/ReportServiceMapper.java
  5. 1 1
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/ListFactoryCodeReportVO.java
  6. 40 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/ReservationOrderQueryVO.java
  7. 2 4
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/ReportReq.java
  8. 1 1
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ListFactoryCodeReportRes.java
  9. 3 3
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/PackageCodeTypeRes.java
  10. 58 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ReservationOrderQueryRes.java
  11. 10 0
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/QrPackageBookingOrderService.java
  12. 41 9
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrPackageBookingOrderServiceImpl.java
  13. 10 2
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrPackageServiceImpl.java
  14. 39 31
      abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/ReportServiceImpl.java
  15. 15 0
      abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrPackageBookingOrderMapper.xml
  16. 7 4
      abi-cloud-qr-platform-server/src/test/java/com/abi/qms/platform/TableStoreTest.java

+ 15 - 25
abi-cloud-qr-platform-common/src/main/java/com/abi/task/common/tablestore/TableStoreUtils.java

@@ -7,31 +7,7 @@ import com.abi.task.common.api.exception.ErrorCodeEnum;
 import com.abi.task.common.tablestore.common.TableStoreReq;
 import com.abi.task.common.tablestore.common.TableStoreRes;
 import com.alicloud.openservices.tablestore.SyncClient;
-import com.alicloud.openservices.tablestore.model.BatchWriteRowRequest;
-import com.alicloud.openservices.tablestore.model.BatchWriteRowResponse;
-import com.alicloud.openservices.tablestore.model.CapacityUnit;
-import com.alicloud.openservices.tablestore.model.Column;
-import com.alicloud.openservices.tablestore.model.ColumnValue;
-import com.alicloud.openservices.tablestore.model.CreateTableRequest;
-import com.alicloud.openservices.tablestore.model.DeleteRowRequest;
-import com.alicloud.openservices.tablestore.model.GetRowRequest;
-import com.alicloud.openservices.tablestore.model.GetRowResponse;
-import com.alicloud.openservices.tablestore.model.ListTableResponse;
-import com.alicloud.openservices.tablestore.model.PrimaryKey;
-import com.alicloud.openservices.tablestore.model.PrimaryKeyBuilder;
-import com.alicloud.openservices.tablestore.model.PrimaryKeySchema;
-import com.alicloud.openservices.tablestore.model.PrimaryKeyType;
-import com.alicloud.openservices.tablestore.model.PrimaryKeyValue;
-import com.alicloud.openservices.tablestore.model.PutRowRequest;
-import com.alicloud.openservices.tablestore.model.ReservedThroughput;
-import com.alicloud.openservices.tablestore.model.Row;
-import com.alicloud.openservices.tablestore.model.RowDeleteChange;
-import com.alicloud.openservices.tablestore.model.RowPutChange;
-import com.alicloud.openservices.tablestore.model.RowUpdateChange;
-import com.alicloud.openservices.tablestore.model.SingleRowQueryCriteria;
-import com.alicloud.openservices.tablestore.model.TableMeta;
-import com.alicloud.openservices.tablestore.model.TableOptions;
-import com.alicloud.openservices.tablestore.model.UpdateRowRequest;
+import com.alicloud.openservices.tablestore.model.*;
 import com.alicloud.openservices.tablestore.model.search.SearchQuery;
 import com.alicloud.openservices.tablestore.model.search.SearchRequest;
 import com.alicloud.openservices.tablestore.model.search.SearchResponse;
@@ -401,4 +377,18 @@ public class TableStoreUtils {
         return rowPutChange;
     }
 
+    public UpdateTableResponse updateTable(int reservedThroughput, String tableName) {
+        UpdateTableRequest updateTableRequest = new UpdateTableRequest();
+        updateTableRequest.setTableName(tableName);
+        updateTableRequest.setStreamSpecification(new StreamSpecification(true,1));
+        ReservedThroughput throughput = new ReservedThroughput();
+        throughput.setCapacityUnit(new CapacityUnit(reservedThroughput,reservedThroughput));
+        updateTableRequest.setReservedThroughputForUpdate(throughput);
+        int timeToLive = -1;
+        //保存的最大版本数,1表示每列上最多保存一个版本即保存最新的版本。带索引表的数据表最大版本数必须设置为1。
+        int maxVersions = 1;
+        TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);
+        updateTableRequest.setTableOptionsForUpdate(tableOptions);
+        return client().updateTable(updateTableRequest);
+    }
 }

+ 8 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/QrPackageBookingOrderController.java

@@ -6,6 +6,7 @@ import com.abi.qms.platform.dto.req.QueryOrderFormLimitReq;
 import com.abi.qms.platform.dto.req.SaveOrderFormReq;
 import com.abi.qms.platform.dto.res.QueryOrderFormDetailRes;
 import com.abi.qms.platform.dto.res.QueryOrderFormLimitRes;
+import com.abi.qms.platform.dto.res.ReservationOrderQueryRes;
 import com.abi.qms.platform.service.QrPackageBookingOrderService;
 import com.abi.task.common.api.base.BaseResponse;
 import io.swagger.annotations.Api;
@@ -56,4 +57,11 @@ public class QrPackageBookingOrderController {
         qrPackageBookingOrderService.associateSapOrder(associateSapOrderReq);
         return BaseResponse.create();
     }
+
+    @ApiOperation("预订单下拉框选项")
+    @GetMapping("/reservationOrderQuery")
+    public BaseResponse reservationOrderQuery() {
+        ReservationOrderQueryRes res = qrPackageBookingOrderService.reservationOrderQuery();
+        return BaseResponse.create(res);
+    }
 }

+ 8 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/QrPackageBookingOrderMapper.java

@@ -3,6 +3,7 @@ package com.abi.qms.platform.dao.mapper;
 import com.abi.qms.platform.dao.entity.QrPackageBookingOrder;
 import com.abi.qms.platform.dao.vo.result.QueryOrderFormDetailVO;
 import com.abi.qms.platform.dao.vo.result.QueryOrderFormLimitVO;
+import com.abi.qms.platform.dao.vo.result.ReservationOrderQueryVO;
 import com.abi.qms.platform.dto.req.QueryOrderFormDetailReq;
 import com.abi.qms.platform.dto.req.QueryOrderFormLimitReq;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -37,4 +38,11 @@ public interface QrPackageBookingOrderMapper extends BaseMapper<QrPackageBooking
      */
     IPage<QueryOrderFormLimitVO> queryOrderFormLimit(IPage page, @Param("queryOrderFormLimitReq") QueryOrderFormLimitReq queryOrderFormLimitReq);
 
+    /**
+     * 预订单下拉框选项
+     * @author ludashi
+     * @date 2021/6/7 18:14
+     */
+    List<ReservationOrderQueryVO> reservationOrderQuery();
+
 }

+ 2 - 2
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/ReportServiceMapper.java

@@ -32,7 +32,7 @@ public interface ReportServiceMapper  {
      * @param type 判断 1-生成码 2-下载码
      * @return
      */
-    ListPackageCodeVo queryPackageCodeNum(@Param("beginDate")LocalDateTime beginDate,@Param("endDate")LocalDateTime endDate,@Param("type")Integer type);
+    ListPackageCodeVo queryPackageCodeNum(@Param("beginDate")String beginDate,@Param("endDate")String endDate,@Param("type")Integer type);
 
     /**
      * 激活码总量
@@ -40,7 +40,7 @@ public interface ReportServiceMapper  {
      * @param endDate
      * @return
      */
-    ListPackageCodeVo queryActivateCodeNum(@Param("beginDate")LocalDateTime beginDate,@Param("endDate")LocalDateTime endDate);
+    ListPackageCodeVo queryActivateCodeNum(@Param("beginDate")String beginDate,@Param("endDate")String endDate);
 
 
     /**

+ 1 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/ListFactoryCodeReportVO.java

@@ -21,5 +21,5 @@ public class ListFactoryCodeReportVO implements Serializable {
     private Long qrNumber;
 
     @ApiModelProperty("下载率")
-    private String downloadNumber;
+    private Long downloadNumber;
 }

+ 40 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/ReservationOrderQueryVO.java

@@ -0,0 +1,40 @@
+package com.abi.qms.platform.dao.vo.result;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author ludashi
+ * @date 2021年06月07日 18:24
+ */
+@Data
+@ApiModel
+public class ReservationOrderQueryVO implements Serializable {
+
+    @ApiModelProperty("预订ID")
+    private Long bookingOrderId;
+
+    @ApiModelProperty("预订单号")
+    private String bookingOrder;
+
+    @ApiModelProperty("物料名称")
+    private String materialName;
+
+    @ApiModelProperty("码类型  1-箱码 2-盖码")
+    private String qrType;
+
+    @ApiModelProperty("物料采购数量")
+    private String purchaseCount;
+
+    @ApiModelProperty("包材厂")
+    private String factoryName;
+
+    @ApiModelProperty("是否一级包材厂")
+    private Integer isFirstFactory;
+
+    @ApiModelProperty(name = "包材厂id")
+    private Long factoryCoverId;
+}

+ 2 - 4
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/ReportReq.java

@@ -20,10 +20,8 @@ public class ReportReq implements Serializable {
     private Integer value;
 
     @ApiModelProperty("开始时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime beginTime;
+    private String beginTime;
 
     @ApiModelProperty("结束时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime endTime;
+    private String endTime;
 }

+ 1 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ListFactoryCodeReportRes.java

@@ -35,6 +35,6 @@ public class ListFactoryCodeReportRes implements Serializable {
         private Long qrNumber;
 
         @ApiModelProperty("下载率")
-        private String downloadNumber;
+        private Long downloadNumber;
     }
 }

+ 3 - 3
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/PackageCodeTypeRes.java

@@ -21,7 +21,7 @@ public class PackageCodeTypeRes {
     private Long createCapNumber;
 
     @ApiModelProperty("生成码数量同比")
-    private String createPercent;
+    private double createPercent;
 
     @ApiModelProperty(value = "下载箱码数量")
     private Long loadBoxNumber;
@@ -30,7 +30,7 @@ public class PackageCodeTypeRes {
     private Long loadCapNumber;
 
     @ApiModelProperty("下载码数量同比")
-    private String loadPercent;
+    private double loadPercent;
 
     @ApiModelProperty(value = "激活箱码数量")
     private Long activateBoxNumber;
@@ -39,6 +39,6 @@ public class PackageCodeTypeRes {
     private Long activateCapNumber;
 
     @ApiModelProperty("激活码数量同比")
-    private String activatePercent;
+    private double activatePercent;
 
 }

+ 58 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ReservationOrderQueryRes.java

@@ -0,0 +1,58 @@
+package com.abi.qms.platform.dto.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author ludashi
+ * @date 2021年06月07日 19:04
+ */
+@Data
+@ApiModel
+public class ReservationOrderQueryRes implements Serializable {
+
+    @ApiModelProperty("预订单下拉框选项")
+    List<ReservationOrderQueryBean> reservationOrderQueryBean;
+
+    /**
+     * 码格式Bean
+     */
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "ReservationOrderQueryRes_ReservationOrderQueryBean")
+    public static class ReservationOrderQueryBean implements Serializable{
+        @ApiModelProperty("预订ID")
+        private Long bookingOrderId;
+
+        @ApiModelProperty("预订单号")
+        private String bookingOrder;
+
+        @ApiModelProperty("物料名称")
+        private String materialName;
+
+        @ApiModelProperty("码类型  1-箱码 2-盖码")
+        private String qrType;
+
+        @ApiModelProperty("物料采购数量")
+        private String purchaseCount;
+
+        @ApiModelProperty("包材厂")
+        private String factoryName;
+
+        @ApiModelProperty("是否一级包材厂")
+        private Integer isFirstFactory;
+
+        @ApiModelProperty(name = "包材厂id")
+        private Long factoryCoverId;
+    }
+
+}

+ 10 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/QrPackageBookingOrderService.java

@@ -6,6 +6,7 @@ import com.abi.qms.platform.dto.req.QueryOrderFormLimitReq;
 import com.abi.qms.platform.dto.req.SaveOrderFormReq;
 import com.abi.qms.platform.dto.res.QueryOrderFormDetailRes;
 import com.abi.qms.platform.dto.res.QueryOrderFormLimitRes;
+import com.abi.qms.platform.dto.res.ReservationOrderQueryRes;
 
 public interface QrPackageBookingOrderService {
 
@@ -41,4 +42,13 @@ public interface QrPackageBookingOrderService {
      * @param associateSapOrderReq
      */
     void associateSapOrder(AssociateSapOrderReq associateSapOrderReq);
+
+    /**
+     * 预订单下拉框选项
+     * @author ludashi
+     * @date 2021/6/7 17:56
+     */
+    ReservationOrderQueryRes reservationOrderQuery();
+
+
 }

+ 41 - 9
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrPackageBookingOrderServiceImpl.java

@@ -1,17 +1,20 @@
 package com.abi.qms.platform.service.impl;
 
 import com.abi.qms.platform.dao.entity.*;
+import com.abi.qms.platform.dao.enums.FactoryTypeEnum;
 import com.abi.qms.platform.dao.mapper.*;
 import com.abi.qms.platform.dao.vo.result.QueryOrderFormDetailVO;
 import com.abi.qms.platform.dao.vo.result.QueryOrderFormLimitVO;
+import com.abi.qms.platform.dao.vo.result.ReservationOrderQueryVO;
 import com.abi.qms.platform.dto.req.AssociateSapOrderReq;
 import com.abi.qms.platform.dto.req.QueryOrderFormDetailReq;
 import com.abi.qms.platform.dto.req.QueryOrderFormLimitReq;
 import com.abi.qms.platform.dto.req.SaveOrderFormReq;
-import com.abi.qms.platform.dto.res.ListQrVariableRes;
-import com.abi.qms.platform.dto.res.QueryOrderFormDetailRes;
-import com.abi.qms.platform.dto.res.QueryOrderFormLimitRes;
+import com.abi.qms.platform.dto.res.*;
+import com.abi.qms.platform.infrastructure.util.AssertUtil;
 import com.abi.qms.platform.infrastructure.util.PageUtil;
+import com.abi.qms.platform.service.FactoryService;
+import com.abi.qms.platform.service.MaterialService;
 import com.abi.qms.platform.service.QrPackageBookingOrderService;
 import com.abi.task.common.api.exception.BusinessException;
 import com.abi.task.common.utils.PojoConverterUtils;
@@ -46,6 +49,12 @@ public class QrPackageBookingOrderServiceImpl implements QrPackageBookingOrderSe
     @Autowired
     private QrPackageSapOrderItemMapper qrPackageSapOrderItemMapper;
 
+    @Autowired
+    private MaterialService materialService;
+
+    @Autowired
+    private FactoryService factoryService;
+
     /**
      * 新增修改预订单
      * @author ludashi
@@ -135,17 +144,17 @@ public class QrPackageBookingOrderServiceImpl implements QrPackageBookingOrderSe
     @Override
     public void associateSapOrder(AssociateSapOrderReq associateSapOrderReq) {
         //1根据物料code查询id保存
-        QueryWrapper<BaseMaterial> baseMaterial = new QueryWrapper<>();
-        baseMaterial.eq("material_code",associateSapOrderReq.getMaterialCode());
-        baseMaterial.eq("is_delete",0);
-        BaseMaterial baseMaterials = baseMaterialMapper.selectOne(baseMaterial);
+        BaseMaterial baseMaterials = materialService.getMaterialByCode(associateSapOrderReq.getMaterialCode());
+        if(ObjectUtils.isEmpty(baseMaterials)){
+            new BusinessException("该SAP订单号内未找到需要打码的物料,请维护物料数据后重试");
+        }
         //关联SAP订单 校验
         QueryWrapper<QrPackageSapOrderItem> qrPackageSapOrderItem = new QueryWrapper<>();
         qrPackageSapOrderItem.eq("sap_order_no",associateSapOrderReq.getSapOrder());
-        qrPackageSapOrderItem.eq("sap_material_id",baseMaterials.getId());
+        qrPackageSapOrderItem.eq("sap_material_id",baseMaterials.getMaterialCode());
         QrPackageSapOrderItem queryQrPackageSapOrderItem = qrPackageSapOrderItemMapper.selectOne(qrPackageSapOrderItem);
         if(ObjectUtils.isEmpty(queryQrPackageSapOrderItem)){
-            new BusinessException("该SAP订单号内未找到需要打码的物料,请维护物料数据后重试");
+            new BusinessException("关联的SAP订单不存在。");
         }
         //2修改预订单名称
         QrPackageBookingOrder qrPackageBookingOrder = qrPackageBookingOrderMapper.selectById(associateSapOrderReq.getId());
@@ -161,7 +170,30 @@ public class QrPackageBookingOrderServiceImpl implements QrPackageBookingOrderSe
         if(!queryQrPackageSapOrderItem.getSapCoverFactoryId().equals(qrPackageBookingOrder.getFactoryCoverId().toString())){
             new BusinessException("关联的SAP订单内包材厂信息与原预订单不符,请确认后重试。");
         }
+        //  物料类型 3-罐子 4-瓶盖 5-纸板箱
+        BaseMaterial materialByCode = materialService.getMaterialByCode(queryQrPackageSapOrderItem.getSapMaterialId());
+        if(ObjectUtils.isEmpty(materialByCode)){
+            new BusinessException("关联的SAP订单内物料查询为空,请确认后重试。");
+        }
+        if(!materialByCode.getMaterialType().equals(baseMaterials.getMaterialType())){
+            new BusinessException("关联的SAP订单内物料类型与原预订单码类型不符,请确认后重试。");
+        }
         qrPackageBookingOrderMapper.updateById(qrPackageBookingOrder);
         qrPackageMapper.updateById(qrPackage);
     }
+
+    /**
+     * 预订单下拉框选项
+     * @author ludashi
+     * @date 2021/6/7 17:56
+     */
+    @Override
+    public ReservationOrderQueryRes reservationOrderQuery() {
+        List<ReservationOrderQueryVO> reservationOrderQueryVOS = qrPackageBookingOrderMapper.reservationOrderQuery();
+        //封装出参
+        ReservationOrderQueryRes res= new ReservationOrderQueryRes();
+        List<ReservationOrderQueryRes.ReservationOrderQueryBean> reservationOrderQueryBeans = PojoConverterUtils.copyList(reservationOrderQueryVOS, ReservationOrderQueryRes.ReservationOrderQueryBean.class);
+        res.setReservationOrderQueryBean(reservationOrderQueryBeans);
+        return res;
+    }
 }

+ 10 - 2
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrPackageServiceImpl.java

@@ -565,8 +565,16 @@ public class QrPackageServiceImpl implements QrPackageService {
 
         // 只有已生成状态下才可下载
         Integer generateStatus = qrPackage.getGenerateStatus();
-        if (!QrPackageGenerateStatusEnum.GENERATE_SUCCESS.is(generateStatus)) {
-            throw new BusinessException("码包不可下载");
+        if (QrPackageGenerateStatusEnum.UN_GENERATE.is(generateStatus)) {
+            throw new BusinessException("码包未生成不可下载");
+        }
+
+        if (QrPackageGenerateStatusEnum.GENERATING.is(generateStatus)) {
+            throw new BusinessException("码包生成中不可下载");
+        }
+
+        if (QrPackageGenerateStatusEnum.GENERATE_FAIL.is(generateStatus)) {
+            throw new BusinessException("码包生成失败不可下载");
         }
 
         //特殊:校验验证码是否正确,正确才可以下载

+ 39 - 31
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/ReportServiceImpl.java

@@ -19,6 +19,7 @@ import org.springframework.util.CollectionUtils;
 import org.springframework.util.ObjectUtils;
 
 import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
 import java.time.DayOfWeek;
 import java.time.Instant;
 import java.time.LocalDateTime;
@@ -101,10 +102,12 @@ public class ReportServiceImpl implements ReportService {
         if(!CollectionUtils.isEmpty(listFactoryCodeTotalReportVOS)) {
             listFactoryCodeTotalReportVOS.forEach(listReportVO -> {
                 Double val = 0d;
+                //计算下载率
                 if (null != factoryCodeDownloadTotalMaps.get(listReportVO.getFactoryName())) {
                     val = factoryCodeDownloadTotalMaps.get(listReportVO.getFactoryName()).doubleValue() / listReportVO.getQrNumber().doubleValue() * 100;
                 }
-                listReportVO.setDownloadNumber(new DecimalFormat("#0.00").format(val + 0.000001d) + "%");
+                //下载率取整
+                listReportVO.setDownloadNumber(new BigDecimal(Math.floor(val)).longValue());
             });
         }
         // 封装出参
@@ -123,7 +126,7 @@ public class ReportServiceImpl implements ReportService {
                 null == reportReq.getEndTime() &&
                 null == reportReq.getBeginTime() &&
                 !ObjectUtils.isEmpty(reportReq.getValue())){
-            HashMap<String, LocalDateTime> timestamp = getTimestamp(reportReq.getValue());
+            HashMap<String, String> timestamp = getTimestamp(reportReq.getValue());
             reportReq.setBeginTime( timestamp.get("startTime"));
             reportReq.setEndTime( timestamp.get("endTime"));
         }
@@ -134,8 +137,8 @@ public class ReportServiceImpl implements ReportService {
      * @param timeType (0-当天,1-本周,2-本月)
      * @return key 开始时间:startTime  结束时间:endTime
      */
-    private HashMap<String, LocalDateTime> getTimestamp(Integer timeType) {
-        HashMap<String, LocalDateTime> hashMap = new HashMap<String, LocalDateTime>();
+    private HashMap<String, String> getTimestamp(Integer timeType) {
+        HashMap<String, String> hashMap = new HashMap<String, String>();
         Calendar calendar = Calendar.getInstance();
 
         //当天
@@ -174,13 +177,12 @@ public class ReportServiceImpl implements ReportService {
      * @author ludashi
      * @date 2021/6/3 13:37
      * @param l 时间毫秒值
-     * @return java.time.LocalDateTime
+     * @return String
      */
-    private LocalDateTime longTurnData(Long l) {
-        Instant instant = Instant.ofEpochMilli(l);
-        ZoneId zone = ZoneId.systemDefault();
-        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
-        return localDateTime;
+    private static String longTurnData(Long l) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = new Date(l);
+        return simpleDateFormat.format(date);
     }
 
     /**
@@ -210,7 +212,7 @@ public class ReportServiceImpl implements ReportService {
     @Override
     public PackageCodeTypeRes queryPackageCodeGeneral(ReportReq reportReq) {
         //0-准备时间参数
-        Map<String,LocalDateTime> map=new HashMap<String,LocalDateTime>();
+        Map<String,String> map=new HashMap<String,String>();
         //判断是否有参数值
         if(null!= reportReq.getValue()){
            //获取开始/结束时间
@@ -240,11 +242,10 @@ public class ReportServiceImpl implements ReportService {
             ListPackageCodeVo downloadPresentBean = reportServiceMapper.queryPackageCodeNum(map.get("beginDate"), map.get("endDate"), 2);
             //查询往期激活码(参数:开始时间,结束时间,1-同期/2-往期)
             ListPackageCodeVo activatePresentBean = reportServiceMapper.queryActivateCodeNum(map.get("beginDate"), map.get("endDate"));
-
             //计算增长率
             res.setCreatePercent(percentBigDecimal(res.getCreateBoxNumber()+res.getCreateCapNumber(), createPresentBean.getQrBoxNumber()+createPresentBean.getQrCapNumber()));
-            res.setCreatePercent(percentBigDecimal(res.getLoadBoxNumber()+res.getLoadCapNumber(), downloadPresentBean.getQrBoxNumber()+downloadPresentBean.getQrCapNumber()));
-            res.setCreatePercent(percentBigDecimal(res.getActivateBoxNumber()+res.getActivateCapNumber(), activatePresentBean.getQrBoxNumber()+activatePresentBean.getQrCapNumber()));
+            res.setLoadPercent(percentBigDecimal(res.getLoadBoxNumber()+res.getLoadCapNumber(), downloadPresentBean.getQrBoxNumber()+downloadPresentBean.getQrCapNumber()));
+            res.setActivatePercent(percentBigDecimal(res.getActivateBoxNumber()+res.getActivateCapNumber(), activatePresentBean.getQrBoxNumber()+activatePresentBean.getQrCapNumber()));
         }
 
         //返回参数
@@ -258,7 +259,7 @@ public class ReportServiceImpl implements ReportService {
      * @param reportReq
      * @param map
      */
-    private Map FillParam(ReportReq reportReq,Map<String,LocalDateTime> map) {
+    private Map FillParam(ReportReq reportReq,Map<String,String> map) {
         setQueryTime(reportReq);
         map=getBeforeWeekTime(reportReq.getValue().toString());
         return map;
@@ -269,20 +270,20 @@ public class ReportServiceImpl implements ReportService {
      * @param before 往期数
      * @return
      */
-    public static String percentBigDecimal(long present, long before) {
+    public static double percentBigDecimal(long present, long before) {
         BigDecimal preNum = BigDecimal.valueOf(present);
         BigDecimal sufNum = BigDecimal.valueOf(before);
         double result = countDecimal(preNum, sufNum);
         if (result > 0) {
-            return "+" + result + "%";
+            return  result;
         }
         if (result < 0) {
-            return "-" + Math.abs(result) + "%";
+            return -Math.abs(result);
         }
         if (result == 0) {
-            return "0%";
+            return 0;
         }
-        return null;
+        return 0;
     }
 
     public static double countDecimal(BigDecimal preNum, BigDecimal sufNum) {
@@ -341,20 +342,27 @@ public class ReportServiceImpl implements ReportService {
      * 获取往期时间(1-周,2-月)
      * @return
      */
-    public Map<String,LocalDateTime> getBeforeWeekTime(String value){
-        Map<String,LocalDateTime> map=new HashMap<String,LocalDateTime>();
+    public static Map<String,String> getBeforeWeekTime(String value){
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd ");
+        Map<String,String> map=new HashMap<String,String>();
+        Calendar calStart = Calendar.getInstance();
+        Calendar calEnd = Calendar.getInstance();
         if("1".equals(value)){
-            LocalDateTime now = LocalDateTime.now();
-            LocalDateTime todayOfLastWeek = now.minusDays(7);
-            map.put("beginDate",todayOfLastWeek.with(TemporalAdjusters.previous(DayOfWeek.SUNDAY)).plusDays(1));
-            map.put("endDate",todayOfLastWeek.with(TemporalAdjusters.next(DayOfWeek.MONDAY)).minusDays(1));
+            calStart.add(Calendar.DAY_OF_MONTH,-7);//上一周
+            calEnd.add(Calendar.DAY_OF_MONTH,-7);
+            calStart.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+            calEnd.setFirstDayOfWeek(Calendar.MONDAY);
+            calEnd.set(Calendar.DAY_OF_WEEK, calEnd.getFirstDayOfWeek() + 6);
         }else{
-            DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-            LocalDateTime date2 = LocalDateTime.parse(fmt.format(LocalDateTime.now()), fmt);
-            LocalDateTime localDateTime = date2.minusMonths(1);
-            map.put("beginDate",localDateTime.with(TemporalAdjusters.firstDayOfMonth()));
-            map.put("endDate",localDateTime.with(TemporalAdjusters.lastDayOfMonth()));
+            calStart.add(Calendar.MONTH, -1);//上一月
+            calEnd.add(Calendar.MONTH, -1);
+            calStart.set(Calendar.DAY_OF_MONTH, 1);
+            calEnd.set(Calendar.DAY_OF_MONTH, calEnd.getActualMaximum(Calendar.DAY_OF_MONTH));
         }
+        String beginTime = simpleDateFormat.format(calStart.getTime()) + "00:00:00";
+        String endTime = simpleDateFormat.format(calEnd.getTime()) + "23:59:59";
+        map.put("beginDate",beginTime);
+        map.put("endDate",endTime);
         return map;
     }
 

+ 15 - 0
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrPackageBookingOrderMapper.xml

@@ -77,4 +77,19 @@
         </where>
     </select>
 
+    <select id="reservationOrderQuery" resultType="com.abi.qms.platform.dao.vo.result.ReservationOrderQueryVO">
+        SELECT
+            booking_order.id AS bookingOrderId,
+            booking_order.booking_order AS bookingOrder,
+            booking_order.material_name AS materialName,
+            booking_order.qr_type AS qrType,
+            booking_order.purchase_count AS purchaseCount,
+            factory.id AS factoryCoverId,
+            factory.factory_name AS factoryName,
+			factory.is_first_factory AS isFirstFactory
+        FROM
+            qr_package_booking_order AS booking_order
+            LEFT JOIN base_factory AS factory ON booking_order.factory_cover_id = factory.id
+    </select>
+
 </mapper>

+ 7 - 4
abi-cloud-qr-platform-server/src/test/java/com/abi/qms/platform/TableStoreTest.java

@@ -4,10 +4,7 @@ import cn.hutool.json.JSONUtil;
 import com.abi.task.common.tablestore.TableStoreUtils;
 import com.abi.task.common.tablestore.common.TableStoreReq;
 import com.abi.task.common.tablestore.common.TableStoreRes;
-import com.alicloud.openservices.tablestore.model.Column;
-import com.alicloud.openservices.tablestore.model.ColumnValue;
-import com.alicloud.openservices.tablestore.model.DeleteTableRequest;
-import com.alicloud.openservices.tablestore.model.Row;
+import com.alicloud.openservices.tablestore.model.*;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -98,4 +95,10 @@ public class TableStoreTest {
     }
 
 
+    @Test
+    public void updateTable(){
+        String tableName = "qr_code";
+        UpdateTableResponse response = tableStoreUtils.updateTable(100000,tableName);
+        log.info("更新表结构吞吐:{}",JSONUtil.toJsonStr(response));
+    }
 }