NC 常用api

nc常用api

//nc后端常用的api,多看源代码。
BaseDAO basedao = BaseDAOUtil.getInstance().getBaseDAO();
//似乎两个都行,可以去尝试看看
IUAPQueryBS bs = NCLocator.getInstance().lookup(IUAPQueryBS.class);
//sql获取一个vo-list
List<DataHVO> lists = (List<DataHVO>) bs.executeQuery(sql_data, new BeanListProcessor(DataHVO.class));
//sql获取map的
Map<String, String> map = (Map<String, String>) bs .executeQuery(sql, new MapProcessor());
//sql获取单个的字段的
String datasourse = (String) bs.executeQuery(sql,new ColumnProcessor());

//获取卡片表头某个字段的值(e指的是CardHeadTailAfterEditEvent,需要继承CardPanelEvent)
String value = e.getBillCardPanel().getHeadItem(TemplatesHVO.MOUDULE).getValue();

//设置表头关键字对应元素值setHeadItem(String strKey, Object Value)
e.getBillCardPanel().setHeadItem(TemplatesHVO.DATASOURCE, datasourse);

// 获取卡片表头参照类型的属性值 UIRefPane
UIRefPane modulenamevalue = (UIRefPane) e.getBillCardPanel().getHeadItem(TemplatesHVO.MOUDULE).getComponent();

//获取参照面板的name
String refname = modulenamevalue.getRefName();

//卡片增行
e.getBillCardPanel().addLine();

//卡片表体设值
e.getBillCardPanel().setBodyValueAt(value,row,key);
//如果是在按钮的doAction上,需要添加private BillForm editor;并给与get/set方法

//获取卡片表体选择行数
int[] row = editor.getBillCardPanel().getBillTable().getSelectedRows();

//获取卡片表体选择的是第几行
int row = e.getBillCardPanel().getBillTable().getSelectedRow();

//获取卡片表体某行的某字段值
e.getBillCardPanel().getBillModel().getBodyValueRowVO(row, bodyVOName)

//获取卡片表体某字段的值(整列)
editor.getBillCardPanel().getBillModel().getBodyValueVOs(bodyVOName)

//获取卡片表体所有数据
editor.getBillCardPanel().getBillData().getBillModel().getBodyValueByMetaData()//获取卡片表体vo-TemplatesBVO的name值
TemplatesBVO[] listss = (TemplatesBVO[]) editor.getBillCardPanel().getBillModel().getBodyValueVOs(TemplatesBVO.class.getName());

//ncc前端
/**获取前端传回来的参数implements ICommonAction
前端json格式:{"rowsdata":[{"data":{“values”{“name”:{“value”:”template”}…}}},
”data”: {“values”{“name”:{“value”:”temp”}…}}}]}
**/
List<String> list = new ArrayList<String>();
String data = null;
 data = paramIRequest.read();
 String rowdata = JSONObject.parseObject(data).getString("rowsdata");
 String datasources = JSONObject.parseObject(data).getString("datasources");
 JSONArray jsonstuInfo = JSONObject.parseArray(rowdata);
 for(int i = 0;i<jsonstuInfo.size();i++) {
    
    
	 JSONObject jsonStuInfo = jsonstuInfo.getJSONObject(i);
	 JSONObject nameObject = jsonStuInfo.getJSONObject("data").getJSONObject("values").getJSONObject("name");
	 //获取组件
	 String name = nameObject.getString("value"); 
	 list.add(name);
 }

//ncc后端常用api		 
/*调用接口的方式(注意后面的形式)IFindsourcehvoMaintain是接口,两种方式,第二种好像是nc的用法,
调用接口传参到方法中是,需要对传进去的参数是否为空进行判断,else {throw new BusinessException("参数异常");}
易于让用户知道出现什么错了;
*/
IFindsourcehvoMaintain fservice = ServiceLocator.find(IFindsourcehvoMaintain.class);
IFindsourcehvoManageService service = NCLocator.getInstance().lookup(IFindsourcehvoManageService.class);

/**stream 流的某些方式和方法:
//取出pk_matdetail数组(list是一个vo类型的集合,类似{"name",value:"aa"},{"sex",value:"0"}...)
-->CounterOfferMsg::getPk_matdetail-->做成这种格式的(数据格式::value)这里的value是一种获取方法
**/1
List<String> pkList=  list.stream().map(CounterOfferMsg::getPk_matdetail).collect(Collectors.toList());
//2
//sql获取数据list-vo;list-String
List<MaterialRecord> matRecordList = (List<MaterialRecord>) basedao.executeQuery(psql1, new BeanListProcessor(MaterialRecord.class));
List<String> supplierList = (List<String>) basedao.executeQuery(sql, new ColumnListProcessor());
//可以是Integer或者String
Integer count = (Integer) basedao.executeQuery(sql1, new ColumnProcessor());
String orgname = (String) basedao.executeQuery(sql1, new ColumnProcessor());
//获取的是一个vo-sql语句是将需要的字段查出来--
//好处就是可以有get方法同时可以设值,就是对于某个限制条件下的一条数据进行设值
PublicBidTemp publicBidTemp = (PublicBidTemp) basedao.executeQuery(sql, new BeanProcessor(PublicBidTemp.class));

Map<String,List<MaterialRecord>> map = new HashMap<>();
Map<String,String> matRecordMap = new HashMap<>();
//获取成<String,String>类型的数据
matRecordMap = matRecordList.stream().collect(Collectors.toMap(MaterialRecord::getPk_matdetail,MaterialRecord::getPk_offerbargain));

//用in字段进行组装的
String[] pkArray = pkList.toArray(new String [0]);
String contactsql = SQLUtil.buildSqlForIn("pk_matdetail", pkArray);
//根据pk_matdetail找出pk_offerbargain 单独报价的轮次的记录 结果集
String psql1 = "select pk_matdetail,pk_offerbargain from srmdyg_offerbargain "
				+ "where obstatus = 1 and operatestatus = 2 and" + contactsql;
				
//判断结果集含有pk主键-用于if中
matRecordMap.containsKey(counterPriceMsg.getPk_matdetail())

//通过pk查询数据,结果是vo
OfferBargainVO offerBargain = (OfferBargainVO) basedao.retrieveByPK(OfferBargainVO.class, pk_offerbargain);

//获得当前还价人
String counter =  AppContext.getInstance().getPkUser();

//更新对应的vo-->updateVOList(volist)类似{"sex":"0",}
basedao.updateVOList(mdList);

//通过sql语句执行某段更新语句
basedao.executeUpdate(sql3);

//报错:e.getMessage()
throw new BusinessException("传入参数异常!");
ExceptionUtils.wrappBusinessException("查询错误:"+e.getMessage());
// 处理异常信息
Logger.error(e);
ExceptionUtils.wrapException(e);

//list中某个{} 转数据[]
String[] pk_finsource_temp = (String[]) list.toArray(new String[0]);

//乘法格式
bidprice = Double.parseDouble(publicBidTempDetail.getNqtorigtaxprice()) * Double.parseDouble(publicBidTempDetail.getDistributenum());

//后台将接收的参数1弄成vo--CommitOfferPriceAction
String strRequestJson = paramIRequest.read();
JSONObject jsonObject = JSONObject.parseObject(strRequestJson);
Integer operation = (Integer) jsonObject.get("operation");
JSONArray b = (JSONArray) jsonObject.get("tableData");
ArrayList<MaterialRecord> list= (ArrayList<MaterialRecord>) JSONObject.parseArray(b.toJSONString(), MaterialRecord.class);


//注意:每次进行设值的时候都要对被设值的参数值进行是否为空的判断--可用于单据转换规则,或者回写
Map<String,Integer> recordMap = new HashMap<>();
recordMap.put(String,String);

if(findSourceHVO.getDofferdeadline() != null) {
    
    
publicFindSourceMsg.setEndtime(findSourceHVO.getDofferdeadline().toString());
							}
							
//后台接参方式2:接收的是整个面板的vo。注
// 核价
BillCardOperator billCardOperator = new BillCardOperator();
   // 1、获取AGGVO (request转换主子VO),多注意这个类:BillCardOperator中的toBill方法,其实就是json转vo
SpecilAggBill vo = billCardOperator.toBill(paramIRequest);
//获取表头的数据做成一个vo
FindSourceHVO headData = (FindSourceHVO) vo.getHead();
//获取表体的数据做成一个数组
SuperVO[] sv = vo.getBodys();
//创建vo型的集合
ArrayList<MaterialDetail> mList = new ArrayList<>();
//设值
MaterialDetail materialDetail = new MaterialDetail();
	if(sv[i].getAttributeValue("selectreason") != null) {
    
    
		materialDetail.setSelectreason((String)sv[i].getAttributeValue("selectreason"));
	}
//循环内每设值一个字段就将这个字段传进这个vo集合中
mLis.add(materialDetail);
//后台接参3		
String read = request.read();
IJson json = JsonFactory.create();
SCMQueryTreeFormatVO info = (SCMQueryTreeFormatVO)json.fromJson(read, SCMQueryTreeFormatVO.class);
String str = request.read();
Map<String,Object> map = JsonFactory.create().fromJson(str,Map.class);
//map格式
Map<Class<?>, SuperVO[]> map = new HashMap<Class<?>, SuperVO[]>();
map.put(AssessGroupBVO.class, (SuperVO[]) aggvo.getChildren(AssessGroupBVO.class));

原文链接:https://blog.csdn.net/weixin_44857402/article/details/109118462

猜你喜欢

转载自blog.csdn.net/u010741112/article/details/129950185
nc