Переглянути джерело

微信稽查案件、流向查询记录

bess-WeiganCai 3 роки тому
батько
коміт
aeaaa678f2

+ 36 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/wx/WxFlowQueryRecordController.java

@@ -0,0 +1,36 @@
+package com.abi.qms.platform.controller.wx;
+
+import com.abi.platform.Base.BaseResponse;
+import com.abi.qms.platform.dto.req.WxPageListFlowQueryRecordReq;
+import com.abi.qms.platform.dto.res.WxPageListFlowQueryRecordRes;
+import com.abi.qms.platform.service.IFlowQueryRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+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;
+
+/**
+ * 微信流向查询记录 Controller
+ *
+ * @author WeiganCai
+ * @date: 2021-08-23
+ */
+@Slf4j
+@Api(tags = "微信流向查询记录")
+@RestController
+@RequestMapping("/wx/flow/record")
+public class WxFlowQueryRecordController {
+
+	@Autowired
+	private IFlowQueryRecordService flowQueryRecordService;
+
+	@ApiOperation("查询流向查询记录 列表")
+	@GetMapping("/page/list")
+	public BaseResponse<WxPageListFlowQueryRecordRes> pageList(WxPageListFlowQueryRecordReq req) {
+		WxPageListFlowQueryRecordRes res = flowQueryRecordService.wxPageListQuery(req);
+		return BaseResponse.create(res);
+	}
+}

+ 6 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/wx/WxInspectionCaseController.java

@@ -2,9 +2,11 @@ package com.abi.qms.platform.controller.wx;
 
 import com.abi.platform.Base.BaseResponse;
 import com.abi.qms.platform.dto.req.WxSaveInspectionCaseReq;
+import com.abi.qms.platform.service.IInspectionCaseService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -23,9 +25,13 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/wx/inspectionCase")
 public class WxInspectionCaseController {
 
+    @Autowired
+    private IInspectionCaseService inspectionCaseService;
+
     @ApiOperation("新增稽查案件 ")
     @PostMapping("/save")
     public BaseResponse saveInspectionCase(@Validated @RequestBody WxSaveInspectionCaseReq req) {
+        inspectionCaseService.wxSaveInspectionCase(req);
         return BaseResponse.create();
     }
 

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

@@ -4,8 +4,10 @@ package com.abi.qms.platform.dao.mapper;
 import com.abi.qms.platform.dao.entity.FlowQueryRecord;
 import com.abi.qms.platform.dao.vo.result.FlowQueryRecordInfoVo;
 import com.abi.qms.platform.dao.vo.result.ListFlowQueryRecordVO;
+import com.abi.qms.platform.dao.vo.result.WxListFlowQueryRecordVO;
 import com.abi.qms.platform.dto.req.ExportFlowQueryRecordReq;
 import com.abi.qms.platform.dto.req.PageListFlowQueryRecordReq;
+import com.abi.qms.platform.dto.req.WxPageListFlowQueryRecordReq;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
@@ -44,4 +46,10 @@ public interface FlowQueryRecordMapper extends BaseMapper<FlowQueryRecord> {
      * @return
      */
     List<ListFlowQueryRecordVO> queryList(@Param("param") ExportFlowQueryRecordReq req);
+
+    /**
+     * 微信分页列表查询
+     */
+    IPage<WxListFlowQueryRecordVO> wxPageListQuery(IPage page, @Param("param") WxPageListFlowQueryRecordReq req);
+
 }

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

@@ -0,0 +1,48 @@
+package com.abi.qms.platform.dao.vo.result;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 流向查询记录
+ * @author WeiganCai
+ * @date: 2021-08-23
+ */
+@Data
+@ApiModel
+public class WxListFlowQueryRecordVO {
+	private Long id;
+
+	@ApiModelProperty(value = "流向状态")
+	private String flowStatus;
+
+	@ApiModelProperty(value = "箱码")
+	private String boxCode;
+
+	@ApiModelProperty(value = "托盘码")
+	private String trayCode;
+
+	@ApiModelProperty(value = "SKU编码")
+	private String skuCode;
+
+	@ApiModelProperty(value = "SKU名称")
+	private String skuName;
+
+	@ApiModelProperty(value = "案件编号")
+	private String caseNumber;
+
+	@ApiModelProperty(value = "案件名称")
+	private String caseName;
+
+	@ApiModelProperty(value = "省份")
+	private String provinceName;
+
+	@ApiModelProperty(value = "城市")
+	private String cityName;
+
+	@ApiModelProperty(value = "查询时间")
+	private LocalDateTime queryTime;
+}

+ 36 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/WxPageListFlowQueryRecordReq.java

@@ -0,0 +1,36 @@
+package com.abi.qms.platform.dto.req;
+
+import com.abi.task.common.api.base.PageReq;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 流向查询记录 入参
+ *
+ * @author WeiganCai
+ * @date: 2021-08-23
+ */
+@ApiModel
+@Data
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class WxPageListFlowQueryRecordReq extends PageReq implements Serializable {
+    @ApiModelProperty(value = "创建时间-开始(yyyy-MM-dd HH:mm:ss)")
+    private LocalDateTime startQueryTime;
+
+    @ApiModelProperty(value = "创建时间-结束(yyyy-MM-dd HH:mm:ss)")
+    private LocalDateTime endQueryTime;
+
+    @ApiModelProperty(value = "案件编号")
+    private String caseNumber;
+
+    @ApiModelProperty(value = "案件名称")
+    private String caseName;
+
+}

+ 6 - 6
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/WxSaveInspectionCaseReq.java

@@ -34,17 +34,17 @@ public class WxSaveInspectionCaseReq implements Serializable {
     private Integer caseNumberGenerateStrategy;
 
     /**
-     * 省份id
+     * 纬度
      */
-    @ApiModelProperty(value = "省份ID")
-    private Long provinceId;
+    @ApiModelProperty(value = "纬度")
+    private Double latitude;
 
 
     /**
-     * 城市id
+     * 精度
      */
-    @ApiModelProperty(value = "城市ID")
-    private Long cityId;
+    @ApiModelProperty(value = "精度")
+    private Double longitude;
 
     /**
      * 案件编号

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

@@ -0,0 +1,68 @@
+package com.abi.qms.platform.dto.res;
+
+import com.abi.task.common.api.base.PageResp;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 流向查询记录 出参
+ *
+ * @author WeiganCai
+ * @date: 2021-08-23
+ */
+@ApiModel
+@Data
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class WxPageListFlowQueryRecordRes extends PageResp implements Serializable {
+    /**
+     * 数据列表
+     */
+    @ApiModelProperty(value = "流向数据列表")
+    private List<FlowQueryRecordBean> flowQueryRecordList;
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(value = "WxPageListFlowQueryRecordRes_FlowQueryRecordBean")
+    public static class FlowQueryRecordBean implements Serializable {
+        @ApiModelProperty(value = "流向状态")
+        private String flowStatus;
+
+        @ApiModelProperty(value = "箱码")
+        private String boxCode;
+
+        @ApiModelProperty(value = "托盘码")
+        private String trayCode;
+
+        @ApiModelProperty(value = "SKU")
+        private String skuName;
+
+        @ApiModelProperty(value = "案件编号")
+        private String caseNumber;
+
+        @ApiModelProperty(value = "案件名称")
+        private String caseName;
+
+        @ApiModelProperty(value = "省份")
+        private String provinceName;
+
+        @ApiModelProperty(value = "城市")
+        private String cityName;
+
+        @ApiModelProperty(value = "查询时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime queryTime;
+    }
+
+
+}

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

@@ -4,9 +4,11 @@ package com.abi.qms.platform.service;
 import com.abi.qms.platform.dto.req.AddFlowQueryRecordReq;
 import com.abi.qms.platform.dto.req.ExportFlowQueryRecordReq;
 import com.abi.qms.platform.dto.req.PageListFlowQueryRecordReq;
+import com.abi.qms.platform.dto.req.WxPageListFlowQueryRecordReq;
 import com.abi.qms.platform.dto.res.ExportFlowQueryRecordRes;
 import com.abi.qms.platform.dto.res.GetFlowQueryRecordInfo;
 import com.abi.qms.platform.dto.res.PageListFlowQueryRecordRes;
+import com.abi.qms.platform.dto.res.WxPageListFlowQueryRecordRes;
 
 import java.util.Collection;
 import java.util.List;
@@ -50,4 +52,9 @@ public interface IFlowQueryRecordService {
      * @return 数据列表
      */
     List<ExportFlowQueryRecordRes> export(ExportFlowQueryRecordReq req);
+
+    /**
+     * 微信分页查询列表
+     */
+	WxPageListFlowQueryRecordRes wxPageListQuery(WxPageListFlowQueryRecordReq req);
 }

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

@@ -83,4 +83,9 @@ public interface IInspectionCaseService {
      * @return 数据列表
      */
     List<ExportInspectionCaseRes> export(ExportInspectionCaseReq req);
+
+    /**
+     * 微信新增稽查案件
+     */
+	void wxSaveInspectionCase(WxSaveInspectionCaseReq req);
 }

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

@@ -14,12 +14,16 @@ import com.abi.qms.platform.dao.mapper.FlowQueryRecordFlowMapper;
 import com.abi.qms.platform.dao.mapper.FlowQueryRecordMapper;
 import com.abi.qms.platform.dao.vo.result.FlowQueryRecordInfoVo;
 import com.abi.qms.platform.dao.vo.result.ListFlowQueryRecordVO;
+import com.abi.qms.platform.dao.vo.result.WxListFlowQueryRecordVO;
 import com.abi.qms.platform.dto.req.AddFlowQueryRecordReq;
 import com.abi.qms.platform.dto.req.ExportFlowQueryRecordReq;
 import com.abi.qms.platform.dto.req.PageListFlowQueryRecordReq;
+import com.abi.qms.platform.dto.req.WxPageListFlowQueryRecordReq;
 import com.abi.qms.platform.dto.res.ExportFlowQueryRecordRes;
 import com.abi.qms.platform.dto.res.GetFlowQueryRecordInfo;
 import com.abi.qms.platform.dto.res.PageListFlowQueryRecordRes;
+import com.abi.qms.platform.dto.res.WxPageListFlowQueryRecordRes;
+import com.abi.qms.platform.feign.SkuFeign;
 import com.abi.qms.platform.infrastructure.util.AssertUtil;
 import com.abi.qms.platform.infrastructure.util.PageUtil;
 import com.abi.qms.platform.service.FlowQueryRecordBoxStackService;
@@ -29,6 +33,7 @@ import com.abi.task.common.utils.PojoConverterUtils;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -54,6 +59,8 @@ public class FlowQueryRecordServiceImpl implements IFlowQueryRecordService {
     @Autowired
     private FlowQueryRecordBoxStackMapper queryRecordBoxStackMapper;
 
+    @Autowired
+    private SkuFeign skuFeign;
 
     /**
      * 分页查询列表
@@ -220,6 +227,30 @@ public class FlowQueryRecordServiceImpl implements IFlowQueryRecordService {
         return flowQueryRecordBeanList;
     }
 
+    /**
+     * 微信分页查询列表
+     */
+    @Override
+    public WxPageListFlowQueryRecordRes wxPageListQuery(WxPageListFlowQueryRecordReq req) {
+        IPage<WxListFlowQueryRecordVO> pageResult = flowQueryRecordMapper.wxPageListQuery(PageUtil.createPage(req),req);
+        List<WxListFlowQueryRecordVO> recordList = pageResult.getRecords();
+        recordList.forEach(record -> {
+            String skuCode = record.getSkuCode();
+            if (StringUtils.isNotBlank(skuCode)) {
+                SkuFeign.Sku sku = skuFeign.getSkuByCode(record.getSkuCode());
+                if (sku != null) {
+                    record.setSkuName(sku.getSkuName());
+                }
+            }
+        });
+
+        WxPageListFlowQueryRecordRes res = new WxPageListFlowQueryRecordRes();
+        PageUtil.copyPageInfo(res, pageResult);
+        List<WxPageListFlowQueryRecordRes.FlowQueryRecordBean> flowQueryRecordBeanList = PojoConverterUtils.copyList(recordList, WxPageListFlowQueryRecordRes.FlowQueryRecordBean.class);
+        res.setFlowQueryRecordList(flowQueryRecordBeanList);
+
+        return res;
+    }
 
     /**
      * 校验-新增流向查询记录请求内容

+ 20 - 3
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/InspectionCaseServiceImpl.java

@@ -68,7 +68,6 @@ public class InspectionCaseServiceImpl implements IInspectionCaseService {
     @Autowired
     private FlowQueryService flowQueryService;
 
-
     /**
      * 新增案件
      *
@@ -77,6 +76,10 @@ public class InspectionCaseServiceImpl implements IInspectionCaseService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void addInspectionCase(AddInspectionCaseReq addReq) {
+        this.addInspectionCase(addReq, ReqChannelTypeEnum.BACKSTAGE);
+    }
+
+    private void addInspectionCase(AddInspectionCaseReq addReq, ReqChannelTypeEnum reqChannelType) {
 
         //============先校验箱码============
         List<AddInspectionCaseReq.BoxCode> involvedBoxCodes = addReq.getInvolvedBoxCodes();
@@ -133,8 +136,8 @@ public class InspectionCaseServiceImpl implements IInspectionCaseService {
         inspectionCase.setBoxCodeCount((long) addReq.getInvolvedBoxCodes().size());
         //案件名称
         inspectionCase.setCaseNumber(caseNumber);
-        //设置渠道=>后台
-        inspectionCase.setChannel(ReqChannelTypeEnum.BACKSTAGE.getCode());
+        //设置渠道
+        inspectionCase.setChannel(reqChannelType.getCode());
         inspectionCaseMapper.insert(inspectionCase);
 
 
@@ -487,6 +490,20 @@ public class InspectionCaseServiceImpl implements IInspectionCaseService {
         return exportDataList;
     }
 
+    /**
+     * 微信新增稽查案件
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void wxSaveInspectionCase(WxSaveInspectionCaseReq req) {
+        AddInspectionCaseReq caseReq = PojoConverterUtils.copy(req, AddInspectionCaseReq.class);
+        // TODO 经纬度转地址
+        caseReq.setProvinceId(320000L);
+        caseReq.setCityId(320100L);
+
+        this.addInspectionCase(caseReq, ReqChannelTypeEnum.WECHAT);
+    }
+
 
     /**
      * 查询箱码对应流向信息

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

@@ -56,6 +56,18 @@
         <result property="queryUserName" column="create_user_name"/>
     </resultMap>
 
+    <resultMap id="WxListFlowQueryRecordVO" type="com.abi.qms.platform.dao.vo.result.WxListFlowQueryRecordVO">
+        <result property="id" column="id"/>
+        <result property="flowStatus" column="flow_status"/>
+        <result property="boxCode" column="box_code"/>
+        <result property="trayCode" column="tray_code"/>
+        <result property="caseNumber" column="case_number"/>
+        <result property="caseName" column="case_name"/>
+        <result property="provinceName" column="province_name"/>
+        <result property="cityName" column="city_name"/>
+        <result property="queryTime" column="create_time"/>
+    </resultMap>
+
     <!--    不分页查询列表-->
     <select id="queryList" resultMap="ListFlowQueryRecordVO">
         <include refid="queryList"/>
@@ -189,5 +201,37 @@
         LEFT JOIN `base_sap_sku` AS sku ON (fqr.`sku_code` = sku.`sku_code` AND sku.`is_delete`=0)
     </select>
 
+    <select id="wxPageListQuery" resultMap="WxListFlowQueryRecordVO">
+        SELECT
+            f.id, f.flow_status, f.box_code, f.tray_code, f.sku_code, f.create_time,
+            i.case_number, i.case_name,
+            p.name AS 'province_name', c.name AS 'city_name'
+        FROM
+            flow_query_record f
+        LEFT JOIN inspection_case_box_code ib ON f.box_code = ib.box_code
+        LEFT JOIN inspection_case i ON ib.inspection_case_id = i.id
+        LEFT JOIN base_area p ON i.province_id = p.id
+        LEFT JOIN base_area c ON i.city_id = c.id
+        <where>
+            f.is_delete = 0 AND ib.is_delete = 0 AND i.is_delete = 0 AND p.is_delete = 0 AND c.is_delete = 0
+            <!-- 创建时间-开始 -->
+            <if test="param.startQueryTime != null">
+                AND f.create_time >= #{param.startQueryTime}
+            </if>
+            <!-- 创建时间-结束 -->
+            <if test="param.endQueryTime != null">
+                AND f.create_time &lt;= #{param.endQueryTime}
+            </if>
+            <!-- 案件编号 -->
+            <if test="param.caseNumber != null and param.caseNumber != ''">
+                AND i.case_number = #{param.caseNumber}
+            </if>
+            <!-- 案件名称 -->
+            <if test="param.caseName != null and param.caseName != ''">
+                AND i.case_name like concat('%',#{param.caseName},'%')
+            </if>
+        </where>
+    </select>
+
 
 </mapper>