diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleSubBillMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleSubBillMapper.java index b19f4c689..e719ab083 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleSubBillMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettleSubBillMapper.java @@ -28,6 +28,9 @@ public interface EmisSettleSubBillMapper extends BaseMapper */ public EmisSettleSubBill selectEmisSettleSubBillById(Long id); + + public EmisSettleSubBill selectSettleSubBillByBillCode(String billCode); + /** * 查询列表 * diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index 4a4b5ef58..512a4cc78 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -959,7 +959,14 @@ public class EmisBaseService { } - + /** + * 获取运单主账单信息 + * @param billCode + * @return + */ + public EmisSettleSubBill getSettleSubBillByBillCode(String billCode){ + return emisSettleSubBillMapper.selectSettleSubBillByBillCode(billCode); + } /** * 财务账单确认 * @param emisSettleSubBill @@ -1528,36 +1535,7 @@ public class EmisBaseService { String packTypeEn=""; if(!StringUtils.isEmpty(waybill.getPackType())){ packType=DictUtils.getDictLabel("emis_tab_packing_type",waybill.getPackType()); -// try { -// packTypeEn= TransUtils.langTrans(packType,"zh-cn","en"); -// } catch (Exception e) { -// e.printStackTrace(); -// } - // 包装类型英文翻译 - /* - - 文件 - 1 - 1 - 文件 - 纸箱 - 2 - 2 - 纸箱 - 木箱 - 3 - 3 - 木箱 - 编织袋 - 4 - 4 - 编织袋 - 其它 - 5 - 5 - 其它 - * */ String [] packTypeArr = waybill.getPackType().split(","); if(packTypeArr.length>0){ for(String type:packTypeArr){ @@ -1584,6 +1562,9 @@ public class EmisBaseService { order.put("packType",packType); order.put("packTypeEn",packTypeEn); + // 货值 + order.put("realValue",waybill.getRealValue()); + String paymentType=""; if(!StringUtils.isEmpty(waybill.getPaymentType())){ @@ -2122,19 +2103,10 @@ public class EmisBaseService { //(2)当天开单次日上午9点后未锁帐,总部/财务中心修改; //(3)若运单已签收、已确认账单、已收款、已锁帐,登记申请审批后进行修改; - if("1".equals(emisWaybill.getBlBill()) - || ScanType.SIGNED.opCode.equals(emisWaybill.getWaybillStatus()) - || PaymentStatus.PAID.statusCode.equals(emisWaybill.getPaymentStatus()) - || PaymentStatus.PAID_SOME.statusCode.equals(emisWaybill.getPaymentStatus()) - ){ - return true; - } // 创建时间<服务器0点 次日9点锁账 Date createTime = emisWaybill.getCreateTime(); - Date now = new Date(); - Calendar calendar = Calendar.getInstance(); int todayHour = calendar.get(Calendar.HOUR_OF_DAY); @@ -2161,6 +2133,32 @@ public class EmisBaseService { return false; } + public boolean checkDBBillIsLock(EmisWaybill emisWaybill) throws EmisBizError{ + // 判断是否已超时及锁账 + if(emisWaybill!=null ) { + + if( PaymentStatus.PAID.statusCode.equals(emisWaybill.getPaymentStatus()) + || PaymentStatus.PAID_SOME.statusCode.equals(emisWaybill.getPaymentStatus()) + ){ + throw new EmisBizError(EmisBizErrorType.BILL_LOCK, "已付款,不允许修改"); + } + + if ("1".equals(emisWaybill.getBlSign())) { + throw new EmisBizError(EmisBizErrorType.BILL_LOCK, "已签收,不允许修改"); + } + + if (isBillLock(emisWaybill)) { + throw new EmisBizError(EmisBizErrorType.BILL_LOCK, "已锁账,不允许修改"); + } + + if (isOutTimeLock(emisWaybill)) { + throw new EmisBizError(EmisBizErrorType.BILL_LOCK, "已超时,不允许修改"); + } + + + } + } + /** * 判断账单锁账 * @param emisWaybill @@ -2168,6 +2166,16 @@ public class EmisBaseService { */ public boolean isBillLock(EmisWaybill emisWaybill) { + // 财务已确认账单不允许修改 + EmisSettleSubBill emisSettleSubBill=getSettleSubBillByBillCode(emisWaybill.getBillCode()); + if(emisSettleSubBill!=null){ + if("1".emisSettleSubBill.getBlConfirm()){ + // 财务确认出账明细锁账 + return true; + } + } + + // 系统锁账 EmisSiteBillControl emisSiteBillControl = new EmisSiteBillControl(); emisSiteBillControl.setSendSiteCode(emisWaybill.getSendCenterCode()); emisSiteBillControl.setDestSiteCode(emisWaybill.getDestinationCenterCode()); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsScanRecordServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsScanRecordServiceImpl.java index 4b024338a..c00fbc327 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsScanRecordServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsScanRecordServiceImpl.java @@ -249,6 +249,9 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm scanResultItem.setBillCode(scanBillCode); scanResultItem.getData().putAll(scanDataItem); + // 判断是否是合包 + + // 获取主单号 String mainBillCode = getMainBillCode(scanBillCode); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java index 8a3540459..d7fea03e0 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java @@ -161,26 +161,14 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb */ public WaybillOrder cvtEmisWaybillToWaybillOrder(EmisWaybill dbEmisWaybill) throws EmisBizError{ - // 设置运单锁单指令 - boolean isLock=isOutTimeLock(dbEmisWaybill); - if(isLock){ + // 检查是否锁单,打锁单标识 + dbEmisWaybill.setLockFlag("F"); + dbEmisWaybill.setLockReason(""); + try{ + checkDBBillIsLock(dbEmisWaybill); + }catch(EmisBizError ex){ dbEmisWaybill.setLockFlag("T"); - dbEmisWaybill.setLockReason("不允许修改"); - }else{ - dbEmisWaybill.setLockFlag("F"); - } - - if("1".equals(dbEmisWaybill.getBlSign())){ - dbEmisWaybill.setLockFlag("T"); - dbEmisWaybill.setLockReason("已签收,不允许修改"); - } - - boolean isBillLock=isBillLock(dbEmisWaybill); - if(isBillLock){ - dbEmisWaybill.setLockFlag("T"); - dbEmisWaybill.setLockReason("已锁账,不允许修改"); - }else{ - dbEmisWaybill.setLockFlag("F"); + dbEmisWaybill.setLockReason(ex.getMessage()); } // 收费项 @@ -563,22 +551,9 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb } // 运单修改 else{ - // 判断是否已超时及锁账 - if(emisWaybillOld!=null ) { - - if (isOutTimeLock(emisWaybillOld)) { - throw new EmisBizError(EmisBizErrorType.BILL_LOCK, "已超时,不允许修改"); - } - - if ("1".equals(emisWaybillOld.getBlSign())) { - throw new EmisBizError(EmisBizErrorType.BILL_LOCK, "已签收,不允许修改"); - } - - if (isBillLock(emisWaybillOld)) { - throw new EmisBizError(EmisBizErrorType.BILL_LOCK, "锁账,不允许修改"); - } - } + // 检查是否已锁单 + checkDBBillIsLock(emisWaybillOld); emisWaybillSave.setId(emisWaybillOld.getId()); // 把历史发货日期带过来用于重新计算预估到到时间 @@ -591,6 +566,8 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb } + + /** * 取消订单 * @param emisWaybill diff --git a/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml b/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml index a3c5d668e..8ac66b541 100644 --- a/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisSettleSubBillMapper.xml @@ -122,6 +122,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from emis_settle_sub_bill a where a.id = #{id} + + insert into emis_settle_sub_bill