Browse Source

代码优化

yaoyu 1 year ago
parent
commit
056403a16e

+ 1 - 1
pu/pu/src/client/nc/pub/filesystem/newui/ThOCRAction.java

@@ -152,7 +152,7 @@ public class ThOCRAction extends AbstractNCAction{
 				String total = "";
 				String dtax = "";
 				//专票带税额,不是专票无税金额=价税合计
-				if(type.equals("1")||type.equals("28")){
+				if(type.equals("1")||type.equals("28")||type.equals("32")){
 					amount = price.getString("amount");//无税金额
 					total = price.getString("total");//价税合计
 					dtax = price.getString("dtax");//可抵扣税额

+ 30 - 41
pu/pu/src/client/nc/ui/pu/m25/editor/card/afteredit/body/OcrRefaft.java

@@ -16,28 +16,25 @@ import nc.vo.pubapp.pattern.exception.ExceptionUtils;
 
 public class OcrRefaft implements ICardBodyAfterEditEventListener{
 	
-	IUAPQueryBS iuap=(IUAPQueryBS) NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());
-
+	public IUAPQueryBS iuap=(IUAPQueryBS) NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());
 	@Override
 	public void afterEdit(CardBodyAfterEditEvent arg0) {
-		UIRefPane ref=(UIRefPane) arg0.getBillCardPanel().getBodyItem("vbdef20").getComponent();
+		
+		UIRefPane ref=(UIRefPane) arg0.getBillCardPanel().getBodyItem("OCR").getComponent();
 		String[] pks = ref.getRefPKs();
 		StringBuffer sbf = new StringBuffer();
 		// 处理PK
 		if (pks == null || pks.length <= 0) {
 			return;
-//			sbf.append(",");
-		} else {
+		}else {
 			for (int i = 0; i < pks.length; i++) {
-				sbf.append(","+pks[i]);
-			}
+				sbf.append(pks[i]+",");
+			}	
 		}
 		
-		//存放PK
-		arg0.getBillCardPanel().setBodyValueAt(sbf.substring(1), arg0.getRow(), "vbdef20");
-		UFDouble SumAmount = new UFDouble(0);//不含税
-		UFDouble SumTotal = new UFDouble(0);//价税合计
-		UFDouble SumTax = new UFDouble(0);//税额
+		UFDouble SumAmount = UFDouble.ZERO_DBL;//不含税
+		UFDouble SumTotal = UFDouble.ZERO_DBL;//价税合计
+		UFDouble SumTax =UFDouble.ZERO_DBL;//税额
 		String shuilv = "";//记录第一条税率,和后面进行对比,若不同则报错不允许保存
 		Object shuilvpk = "";
 		if(pks.length > 1){			
@@ -48,17 +45,17 @@ public class OcrRefaft implements ICardBodyAfterEditEventListener{
 				try {
 					defdocvo = (DefdocVO) iuap.executeQuery(qrysql, new BeanProcessor(DefdocVO.class));
 					Object shortname6 = defdocvo.getShortname6();
-					if(shortname6 == null){
-						ExceptionUtils.wrappBusinessException("所选发票税率为空,不能保存!");
-						return;
-					}
+						if(shortname6 == null){
+							ExceptionUtils.wrappBusinessException("所选发票税率为空,不能保存!");
+							return;
+						}
 					if(j == 0 && shortname6 != null){
 						shuilv = shortname6.toString();
 					}
-					if(j != 0 && !shortname6.toString().equals(shuilv)){
-						ExceptionUtils.wrappBusinessException("所选发票税率不同,不能保存!");
-						return;
-					}
+						if(j != 0 && !shortname6.toString().equals(shuilv)){
+							ExceptionUtils.wrappBusinessException("所选发票税率不同,不能保存!");
+							return;
+						}
 					
 				} catch (BusinessException e) {
 					// TODO 自动生成的 catch 块
@@ -85,12 +82,12 @@ public class OcrRefaft implements ICardBodyAfterEditEventListener{
 					// TODO 自动生成的 catch 块
 					ExceptionUtils.wrappBusinessException(e1.getMessage());
 				}
-				arg0.getBillCardPanel().setHeadItem("vbillcode", defdocvo.getName());//发票号
+			//	arg0.getBillCardPanel().setHeadItem("vbillcode", defdocvo.getName());//发票号
 				arg0.getBillCardPanel().setHeadItem("vdef19", defdocvo.getName4());//开票方
-				arg0.getBillCardPanel().setHeadItem("dbilldate", new UFDate(defdocvo.getShortname4()));//发票日期
-				arg0.getBillCardPanel().setBodyValueAt(defdocvo.getShortname5(), 0, "vbdef17");//发票分类
-				arg0.getBillCardPanel().setBodyValueAt(defdocvo.getShortname6(), 0, "ntaxrate");//税率
-				arg0.getBillCardPanel().setBodyValueAt(shuilvpk, 0, "ctaxcodeid");//税码
+//					arg0.getBillCardPanel().setHeadItem("dbilldate", new UFDate(defdocvo.getShortname4()));//发票日期
+				arg0.getBillCardPanel().setBodyValueAt(defdocvo.getShortname5(), arg0.getRow(), "vbdef17");//发票分类
+				arg0.getBillCardPanel().setBodyValueAt(defdocvo.getShortname6(), arg0.getRow(), "ntaxrate");//税率
+				arg0.getBillCardPanel().setBodyValueAt(shuilvpk, arg0.getRow(), "ctaxcodeid");//税码
 				Object shortname = defdocvo.getShortname();
 				if(shortname != null && shortname.toString() != ""){
 					SumAmount = SumAmount.add(new UFDouble(shortname.toString()));
@@ -112,32 +109,24 @@ public class OcrRefaft implements ICardBodyAfterEditEventListener{
 		arg0.getBillCardPanel().setBodyValueAt(1, arg0.getRow(), "nnum");//主数量
 		arg0.getBillCardPanel().setBodyValueAt(SumAmount, arg0.getRow(), "nastorigprice");//无税单价
 		arg0.getBillCardPanel().setBodyValueAt(SumAmount, arg0.getRow(), "nastprice");//本币无税单价
-		arg0.getBillCardPanel().setBodyValueAt(SumAmount, arg0.getRow(), "norigprice");//主无税单价
-		arg0.getBillCardPanel().setBodyValueAt(SumAmount, arg0.getRow(), "nprice");//主本币无税单价
 		arg0.getBillCardPanel().setBodyValueAt(SumAmount, arg0.getRow(), "norigmny");//无税金额
 		arg0.getBillCardPanel().setBodyValueAt(SumAmount, arg0.getRow(), "nmny");//本币无税金额
 		arg0.getBillCardPanel().setBodyValueAt(SumTotal, arg0.getRow(), "nastorigtaxprice");//含税单价
-		arg0.getBillCardPanel().setBodyValueAt(SumTotal, arg0.getRow(), "norigtaxprice");//主含税单价
 		arg0.getBillCardPanel().setBodyValueAt(SumTotal, arg0.getRow(), "nasttaxprice");//本币含税单价
-		arg0.getBillCardPanel().setBodyValueAt(SumTotal, arg0.getRow(), "ntaxprice");//主本币含税单价
 		arg0.getBillCardPanel().setBodyValueAt(SumTotal, arg0.getRow(), "norigtaxmny");//价税合计
 		arg0.getBillCardPanel().setBodyValueAt(SumTotal, arg0.getRow(), "ntaxmny");//本币价税合计
 		arg0.getBillCardPanel().setBodyValueAt(SumTax, arg0.getRow(), "ntax");//税额
-		arg0.getBillCardPanel().setBodyValueAt(SumTotal, arg0.getRow(), "ncalcostmny");//计成本金额
 		
 		
 		
 		//存放PK
-		//	ref.setPKs(pks);
-			DefaultConstEnum refEnumxz = new DefaultConstEnum(sbf.toString().substring(0, sbf.toString().length()-1), ref.getRefShowName());
-			DefaultConstEnum refEnum = new DefaultConstEnum("1001ZZ1000000097LQJ2", "发票信息已赋值");///默认值(发票信息已赋值)
-			arg0.getBillCardPanel().setBodyValueAt(refEnum, arg0.getRow(), "OCR");//默认
-			arg0.getBillCardPanel().setBodyValueAt(sbf.toString().substring(0, sbf.toString().length()-1), arg0.getRow(), "vbdef20");//主键
-			arg0.getBillCardPanel().setBodyValueAt(refEnumxz, arg0.getRow(), "vbdef16");//显示名称
+	//	ref.setPKs(pks);
+		DefaultConstEnum refEnumxz = new DefaultConstEnum(sbf.toString().substring(0, sbf.toString().length()-1), ref.getRefShowName());
+		DefaultConstEnum refEnum = new DefaultConstEnum("1001ZZ1000000097LQJ2", "发票信息已赋值");///默认值(发票信息已赋值)
+		arg0.getBillCardPanel().setBodyValueAt(refEnum, arg0.getRow(), "OCR");//默认
+		arg0.getBillCardPanel().setBodyValueAt(sbf.toString().substring(0, sbf.toString().length()-1), arg0.getRow(), "vbdef20");//主键
+		arg0.getBillCardPanel().setBodyValueAt(refEnumxz, arg0.getRow(), "vbdef16");//显示名称
 
-		
-		
-		
-	}
+   }
 
-}
+}

+ 4 - 2
pu/pu/src/private/nc/bs/ic/base/InvoiceAfterCheckEvent.java

@@ -54,7 +54,6 @@ public class InvoiceAfterCheckEvent implements IBusinessListener{
 					String csourcetypecode = arrInvoiceItemVO[0].getCsourcetypecode();
 					//来源单据主键
 					String csourceid = arrInvoiceItemVO[0].getCsourceid();
-					
 					List<Map<Object, Object>> listMap = new ArrayList<Map<Object, Object>>();
 					//来源单据是采购订单
 					if("21".equals(csourcetypecode)) {
@@ -69,7 +68,7 @@ public class InvoiceAfterCheckEvent implements IBusinessListener{
 						sql.append(" WHERE");
 						sql.append(" po_order.pk_order = '"+csourceid+"'");
 						listMap = (List<Map<Object, Object>>) bs.executeQuery(sql.toString(), new MapListProcessor());                
-					}
+					}else
 					//来源单据是入库单
 					if("45".equals(csourcetypecode)) {
 						StringBuffer sql = new StringBuffer();
@@ -85,6 +84,9 @@ public class InvoiceAfterCheckEvent implements IBusinessListener{
 						sql.append(" WHERE");
 						sql.append(" ic_purchasein_h.cgeneralhid = '"+csourceid+"'");
 						listMap = (List<Map<Object, Object>>) bs.executeQuery(sql.toString(), new MapListProcessor());
+					}else {
+						//只有来源是采购订单或者采购入库单的才进行保存校验
+						return;
 					}
 						for (InvoiceItemVO invoiceItemVO : arrInvoiceItemVO) {
 						//没传发票不比较日期、抬头、纳税人识别号

+ 2 - 5
pu/pu/src/private/nc/impl/th/ThOcrServiceImpl.java

@@ -680,7 +680,7 @@ public class ThOcrServiceImpl implements IThOcrService{
 		@Override
 		public void UpdateInvoiceStatus(String status, InvoiceVO[] vos) throws Exception {
 			for (InvoiceVO invoiceVO : vos) {
-				//审批结果Y代表通过 N代表不通过 R代表驳回T报销中
+				//审批结果Y2代表通过 N0代表不通过 R0代表驳回T1报销中
 				InvoiceItemVO[] arrInvoiceItemVO = (InvoiceItemVO[]) invoiceVO.getChildren(InvoiceItemVO.class);
 				List<Map<Object, Object>> listMapVbdef20 = new ArrayList<Map<Object, Object>>();
 				List<String> listVbdef20 = new ArrayList<String>();
@@ -717,9 +717,8 @@ public class ThOcrServiceImpl implements IThOcrService{
 					String  sreim = "0";
 					if("Y".equals(status)) {
 						sreim = "2";
-					}else {
+					}else if("T".equals(status)) {
 						sreim = "1";
-						
 					}
 					JSONObject bodyJson1 = new JSONObject();
 					bodyJson1.put("cid", cid_);
@@ -744,8 +743,6 @@ public class ThOcrServiceImpl implements IThOcrService{
 					UpdateInvoiceOCR(bodyJson1.toString());
 				}
 			}
-			String str1 = null;
-			str1.toString();
 		}
 		
 		/**