This commit is contained in:
linfso 2024-05-02 00:18:28 +08:00
parent 1294ecde8f
commit 20f53510df
4 changed files with 178 additions and 44 deletions

View File

@ -5,15 +5,15 @@ import lombok.Getter;
@Getter
public enum EmisBizErrorType {
PARAM_ERROR1("E0001", "参数不完整"),
CALC_FEE_ERROR("E0001", "运费计算错误"),
CALC_WEIGHT_ERROR("E0002", "重量计算错误"),
CALC_QUOTE_ERROR("E3002", "报价未配置"),
PARAM_ERROR1("E001", "参数不完整"),
CALC_FEE_ERROR("E002", "运费计算错误"),
CALC_WEIGHT_ERROR("E003", "重量计算错误"),
CALC_QUOTE_ERROR("E004", "报价未配置"),
BILL_LOCK("E9001", "已锁账,不允许修改"),
BILL_LOCK("E901", "已锁账,不允许修改"),
NOT_EXISTS("E902","运单不存在"),
SUCCESS("0000", "成功"),
FAIL("9999", "失败"),

View File

@ -2,32 +2,130 @@ package com.xdadan.erp.emis.domain.enumtype;
public enum ScanType {
ACCEPT("收件扫描"),
GOT("揽件扫描"),
ARRIVAL("入中转"),
DEPARTURE("出中转"),
SENT("派件中"),
INBOUND("第三方代收入库"),
OUTBOUND("第三方代收快递员取出"),
SIGNED("已签收"),
SIGNFAIL("签收失败"),
RETURN("退回件"),
ISSUE("问题件"),
REJECTION("拒收"),
OTHER("其他"),
OVERSEA_IN("入库扫描"),
OVERSEA_OUT("出库扫描"),
CLEARANCE_START("清关开始"),
CLEARANCE_FINISH("清关结束"),
CLEARANCE_FAIL("清关失败"),
OVERSEA_ARRIVAL("干线到达"),
OVERSEA_DEPARTURE("干线离开"),
TRANSFER("转单"),
// 1 收件
// 2 发件
// 3 到件
// 4 派件
// 5 客户签收
// 10 订单创建成功
// 100 等待派送
// 150 仓库入库
// 180 干线集包
// 190 仓库出口
// 200 干线揽收成功
// 220 干线航班起飞
// 221 干线海运出港
// 222 干线车辆出发
// 230 干线航班落地
// 231 干线船舶到港
// 232 干线车辆到达
// 330 清关提货
// 360 清关中
// 370 清关放行
// 415 运输中
// 430 海外签收
// 730 退货完成
// -1 问题件
//-------------------------
/*
10 揽收扫描
20 发件扫描
30 到件扫描
40 派件扫描
50 签收扫描
51 签收异常
52 拒收
60 退回件
70 留仓扫描
80 转单扫描
-1 问题件
100 入库扫描
101 出库扫描
200 合包扫描
201 拆包扫描
301 装车扫描
302 卸车扫描
700 报关扫描
701 报关放行
702 清关失败
800 清关扫描
801 清关放行
802 清关失败
999 其它
*/
INIT(0,"创建成功"),
GOT(10,"揽件扫描"),
DEPARTURE(20,"发件扫描"),
ARRIVAL(30,"到件扫描"),
SENT(40,"派送扫描"),
SIGNED(50,"签收扫描"),
SIGNFAIL(51,"签收异常"),
REJECTION(52,"拒收"),
RETURN(60,"退回件"),
HOLD(70,"留仓"),
TRANSFER(80,"转单"),
ISSUE(-1,"问题件"),
// ----------------
INBOUND(100,"入库扫描"),
OUTBOUND(101,"出库扫描"),
CO_PACKING(200,"合包扫描"),
UN_PACKING(201,"拆包扫描"),
LOADING(301,"装车扫描"),
UN_LOADING(302,"卸车扫描"),
DECLEARE(700,"报关扫描"),
DECLEARE_SUCCESS(701,"报关放行"),
DECLEARE_FAIL(702,"报关失败"),
CLEARANCE(800,"清关开始"),
CLEARANCE_SUCCESS(801,"清关放行"),
CLEARANCE_FAIL(802,"清关失败"),
OTHER(999,"其他"),
// OVERSEA_IN("海外入库扫描"),
// OVERSEA_OUT("海外出库扫描"),
// ARRIVAL("入中转"),
// DEPARTURE("出中转"),
// SENT("派件中"),
// SIGNED("已签收"),
// SIGNFAIL("签收失败"),
// RETURN("退回件"),
// ISSUE("问题件"),
// REJECTION("拒收"),
// OTHER("其他"),
//
// CLEARANCE_START("清关开始"),
// CLEARANCE_FINISH("清关结束"),
// CLEARANCE_FAIL("清关失败"),
// OVERSEA_ARRIVAL("干线到达"),
// OVERSEA_DEPARTURE("干线离开"),
// TRANSFER("转单"),
;
private String label;
private Integer opCode;
private String opName;
ScanType(String label) {
this.label = label;
ScanType(Integer opCode,String opName) {
this.opCode = opCode;
this.opName = opName;
}
}

View File

@ -17,7 +17,9 @@ package com.xdadan.erp.emis.service;
import com.xdadan.erp.common.utils.DateUtils;
import com.xdadan.erp.common.utils.SecurityUtils;
import com.xdadan.erp.emis.domain.*;
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
import com.xdadan.erp.emis.domain.enumtype.ScanType;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.vo.WaybillOrder;
import com.xdadan.erp.emis.domain.vo.scan.ScanResultItem;
import com.xdadan.erp.emis.mapper.*;
@ -95,6 +97,16 @@ public class EmisBaseService {
return SecurityUtils.getLoginUser().getUser();
}
public EmisWaybill getWaybillByBillCode(String billCode){
if(!StringUtils.isEmpty(billCode)){
return null;
}
return emisWaybillMapper.selectEmisWaybillByBillCode(billCode);
}
public EmisSite getSiteByCode(String siteCode){
EmisSite querySite = new EmisSite();
querySite.setSiteCode(siteCode);
@ -110,6 +122,19 @@ public class EmisBaseService {
return sysUserMapper.selectUserByUserName(empCode);
}
private void checkWabillCanScan(String scanType,EmisWaybill waybill) throws EmisBizError{
if(waybill == null){
throw new EmisBizError(EmisBizErrorType.NOT_EXISTS,"运单不存在");
}
// if(waybill.getWaybillStatus()){
//
// }
}
public List<ScanResultItem> checkCanScan(String scanType,Map<String,Object> scanDataItem){
List<ScanResultItem> itemList = new ArrayList<>();
@ -182,25 +207,32 @@ public class EmisBaseService {
for (String billCodeItem:billCodeArr) {
ScanResultItem scanResultItem = new ScanResultItem();
scanResultItem.setBillCode(billCode);
// 检查区间
// 检查数据
EmisWaybill emisWaybill = getWaybillByBillCode(billCode);
scanResultItem.setResult("success");
scanResultItem.setMessage("允许操作");
EmisTmsScanRecord emisTmsScanRecord=new EmisTmsScanRecord();
emisTmsScanRecord.setBillCode(billCode);
emisTmsScanRecord.setScanType(scanType);
emisTmsScanRecord.setScanDate(scanDate);
emisTmsScanRecord.setScanManCode(getCurrentUser().getEmpCode());
emisTmsScanRecord.setScanManPhone(getCurrentUser().getPhonenumber());
emisTmsScanRecord.setScanMan(getCurrentUser().getEmpName());
emisTmsScanRecord.setScanSite(getCurrentUser().getOwnerSiteName());
emisTmsScanRecord.setScanSiteCode(getCurrentUser().getOwnerSiteCode());
EmisSite scanSite=getSiteByCode(emisTmsScanRecord.getScanSiteCode());
// 检查操作员
if(ScanType.ACCEPT.name().equals(scanType)){
EmisTmsScanRecord emisTmsScanRecord=new EmisTmsScanRecord();
emisTmsScanRecord.setBillCode(billCode);
emisTmsScanRecord.setScanType(scanType);
emisTmsScanRecord.setScanDate(scanDate);
emisTmsScanRecord.setScanManCode(getCurrentUser().getEmpCode());
emisTmsScanRecord.setScanManPhone(getCurrentUser().getPhonenumber());
emisTmsScanRecord.setScanMan(getCurrentUser().getEmpName());
emisTmsScanRecord.setScanSite(getCurrentUser().getOwnerSiteName());
emisTmsScanRecord.setScanSiteCode(getCurrentUser().getOwnerSiteCode());
EmisSite scanSite=getSiteByCode(emisTmsScanRecord.getScanSiteCode());
if(scanSite!=null){
emisTmsScanRecord.setScanSitePhone(scanSite.getPhone());
}

View File

@ -294,8 +294,6 @@
<if test="createSite != null and createSite != ''"> and create_site like concat('%', #{createSite}, '%')</if>
<if test="updateSite != null and updateSite != ''"> and update_site like concat('%', #{updateSite}, '%')</if>
<if test="parentSiteCode != null and parentSiteCode != ''">
<choose>
<!-- 子网点 -->
@ -312,6 +310,12 @@
</otherwise>
</choose>
</if>
<if test="searchValue != null and searchValue != ''">
AND ( site_code like concat(#{searchValue}, '%') or site_name like concat(#{searchValue}, '%') )
</if>
</where>
order by order_num desc
</select>