nc&&ncc笔记及常用api

/**
**sql语句中获取的数据类型整合
**适用nc&ncc
**basedao的一些方法
**/
//解析:两个都行;
BaseDAO basedao = BaseDAOUtil.getInstance().getBaseDAO();
IUAPQueryBS bs = NCLocator.getInstance().lookup(IUAPQueryBS.class);

/**
list:vo-list,String-list,
**/
//vo-list
List<DataHVO> lists = (List<DataHVO>) bs.executeQuery(sql_data, new BeanListProcessor(DataHVO.class));
//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());

//map
Map<String, String> map = (Map<String, String>) bs .executeQuery(sql, new MapProcessor());

//column
String datasourse = (String) bs.executeQuery(sql,new ColumnProcessor());
Integer count = (Integer) basedao.executeQuery(sql1, new ColumnProcessor());
String orgname = (String) basedao.executeQuery(sql1, new ColumnProcessor());

/**获取结果做成一个vo;好处:有get/set方法
**/
PublicBidTemp publicBidTemp = (PublicBidTemp) basedao.executeQuery(sql, new BeanProcessor(PublicBidTemp.class));

//更新对应的vo-->updateVOList(volist)类似{"sex":"0",}--用于在某个条件下更新状态
basedao.updateVOList(mdList);

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

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


/**
**nc常用的获取面板某些数据的方法和设值方法--底层类:BillCardPanel
**解析:如果是在按钮的doAction上,需要添加private BillForm editor;并给与get/set方法
**/

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

//获取卡片表体选择行数(多选情况)
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());

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

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

//卡片表体设值
e.getBillCardPanel().setBodyValueAt(value,row,key);

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


/**
**ncc后端处理前端传回的参数
**类要implements ICommonAction,用于获取前端传回来的参数
**
**/
//传参1
/** 
**前端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);
		 }
//传参2:弄成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);
//或者
String read = request.read();
IJson json = JsonFactory.create();
SCMQueryTreeFormatVO info = (SCMQueryTreeFormatVO)json.fromJson(read, SCMQueryTreeFormatVO.class);

//传参3:获取的是map
String str = request.read();
Map<String,Object> map = JsonFactory.create().fromJson(str,Map.class);


//传参4:接收的是整个面板的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);


/**
**map,list格式
**/
//map
Map<Class<?>, SuperVO[]> map = new HashMap<Class<?>, SuperVO[]>();
Map<String,Integer> recordMap = new HashMap<>();
Map<String,List<MaterialRecord>> map = new HashMap<>();
Map<String,String> matRecordMap = new HashMap<>();
map.put(AssessGroupBVO.class, (SuperVO[]) aggvo.getChildren(AssessGroupBVO.class));
//list中某个{} 转数据[]
String[] pk_finsource_temp = (String[]) list.toArray(new String[0]);
//乘法格式
bidprice = Double.parseDouble(publicBidTempDetail.getNqtorigtaxprice()) 
* Double.parseDouble(publicBidTempDetail.getDistributenum());


/**
**调用接口的方式(注意后面的形式)IFindsourcehvoMaintain是接口;
**调用接口传参到方法中时,需要对传进去的参数进行是否为空判断,
**if(){}else {throw new BusinessException("参数异常");}易于让用户知道哪个环节出错了;
**
**/
IFindsourcehvoMaintain fservice = ServiceLocator.find(IFindsourcehvoMaintain.class);
IFindsourcehvoManageService service = NCLocator.getInstance().lookup(IFindsourcehvoManageService.class);

/**
**用in组装关键字的方式(关键字:pk_matdetail)
**
**/
String[] pkArray = pkList.toArray(new String [0]);
String contactsql = SQLUtil.buildSqlForIn("pk_matdetail", pkArray);
String psql1 = "select pk_matdetail,pk_offerbargain from srmdyg_offerbargain "
				+ "where obstatus = 1 and operatestatus = 2 and" + contactsql;


/**
**注意:每次进行设值的时候都要对被设值的参数值进行是否为空的判断--可用于单据转换规则,或者回写
**
**/
if(findSourceHVO.getDofferdeadline() != null) {
publicFindSourceMsg.setEndtime(findSourceHVO.getDofferdeadline().toString());
							}

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


/**
**Steam流
**取出pk_matdetail数组(list是一个vo类型的集合,类似{"name",value:"aa"},{"sex",value:"0"}...)
-->CounterOfferMsg::getPk_matdetail-->做成这种格式的(数据格式::value)这里的value是一种获取方法

**/
List<String> pkList=  list.stream().map(CounterOfferMsg::getPk_matdetail).collect(Collectors.toList());
//获取成<String,String>类型的数据
matRecordMap = matRecordList.stream().collect(Collectors.toMap(MaterialRecord::getPk_matdetail,MaterialRecord::getPk_offerbargain));
//判断结果集含有pk主键-用于if中
matRecordMap.containsKey(counterPriceMsg.getPk_matdetail())

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

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

会持续更新的!

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NCC restful是指在NCC(New Century Corporation)框架中使用的一种RESTful风格的架构。根据提供的引用内容,可以了解到在NCC框架中,需要进行一系列的配置和文件添加才能实现NCC restful的功能。 首先,在当前模块的META-INF目录下,需要创建一个.rest文件,并在该文件中添加相应的配置信息,包括指定一个资源(resource)的类名和相关的额外信息。这样可以将该资源与restful服务关联起来。 其次,在nchome中的modules目录下,对应的业务模块的META-INF目录中需要添加occ.rest文件。同样地,开发项目中也是在项目对应的META-INF目录下添加该文件。这样可以在NCC框架中识别和加载restful服务。 此外,对于NCC restful的处理,NCC框架中有一个Restful对应的Servlet,即uap.ws.rest.servlet.UAPRSServerServlet,它用于处理一些环境变量,如token、usercode、datasource等。另外,还有一个UAPRestJaxRsApplication类用于处理应用程序级别的参数,并在第一次调用servlet时进行初始化。通过这些配置和处理,可以实现NCC框架中的restful功能。 综上所述,NCC restful是指在NCC框架中使用的一种RESTful风格的架构,需要进行相应的配置和文件添加以实现其功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [NCC restful接口笔记](https://blog.csdn.net/csh_on_route/article/details/121675243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [NC65实现Restful接口开发及调试](https://blog.csdn.net/u010741112/article/details/116265784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [NCC-OpenAPI示例文档.zip](https://download.csdn.net/download/liuhuizhong123/12326527)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值