|
@@ -0,0 +1,122 @@
|
|
|
+package nccloud.web.cmp.billmanagement.paybills.action;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+import nc.bs.framework.common.NCLocator;
|
|
|
+import nc.bs.logging.Logger;
|
|
|
+import nc.impl.pubapp.pattern.data.vo.VOQuery;
|
|
|
+import nc.itf.uap.IVOPersistence;
|
|
|
+import nc.vo.cmp.bill.BillAggVO;
|
|
|
+import nc.vo.cmp.bill.BillDetailVO;
|
|
|
+import nc.vo.cmp.bill.BillVO;
|
|
|
+import nc.vo.cmp.informer.InformerVO;
|
|
|
+import nc.vo.pub.BusinessException;
|
|
|
+import nc.vo.pub.lang.UFDouble;
|
|
|
+import nc.vo.tmpub.util.StringUtil;
|
|
|
+import nccloud.framework.core.exception.ExceptionUtils;
|
|
|
+import nccloud.framework.service.ServiceLocator;
|
|
|
+import nccloud.framework.web.ui.pattern.billcard.BillCard;
|
|
|
+import nccloud.itf.tmpub.util.PerformanceLog;
|
|
|
+import nccloud.pubitf.cmp.paybill.IPaybillMgrServiceForNCC;
|
|
|
+import nccloud.pubitf.cmp.paybill.PaybillSagaInfoAdapter;
|
|
|
+import nccloud.pubitf.tmpub.pub.ISagasBizService;
|
|
|
+import nccloud.web.cmp.billmanagement.paybills.common.PaybillsUtil;
|
|
|
+import nccloud.web.tmpub.action.AbstrSaveCommitAction;
|
|
|
+import nccloud.web.tmpub.pub.ms.util.SagasBizUtil;
|
|
|
+
|
|
|
+public class PaybillSaveCommitAction extends AbstrSaveCommitAction<BillAggVO> {
|
|
|
+ private final String PARAM_CONTENT = "content";
|
|
|
+ protected PerformanceLog btplog = new PerformanceLog();
|
|
|
+ private static volatile ISagasBizService bizService;
|
|
|
+
|
|
|
+ protected static ISagasBizService getISagasBizService() {
|
|
|
+ if (bizService == null) {
|
|
|
+ Class var0 = ISagasBizService.class;
|
|
|
+ synchronized (ISagasBizService.class) {
|
|
|
+ if (bizService == null) {
|
|
|
+ return (ISagasBizService) ServiceLocator.find(ISagasBizService.class);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return bizService;
|
|
|
+ }
|
|
|
+
|
|
|
+ protected Object doSaveCommit(BillAggVO aggVO, Map<String, String> extParam) throws BusinessException {
|
|
|
+ try {
|
|
|
+ this.btplog.start("baocuntijiao-zhurusagaxinxi");
|
|
|
+ SagasBizUtil.setOperInfo("36070PBR_D5_card", "savecommit");
|
|
|
+ getISagasBizService().checkFrozen(new PaybillSagaInfoAdapter(), aggVO.getPrimaryKey());
|
|
|
+ this.btplog.end("baocuntijiao-zhurusagaxinxi");
|
|
|
+ } catch (Exception var5) {
|
|
|
+ Logger.error(var5);
|
|
|
+ ExceptionUtils.wrapException(var5);
|
|
|
+ }
|
|
|
+ BillVO headvo=(BillVO) aggVO.getParentVO();
|
|
|
+
|
|
|
+ if (null != aggVO.getParentVO()) {
|
|
|
+ ((BillVO) aggVO.getParentVO()).setBill_status(-10);
|
|
|
+ ((BillVO) aggVO.getParentVO()).setBill_type("F5");
|
|
|
+ BillDetailVO[] detailvos = (BillDetailVO[]) aggVO.getChildrenVO();
|
|
|
+ for (BillDetailVO detailvo: detailvos) {
|
|
|
+ detailvo.setBill_type("F5");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (null != headvo.getDef11()) {
|
|
|
+ if(!headvo.getDef12().equals("")) {
|
|
|
+ UFDouble srcmoney = new UFDouble(headvo.getDef12());
|
|
|
+ if(!srcmoney.equals(headvo.getPrimal_money())) {
|
|
|
+ ExceptionUtils.wrapBusinessException("付款金额和到账通知的金额不等,请检验。 ");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ this.btplog.start("baocuntijiao-yewu xinxi hebing");
|
|
|
+ PaybillsUtil.Paybills2BusiAgg(aggVO);
|
|
|
+ this.btplog.end("baocuntijiao-yewu xinxi hebing");
|
|
|
+ String contentStr = (String) extParam.get("content");
|
|
|
+ JSONObject assign = StringUtil.isNull(contentStr) ? null : (JSONObject) JSON.parse(contentStr);
|
|
|
+
|
|
|
+ Object objet= this.getNCCService().doSaveCommit(aggVO, assign);
|
|
|
+ if (null != headvo.getDef11()) {
|
|
|
+ VOQuery<InformerVO> querysordr = new VOQuery<InformerVO>(InformerVO.class);
|
|
|
+ //到账通知发布主表
|
|
|
+ String [] pks=new String[] {headvo.getDef11()};
|
|
|
+ InformerVO[] informerVO = querysordr.query(pks);
|
|
|
+ informerVO[0].setGenerateflag("hasgenerate");//已生成
|
|
|
+ informerVO[0].setUsemoney(headvo.getPrimal_money());//赎回金额--付款原币金额(付款结算)
|
|
|
+ informerVO[0].setPk_claimer(headvo.getBillmaker());//认证人
|
|
|
+ informerVO[0].setClaimdate(headvo.getBill_date());//认证日期
|
|
|
+ informerVO[0].setPk_lower(headvo.getPk_paybill());//主键
|
|
|
+ informerVO[0].setLowerbilltype("F5");
|
|
|
+ informerVO[0].setDr(0);
|
|
|
+
|
|
|
+ IVOPersistence ivopce=(IVOPersistence) NCLocator.getInstance().lookup(IVOPersistence.class.getName());
|
|
|
+
|
|
|
+ try {
|
|
|
+ ivopce.updateVO(informerVO[0]);
|
|
|
+ } catch (BusinessException e) {
|
|
|
+ // TODO Auto-generated catch block
|
|
|
+ ExceptionUtils.wrapBusinessException(e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return objet;
|
|
|
+ }
|
|
|
+
|
|
|
+ protected Class<?> getFrontDataClass() {
|
|
|
+ return BillCard.class;
|
|
|
+ }
|
|
|
+
|
|
|
+ protected IPaybillMgrServiceForNCC getNCCService() {
|
|
|
+ return (IPaybillMgrServiceForNCC) ServiceLocator.find(IPaybillMgrServiceForNCC.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected Object beforeReturn(Object billcard) throws BusinessException {
|
|
|
+ PaybillsUtil.afterProcess((BillCard) billcard);
|
|
|
+ PaybillsUtil.sourceFlagTranslate((BillCard) billcard);
|
|
|
+ return billcard;
|
|
|
+ }
|
|
|
+}
|