diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleSubBillController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleSubBillController.java index 33ba4f741..90d3110bf 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleSubBillController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleSubBillController.java @@ -431,20 +431,17 @@ public class EmisSettleSubBillController extends EmisBaseController } } - /* - bug:1610 - 现金账单确认/月结账单确认:应收运费大于等于标准报价,业务确认完帐单后,现金账单确认/月结账单确认界面系统自动确认; - 财务也自动确认了 - 非特殊报价和一口价 - */ - EmisSettleSubBill updSubBillBySite = new EmisSettleSubBill(); updSubBillBySite.setId(id); updSubBillBySite.setConfirmSiteManCode(getLoginUser().getUser().getEmpCode()); updSubBillBySite.setConfirmSiteCode(getLoginUser().getUser().getOwnerSiteCode()); emisBaseService.confirmBillBySite(updSubBillBySite); - // 判断非特殊报价和一口价 + /* + bug:1610 + 现金账单确认/月结账单确认:应收运费大于等于标准报价,业务确认完帐单后,现金账单确认/月结账单确认界面系统自动确认; + 非特殊报价和一口价, 财务也自动确认 + */ EmisWaybill waybill=emisBaseService.getWaybillByBillCode(old.getBillNo()); if( !"3".equals(waybill.getCalcFeeType()) && !"1".equals(waybill.getBlSpecialQuote()) ) { if (waybill.getFreight().compareTo(waybill.getRealFee()) >= 0) { @@ -463,6 +460,16 @@ public class EmisSettleSubBillController extends EmisBaseController if(!StringUtils.isEmpty(old.getSettleBillNo())) { EmisSettleBill oldSettleBill=emisSettleBillService.selectEmisSettleBillBySettleBillNo(old.getSettleBillNo()); if(oldSettleBill!=null) { + // 触发业务账单自动确认 + EmisSettleBill emisSettleBill = new EmisSettleBill(); + emisSettleBill.setConfirmSiteManCode(getLoginUser().getUser().getEmpCode()); + emisSettleBill.setConfirmSiteCode(getLoginUser().getUser().getOwnerSiteCode()); + emisSettleBill.setBlConfirmSite("1"); + emisSettleBill.setConfirmSiteDate(new Date()); + emisSettleBill.setId(oldSettleBill.getId()); +// emisSettleBill.setConfirmSiteNote("运费>=标准报价-触发财务自动确认"); + emisSettleBillService.updateEmisSettleBill(emisSettleBill); + // 重新计算账单费用,计算开票状态,计算收款状态 emisSettleBillService.reCalcSettleBillFee(oldSettleBill); @@ -471,7 +478,6 @@ public class EmisSettleSubBillController extends EmisBaseController emisSettleBillService.reCalcSettleBillPayStatus(old.getSettleBillNo()); } } - } } diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillAjustApplyController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillAjustApplyController.java index 53bec4c3a..949ef3acb 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillAjustApplyController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillAjustApplyController.java @@ -274,6 +274,8 @@ public class EmisWaybillAjustApplyController extends EmisBaseController emisWaybillAjustApplyService.auditCenterPass(emisWaybillAjustApply); + + }catch (Exception ex){ ex.printStackTrace(); // 返回子定义异常 diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java index e2efb55f9..015e9710a 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java @@ -23,6 +23,7 @@ import com.xdadan.erp.emis.domain.vo.WaybillOrder; import com.xdadan.erp.emis.mapper.EmisCommissionDtlMapper; import com.xdadan.erp.emis.service.*; import com.xdadan.erp.emis.utils.WaybillHelper; +import com.xdadan.erp.system.mapper.SysPostMapper; import com.xdadan.erp.system.service.ISysFileInfoService; import com.xdadan.erp.system.service.ISysNoticeService; import org.apache.commons.collections.CollectionUtils; @@ -53,6 +54,19 @@ public class EmisWaybillAjustApplyServiceImpl extends EmisBaseService implements @Autowired private EmisCommissionDtlMapper emisCommissionDtlMapper; + @Autowired + private SysPostMapper postMapper; + + + @Autowired + private IEmisSettleSubBillService emisSettleSubBillService; + + @Autowired + private EmisBaseService emisBaseService; + + @Autowired + private IEmisSettleBillService emisSettleBillService; + /** * 查询运单调整申请 @@ -238,8 +252,7 @@ public class EmisWaybillAjustApplyServiceImpl extends EmisBaseService implements emisWaybillAjustApply.setBlCenterConfirmed("1"); emisWaybillAjustApply.setCenterConfirmManCode(getCurrentUser().getEmpCode()); - // 财务中心费用审核:数据部人员通过岗位登记的费用申请:修改项目“运费调整”,财务审批通过后数据直接修改不用再进行层层审核; -// emisWaybillAjustApply.getApplyType() + // 获取账单状态,若账单处于非未确认状态,不允许审核 List emisSettleSubBillList=getSettleSubBillListByBillCode(emisWaybillAjustApply.getBillCode()); @@ -312,7 +325,6 @@ public class EmisWaybillAjustApplyServiceImpl extends EmisBaseService implements "费用调整已审批通过-["+getCurrentUser().getOwnerSiteName()+","+getCurrentUser().getEmpName()+"]" ); - emisWaybillService.reUpdateWayBill(emisWaybillOld,emisWaybillSave,false); String title="费用调整已审批通过,单号【"+emisWaybillAjustApply.getBillCode()+"】"; @@ -328,7 +340,80 @@ public class EmisWaybillAjustApplyServiceImpl extends EmisBaseService implements } // 审核通过 - return emisWaybillAjustApplyMapper.auditCenterPass(emisWaybillAjustApply); + emisWaybillAjustApplyMapper.auditCenterPass(emisWaybillAjustApply); + + // 财务中心费用审核:数据部人员通过岗位登记的费用申请:修改项目“运费调整”,财务审批通过后数据直接修改不用再进行层层审核; + // 运费调整类型 + if("9".equals(emisWaybillAjustApply.getApplyType())){ + + SysUser opUser=getEmisStaffByCode(emisWaybillAjustApply.getApplyManCode()); + if(opUser!=null){ + // 判断申请人是否是单证专属 + boolean isDZZS=false; + List postIds=postMapper.selectPostListByUserId(opUser.getUserId()); + if(!CollectionUtils.isEmpty(postIds)){ + for(Long poId:postIds){ + if(poId==18){ + isDZZS=true; + break; + } + } + } + + // 若是单证专属则自动确认账单 + if(isDZZS) { + // 自动确认账单 + EmisSettleSubBill oldSubBill = emisBaseService.getSettleSubBillBySubBillNo(emisWaybillAjustApply.getBillCode()); + if (oldSubBill != null) { + // 触发业务自动确认 + EmisSettleSubBill updSubBillBySite = new EmisSettleSubBill(); + updSubBillBySite.setId(oldSubBill.getId()); + updSubBillBySite.setConfirmSiteManCode(emisWaybillAjustApply.getApplyManCode()); + updSubBillBySite.setConfirmSiteCode(emisWaybillAjustApply.getApplySiteCode()); + updSubBillBySite.setConfirmSiteNote("[单证专属]申请调整费用-自动确认"); + emisBaseService.confirmBillBySite(updSubBillBySite); + + // 触发财务自动确认 + EmisSettleSubBill updSubBillByCenter = new EmisSettleSubBill(); + updSubBillByCenter.setConfirmCenterManCode(getCurrentUser().getEmpCode()); + updSubBillByCenter.setConfirmCenterCode(getCurrentUser().getOwnerSiteCode()); + updSubBillByCenter.setConfirmCenterNote("[单证专属]申请调整费用-自动确认"); + updSubBillByCenter.setId(oldSubBill.getId()); + + emisBaseService.confirmBillByCenter(updSubBillByCenter); + + // 判断账单是否已经被合并,若被合并则需要重新计算费用 + // 重新计算总账单费用 + // 获取账单是否已经被合并,若合并则更新账单费用 + if (!StringUtils.isEmpty(oldSubBill.getSettleBillNo())) { + EmisSettleBill oldSettleBill = emisSettleBillService.selectEmisSettleBillBySettleBillNo(oldSubBill.getSettleBillNo()); + if (oldSettleBill != null) { + // 触发业务账单自动确认 + EmisSettleBill emisSettleBill = new EmisSettleBill(); + emisSettleBill.setConfirmSiteManCode(emisWaybillAjustApply.getApplyManCode()); + emisSettleBill.setConfirmSiteCode(emisWaybillAjustApply.getApplySiteCode()); + emisSettleBill.setBlConfirmSite("1"); + emisSettleBill.setConfirmSiteDate(new Date()); + emisSettleBill.setId(oldSettleBill.getId()); + emisSettleBill.setConfirmSiteNote("单证专属-触发财务自动确认"); + emisSettleBillService.updateEmisSettleBill(emisSettleBill); + + // 重新计算账单费用,计算开票状态,计算收款状态 + emisSettleBillService.reCalcSettleBillFee(oldSettleBill); + + emisSettleBillService.reCalcSettleBillInvoiceStatus(oldSubBill.getSettleBillNo()); + + emisSettleBillService.reCalcSettleBillPayStatus(oldSubBill.getSettleBillNo()); + } + } + } + } + } + + } + + + return 1; }