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 其它
*/
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);
}
}