This commit is contained in:
linfso 2024-06-02 06:27:44 +08:00
parent 3c2c207cb2
commit f1e0b82e2e
8 changed files with 153 additions and 81 deletions

View File

@ -23,6 +23,7 @@ import com.xdadan.erp.common.core.domain.entity.SysUser;
import com.xdadan.erp.emis.domain.*;
import com.xdadan.erp.emis.domain.enumtype.ScanType;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.ScanStatDataInfo;
import com.xdadan.erp.emis.domain.vo.scan.ScanInfo;
import com.xdadan.erp.emis.domain.vo.scan.ScanResult;
import com.xdadan.erp.emis.service.EmisBaseService;
@ -79,12 +80,12 @@ public class EmisTmsScanRecordController extends BaseController
/**
* 签收签收统计数据
*/
@PreAuthorize("@ss.hasPermi('emis:emisTmsScanRecord:signStat')")
@GetMapping("/querySignStatData")
public TableDataInfo querySignStatData(EmisTmsScanRecord emisTmsScanRecord)
// @PreAuthorize("@ss.hasPermi('emis:emisTmsScanRecord:signStat')")
@GetMapping("/queryScanStatDataList")
public TableDataInfo queryScanStatDataList(EmisTmsScanRecord emisTmsScanRecord)
{
startPage();
List<Map> list = emisTmsScanRecordService.querySignStatData(emisTmsScanRecord);
List<ScanStatDataInfo> list = emisTmsScanRecordService.queryScanStatDataList(emisTmsScanRecord);
return getDataTable(list);
}

View File

@ -115,6 +115,8 @@ public class EmisTmsScanRecord extends BaseEntity
private String status;
// 扩展参数
private EmisWaybill waybillDetail;
}

View File

@ -0,0 +1,32 @@
package com.xdadan.erp.emis.domain.stat;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xdadan.erp.common.core.domain.BaseEntity;
import com.xdadan.erp.emis.domain.EmisTmsScanRecord;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 扫描统计信息,自定义VO,非表结构
*/
@Data
public class ScanStatDataInfo extends EmisTmsScanRecord {
private static final long serialVersionUID = 1L;
// 扫描记录数,已签收数量,未签收数量
private Integer scanCount;
private Integer signCount;
private Integer unSignCount;
private String billCodeStr;
private String scanSiteName;
}

View File

@ -12,9 +12,12 @@ package com.xdadan.erp.emis.mapper;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xdadan.erp.emis.domain.EmisTmsScanPicInfo;
import com.xdadan.erp.emis.domain.EmisTmsScanRecord;
import com.xdadan.erp.emis.domain.stat.ScanStatDataInfo;
import org.apache.ibatis.annotations.Param;
/**
@ -81,4 +84,13 @@ public interface EmisTmsScanRecordMapper extends BaseMapper<EmisTmsScanRecord>
public List<EmisTmsScanRecord> selectTraceListByBillCode(String billCode);
/**
* 获取签收异常对比数据
* @param emisTmsScanRecord
* @return
*/
public List<ScanStatDataInfo> queryScanStatDataList(EmisTmsScanRecord emisTmsScanRecord);
}

View File

@ -14,6 +14,7 @@ import java.util.Map;
import com.xdadan.erp.emis.domain.EmisTmsScanRecord;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.ScanStatDataInfo;
import com.xdadan.erp.emis.domain.vo.scan.ScanInfo;
import com.xdadan.erp.emis.domain.vo.scan.ScanResult;
@ -94,13 +95,11 @@ public interface IEmisTmsScanRecordService
public List<Map> queryWaybillTraceInfo(String billCode, String lang);
/**
* 签收异常对比
* 签收异常对比-扫描统计数据
* @param emisTmsScanRecord
* @return
*/
public List<Map> querySignStatData(EmisTmsScanRecord emisTmsScanRecord);
public List<ScanStatDataInfo> queryScanStatDataList(EmisTmsScanRecord emisTmsScanRecord);
}

View File

@ -18,6 +18,7 @@ import com.xdadan.erp.common.utils.DateUtils;
import com.xdadan.erp.emis.domain.*;
import com.xdadan.erp.emis.domain.enumtype.ScanType;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.ScanStatDataInfo;
import com.xdadan.erp.emis.domain.vo.scan.ScanInfo;
import com.xdadan.erp.emis.domain.vo.scan.ScanResult;
import com.xdadan.erp.emis.domain.vo.scan.ScanResultItem;
@ -673,13 +674,21 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
}
/**
* 查询扫描统计数据
* @param emisTmsScanRecord
* @return
*/
@Override
public List<Map> getTraceListByBillCode(String billCode) {
return emisTmsScanRecordMapper.selectTraceListByBillCode(billCode);
public List<ScanStatDataInfo> queryScanStatDataList(EmisTmsScanRecord emisTmsScanRecord){
return emisTmsScanRecordMapper.queryScanStatDataList(emisTmsScanRecord);
}
}

View File

@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xdadan.erp.emis.mapper.EmisTmsScanRecordMapper">
<resultMap type="EmisTmsScanRecord" id="EmisTmsScanRecordResult">
<resultMap type="EmisTmsScanRecord" id="BaseEmisTmsScanRecordResult">
<result property="id" column="id" />
<result property="billCode" column="bill_code" />
<result property="orderSn" column="order_sn" />
@ -53,6 +53,11 @@
<result property="updateSite" column="update_site" />
<result property="createSite" column="create_site" />
</resultMap>
<resultMap type="EmisTmsScanRecord" extends="BaseEmisTmsScanRecordResult" id="EmisTmsScanRecordResult" >
<association property="waybillDetail"
column="bill_code"
select="com.xdadan.erp.emis.mapper.EmisWaybillMapper.selectWaybillBaseInfoByBillCode"
@ -61,13 +66,81 @@
</resultMap>
<!-- 扫描统计 com.xdadan.erp.emis.domain.stat.-->
<resultMap type="ScanStatDataInfo" id="ScanStatDataInfoResult" extends="EmisTmsScanRecordResult">
<sql id="selectEmisTmsScanRecordVo">
select id, bill_code, order_sn, scan_type, pre_or_next_station, pre_or_next_station_code, pre_or_next_station_phone, pre_or_next_man_code, pre_or_next_man_phone, scan_date, scan_man_code, scan_man_phone, scan_man, pre_or_next_man, scan_site, scan_site_code, scan_site_phone, scan_weight, weight, dest_site_code, dest_code, dispatch_or_send_man, dispatch_or_send_man_code, dispatch_or_send_man_phone, sign_date, sign_man, sign_site, sign_site_code, record_man, record_man_code, record_man_phone, record_site_code, car_no, bag_no, truck_man, truck_code, data_from, pic_url, status, del_flag, create_by, create_time, update_by, update_time, remark, update_site, create_site from emis_tms_scan_record
</sql>
<result property="scanType" column="scan_type" />
<result property="scanSiteCode" column="scan_site_code" />
<!-- 1+ 查询-->
<result property="scanCount" column="scan_count" />
<result property="billCodeStr" column="bill_code_str" />
<result property="signCount" column="sign_count" />
<association property="signCount"
column="bill_code_str"
select="selectSignCountByBillCodeStr"
fetchType="lazy"
/>
<association property="scanSiteName"
column="scan_site_code"
select="selectSiteNameByCode"
fetchType="lazy"
/>
</resultMap>
<select id="selectSiteNameByCode" parameterType="String" resultType="string">
select a.site_name from emis_site a where a.site_code = #{code} limit 1
</select>
<!-- 根据获取签收数量统计 -->
<select id="selectSignCountByBillCodeStr" parameterType="string" resultType="int">
select count(DISTINCT bill_code) as sign_cnt from emis_tms_scan_record
where scan_type='50' and FIND_IN_SET(bill_code,#{billCodeStr})
</select>
<!--获取扫描统计数据-->
<select id="queryScanStatData" parameterType="EmisTmsScanRecord" resultMap="ScanStatDataInfoResult">
select scan_site_code ,
count(DISTINCT bill_code) as scan_count,
GROUP_CONCAT(DISTINCT bill_code) as bill_code_str
from emis_tms_scan_record
where del_flag='0' and scan_type=#{scanType} and scan_site_code=#{scanSiteCode}
<if test="params.beginScanDate != null and params.beginScanDate != ''">
and scan_date <![CDATA[ >= ]]> #{params.beginScanDate}
</if>
<if test="params.endScanDate != null and params.endScanDate != ''">
and scan_date <![CDATA[ <= ]]> #{params.endScanDate}
</if>
<if test="params.isSubBill != null and params.isSubBill = '1'">
</if>
GROUP BY scan_site_code
</select>
<!-- 获取物流轨迹 -->
<select id="selectTraceListByBillCode" parameterType="string" resultMap="EmisTmsScanRecordResult">
<include refid="selectEmisTmsScanRecordVo"/>
where del_flag='0' and del_flag='0' and bill_code=#{billCode}
order by create_time desc;
</select>
<!-- 获取最后一条记录 -->
<select id="selectLastRecordByBillCode" parameterType="string" resultMap="EmisTmsScanRecordResult">
select id, bill_code, order_sn, scan_type, pre_or_next_station, pre_or_next_station_code, pre_or_next_station_phone, pre_or_next_man_code, pre_or_next_man_phone, scan_date, scan_man_code, scan_man_phone, scan_man, pre_or_next_man, scan_site, scan_site_code, scan_site_phone, scan_weight, weight, dest_site_code, dest_code, dispatch_or_send_man, dispatch_or_send_man_code, dispatch_or_send_man_phone, sign_date, sign_man, sign_site, sign_site_code, record_man, record_man_code, record_man_phone, record_site_code, car_no, bag_no, truck_man, truck_code, data_from, pic_url, status, del_flag, create_by, create_time, update_by, update_time, remark, update_site, create_site
from emis_tms_scan_record a
where del_flag='0' and a.bill_code = #{billCode}
order by create_time desc limit 1
</select>
<!-- 检查扫描唯一性 -->
<select id="checkSiteScanUnique" parameterType="EmisTmsScanRecord" resultType="int">
select count(1) from emis_tms_scan_record
where bill_code = #{billCode} and scan_type=#{scanType}
@ -76,13 +149,15 @@
limit 1
</select>
<!-- 获取最后一条记录 -->
<select id="selectLastRecordByBillCode" parameterType="string" resultMap="EmisTmsScanRecordResult">
select id, bill_code, order_sn, scan_type, pre_or_next_station, pre_or_next_station_code, pre_or_next_station_phone, pre_or_next_man_code, pre_or_next_man_phone, scan_date, scan_man_code, scan_man_phone, scan_man, pre_or_next_man, scan_site, scan_site_code, scan_site_phone, scan_weight, weight, dest_site_code, dest_code, dispatch_or_send_man, dispatch_or_send_man_code, dispatch_or_send_man_phone, sign_date, sign_man, sign_site, sign_site_code, record_man, record_man_code, record_man_phone, record_site_code, car_no, bag_no, truck_man, truck_code, data_from, pic_url, status, del_flag, create_by, create_time, update_by, update_time, remark, update_site, create_site
from emis_tms_scan_record a
where a.bill_code = #{billCode}
order by create_time desc limit 1
</select>
<sql id="selectEmisTmsScanRecordVo">
select id, bill_code, order_sn, scan_type, pre_or_next_station, pre_or_next_station_code, pre_or_next_station_phone, pre_or_next_man_code, pre_or_next_man_phone, scan_date, scan_man_code, scan_man_phone, scan_man, pre_or_next_man, scan_site, scan_site_code, scan_site_phone, scan_weight, weight, dest_site_code, dest_code, dispatch_or_send_man, dispatch_or_send_man_code, dispatch_or_send_man_phone, sign_date, sign_man, sign_site, sign_site_code, record_man, record_man_code, record_man_phone, record_site_code, car_no, bag_no, truck_man, truck_code, data_from, pic_url, status, del_flag, create_by, create_time, update_by, update_time, remark, update_site, create_site from emis_tms_scan_record
</sql>
<select id="selectEmisTmsScanRecordList" parameterType="EmisTmsScanRecord" resultMap="EmisTmsScanRecordResult">
@ -149,8 +224,6 @@
order by create_time desc
</select>
<!-- and params.queryType = 2-->
<select id="selectEmisTmsScanRecordById" parameterType="Long" resultMap="EmisTmsScanRecordResult">
@ -327,10 +400,4 @@
</delete>
<select id="selectTraceListByBillCode" parameterType="string" resultMap="EmisTmsScanRecordResult">
<include refid="selectEmisTmsScanRecordVo"/>
where del_flag='0' and bill_code=#{billCode}
order by create_time desc;
</select>
</mapper>

View File

@ -208,58 +208,8 @@
<association property="lastScanRecord" column="bill_code" select="selectLastRecordByBillCode"/>
</resultMap>
<resultMap type="EmisTmsScanRecord" id="EmisTmsScanRecordResult">
<result property="id" column="id" />
<result property="billCode" column="bill_code" />
<result property="orderSn" column="order_sn" />
<result property="scanType" column="scan_type" />
<result property="preOrNextStation" column="pre_or_next_station" />
<result property="preOrNextStationCode" column="pre_or_next_station_code" />
<result property="preOrNextStationPhone" column="pre_or_next_station_phone" />
<result property="preOrNextManCode" column="pre_or_next_man_code" />
<result property="preOrNextManPhone" column="pre_or_next_man_phone" />
<result property="scanDate" column="scan_date" />
<result property="scanManCode" column="scan_man_code" />
<result property="scanManPhone" column="scan_man_phone" />
<result property="scanMan" column="scan_man" />
<result property="preOrNextMan" column="pre_or_next_man" />
<result property="scanSite" column="scan_site" />
<result property="scanSiteCode" column="scan_site_code" />
<result property="scanSitePhone" column="scan_site_phone" />
<result property="scanWeight" column="scan_weight" />
<result property="weight" column="weight" />
<result property="destSiteCode" column="dest_site_code" />
<result property="destCode" column="dest_code" />
<result property="dispatchOrSendMan" column="dispatch_or_send_man" />
<result property="dispatchOrSendManCode" column="dispatch_or_send_man_code" />
<result property="dispatchOrSendManPhone" column="dispatch_or_send_man_phone" />
<result property="signDate" column="sign_date" />
<result property="signMan" column="sign_man" />
<result property="signSite" column="sign_site" />
<result property="signSiteCode" column="sign_site_code" />
<result property="recordMan" column="record_man" />
<result property="recordManCode" column="record_man_code" />
<result property="recordManPhone" column="record_man_phone" />
<result property="recordSiteCode" column="record_site_code" />
<result property="carNo" column="car_no" />
<result property="bagNo" column="bag_no" />
<result property="truckMan" column="truck_man" />
<result property="truckCode" column="truck_code" />
<result property="dataFrom" column="data_from" />
<result property="picUrl" column="pic_url" />
<result property="status" column="status" />
<result property="delFlag" column="del_flag" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="updateSite" column="update_site" />
<result property="createSite" column="create_site" />
</resultMap>
<select id="selectLastRecordByBillCode" parameterType="string" resultMap="EmisTmsScanRecordResult">
<!-- 获取订单最后一条扫描记录 -->
<select id="selectLastRecordByBillCode" parameterType="string" resultMap="com.xdadan.erp.emis.mapper.EmisTmsScanRecordMapper.BaseEmisTmsScanRecordResult">
select id, bill_code, order_sn, scan_type, pre_or_next_station, pre_or_next_station_code, pre_or_next_station_phone, pre_or_next_man_code, pre_or_next_man_phone, scan_date, scan_man_code, scan_man_phone, scan_man, pre_or_next_man, scan_site, scan_site_code, scan_site_phone, scan_weight, weight, dest_site_code, dest_code, dispatch_or_send_man, dispatch_or_send_man_code, dispatch_or_send_man_phone, sign_date, sign_man, sign_site, sign_site_code, record_man, record_man_code, record_man_phone, record_site_code, car_no, bag_no, truck_man, truck_code, data_from, pic_url, status, del_flag, create_by, create_time, update_by, update_time, remark, update_site, create_site
from emis_tms_scan_record a
where a.bill_code = #{billCode} limit 1