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

@ -54,48 +54,47 @@ public enum ScanType {
999 其它 999 其它
*/ */
INIT(0,"创建成功"), INIT("0","创建成功"),
GOT(10,"揽件扫描"), GOT("10","揽件扫描"),
DEPARTURE(20,"发件扫描"), DEPARTURE("20","发件扫描"),
ARRIVAL(30,"到件扫描"), ARRIVAL("30","到件扫描"),
SENT(40,"派送扫描"), SENT("40","派送扫描"),
SIGNED(50,"签收扫描"), SIGNED("50","签收扫描"),
SIGNFAIL(51,"签收异常"), SIGNFAIL("51","签收异常"),
REJECTION(52,"拒收"), REJECTION("52","拒收"),
RETURN(60,"退回件"), RETURN("60","退回件"),
HOLD(70,"留仓"), HOLD("70","留仓"),
TRANSFER(80,"转单"), TRANSFER("80","转单"),
ISSUE(-1,"问题件"),
ISSUE("-1","问题件"),
// ---------------- // ----------------
INBOUND(100,"入库扫描"), INBOUND("100","入库扫描"),
OUTBOUND(101,"出库扫描"), OUTBOUND("101","出库扫描"),
CO_PACKING(200,"合包扫描"), CO_PACKING("200","合包扫描"),
UN_PACKING(201,"拆包扫描"), UN_PACKING("201","拆包扫描"),
LOADING(301,"装车扫描"), LOADING("301","装车扫描"),
UN_LOADING(302,"卸车扫描"), UN_LOADING("302","卸车扫描"),
DECLEARE(700,"报关扫描"), DECLEARE("700","报关扫描"),
DECLEARE_SUCCESS(701,"报关放行"), DECLEARE_SUCCESS("701","报关放行"),
DECLEARE_FAIL(702,"报关失败"), DECLEARE_FAIL("702","报关失败"),
CLEARANCE(800,"清关开始"), CLEARANCE("800","清关开始"),
CLEARANCE_SUCCESS(801,"清关放行"), CLEARANCE_SUCCESS("801","清关放行"),
CLEARANCE_FAIL(802,"清关失败"), CLEARANCE_FAIL("802","清关失败"),
OTHER(999,"其他"), OTHER("999","其他"),
@ -121,10 +120,10 @@ public enum ScanType {
// TRANSFER("转单"), // TRANSFER("转单"),
; ;
private Integer opCode; public String opCode;
private String opName; public String opName;
ScanType(Integer opCode,String opName) { ScanType(String opCode,String opName) {
this.opCode = opCode; this.opCode = opCode;
this.opName = opName; 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; package com.xdadan.erp.emis.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; 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.exception.EmisBizError;
import com.xdadan.erp.emis.domain.vo.scan.ScanInfo; 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.ScanResult;
import com.xdadan.erp.emis.domain.vo.scan.ScanResultItem; import com.xdadan.erp.emis.domain.vo.scan.ScanResultItem;
import com.xdadan.erp.emis.service.EmisBaseService; import com.xdadan.erp.emis.service.EmisBaseService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xdadan.erp.emis.domain.EmisTmsScanRecord; 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 @Override
public ScanResult scan(ScanInfo scanInfo) throws EmisBizError{ public ScanResult scan(ScanInfo scanInfo) throws EmisBizError{
@ -125,7 +270,7 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
} }
else{ else{
for (Map<String,Object> item: scanInfo.getScanData()) { for (Map<String,Object> item: scanInfo.getScanData()) {
List<ScanResultItem> itemCheckList=checkCanScan(scanInfo.getScanType(),item); List<ScanResultItem> itemCheckList=doScanCheck(scanInfo.getScanType(),item);
resultList.addAll(itemCheckList); resultList.addAll(itemCheckList);
} }
} }