This commit is contained in:
linfso 2024-04-30 17:23:38 +08:00
parent 294f08a924
commit 63f29cc881
2 changed files with 166 additions and 146 deletions

View File

@ -208,8 +208,9 @@ public class EmisBaseService {
customerCode = emisCustomerUser.getCustomerCode();
addresItem.setCustomerCode(customerCode);
emisCustomerAddressMapper.updateEmisCustomerAddress(addresItem);
}else{
customerCode=addresItem.getCustomerCode();
}
}
emisCustomerAddressNew.setCustomerCode(customerCode);

View File

@ -229,159 +229,178 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
// 新增
if(isNew){
//补齐数据
emisWaybillSave.preInsert();
String orderSn = WaybillHelper.genOrderSn();
// 订单号
emisWaybillSave.setOrderSn(orderSn);
// 登记网点
emisWaybillSave.setRegisterSiteCode(getCurrentUser().getOwnerSiteCode());
emisWaybillSave.setRegisterManCode(getCurrentUser().getEmpCode());
emisWaybillSave.setRegisterDate(new Date());
// 发件网点
emisWaybillSave.setSendSiteCode(getCurrentUser().getOwnerSiteCode());
emisWaybillSave.setSendSiteName(getCurrentUser().getOwnerSiteName());
// 派件网点
emisWaybillSave.setDispatchSiteCode(emisWaybillSave.getDispatchUnderlingSiteCode());
// 订单运单初始状态
emisWaybillSave.setOrderStatus("0");
emisWaybillSave.setWaybillStatus("0");
// 下单时间
emisWaybillSave.setOrderDate(new Date());
// 订单类型为正式单
emisWaybillSave.setOrderType("1");
// 保存收件地址,并产生客户编号
String recieveCustomerCode="";
EmisCustomerAddress recieveAddress = new EmisCustomerAddress();
recieveAddress.setCountry(emisWaybillSave.getReceiveCountry());
recieveAddress.setName(emisWaybillSave.getReceiveName());
recieveAddress.setPhone(emisWaybillSave.getReceiveMobile());
recieveAddress.setProvince(emisWaybillSave.getReceiveProvince());
recieveAddress.setCity(emisWaybillSave.getReceiveCity());
recieveAddress.setCounty(emisWaybillSave.getReceiveCounty());
recieveAddress.setTown(emisWaybillSave.getReceiveTown());
// recieveAddress.setEmail(emisWaybillSave);
recieveAddress.setAddress(emisWaybillSave.getReceiveAddress());
recieveAddress.setCompany(emisWaybillSave.getReceiveCompany());
recieveAddress.setUseSiteCode(getCurrentUser().getOwnerSiteCode());
recieveAddress.setAddressType("2");
EmisCustomerAddress recieveAddressNew=createCustomerAddress(recieveAddress);
recieveCustomerCode = recieveAddressNew.getCustomerCode();
emisWaybillSave.setReceiveCustomerCode(recieveCustomerCode);
// 保存寄件地址并产生寄件客户编号
String sendCustomerCode="";
EmisCustomerAddress sendAddress = new EmisCustomerAddress();
sendAddress.setCountry(emisWaybillSave.getSendCountry());
sendAddress.setName(emisWaybillSave.getSendName());
sendAddress.setPhone(emisWaybillSave.getSendMobile());
sendAddress.setProvince(emisWaybillSave.getSendProvince());
sendAddress.setCity(emisWaybillSave.getSendCity());
sendAddress.setCounty(emisWaybillSave.getSendCounty());
sendAddress.setTown(emisWaybillSave.getSendTown());
// recieveAddress.setEmail(emisWaybillSave);
sendAddress.setAddress(emisWaybillSave.getSendAddress());
sendAddress.setCompany(emisWaybillSave.getSendCompany());
sendAddress.setUseSiteCode(getCurrentUser().getOwnerSiteCode());
sendAddress.setAddressType("1");
EmisCustomerAddress sendAddressNew=createCustomerAddress(sendAddress);
sendCustomerCode = sendAddressNew.getCustomerCode();
emisWaybillSave.setCustomerCode(sendCustomerCode);
// 获取泡重比
EmisTransLine emisTransLine = getTransLineByCode(emisWaybillSave.getTransLineType());
emisWaybillSave.setMeterType(emisTransLine.getMeterRate());
// 时效
EmisTransProduct emisTransProduct = getTransProductByCode(emisWaybillSave.getProductType());
emisWaybillSave.setTimeType(emisTransProduct.getAgingDesc());
if(emisWaybillSave.getSendDate()==null){
emisWaybillSave.setSendDate(new Date());
}
Date estDate = getEstimateDate(
emisWaybillSave.getSendDate(),emisWaybillSave.getProductType(),
emisWaybillSave.getSendCountry(),
emisWaybillSave.getReceiveCountry());
// 预计到达时间
log.info("预估到达时间==>"+ DateUtils.dateTime(estDate));
emisWaybillSave.setEstimateDate(estDate);
// 子单号
if("1".equals(emisWaybillSave.getBlGenSubbill()) ){
// 子单号拼接
StringBuilder sb = new StringBuilder();
for(int i=0;i<emisWaybillSave.getParcelQty().intValue();i++){
sb.append(emisWaybillSave.getBillCode()+ StringUtils.leftPad(String.valueOf(i),4,"0")+",");
}
emisWaybillSave.setBillCodeSub(sb.toString());
}
// 物品名称
if(StringUtils.isEmpty(emisWaybillSave.getGoodsInfo())){
if(!CollectionUtils.isEmpty(emisWaybillSave.getCargoList()) ){
StringBuilder sb = new StringBuilder();
for(EmisWaybillCargo cargo:emisWaybillSave.getCargoList()){
sb.append(cargo.getGoodsName()+",");
}
emisWaybillSave.setGoodsInfo(sb.toString());
}
}
emisWaybillMapper.insertEmisWaybill(emisWaybillSave);
// 产生主键插入其他数据
// 插入费用
List<EmisWaybillFeeitem> feeitemList=emisWaybillSave.getFeeitemList();
if(!CollectionUtils.isEmpty(feeitemList)){
for (EmisWaybillFeeitem feeItem:feeitemList) {
feeItem.setWaybillId(emisWaybillSave.getId());
emisWaybillFeeitemMapper.insertEmisWaybillFeeitem(feeItem);
}
}
// 插入商品信息
if(!CollectionUtil.isEmpty(emisWaybillSave.getCargoList() )){
List<EmisWaybillCargo> cargoList=emisWaybillSave.getCargoList();
for (EmisWaybillCargo cargoItem:cargoList) {
cargoItem.setWaybillId(emisWaybillSave.getId());
emisWaybillCargoMapper.insertEmisWaybillCargo(cargoItem);
}
}
// 插入附件信息
if(!CollectionUtil.isEmpty(emisWaybillSave.getAttachmentList() )){
List<EmisWaybillAttachment> attachmentList=emisWaybillSave.getAttachmentList();
for (EmisWaybillAttachment attachmentItem:attachmentList) {
attachmentItem.setWaybillId(emisWaybillSave.getId());
emisWaybillAttachmentMapper.insertEmisWaybillAttachment(attachmentItem);
}
}
addWayBill(emisWaybillSave);
}else{
emisWaybillSave.setId(emisWaybillOld.getId());
emisWaybillSave.preUpdate();
emisWaybillMapper.updateEmisWaybill(emisWaybillSave);
updateWayBill(emisWaybillSave);
}
return 1;
}
/**
* 新增费用
* @param emisWaybillSave
*/
private void addWayBill(EmisWaybill emisWaybillSave){
//补齐数据
emisWaybillSave.preInsert();
String orderSn = WaybillHelper.genOrderSn();
// 订单号
emisWaybillSave.setOrderSn(orderSn);
// 登记网点
emisWaybillSave.setRegisterSiteCode(getCurrentUser().getOwnerSiteCode());
emisWaybillSave.setRegisterManCode(getCurrentUser().getEmpCode());
emisWaybillSave.setRegisterDate(new Date());
// 发件网点
emisWaybillSave.setSendSiteCode(getCurrentUser().getOwnerSiteCode());
emisWaybillSave.setSendSiteName(getCurrentUser().getOwnerSiteName());
// 派件网点
emisWaybillSave.setDispatchSiteCode(emisWaybillSave.getDispatchUnderlingSiteCode());
// 订单运单初始状态
emisWaybillSave.setOrderStatus("0");
emisWaybillSave.setWaybillStatus("0");
// 下单时间
emisWaybillSave.setOrderDate(new Date());
// 订单类型为正式单
emisWaybillSave.setOrderType("1");
// 保存收件地址,并产生客户编号
String recieveCustomerCode="";
EmisCustomerAddress recieveAddress = new EmisCustomerAddress();
recieveAddress.setCountry(emisWaybillSave.getReceiveCountry());
recieveAddress.setName(emisWaybillSave.getReceiveName());
recieveAddress.setPhone(emisWaybillSave.getReceiveMobile());
recieveAddress.setProvince(emisWaybillSave.getReceiveProvince());
recieveAddress.setCity(emisWaybillSave.getReceiveCity());
recieveAddress.setCounty(emisWaybillSave.getReceiveCounty());
recieveAddress.setTown(emisWaybillSave.getReceiveTown());
// recieveAddress.setEmail(emisWaybillSave);
recieveAddress.setAddress(emisWaybillSave.getReceiveAddress());
recieveAddress.setCompany(emisWaybillSave.getReceiveCompany());
recieveAddress.setUseSiteCode(getCurrentUser().getOwnerSiteCode());
recieveAddress.setAddressType("2");
EmisCustomerAddress recieveAddressNew=createCustomerAddress(recieveAddress);
recieveCustomerCode = recieveAddressNew.getCustomerCode();
emisWaybillSave.setReceiveCustomerCode(recieveCustomerCode);
// 保存寄件地址并产生寄件客户编号
String sendCustomerCode="";
EmisCustomerAddress sendAddress = new EmisCustomerAddress();
sendAddress.setCountry(emisWaybillSave.getSendCountry());
sendAddress.setName(emisWaybillSave.getSendName());
sendAddress.setPhone(emisWaybillSave.getSendMobile());
sendAddress.setProvince(emisWaybillSave.getSendProvince());
sendAddress.setCity(emisWaybillSave.getSendCity());
sendAddress.setCounty(emisWaybillSave.getSendCounty());
sendAddress.setTown(emisWaybillSave.getSendTown());
// recieveAddress.setEmail(emisWaybillSave);
sendAddress.setAddress(emisWaybillSave.getSendAddress());
sendAddress.setCompany(emisWaybillSave.getSendCompany());
sendAddress.setUseSiteCode(getCurrentUser().getOwnerSiteCode());
sendAddress.setAddressType("1");
EmisCustomerAddress sendAddressNew=createCustomerAddress(sendAddress);
sendCustomerCode = sendAddressNew.getCustomerCode();
emisWaybillSave.setCustomerCode(sendCustomerCode);
// 获取泡重比
EmisTransLine emisTransLine = getTransLineByCode(emisWaybillSave.getTransLineType());
emisWaybillSave.setMeterType(emisTransLine.getMeterRate());
// 时效
EmisTransProduct emisTransProduct = getTransProductByCode(emisWaybillSave.getProductType());
emisWaybillSave.setTimeType(emisTransProduct.getAgingDesc());
if(emisWaybillSave.getSendDate()==null){
emisWaybillSave.setSendDate(new Date());
}
Date estDate = getEstimateDate(
emisWaybillSave.getSendDate(),emisWaybillSave.getProductType(),
emisWaybillSave.getSendCountry(),
emisWaybillSave.getReceiveCountry());
// 预计到达时间
log.info("预估到达时间==>"+ DateUtils.dateTime(estDate));
emisWaybillSave.setEstimateDate(estDate);
// 子单号
if("1".equals(emisWaybillSave.getBlGenSubbill()) ){
// 子单号拼接
StringBuilder sb = new StringBuilder();
for(int i=0;i<emisWaybillSave.getParcelQty().intValue();i++){
sb.append(emisWaybillSave.getBillCode()+ StringUtils.leftPad(String.valueOf(i),4,"0")+",");
}
emisWaybillSave.setBillCodeSub(sb.toString());
}
// 物品名称
if(StringUtils.isEmpty(emisWaybillSave.getGoodsInfo())){
if(!CollectionUtils.isEmpty(emisWaybillSave.getCargoList()) ){
StringBuilder sb = new StringBuilder();
for(EmisWaybillCargo cargo:emisWaybillSave.getCargoList()){
sb.append(cargo.getGoodsName()+",");
}
emisWaybillSave.setGoodsInfo(sb.toString());
}
}
emisWaybillMapper.insertEmisWaybill(emisWaybillSave);
// 产生主键插入其他数据
// 插入费用
List<EmisWaybillFeeitem> feeitemList=emisWaybillSave.getFeeitemList();
if(!CollectionUtils.isEmpty(feeitemList)){
for (EmisWaybillFeeitem feeItem:feeitemList) {
feeItem.setWaybillId(emisWaybillSave.getId());
emisWaybillFeeitemMapper.insertEmisWaybillFeeitem(feeItem);
}
}
// 插入商品信息
if(!CollectionUtil.isEmpty(emisWaybillSave.getCargoList() )){
List<EmisWaybillCargo> cargoList=emisWaybillSave.getCargoList();
for (EmisWaybillCargo cargoItem:cargoList) {
cargoItem.setWaybillId(emisWaybillSave.getId());
emisWaybillCargoMapper.insertEmisWaybillCargo(cargoItem);
}
}
// 插入附件信息
if(!CollectionUtil.isEmpty(emisWaybillSave.getAttachmentList() )){
List<EmisWaybillAttachment> attachmentList=emisWaybillSave.getAttachmentList();
for (EmisWaybillAttachment attachmentItem:attachmentList) {
attachmentItem.setWaybillId(emisWaybillSave.getId());
emisWaybillAttachmentMapper.insertEmisWaybillAttachment(attachmentItem);
}
}
}
private void updateWayBill(EmisWaybill emisWaybillSave){
emisWaybillSave.preUpdate();
// 基础信息更新
emisWaybillMapper.updateEmisWaybill(emisWaybillSave);
// 更新资费
// 更新产品
// 更新附件
}
/**
* 运单费用计算接口
* @param emisWaybill