付款单编辑供应商带出科目余额并支持批量-张鑫0605
This commit is contained in:
		
							parent
							
								
									00734bc9b8
								
							
						
					
					
						commit
						a927ca5c8e
					
				|  | @ -0,0 +1,925 @@ | |||
| package nccloud.web.arap.arappub.viewhandler.bodyafter; | ||||
| 
 | ||||
| import java.text.SimpleDateFormat; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Arrays; | ||||
| import java.util.Collection; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.Objects; | ||||
| import org.apache.commons.lang3.ArrayUtils; | ||||
| import com.google.gson.Gson; | ||||
| import nc.itf.arap.fieldmap.IBillFieldGet; | ||||
| import nc.itf.bd.bankacc.cust.ICustBankaccQueryService; | ||||
| import nc.itf.gl.api.IResourceService; | ||||
| import nc.md.model.MetaDataException; | ||||
| import nc.md.persist.framework.IMDPersistenceQueryService; | ||||
| import nc.pubitf.arap.pub.ICurrentVersionService; | ||||
| import nc.pubitf.uapbd.ICustomerPubService; | ||||
| import nc.pubitf.uapbd.ISupplierPubService; | ||||
| import nc.vo.arap.basebill.BaseItemVO; | ||||
| import nc.vo.arap.pay.PayBillVO; | ||||
| import nc.vo.arap.pub.BillEnumCollection.ObjType; | ||||
| import nc.vo.arap.utils.StringUtil; | ||||
| import nc.vo.bd.bankaccount.BankAccSubVO; | ||||
| import nc.vo.bd.bankaccount.cust.CustBankaccUnionVO; | ||||
| import nc.vo.bd.cust.CustomerVO; | ||||
| import nc.vo.bd.cust.finance.CustFinanceVO; | ||||
| import nc.vo.bd.cust.saleinfo.CustsaleVO; | ||||
| import nc.vo.bd.supplier.SupplierVO; | ||||
| import nc.vo.bd.supplier.finance.SupFinanceVO; | ||||
| import nc.vo.gl.openapi.GLQueryWebVO; | ||||
| import nc.vo.org.AccountingBookVO; | ||||
| import nc.vo.pub.BusinessException; | ||||
| import nc.vo.pub.lang.UFDate; | ||||
| import nc.vo.pubapp.pattern.exception.ExceptionUtils; | ||||
| import nccloud.api.rest.utils.NCCRestUtils; | ||||
| import nccloud.framework.service.ServiceLocator; | ||||
| import nccloud.framework.web.ui.model.row.Cell; | ||||
| import nccloud.framework.web.ui.pattern.billcard.CardBodyAfterEditEvent; | ||||
| import nccloud.framework.web.ui.pattern.grid.ChangedRow; | ||||
| import nccloud.web.arap.arappub.util.AfterEditEventUtil; | ||||
| import nccloud.web.arap.arappub.util.ArapUiUtil; | ||||
| import nccloud.web.arap.arappub.util.BillEventHandlerUtil; | ||||
| 
 | ||||
| /** | ||||
|  * @author hanzhhm | ||||
|  */ | ||||
| public class BodyCuspAfterEditHandler extends BodyBatchBillHandler<CardBodyAfterEditEvent> { | ||||
| 	/** | ||||
| 	 * 220201/224103/224105/224101科目的期末余额 | ||||
| 	 */ | ||||
| 	private String endlocamount220201 = ""; | ||||
| 	private String endlocamount224103 = ""; | ||||
| 	private String endlocamount224105 = ""; | ||||
| 	private String endlocamount224101 = ""; | ||||
| 	IMDPersistenceQueryService imDPersistenceService = ServiceLocator.find(IMDPersistenceQueryService.class); | ||||
| 
 | ||||
| 	@Override | ||||
| 	public void handle() { | ||||
| 		String key = getKey(); | ||||
| 		String pk_billtype = (String) getHeadValue(IBillFieldGet.PK_BILLTYPE); | ||||
| 		Integer objtype = (Integer) getBodyValue(IBillFieldGet.OBJTYPE); | ||||
| 
 | ||||
| 		if (IBillFieldGet.CUSTOMER.equals(key) || IBillFieldGet.CUSTOMER_V.equals(key)) { | ||||
| 			// 增加客户版本化处理 qinwfh 2021-07-05 | ||||
| 			// 分别处理编辑客户和客户版本字段 | ||||
| 			UFDate thisbilldate = getHeadValue(IBillFieldGet.BILLDATE); | ||||
| 			Map<String, String> customerPKtoVIDMap = new HashMap<String, String>();// 接收根据customer返回的customer对customer_v的MAP值 | ||||
| 			Map<String, String> customerVIDtoPKMap = new HashMap<String, String>();// 接收根据customer_v和单击日期返回的customer_v对customer的MAP值 | ||||
| 			if (IBillFieldGet.CUSTOMER_V.equals(key)) { | ||||
| 				// 根据客户customer_v去获取对应的customer | ||||
| 				String[] customer_vid = new String[] { (String) getBodyValue(IBillFieldGet.CUSTOMER_V) }; | ||||
| 				if (StringUtil.isEmptyWithTrim(customer_vid[0])) { | ||||
| 					setBodyValue(null, IBillFieldGet.CUSTOMER); | ||||
| 				} else { | ||||
| 					try { | ||||
| 						customerVIDtoPKMap = ServiceLocator.find(ICustomerPubService.class) | ||||
| 								.getCustomerOIDByVid(customer_vid); | ||||
| 					} catch (BusinessException e1) { | ||||
| 						ExceptionUtils.wrappException(e1); | ||||
| 					} | ||||
| 					// 设置表头和表体客户CUSTOMER_V字段值 | ||||
| 					if (customerVIDtoPKMap != null && !customerVIDtoPKMap.isEmpty() && customerVIDtoPKMap.size() > 0) { | ||||
| 						setBodyValue(customerVIDtoPKMap.get(customer_vid[0]), IBillFieldGet.CUSTOMER); | ||||
| 					} | ||||
| 				} | ||||
| 			} else { | ||||
| 				// 根据客户customer和时间去获取对应最新的customer_v | ||||
| 				String customer_oid = (String) getBodyValue(IBillFieldGet.CUSTOMER); | ||||
| 				if (StringUtil.isEmptyWithTrim(customer_oid)) { | ||||
| 					setBodyValue(null, IBillFieldGet.CUSTOMER_V); | ||||
| 				} else { | ||||
| 					Map<String, UFDate> customerAndDateMap = new HashMap<String, UFDate>(); | ||||
| 					customerAndDateMap.put(customer_oid, thisbilldate); | ||||
| 					try { | ||||
| 						customerPKtoVIDMap = ServiceLocator.find(ICustomerPubService.class) | ||||
| 								.getCustomerLastVIDByOidAndDate(customerAndDateMap); | ||||
| 					} catch (BusinessException e1) { | ||||
| 						ExceptionUtils.wrappException(e1); | ||||
| 					} | ||||
| 					// 设置表头和表体客户CUSTOMER字段值 | ||||
| 					// 同时,考虑升级问题,历史数据可能没有Vid值,则设置为oid | ||||
| 					if (customerPKtoVIDMap != null && customerPKtoVIDMap.size() != 0) { | ||||
| 						setBodyValue(customerPKtoVIDMap.get(customer_oid), IBillFieldGet.CUSTOMER_V); | ||||
| 					} else { | ||||
| 						setBodyValue(customer_oid, IBillFieldGet.CUSTOMER_V); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			super.doChange4RateWithCuSp(); | ||||
| 
 | ||||
| 			// setHeadValueByFirstLine(IBillFieldGet.CUSTOMER); | ||||
| 			if (IBillFieldGet.F2.equals(pk_billtype) || IBillFieldGet.F0.equals(pk_billtype)) { | ||||
| 				if (ObjType.SUPPLIER.VALUE.intValue() != objtype) { | ||||
| 					Map<String, Object> customerMap = new HashMap<String, Object>(); | ||||
| 					try { | ||||
| 						customerMap = setBodyChanel(); | ||||
| 					} catch (BusinessException e) { | ||||
| 						ExceptionUtils.wrappException(e); | ||||
| 					} | ||||
| 
 | ||||
| 					// 带出财务信息页签 默认 币种、收付款协议、业务员、部门 modify by zhongfsh3 | ||||
| 					// 2019-06-01 | ||||
| 					CustomerVO customerVO = (customerMap != null && customerMap.get("customerVO") != null) | ||||
| 							? (CustomerVO) customerMap.get("customerVO") | ||||
| 							: null; | ||||
| 					if (customerVO != null) { | ||||
| 						CustFinanceVO[] finances = customerVO.getFinances(); | ||||
| 						if (finances != null && finances.length > 0) { | ||||
| 							String pk_org = (String) getHeadValue(IBillFieldGet.PK_ORG); | ||||
| 
 | ||||
| 							for (CustFinanceVO custFinanceVO : finances) { | ||||
| 								// 根据组织匹配过滤客户基本档案财务页签 | ||||
| 								if (custFinanceVO.getPk_org().equals(pk_org)) { | ||||
| 									String pk_currtype = custFinanceVO.getPk_currtype1(); | ||||
| 									String pk_payitem = custFinanceVO.getPk_payterm(); | ||||
| 									String pk_resppsn = custFinanceVO.getPk_resppsn1(); | ||||
| 									String pk_respdept = custFinanceVO.getPk_respdept1(); | ||||
| 									String pk_respdept_v = null; | ||||
| 									if (pk_respdept != null) { | ||||
| 										try { | ||||
| 											UFDate billdate = getHeadValue(IBillFieldGet.BILLDATE); | ||||
| 											ICurrentVersionService service = ServiceLocator | ||||
| 													.find(ICurrentVersionService.class); | ||||
| 											pk_respdept_v = service.queryDeptPkVidByPKAndDate(pk_respdept, billdate); | ||||
| 										} catch (BusinessException e) { | ||||
| 											ExceptionUtils.wrappException(e); | ||||
| 										} | ||||
| 									} | ||||
| 
 | ||||
| 									// 值不为空且发生改变,自动带出 | ||||
| 									if (pk_currtype != null | ||||
| 											&& !Objects.equals(pk_currtype, getBodyValue(BaseItemVO.PK_CURRTYPE))) { | ||||
| 										bodyAfterEdit(pk_currtype, IBillFieldGet.PK_CURRTYPE); | ||||
| 									} | ||||
| 									if (pk_payitem != null | ||||
| 											&& !Objects.equals(pk_payitem, getBodyValue(BaseItemVO.PK_PAYTERM))) { | ||||
| 										bodyAfterEdit(pk_payitem, IBillFieldGet.PK_PAYTERM); | ||||
| 									} | ||||
| 									if (pk_resppsn != null | ||||
| 											&& !Objects.equals(pk_resppsn, getBodyValue(BaseItemVO.PK_PSNDOC))) { | ||||
| 										bodyAfterEdit(pk_resppsn, IBillFieldGet.PK_PSNDOC); | ||||
| 									} | ||||
| 									if (pk_respdept != null | ||||
| 											&& !Objects.equals(pk_respdept, getBodyValue(BaseItemVO.PK_DEPTID))) { | ||||
| 										bodyAfterEdit(pk_respdept, IBillFieldGet.PK_DEPTID); | ||||
| 									} | ||||
| 									if (pk_respdept_v != null && !Objects.equals(pk_respdept_v, | ||||
| 											getBodyValue(IBillFieldGet.PK_DEPTID_V))) { | ||||
| 										bodyAfterEdit(pk_respdept_v, IBillFieldGet.PK_DEPTID_V); | ||||
| 									} | ||||
| 									break; | ||||
| 								} | ||||
| 							} | ||||
| 						} | ||||
| 					} | ||||
| 					// 清空付款银行 | ||||
| 					if (isClear(IBillFieldGet.PAYACCOUNT, IBillFieldGet.CUSTOMER)) { | ||||
| 						setBodyValue(null, IBillFieldGet.PAYACCOUNT); // 2012版本判断银行账户是否停用,停用清空 | ||||
| 					} | ||||
| 					setBodyValue(null, IBillFieldGet.FREECUST); | ||||
| 					// setHeadValueByFirstLine(IBillFieldGet.CUSTOMER); | ||||
| 					String cusBankAccs = (customerMap != null && customerMap.get("cusBankaccs") != null) | ||||
| 							? (String) customerMap.get("cusBankaccs") | ||||
| 							: null; | ||||
| 					String defaultBankSubAccCurrtype = (customerMap != null | ||||
| 							&& customerMap.get("defaultBankSubAccCurrtype") != null) | ||||
| 									? ((BankAccSubVO) customerMap.get("defaultBankSubAccCurrtype")).getPk_currtype() | ||||
| 									: null; | ||||
| 					String editRowCurrtype = (String) getBodyValueByRowIndex(IBillFieldGet.PK_CURRTYPE, getRowindex()); | ||||
| 					if (null != defaultBankSubAccCurrtype && null != editRowCurrtype | ||||
| 							&& defaultBankSubAccCurrtype.equals(editRowCurrtype)) { | ||||
| 						setBodyValue(cusBankAccs, IBillFieldGet.PAYACCOUNT); | ||||
| 					} | ||||
| 					// setHeadValueByFirstLine(IBillFieldGet.PAYACCOUNT); | ||||
| 				} | ||||
| 				// 订单客户与发票客户不做联动 addBy baoxina 恢复by baoxina | ||||
| 				setBodyValue(getBodyValue(IBillFieldGet.CUSTOMER), IBillFieldGet.ORDERCUBASDOC); | ||||
| 				// 编辑客户版本字段时联动订单客户版本字段 qinwfh 2021-07-06 | ||||
| 				setBodyValue(getBodyValue(IBillFieldGet.CUSTOMER_V), IBillFieldGet.ORDERCUBASDOC_V); | ||||
| 			} else if ((IBillFieldGet.F1.equals(pk_billtype) || IBillFieldGet.F3.equals(pk_billtype))) { | ||||
| 				if (ObjType.CUSTOMER.VALUE.intValue() == objtype) { | ||||
| 					Map<String, Object> customerMap = new HashMap<String, Object>(); | ||||
| 					try { | ||||
| 						customerMap = setBodyChanel(); | ||||
| 					} catch (BusinessException e) { | ||||
| 						ExceptionUtils.wrappException(e); | ||||
| 					} | ||||
| 
 | ||||
| 					// 带出财务信息页签 默认 币种、收付款协议、业务员、部门 modify by zhongfsh3 | ||||
| 					// 2019-06-01 | ||||
| 					CustomerVO customerVO = (customerMap != null && customerMap.get("customerVO") != null) | ||||
| 							? (CustomerVO) customerMap.get("customerVO") | ||||
| 							: null; | ||||
| 					if (customerVO != null) { | ||||
| 						CustFinanceVO[] finances = customerVO.getFinances(); | ||||
| 						if (finances != null && finances.length > 0) { | ||||
| 							String pk_org = (String) getHeadValue(IBillFieldGet.PK_ORG); | ||||
| 
 | ||||
| 							for (CustFinanceVO custFinanceVO : finances) { | ||||
| 								// 根据组织匹配过滤客户基本档案财务页签 | ||||
| 								if (custFinanceVO.getPk_org().equals(pk_org)) { | ||||
| 									String pk_currtype = custFinanceVO.getPk_currtype1(); | ||||
| 									String pk_payitem = custFinanceVO.getPk_payterm(); | ||||
| 									String pk_resppsn = custFinanceVO.getPk_resppsn1(); | ||||
| 									String Pk_respdept = custFinanceVO.getPk_respdept1(); | ||||
| 									String Pk_respdept_v = null; | ||||
| 									if (Pk_respdept != null) { | ||||
| 										try { | ||||
| 											UFDate billdate = getHeadValue(IBillFieldGet.BILLDATE); | ||||
| 											ICurrentVersionService service = ServiceLocator | ||||
| 													.find(ICurrentVersionService.class); | ||||
| 											Pk_respdept_v = service.queryDeptPkVidByPKAndDate(Pk_respdept, billdate); | ||||
| 										} catch (BusinessException e) { | ||||
| 											ExceptionUtils.wrappException(e); | ||||
| 										} | ||||
| 									} | ||||
| 
 | ||||
| 									// 值不为空且发生改变,自动带出 | ||||
| 									if (pk_currtype != null | ||||
| 											&& !Objects.equals(pk_currtype, getBodyValue(BaseItemVO.PK_CURRTYPE))) { | ||||
| 										bodyAfterEdit(pk_currtype, IBillFieldGet.PK_CURRTYPE); | ||||
| 									} | ||||
| 									if (pk_payitem != null | ||||
| 											&& !Objects.equals(pk_payitem, getBodyValue(BaseItemVO.PK_PAYTERM))) { | ||||
| 										bodyAfterEdit(pk_payitem, IBillFieldGet.PK_PAYTERM); | ||||
| 									} | ||||
| 									if (pk_resppsn != null | ||||
| 											&& !Objects.equals(pk_resppsn, getBodyValue(BaseItemVO.PK_PSNDOC))) { | ||||
| 										bodyAfterEdit(pk_resppsn, IBillFieldGet.PK_PSNDOC); | ||||
| 									} | ||||
| 									if (Pk_respdept != null | ||||
| 											&& !Objects.equals(Pk_respdept, getBodyValue(BaseItemVO.PK_DEPTID))) { | ||||
| 										bodyAfterEdit(Pk_respdept, IBillFieldGet.PK_DEPTID); | ||||
| 									} | ||||
| 									if (Pk_respdept_v != null && !Objects.equals(Pk_respdept_v, | ||||
| 											getBodyValue(IBillFieldGet.PK_DEPTID_V))) { | ||||
| 										bodyAfterEdit(Pk_respdept_v, IBillFieldGet.PK_DEPTID_V); | ||||
| 									} | ||||
| 									break; | ||||
| 								} | ||||
| 							} | ||||
| 						} | ||||
| 					} | ||||
| 					// 清空收款银行 | ||||
| 					if (isClear(IBillFieldGet.RECACCOUNT, IBillFieldGet.CUSTOMER)) { | ||||
| 						setBodyValue(null, IBillFieldGet.RECACCOUNT);// 2012版本 | ||||
| 					} | ||||
| 					setBodyValue(null, IBillFieldGet.FREECUST); | ||||
| 					// setHeadValueByFirstLine(IBillFieldGet.CUSTOMER); | ||||
| 					String cusBankAccs = (customerMap != null && customerMap.get("cusBankaccs") != null) | ||||
| 							? (String) customerMap.get("cusBankaccs") | ||||
| 							: null; | ||||
| 					String defaultBankSubAccCurrtype = (customerMap != null | ||||
| 							&& customerMap.get("defaultBankSubAccCurrtype") != null) | ||||
| 									? ((BankAccSubVO) customerMap.get("defaultBankSubAccCurrtype")).getPk_currtype() | ||||
| 									: null; | ||||
| 					String editRowCurrtype = (String) getBodyValueByRowIndex(IBillFieldGet.PK_CURRTYPE, getRowindex()); | ||||
| 					if (null != defaultBankSubAccCurrtype && null != editRowCurrtype | ||||
| 							&& defaultBankSubAccCurrtype.equals(editRowCurrtype)) { | ||||
| 						setBodyValue(cusBankAccs, IBillFieldGet.RECACCOUNT); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 			// 订单客户与发票客户不做联动 addBy baoxina 恢复by baoxina | ||||
| 			// setBodyValue(getBodyValue(IBillFieldGet.CUSTOMER), | ||||
| 			// IBillFieldGet.ORDERCUBASDOC); | ||||
| 			// 编辑客户版本字段时联动订单客户版本字段 qinwfh 2021-07-06 | ||||
| 			// setBodyValue(getBodyValue(IBillFieldGet.CUSTOMER_V), | ||||
| 			// IBillFieldGet.ORDERCUBASDOC_V); | ||||
| 		} else if (IBillFieldGet.SUPPLIER.equals(key) || IBillFieldGet.SUPPLIER_V.equals(key)) { | ||||
| 			// 增加供应商版本化处理 | ||||
| 			// 增加版本化处理 qinwfh 2021-07-05 | ||||
| 			// 分别处理编辑供应商和供应商版本字段 | ||||
| 			Map<String, String> supplierPKtoVIDMap = new HashMap<String, String>();// 接收根据supplier返回的supplier对supplier_v的MAP值 | ||||
| 			Map<String, String> supplierVIDtoPKMap = new HashMap<String, String>();// 接收根据supplier_v和单击日期返回的supplier_v对customer的MAP值 | ||||
| 			UFDate thisbilldate = getHeadValue(IBillFieldGet.BILLDATE); | ||||
| 			if (IBillFieldGet.SUPPLIER_V.equals(key)) { | ||||
| 				// 根据供应商supplier_v去获取对应的supplier | ||||
| 				String[] supplier_vid = new String[] { (String) getBodyValue(IBillFieldGet.SUPPLIER_V) }; | ||||
| 				if (StringUtil.isEmptyWithTrim(supplier_vid[0])) { | ||||
| 					setBodyValue(null, IBillFieldGet.SUPPLIER); | ||||
| 					setBodyValue(null, "def30"); | ||||
| 					setBodyValue(null, "def31"); | ||||
| 					setBodyValue(null, "def32"); | ||||
| 					setBodyValue(null, "def33"); | ||||
| 				} else { | ||||
| 					try { | ||||
| 						supplierVIDtoPKMap = ServiceLocator.find(ISupplierPubService.class) | ||||
| 								.getSupplierOIDByVid(supplier_vid); | ||||
| 					} catch (BusinessException e1) { | ||||
| 						ExceptionUtils.wrappException(e1); | ||||
| 					} | ||||
| 					// 设置表头和表体供应商SUPPLIER_V字段值 | ||||
| 					if (supplierVIDtoPKMap != null && !supplierVIDtoPKMap.isEmpty() && supplierVIDtoPKMap.size() > 0) { | ||||
| 						setBodyValue(supplierVIDtoPKMap.get(supplier_vid[0]), IBillFieldGet.SUPPLIER); | ||||
| 					} | ||||
| 				} | ||||
| 			} else { | ||||
| 				// 根据供应商supplier和时间去获取对应最新的supplier_v | ||||
| 				String supplier_oid = (String) getBodyValue(IBillFieldGet.SUPPLIER); | ||||
| 				if (StringUtil.isEmptyWithTrim(supplier_oid)) { | ||||
| 					setBodyValue(null, IBillFieldGet.SUPPLIER_V); | ||||
| 					setBodyValue(null, "def30"); | ||||
| 					setBodyValue(null, "def31"); | ||||
| 					setBodyValue(null, "def32"); | ||||
| 					setBodyValue(null, "def33"); | ||||
| 				} else { | ||||
| 					Map<String, UFDate> supplierAndDateMap = new HashMap<String, UFDate>(); | ||||
| 					supplierAndDateMap.put(supplier_oid, thisbilldate); | ||||
| 					try { | ||||
| 						supplierPKtoVIDMap = ServiceLocator.find(ISupplierPubService.class) | ||||
| 								.getSupplierLastVIDByOidAndDate(supplierAndDateMap); | ||||
| 					} catch (BusinessException e1) { | ||||
| 						ExceptionUtils.wrappException(e1); | ||||
| 					} | ||||
| 					// 设置表头和表体供应商SUPPLIER_V字段值 | ||||
| 					// 考虑升级问题,当Vid为空时,将oid值赋值给vid | ||||
| 					if (supplierPKtoVIDMap != null && supplierPKtoVIDMap.size() != 0) { | ||||
| 						setBodyValue(supplierPKtoVIDMap.get(supplier_oid), IBillFieldGet.SUPPLIER_V); | ||||
| 					} else { | ||||
| 						setBodyValue(supplier_oid, IBillFieldGet.SUPPLIER_V); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			super.doChange4RateWithCuSp(); | ||||
| 
 | ||||
| 			if (IBillFieldGet.F3.equals(pk_billtype) || IBillFieldGet.F1.equals(pk_billtype)) { | ||||
| 				if (ObjType.CUSTOMER.VALUE.intValue() != objtype) { | ||||
| 					String supplier = (String) getBodyValue(IBillFieldGet.SUPPLIER); | ||||
| 
 | ||||
| 					// 带出财务信息页签 默认 币种、收付款协议、业务员、部门 add by zhongfsh3 2019-06-01 | ||||
| 					SupplierVO supplierVO = BillEventHandlerUtil.getSupplierVO(supplier); | ||||
| 					if (supplierVO != null && supplierVO.getSupfinance() != null) { | ||||
| 						SupFinanceVO[] financeVOs = supplierVO.getSupfinance(); | ||||
| 						String pk_org = (String) getBodyValue(IBillFieldGet.PK_ORG); | ||||
| 						if (financeVOs != null && financeVOs.length > 0) { | ||||
| 							for (SupFinanceVO financeVO : financeVOs) { | ||||
| 								// 根据组织匹配过滤客户基本档案财务页签 | ||||
| 								if (financeVO.getPk_org().equals(pk_org)) { | ||||
| 									String pk_currtype = financeVO.getPk_currtype(); | ||||
| 									String pk_payitem = financeVO.getPk_payterm(); | ||||
| 									String pk_resppsn = financeVO.getPk_resppsn(); | ||||
| 									String Pk_respdept = financeVO.getPk_respdept(); | ||||
| 									String Pk_respdept_v = null; | ||||
| 									if (Pk_respdept != null) { | ||||
| 										try { | ||||
| 											UFDate billdate = getHeadValue(IBillFieldGet.BILLDATE); | ||||
| 											ICurrentVersionService service = ServiceLocator | ||||
| 													.find(ICurrentVersionService.class); | ||||
| 											Pk_respdept_v = service.queryDeptPkVidByPKAndDate(Pk_respdept, billdate); | ||||
| 										} catch (BusinessException e) { | ||||
| 											ExceptionUtils.wrappException(e); | ||||
| 										} | ||||
| 									} | ||||
| 
 | ||||
| 									// 值不为空且发生改变,自动带出 | ||||
| 									if (pk_currtype != null | ||||
| 											&& !Objects.equals(pk_currtype, getBodyValue(BaseItemVO.PK_CURRTYPE))) { | ||||
| 										bodyAfterEdit(pk_currtype, IBillFieldGet.PK_CURRTYPE); | ||||
| 									} | ||||
| 									if (pk_payitem != null | ||||
| 											&& !Objects.equals(pk_payitem, getBodyValue(BaseItemVO.PK_PAYTERM))) { | ||||
| 										bodyAfterEdit(pk_payitem, IBillFieldGet.PK_PAYTERM); | ||||
| 									} | ||||
| 									if (pk_resppsn != null | ||||
| 											&& !Objects.equals(pk_resppsn, getBodyValue(BaseItemVO.PK_PSNDOC))) { | ||||
| 										bodyAfterEdit(pk_resppsn, IBillFieldGet.PK_PSNDOC); | ||||
| 									} | ||||
| 									if (Pk_respdept != null | ||||
| 											&& !Objects.equals(Pk_respdept, getBodyValue(BaseItemVO.PK_DEPTID))) { | ||||
| 										bodyAfterEdit(Pk_respdept, IBillFieldGet.PK_DEPTID); | ||||
| 									} | ||||
| 									if (Pk_respdept_v != null && !Objects.equals(Pk_respdept_v, | ||||
| 											getBodyValue(IBillFieldGet.PK_DEPTID_V))) { | ||||
| 										bodyAfterEdit(Pk_respdept_v, IBillFieldGet.PK_DEPTID_V); | ||||
| 									} | ||||
| 									break; | ||||
| 								} | ||||
| 							} | ||||
| 
 | ||||
| 						} | ||||
| 					} | ||||
| 					// 泰开项目客开,带出供应商辅助余额111 | ||||
| 					// 核算账薄编码 | ||||
| 					if (supplierVO != null) { | ||||
| 						PayBillVO billvo = (PayBillVO) aggvo.getParent(); | ||||
| 						String pk_relorg = billvo.getPk_fiorg(); | ||||
| 						String accbookCode = getAccbookCode(pk_relorg); | ||||
| 						// 单据日期 | ||||
| 						UFDate billdate = billvo.getBilldate(); | ||||
| 						// 当前时间 | ||||
| 						Long serverDate = System.currentTimeMillis(); | ||||
| 						// 如果有单据号则为修改,修改时单据日期选择现在 | ||||
| 						// 单据号 | ||||
| 						String billno = billvo.getBillno(); | ||||
| 						if (billno != null) { | ||||
| 							billdate = new UFDate(serverDate); | ||||
| 						} | ||||
| 						getAccountingSubject(accbookCode, billdate, supplierVO.getCode(), supplierVO.getName()); | ||||
| 						setBodyValue(endlocamount220201, "def30"); | ||||
| 						setBodyValue(endlocamount224103, "def31"); | ||||
| 						setBodyValue(endlocamount224105, "def32"); | ||||
| 						setBodyValue(endlocamount224101, "def33"); | ||||
| 					} | ||||
| 					// 清空收款银行 | ||||
| 					if (isClear(IBillFieldGet.RECACCOUNT, IBillFieldGet.SUPPLIER)) { | ||||
| 						setBodyValue(null, IBillFieldGet.RECACCOUNT);// 2012版本 | ||||
| 					} | ||||
| 					setBodyValue(null, IBillFieldGet.FREECUST); | ||||
| 					// setHeadValueByFirstLine(IBillFieldGet.SUPPLIER); | ||||
| 
 | ||||
| 					String supBankAccs = BillEventHandlerUtil.getDefaultSupBankAccs(supplier); | ||||
| 					String defaultBankSubAccCurrtype = BillEventHandlerUtil | ||||
| 							.getDefaultBankSubAccCurrtypeByAccpk(supBankAccs); | ||||
| 					String editRowCurrtype = (String) getBodyValueByRowIndex(IBillFieldGet.PK_CURRTYPE, getRowindex()); | ||||
| 					String headCurrtype = (String) getHeadValue(IBillFieldGet.PK_CURRTYPE); | ||||
| 					String headCustomer = (String) getHeadValue(IBillFieldGet.CUSTOMER); | ||||
| 					if (null != defaultBankSubAccCurrtype && null != editRowCurrtype | ||||
| 							&& defaultBankSubAccCurrtype.equals(editRowCurrtype)) { | ||||
| 						setBodyValue(supBankAccs, IBillFieldGet.RECACCOUNT); | ||||
| 					} | ||||
| 					if (headCurrtype != null && headCustomer != null && supplier != null && editRowCurrtype != null) { | ||||
| 						if (editRowCurrtype.equals(headCurrtype) && supplier.equals(headCustomer)) { | ||||
| 							if (defaultBankSubAccCurrtype != null && headCurrtype.equals(defaultBankSubAccCurrtype)) { | ||||
| 								// setHeadValueByFirstLine(IBillFieldGet.RECACCOUNT); | ||||
| 							} | ||||
| 						} | ||||
| 					} | ||||
| 					// setHeadValueByFirstLine(IBillFieldGet.RECACCOUNT); | ||||
| 				} | ||||
| 				// 订单客户与发票客户不做联动 addBy baoxina 恢复by baoxina | ||||
| 				setBodyValue(getBodyValue(IBillFieldGet.SUPPLIER), IBillFieldGet.ORDERCUBASDOC); | ||||
| 				// 编辑客户版本字段时联动订单客户版本字段 qinwfh 2021-07-06 | ||||
| 				setBodyValue(getBodyValue(IBillFieldGet.SUPPLIER_V), IBillFieldGet.ORDERCUBASDOC_V); | ||||
| 
 | ||||
| 			} else if ((IBillFieldGet.F2.equals(pk_billtype) || IBillFieldGet.F0.equals(pk_billtype))) { | ||||
| 				if (ObjType.SUPPLIER.VALUE.intValue() == objtype) { | ||||
| 					String supplier = (String) getBodyValue(IBillFieldGet.SUPPLIER); | ||||
| 
 | ||||
| 					// 带出财务信息页签 默认 币种、收付款协议、业务员、部门 add by zhongfsh3 2019-06-01 | ||||
| 					SupplierVO supplierVO = BillEventHandlerUtil.getSupplierVO(supplier); | ||||
| 					if (supplierVO != null && supplierVO.getSupfinance() != null) { | ||||
| 						SupFinanceVO[] financeVOs = supplierVO.getSupfinance(); | ||||
| 						String pk_org = (String) getBodyValue(IBillFieldGet.PK_ORG); | ||||
| 						if (financeVOs != null && financeVOs.length > 0) { | ||||
| 							for (SupFinanceVO financeVO : financeVOs) { | ||||
| 								// 根据组织匹配过滤客户基本档案财务页签 | ||||
| 								if (financeVO.getPk_org().equals(pk_org)) { | ||||
| 									String pk_currtype = financeVO.getPk_currtype(); | ||||
| 									String pk_payitem = financeVO.getPk_payterm(); | ||||
| 									String pk_resppsn = financeVO.getPk_resppsn(); | ||||
| 									String Pk_respdept = financeVO.getPk_respdept(); | ||||
| 									String Pk_respdept_v = null; | ||||
| 									if (Pk_respdept != null) { | ||||
| 										try { | ||||
| 											UFDate billdate = getHeadValue(IBillFieldGet.BILLDATE); | ||||
| 											ICurrentVersionService service = ServiceLocator | ||||
| 													.find(ICurrentVersionService.class); | ||||
| 											Pk_respdept_v = service.queryDeptPkVidByPKAndDate(Pk_respdept, billdate); | ||||
| 										} catch (BusinessException e) { | ||||
| 											ExceptionUtils.wrappException(e); | ||||
| 										} | ||||
| 									} | ||||
| 
 | ||||
| 									// 值不为空且发生改变,自动带出 | ||||
| 									if (pk_currtype != null | ||||
| 											&& !Objects.equals(pk_currtype, getBodyValue(BaseItemVO.PK_CURRTYPE))) { | ||||
| 										bodyAfterEdit(pk_currtype, IBillFieldGet.PK_CURRTYPE); | ||||
| 									} | ||||
| 									if (pk_payitem != null | ||||
| 											&& !Objects.equals(pk_payitem, getBodyValue(BaseItemVO.PK_PAYTERM))) { | ||||
| 										bodyAfterEdit(pk_payitem, IBillFieldGet.PK_PAYTERM); | ||||
| 									} | ||||
| 									if (pk_resppsn != null | ||||
| 											&& !Objects.equals(pk_resppsn, getBodyValue(BaseItemVO.PK_PSNDOC))) { | ||||
| 										bodyAfterEdit(pk_resppsn, IBillFieldGet.PK_PSNDOC); | ||||
| 									} | ||||
| 									if (Pk_respdept != null | ||||
| 											&& !Objects.equals(Pk_respdept, getBodyValue(BaseItemVO.PK_DEPTID))) { | ||||
| 										bodyAfterEdit(Pk_respdept, IBillFieldGet.PK_DEPTID); | ||||
| 									} | ||||
| 									if (Pk_respdept_v != null && !Objects.equals(Pk_respdept_v, | ||||
| 											getBodyValue(IBillFieldGet.PK_DEPTID_V))) { | ||||
| 										bodyAfterEdit(Pk_respdept_v, IBillFieldGet.PK_DEPTID_V); | ||||
| 									} | ||||
| 									break; | ||||
| 								} | ||||
| 							} | ||||
| 
 | ||||
| 						} | ||||
| 					} | ||||
| 
 | ||||
| 					// 清空收款银行 | ||||
| 					if (isClear(IBillFieldGet.PAYACCOUNT, IBillFieldGet.SUPPLIER)) { | ||||
| 						setBodyValue(null, IBillFieldGet.PAYACCOUNT);// 2012 | ||||
| 					} | ||||
| 					setBodyValue(null, IBillFieldGet.FREECUST); | ||||
| 					// setHeadValueByFirstLine(IBillFieldGet.SUPPLIER); | ||||
| 
 | ||||
| 					String supBankAccs = BillEventHandlerUtil.getDefaultSupBankAccs(supplier); | ||||
| 					String defaultBankSubAccCurrtype = BillEventHandlerUtil | ||||
| 							.getDefaultBankSubAccCurrtypeByAccpk(supBankAccs); | ||||
| 					String editRowCurrtype = (String) getBodyValueByRowIndex(IBillFieldGet.PK_CURRTYPE, getRowindex()); | ||||
| 					String headCurrtype = (String) getHeadValue(IBillFieldGet.PK_CURRTYPE); | ||||
| 					String headCustomer = (String) getHeadValue(IBillFieldGet.CUSTOMER); | ||||
| 					if (null != defaultBankSubAccCurrtype && null != editRowCurrtype | ||||
| 							&& defaultBankSubAccCurrtype.equals(editRowCurrtype)) { | ||||
| 						setBodyValue(supBankAccs, IBillFieldGet.PAYACCOUNT); | ||||
| 					} | ||||
| 					if (headCurrtype != null && headCustomer != null && supplier != null && editRowCurrtype != null) { | ||||
| 						if (editRowCurrtype.equals(headCurrtype) && supplier.equals(headCustomer)) { | ||||
| 							if (defaultBankSubAccCurrtype != null && headCurrtype.equals(defaultBankSubAccCurrtype)) { | ||||
| 								// setHeadValueByFirstLine(IBillFieldGet.RECACCOUNT); | ||||
| 							} | ||||
| 						} | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			// 订单客户与发票客户不做联动 addBy baoxina 恢复by baoxina | ||||
| 			// setBodyValue(getBodyValue(IBillFieldGet.SUPPLIER), | ||||
| 			// IBillFieldGet.ORDERCUBASDOC); | ||||
| 			// 编辑客户版本字段时联动订单客户版本字段 qinwfh 2021-07-06 | ||||
| 			// setBodyValue(getBodyValue(IBillFieldGet.SUPPLIER_V), | ||||
| 			// IBillFieldGet.ORDERCUBASDOC_V); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * nccloud/api/gl/accountrep/assbalance 查询辅助余额接口.查220201/224103/224105的科目的期末余额 | ||||
| 	 *  | ||||
| 	 * @param accbookCode    辅助核算编码 | ||||
| 	 * @param billdate       单据日期 | ||||
| 	 * @param checkvaluecode 供应商编码 | ||||
| 	 * @param checkvaluename 供应商名称 | ||||
| 	 */ | ||||
| 	public void getAccountingSubject(String acccode, UFDate date, String code, String name) { | ||||
| 		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); | ||||
| 		String strdate = formatter.format(date.toDate()); | ||||
| 
 | ||||
| 		endlocamount220201 = getendlocamountBy(queryAssBalance(getRequest(acccode, strdate, code, name))); | ||||
| 		endlocamount224103 = getendlocamountBy(queryAssBalance(getRequest1(acccode, strdate, code, name))); | ||||
| 		endlocamount224105 = getendlocamountBy(queryAssBalance(getRequest2(acccode, strdate, code, name))); | ||||
| 		endlocamount224101 = getendlocamountBy(queryAssBalance(getRequest3(acccode, strdate, code, name))); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * 解析json获取期末余额 | ||||
| 	 *  | ||||
| 	 * @param json | ||||
| 	 * @return 期末余额 endlocamount | ||||
| 	 */ | ||||
| 	public String getendlocamountBy(List<Map<String, Object>> data) { | ||||
| 		if (data == null) { | ||||
| 			return null; | ||||
| 		} | ||||
| 		String str2 = (String) data.get(0).get("endlocamount"); | ||||
| 		String str3 = (String) data.get(0).get("endorint"); | ||||
| 		if (str2 == null || "".equals(str2)) { | ||||
| 			str2 = "0.0"; | ||||
| 		} else { | ||||
| 			if ("借".equals(str3)) { | ||||
| 				str2 = "-" + str2; | ||||
| 			} | ||||
| 		} | ||||
| 		return str2; | ||||
| 	} | ||||
| 
 | ||||
| 	public List<Map<String, Object>> queryAssBalance(String json) { | ||||
| 		NCCRestUtils.initInvocationInfo(); | ||||
| 		GLQueryWebVO qryWebVO = (GLQueryWebVO) new Gson().fromJson(json, GLQueryWebVO.class); | ||||
| 		List<Map<String, Object>> data = null; | ||||
| 		try { | ||||
| 			data = ServiceLocator.find(IResourceService.class).queryAssBalanceByVO(qryWebVO); | ||||
| 		} catch (Exception e) { | ||||
| 			e.printStackTrace(); | ||||
| 		} | ||||
| 		if (data == null) { | ||||
| 			return null; | ||||
| 		} | ||||
| 		return data; | ||||
| 	} | ||||
| 
 | ||||
| 	private static String getRequest(String accbookCode, String strdate, String code, String name) { | ||||
| 		Map<String, Object> map = new HashMap<String, Object>(); | ||||
| 		List<String> accbookcodeList = new ArrayList<String>(); | ||||
| 		accbookcodeList.add(accbookCode); | ||||
| 		map.put("accbookCode", accbookcodeList); | ||||
| 		map.put("queryByPeriod", "false"); | ||||
| 		map.put("inclUntallyed", "true"); | ||||
| 		map.put("inclTransfer", "true"); | ||||
| 		map.put("inclError", "true"); | ||||
| 		map.put("inclReclassify", "true"); | ||||
| 		map.put("date", strdate); | ||||
| 		map.put("endDate", strdate); | ||||
| 		map.put("currtypeCode", "本币"); | ||||
| 
 | ||||
| 		List<Map<String, Object>> queryObjList = new ArrayList<Map<String, Object>>(); | ||||
| 		Map<String, Object> quyMap = new HashMap<String, Object>(); | ||||
| 		Map<String, Object> typeMap = new HashMap<String, Object>(); | ||||
| 
 | ||||
| 		typeMap.put("checktypecode", "会计科目"); | ||||
| 		typeMap.put("checktypename", "会计科目"); | ||||
| 		quyMap.put("checktype", typeMap); | ||||
| 		List<Map<String, String>> valueList = new ArrayList<Map<String, String>>(); | ||||
| 		Map<String, String> valueMap = new HashMap<String, String>(); | ||||
| 
 | ||||
| 		valueMap.put("checkvaluecode", "220201"); | ||||
| 		valueMap.put("checkvaluename", "应付款"); | ||||
| 		valueList.add(valueMap); | ||||
| 		quyMap.put("checkvalue", valueList); | ||||
| 		queryObjList.add(quyMap); | ||||
| 		// | ||||
| 		Map<String, Object> quyMap1 = new HashMap<String, Object>(); | ||||
| 		Map<String, Object> typeMap1 = new HashMap<String, Object>(); | ||||
| 
 | ||||
| 		typeMap1.put("checktypecode", "0019"); | ||||
| 		typeMap1.put("checktypename", "供应商档案"); | ||||
| 		quyMap1.put("checktype", typeMap1); | ||||
| 		List<Map<String, String>> valueList1 = new ArrayList<Map<String, String>>(); | ||||
| 		Map<String, String> valueMap1 = new HashMap<String, String>(); | ||||
| 
 | ||||
| 		valueMap1.put("checkvaluecode", code); | ||||
| 		valueMap1.put("checkvaluename", name); | ||||
| 		valueList1.add(valueMap1); | ||||
| 		quyMap1.put("checkvalue", valueList1); | ||||
| 		queryObjList.add(quyMap1); | ||||
| 		map.put("queryObj", queryObjList); | ||||
| 		return new Gson().toJson(map); | ||||
| 	} | ||||
| 
 | ||||
| 	private static String getRequest1(String accbookCode, String strdate, String code, String name) { | ||||
| 		Map<String, Object> map = new HashMap<String, Object>(); | ||||
| 		List<String> accbookcodeList = new ArrayList<String>(); | ||||
| 		accbookcodeList.add(accbookCode); | ||||
| 		map.put("accbookCode", accbookcodeList); | ||||
| 		map.put("queryByPeriod", "false"); | ||||
| 		map.put("inclUntallyed", "true"); | ||||
| 		map.put("inclTransfer", "true"); | ||||
| 		map.put("inclError", "true"); | ||||
| 		map.put("inclReclassify", "true"); | ||||
| 		map.put("date", strdate); | ||||
| 		map.put("endDate", strdate); | ||||
| 		map.put("currtypeCode", "本币"); | ||||
| 
 | ||||
| 		List<Map<String, Object>> queryObjList = new ArrayList<Map<String, Object>>(); | ||||
| 		Map<String, Object> quyMap = new HashMap<String, Object>(); | ||||
| 		Map<String, Object> typeMap = new HashMap<String, Object>(); | ||||
| 
 | ||||
| 		typeMap.put("checktypecode", "会计科目"); | ||||
| 		typeMap.put("checktypename", "会计科目"); | ||||
| 		quyMap.put("checktype", typeMap); | ||||
| 		List<Map<String, String>> valueList = new ArrayList<Map<String, String>>(); | ||||
| 		Map<String, String> valueMap = new HashMap<String, String>(); | ||||
| 
 | ||||
| 		valueMap.put("checkvaluecode", "224103"); | ||||
| 		valueMap.put("checkvaluename", "单位"); | ||||
| 		valueList.add(valueMap); | ||||
| 		quyMap.put("checkvalue", valueList); | ||||
| 		queryObjList.add(quyMap); | ||||
| 		// | ||||
| 		Map<String, Object> quyMap1 = new HashMap<String, Object>(); | ||||
| 		Map<String, Object> typeMap1 = new HashMap<String, Object>(); | ||||
| 
 | ||||
| 		typeMap1.put("checktypecode", "0019"); | ||||
| 		typeMap1.put("checktypename", "供应商档案"); | ||||
| 		quyMap1.put("checktype", typeMap1); | ||||
| 		List<Map<String, String>> valueList1 = new ArrayList<Map<String, String>>(); | ||||
| 		Map<String, String> valueMap1 = new HashMap<String, String>(); | ||||
| 
 | ||||
| 		valueMap1.put("checkvaluecode", code); | ||||
| 		valueMap1.put("checkvaluename", name); | ||||
| 		valueList1.add(valueMap1); | ||||
| 		quyMap1.put("checkvalue", valueList1); | ||||
| 		queryObjList.add(quyMap1); | ||||
| 		map.put("queryObj", queryObjList); | ||||
| 		return new Gson().toJson(map); | ||||
| 	} | ||||
| 
 | ||||
| 	private static String getRequest2(String accbookCode, String strdate, String code, String name) { | ||||
| 		Map<String, Object> map = new HashMap<String, Object>(); | ||||
| 		List<String> accbookcodeList = new ArrayList<String>(); | ||||
| 		accbookcodeList.add(accbookCode); | ||||
| 		map.put("accbookCode", accbookcodeList); | ||||
| 		map.put("queryByPeriod", "false"); | ||||
| 		map.put("inclUntallyed", "true"); | ||||
| 		map.put("inclTransfer", "true"); | ||||
| 		map.put("inclError", "true"); | ||||
| 		map.put("inclReclassify", "true"); | ||||
| 		map.put("date", strdate); | ||||
| 		map.put("endDate", strdate); | ||||
| 		map.put("currtypeCode", "本币"); | ||||
| 
 | ||||
| 		List<Map<String, Object>> queryObjList = new ArrayList<Map<String, Object>>(); | ||||
| 		Map<String, Object> quyMap = new HashMap<String, Object>(); | ||||
| 		Map<String, Object> typeMap = new HashMap<String, Object>(); | ||||
| 
 | ||||
| 		typeMap.put("checktypecode", "会计科目"); | ||||
| 		typeMap.put("checktypename", "会计科目"); | ||||
| 		quyMap.put("checktype", typeMap); | ||||
| 		List<Map<String, String>> valueList = new ArrayList<Map<String, String>>(); | ||||
| 		Map<String, String> valueMap = new HashMap<String, String>(); | ||||
| 
 | ||||
| 		valueMap.put("checkvaluecode", "224105"); | ||||
| 		valueMap.put("checkvaluename", "运费"); | ||||
| 		valueList.add(valueMap); | ||||
| 		quyMap.put("checkvalue", valueList); | ||||
| 		queryObjList.add(quyMap); | ||||
| 		// | ||||
| 		Map<String, Object> quyMap1 = new HashMap<String, Object>(); | ||||
| 		Map<String, Object> typeMap1 = new HashMap<String, Object>(); | ||||
| 
 | ||||
| 		typeMap1.put("checktypecode", "0019"); | ||||
| 		typeMap1.put("checktypename", "供应商档案"); | ||||
| 		quyMap1.put("checktype", typeMap1); | ||||
| 		List<Map<String, String>> valueList1 = new ArrayList<Map<String, String>>(); | ||||
| 		Map<String, String> valueMap1 = new HashMap<String, String>(); | ||||
| 
 | ||||
| 		valueMap1.put("checkvaluecode", code); | ||||
| 		valueMap1.put("checkvaluename", name); | ||||
| 		valueList1.add(valueMap1); | ||||
| 		quyMap1.put("checkvalue", valueList1); | ||||
| 		queryObjList.add(quyMap1); | ||||
| 		map.put("queryObj", queryObjList); | ||||
| 		return new Gson().toJson(map); | ||||
| 	} | ||||
| 
 | ||||
| 	private static String getRequest3(String accbookCode, String strdate, String code, String name) { | ||||
| 		Map<String, Object> map = new HashMap<String, Object>(); | ||||
| 		List<String> accbookcodeList = new ArrayList<String>(); | ||||
| 		accbookcodeList.add(accbookCode); | ||||
| 		map.put("accbookCode", accbookcodeList); | ||||
| 		map.put("queryByPeriod", "false"); | ||||
| 		map.put("inclUntallyed", "true"); | ||||
| 		map.put("inclTransfer", "true"); | ||||
| 		map.put("inclError", "true"); | ||||
| 		map.put("inclReclassify", "true"); | ||||
| 		map.put("date", strdate); | ||||
| 		map.put("endDate", strdate); | ||||
| 		map.put("currtypeCode", "本币"); | ||||
| 
 | ||||
| 		List<Map<String, Object>> queryObjList = new ArrayList<Map<String, Object>>(); | ||||
| 		Map<String, Object> quyMap = new HashMap<String, Object>(); | ||||
| 		Map<String, Object> typeMap = new HashMap<String, Object>(); | ||||
| 
 | ||||
| 		typeMap.put("checktypecode", "会计科目"); | ||||
| 		typeMap.put("checktypename", "会计科目"); | ||||
| 		quyMap.put("checktype", typeMap); | ||||
| 		List<Map<String, String>> valueList = new ArrayList<Map<String, String>>(); | ||||
| 		Map<String, String> valueMap = new HashMap<String, String>(); | ||||
| 
 | ||||
| 		valueMap.put("checkvaluecode", "224101"); | ||||
| 		valueMap.put("checkvaluename", "保证金"); | ||||
| 		valueList.add(valueMap); | ||||
| 		quyMap.put("checkvalue", valueList); | ||||
| 		queryObjList.add(quyMap); | ||||
| 		// | ||||
| 		Map<String, Object> quyMap1 = new HashMap<String, Object>(); | ||||
| 		Map<String, Object> typeMap1 = new HashMap<String, Object>(); | ||||
| 
 | ||||
| 		typeMap1.put("checktypecode", "0019"); | ||||
| 		typeMap1.put("checktypename", "供应商档案"); | ||||
| 		quyMap1.put("checktype", typeMap1); | ||||
| 		List<Map<String, String>> valueList1 = new ArrayList<Map<String, String>>(); | ||||
| 		Map<String, String> valueMap1 = new HashMap<String, String>(); | ||||
| 
 | ||||
| 		valueMap1.put("checkvaluecode", code); | ||||
| 		valueMap1.put("checkvaluename", name); | ||||
| 		valueList1.add(valueMap1); | ||||
| 		quyMap1.put("checkvalue", valueList1); | ||||
| 		queryObjList.add(quyMap1); | ||||
| 		map.put("queryObj", queryObjList); | ||||
| 		return new Gson().toJson(map); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 *  | ||||
| 	 * @return 获取核算账薄code | ||||
| 	 */ | ||||
| 	public String getAccbookCode(String pk_relorg) { | ||||
| 		List<AccountingBookVO> bills = null; | ||||
| 		String sql = "pk_relorg = '" + pk_relorg + "' and dr = 0 "; | ||||
| 		String accbookCode = ""; | ||||
| 		try { | ||||
| 			bills = (List<AccountingBookVO>) imDPersistenceService.queryBillOfVOByCond(AccountingBookVO.class, sql, | ||||
| 					false); | ||||
| 			if (bills.size() != 0) { | ||||
| 				accbookCode = bills.get(0).getCode(); | ||||
| 			} | ||||
| 		} catch (MetaDataException e) { | ||||
| 			// TODO Auto-generated catch block | ||||
| 			e.printStackTrace(); | ||||
| 		} | ||||
| 		return accbookCode; | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	private Map<String, Object> setBodyChanel() throws BusinessException { | ||||
| 		String pk_customer = (String) getBodyValue(IBillFieldGet.CUSTOMER); | ||||
| 		String pk_org = (String) getHeadValue(IBillFieldGet.PK_ORG); | ||||
| 		String chanel = null; | ||||
| 		Map<String, Object> customerMap = new HashMap<String, Object>(); | ||||
| 		Map<String, Map<String, Object>> cuspAfterEditHandler = new HashMap<String, Map<String, Object>>(); | ||||
| 		if (null != pk_customer) { | ||||
| 			cuspAfterEditHandler = BillEventHandlerUtil.getCuspAfterEditHandler(); | ||||
| 			if (null != cuspAfterEditHandler) { | ||||
| 				customerMap = cuspAfterEditHandler.get(pk_customer + pk_org); | ||||
| 				if (customerMap == null) { | ||||
| 					BillEventHandlerUtil.setCuspAfterEditHandler(pk_customer, pk_org); | ||||
| 					cuspAfterEditHandler = BillEventHandlerUtil.getCuspAfterEditHandler(); | ||||
| 					customerMap = cuspAfterEditHandler.get(pk_customer + pk_org); | ||||
| 				} | ||||
| 			} | ||||
| 			if (customerMap != null && customerMap.get("custsaleVOs") != null) { | ||||
| 				CustsaleVO[] vos = (CustsaleVO[]) customerMap.get("custsaleVOs"); | ||||
| 				if (null != vos && vos.length > 0 && null != vos[0]) { | ||||
| 					chanel = vos[0].getChannel(); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		for (int i = 0; i < aggvo.getChildrenVO().length; i++) { | ||||
| 			setBodyValue(chanel, IBillFieldGet.SO_TRANSTYPE); | ||||
| 		} | ||||
| 		return customerMap; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * 设置表体值并触发编辑事件 | ||||
| 	 * | ||||
| 	 * @param newValue | ||||
| 	 * @param fieldName | ||||
| 	 * @author zhongfsh3 | ||||
| 	 * @date 2019年6月12日 | ||||
| 	 */ | ||||
| 	private void bodyAfterEdit(Object newValue, String fieldName) { | ||||
| 		// 设置表体值 | ||||
| 		setBodyValue(newValue, fieldName); | ||||
| 		// 触发编辑事件 | ||||
| 		Cell oldCell = getEvent().getCard().getBody().getModel().getRows()[getRowindex()].getCell(fieldName); | ||||
| 		Cell newCell = ArapUiUtil.copyCell(oldCell); | ||||
| 		newCell.setValue(newValue); | ||||
| 		ChangedRow changeRow = new ChangedRow(newCell, oldCell, | ||||
| 				getEvent().getCard().getBody().getModel().getRows()[getRowindex()].getRowid()); | ||||
| 		CardBodyAfterEditEvent event = new CardBodyAfterEditEvent(fieldName, getEvent().getCard(), getRowindex(), | ||||
| 				new ChangedRow[] { changeRow }); | ||||
| 		AfterEditEventUtil.bodyAfterEdit(event, aggvo, getEventInfo()); | ||||
| 	} | ||||
| 
 | ||||
| 	private List<String> keys = Arrays.asList(new String[] { IBillFieldGet.CUSTOMER, IBillFieldGet.SUPPLIER, | ||||
| 			IBillFieldGet.SUPPLIER_V, IBillFieldGet.CUSTOMER_V }); | ||||
| 
 | ||||
| 	@Override | ||||
| 	protected Collection<String> getFilterKey() { | ||||
| 		return keys; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * 编辑供应商后,银行账户是否停用bd_bankaccbas(银行账户)bd_bankaccsub(客商银行账户子户) | ||||
| 	 * | ||||
| 	 * @param key银行账户相关字段 ,editkey 编辑的字段 | ||||
| 	 * @return | ||||
| 	 * @throws BusinessException | ||||
| 	 */ | ||||
| 	private boolean isClear(String key, String editKey) { | ||||
| 		boolean flag = true; | ||||
| 		String keyValue = (String) getBodyValue(key); | ||||
| 		String editValue = (String) getBodyValue(editKey);// 编辑的字段的值 | ||||
| 		try { | ||||
| 			CustBankaccUnionVO[] custBank = ServiceLocator.find(ICustBankaccQueryService.class) | ||||
| 					.queryCustBankaccUnionVOsByCust(editValue, IBillFieldGet.SUPPLIER.equals(editKey) ? 3 : 1, true); | ||||
| 			if (ArrayUtils.isEmpty(custBank)) { | ||||
| 				return true; | ||||
| 			} | ||||
| 
 | ||||
| 			for (CustBankaccUnionVO vo : custBank) { | ||||
| 				if (vo.getBankaccbasVO() == null) { | ||||
| 					continue; | ||||
| 				} | ||||
| 				Integer enable = (Integer) vo.getAttributeValue("a.enablestate"); | ||||
| 				if (enable == null || (enable != null && enable != 2)) { | ||||
| 					continue; | ||||
| 				} | ||||
| 				String pk_bank = (String) vo.getAttributeValue("pk_bankaccsub"); | ||||
| 				if (StringUtil.isEmptyWithTrim(pk_bank)) { | ||||
| 					continue; | ||||
| 				} | ||||
| 				if (pk_bank.equals(keyValue)) { | ||||
| 					flag = false; | ||||
| 					break; | ||||
| 				} | ||||
| 			} | ||||
| 		} catch (BusinessException e) { | ||||
| 			ExceptionUtils.wrappException(e); | ||||
| 
 | ||||
| 		} | ||||
| 		if (editValue == null) { | ||||
| 			return true; | ||||
| 		} | ||||
| 		return flag; | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
		Loading…
	
		Reference in New Issue