This commit is contained in:
linfso 2024-05-02 18:23:29 +08:00
parent 20f53510df
commit 2ce65bdd3e
3 changed files with 198 additions and 190 deletions

View File

@ -28,74 +28,73 @@ public enum ScanType {
// -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 其它
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,"创建成功"),
INIT("0","创建成功"),
GOT(10,"揽件扫描"),
GOT("10","揽件扫描"),
DEPARTURE(20,"发件扫描"),
DEPARTURE("20","发件扫描"),
ARRIVAL(30,"到件扫描"),
ARRIVAL("30","到件扫描"),
SENT(40,"派送扫描"),
SENT("40","派送扫描"),
SIGNED(50,"签收扫描"),
SIGNFAIL(51,"签收异常"),
REJECTION(52,"拒收"),
SIGNED("50","签收扫描"),
SIGNFAIL("51","签收异常"),
REJECTION("52","拒收"),
RETURN(60,"退回件"),
RETURN("60","退回件"),
HOLD(70,"留仓"),
HOLD("70","留仓"),
TRANSFER(80,"转单"),
ISSUE(-1,"问题件"),
TRANSFER("80","转单"),
ISSUE("-1","问题件"),
// ----------------
INBOUND(100,"入库扫描"),
OUTBOUND(101,"出库扫描"),
INBOUND("100","入库扫描"),
OUTBOUND("101","出库扫描"),
CO_PACKING(200,"合包扫描"),
UN_PACKING(201,"拆包扫描"),
CO_PACKING("200","合包扫描"),
UN_PACKING("201","拆包扫描"),
LOADING(301,"装车扫描"),
UN_LOADING(302,"卸车扫描"),
LOADING("301","装车扫描"),
UN_LOADING("302","卸车扫描"),
DECLEARE(700,"报关扫描"),
DECLEARE_SUCCESS(701,"报关放行"),
DECLEARE_FAIL(702,"报关失败"),
DECLEARE("700","报关扫描"),
DECLEARE_SUCCESS("701","报关放行"),
DECLEARE_FAIL("702","报关失败"),
CLEARANCE(800,"清关开始"),
CLEARANCE_SUCCESS(801,"清关放行"),
CLEARANCE_FAIL(802,"清关失败"),
CLEARANCE("800","清关开始"),
CLEARANCE_SUCCESS("801","清关放行"),
CLEARANCE_FAIL("802","清关失败"),
OTHER(999,"其他"),
OTHER("999","其他"),
@ -121,10 +120,10 @@ public enum ScanType {
// TRANSFER("转单"),
;
private Integer opCode;
private String opName;
public String opCode;
public String opName;
ScanType(Integer opCode,String opName) {
ScanType(String opCode,String opName) {
this.opCode = opCode;
this.opName = opName;
}

View File

@ -135,143 +135,7 @@ public class EmisBaseService {
}
public List<ScanResultItem> checkCanScan(String scanType,Map<String,Object> scanDataItem){
List<ScanResultItem> itemList = new ArrayList<>();
String billCode = (String)scanDataItem.get("billCode");
if(StringUtils.isEmpty(billCode)){
ScanResultItem scanResultItem = new ScanResultItem();
scanResultItem.setBillCode(billCode);
scanResultItem.setResult("fail");
scanResultItem.setMessage("billCode为空");
itemList.add(scanResultItem);
return itemList;
}
// 开始检查数据
String[] billCodeArr = billCode.split(",");
for (String billCodeItem:billCodeArr) {
ScanResultItem scanResultItem = new ScanResultItem();
scanResultItem.setBillCode(billCode);
// 检查区间
scanResultItem.setResult("success");
scanResultItem.setMessage("允许操作");
// 检查操作员
if(ScanType.ACCEPT.name().equals(scanType)){
}
itemList.add(scanResultItem);
}
return itemList;
}
/**
* 扫描操作
* @param scanType
* @param scanDataItem
* @return
*/
public List<ScanResultItem> doScan(String scanType,Map<String,Object> scanDataItem){
List<ScanResultItem> itemList = new ArrayList<>();
String billCode = (String)scanDataItem.get("billCode");
if(StringUtils.isEmpty(billCode)){
ScanResultItem scanResultItem = new ScanResultItem();
scanResultItem.setBillCode(billCode);
scanResultItem.setResult("fail");
scanResultItem.setMessage("billCode为空");
itemList.add(scanResultItem);
return itemList;
}
// 开始检查数据
String[] billCodeArr = billCode.split(",");
String scanDateStr = (String)scanDataItem.get("scanDate");
String scanWeightStr = (String)scanDataItem.get("scanWeight");
String dispatchOrSendManCode = (String)scanDataItem.get("dispatchOrSendManCode");
Date scanDate = DateUtils.parseDate(scanDateStr);;
if(scanDate ==null){
scanDate = new Date();
}
double scanWeight = 0.0D;
if(!StringUtils.isEmpty(scanWeightStr)){
scanWeight= Double.valueOf(scanWeightStr);
}
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)){
if(scanSite!=null){
emisTmsScanRecord.setScanSitePhone(scanSite.getPhone());
}
emisTmsScanRecord.setWeight(BigDecimal.valueOf(scanWeight));
emisTmsScanRecord.setDispatchOrSendManCode(dispatchOrSendManCode);
SysUser emUser=getEmisStaffByCode(dispatchOrSendManCode);
if(emUser!=null){
emisTmsScanRecord.setDispatchOrSendMan(emUser.getEmpName());
emisTmsScanRecord.setDispatchOrSendManPhone(emUser.getPhonenumber());
}
// emisTmsScanRecord.setSignDate(ObjectB.getSignDate());
// emisTmsScanRecord.setSignMan(ObjectB.getSignMan());
// emisTmsScanRecord.setSignSite(ObjectB.getSignSite());
// emisTmsScanRecord.setSignSiteCode(ObjectB.getSignSiteCode());
emisTmsScanRecord.setRecordMan(getCurrentUser().getEmpName());
emisTmsScanRecord.setRecordManCode(getCurrentUser().getEmpCode());
emisTmsScanRecord.setRecordManPhone(getCurrentUser().getPhonenumber());
emisTmsScanRecord.setRecordSiteCode(getCurrentUser().getOwnerSiteCode());
// emisTmsScanRecord.setTruckMan(ObjectB.getTruckMan());
// emisTmsScanRecord.setTruckCode(ObjectB.getTruckCode());
emisTmsScanRecord.setDataFrom("pc");
// emisTmsScanRecord.setPicUrl(ObjectB.getPicUrl());
emisTmsScanRecord.setStatus("1");
emisTmsScanRecord.preInsert();
emisTmsScanRecordMapper.insertEmisTmsScanRecord(emisTmsScanRecord);
}
itemList.add(scanResultItem);
}
return itemList;
}
/**

View File

@ -10,15 +10,23 @@
package com.xdadan.erp.emis.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.xdadan.erp.common.core.domain.entity.SysUser;
import com.xdadan.erp.common.utils.DateUtils;
import com.xdadan.erp.emis.domain.EmisSite;
import com.xdadan.erp.emis.domain.EmisWaybill;
import com.xdadan.erp.emis.domain.enumtype.ScanType;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
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;
import com.xdadan.erp.emis.service.EmisBaseService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xdadan.erp.emis.domain.EmisTmsScanRecord;
@ -110,6 +118,143 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
}
public List<ScanResultItem> doScanCheck(String scanType,Map<String,Object> scanDataItem){
List<ScanResultItem> itemList = new ArrayList<>();
String billCode = (String)scanDataItem.get("billCode");
if(StringUtils.isEmpty(billCode)){
ScanResultItem scanResultItem = new ScanResultItem();
scanResultItem.setBillCode(billCode);
scanResultItem.setResult("fail");
scanResultItem.setMessage("billCode为空");
itemList.add(scanResultItem);
return itemList;
}
// 开始检查数据
String[] billCodeArr = billCode.split(",");
for (String billCodeItem:billCodeArr) {
ScanResultItem scanResultItem = new ScanResultItem();
scanResultItem.setBillCode(billCode);
// 检查区间
scanResultItem.setResult("success");
scanResultItem.setMessage("允许操作");
itemList.add(scanResultItem);
}
return itemList;
}
/**
* 扫描操作
* @param scanType
* @param scanDataItem
* @return
*/
public List<ScanResultItem> doScan(String scanType,Map<String,Object> scanDataItem){
List<ScanResultItem> itemList = new ArrayList<>();
String billCodeInStr = (String)scanDataItem.get("billCode");
if(StringUtils.isEmpty(billCodeInStr)){
ScanResultItem scanResultItem = new ScanResultItem();
scanResultItem.setBillCode(billCodeInStr);
scanResultItem.setResult("fail");
scanResultItem.setMessage("billCode为空");
itemList.add(scanResultItem);
return itemList;
}
// 开始检查数据
String[] billCodeArr = billCodeInStr.split(",");
String scanDateStr = (String)scanDataItem.get("scanDate");
Date scanDate = DateUtils.parseDate(scanDateStr);;
if(scanDate ==null){
scanDate = new Date();
}
for (String billCode:billCodeArr) {
ScanResultItem scanResultItem = new ScanResultItem();
scanResultItem.setBillCode(billCode);
// 检查数据
EmisWaybill emisWaybill = getWaybillByBillCode(billCode);
if(emisWaybill==null){
scanResultItem.setResult("fail");
scanResultItem.setMessage("运单号不存在");
itemList.add(scanResultItem);
continue;
}
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());
}
ScanType opCodeType = ScanType.valueOf(scanType);
if(ScanType.GOT.opCode.equals(scanType)){
setScanGot(emisTmsScanRecord,scanDataItem);
}
emisTmsScanRecord.setRecordMan(getCurrentUser().getEmpName());
emisTmsScanRecord.setRecordManCode(getCurrentUser().getEmpCode());
emisTmsScanRecord.setRecordManPhone(getCurrentUser().getPhonenumber());
emisTmsScanRecord.setRecordSiteCode(getCurrentUser().getOwnerSiteCode());
emisTmsScanRecord.setDataFrom("pc");
emisTmsScanRecord.setStatus("1");
emisTmsScanRecord.preInsert();
emisTmsScanRecordMapper.insertEmisTmsScanRecord(emisTmsScanRecord);
scanResultItem.setResult("success");
scanResultItem.setMessage("操作成功");
itemList.add(scanResultItem);
}
return itemList;
}
private void setScanGot(EmisTmsScanRecord emisTmsScanRecord,Map<String,Object> scanDataItem){
String scanWeightStr = (String)scanDataItem.get("scanWeight");
String dispatchOrSendManCode = (String)scanDataItem.get("dispatchOrSendManCode");
double scanWeight = 0.0D;
if(!StringUtils.isEmpty(scanWeightStr)){
scanWeight= Double.valueOf(scanWeightStr);
}
emisTmsScanRecord.setWeight(BigDecimal.valueOf(scanWeight));
emisTmsScanRecord.setDispatchOrSendManCode(dispatchOrSendManCode);
SysUser emUser=getEmisStaffByCode(dispatchOrSendManCode);
if(emUser!=null){
emisTmsScanRecord.setDispatchOrSendMan(emUser.getEmpName());
emisTmsScanRecord.setDispatchOrSendManPhone(emUser.getPhonenumber());
}
}
@Override
public ScanResult scan(ScanInfo scanInfo) throws EmisBizError{
@ -125,7 +270,7 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
}
else{
for (Map<String,Object> item: scanInfo.getScanData()) {
List<ScanResultItem> itemCheckList=checkCanScan(scanInfo.getScanType(),item);
List<ScanResultItem> itemCheckList=doScanCheck(scanInfo.getScanType(),item);
resultList.addAll(itemCheckList);
}
}