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