钉钉开发之发起审批部分更新

4 篇文章 0 订阅
2 篇文章 1 订阅

前情回顾
记一些钉钉开发大坑,官网关于钉钉开发发起审批部分更新了!!!
总体说是API更加全面了,也有其他语言版本的DEMO提供出来
不过我没看过,也不记得链接了,你们可以当我吹B

这部是补充一些开发关于:发起审批部分的坑
补一个新更新的链接,这个链接更加详细的讲述了value对应的格式要长成什么样子
如果你有点基础应该挺好理解的。新发起审批链接

补充的内容时:日期和明细类型

一.日期类型

日期格式描述

审批模板设置
在这里插入图片描述
新建一个日期类型,会默认勾选下面那个日期类型。
那么你在后台设置该日期类型的value时候就必须对应是‘yyyy-mm-dd’
这里有个大坑:上面那个选项是‘年-月-日 时:分’这个是没有秒的
那么你在后台设置该日期类型的value时候就必须对应是“yyyy-mm-dd hh:mm”
千万不要习惯性加上秒!

上代码:

			if (purchaseManagement.getExpecteddate()!=null&&purchaseManagement.getExpecteddate().toString()!="") {
				OapiProcessinstanceCreateRequest.FormComponentValueVo vo = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
				vo.setName("期望交付日期");
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
				String dealTime=sdf.format(purchaseManagement.getExpecteddate());
				vo.setValue(dealTime);
				formComponentValues.add(vo);
			}

二.明细类型

在这里插入图片描述
看到这个第一反应是有点像json,这里用JSON得思想去处理是最快的。
不懂的小伙伴在这里解释一下。
他这个格式其实就是用一个 list里面装N个list:list1,list2,,,,listN
前者这个最大的list其实就是一个明细类型。setName的时候就是审批模板的标题,setvalue的时候就是后面N个list处理过之后的数据;
后者这些list一个就代表一个明细对象,相对应填写的就是一个明细里面的信息。
先上审批模板部分
在这里插入图片描述
这个在实际审批当中是可以无限添加明细的。所以相对应的前端会比较难做一点。我用的vue的组件思路去实现无限增加,和取值的。在这个功能方面,VUE非常强大。

当然我说了你们可能也不懂,没关系。直接复制代码改一下就可以了
上代码(对应上述审批模板):

//表单明细:采购明细
			if (purchaseDetaileds.size()!=0) {
				//新建一个vo对象存储整个表单明细
				OapiProcessinstanceCreateRequest.FormComponentValueVo vo = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
				vo.setName("采购明细");
				//转格式:	[    [{"name":xx,"value":xx},{"name":xx,"value":xx}],[{"name":xx,"value":xx},{"name":xx,"value":xx}]      ]
				List<List<OapiProcessinstanceCreateRequest.FormComponentValueVo>> list=new  ArrayList<List<OapiProcessinstanceCreateRequest.FormComponentValueVo>>();
				for (int i = 0; i < purchaseDetaileds.size(); i++) {
					List<OapiProcessinstanceCreateRequest.FormComponentValueVo> detailList=new  ArrayList<OapiProcessinstanceCreateRequest.FormComponentValueVo>();
					OapiProcessinstanceCreateRequest.FormComponentValueVo detail1 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
					detail1.setName("名称");
					detail1.setValue(purchaseDetaileds.get(i).getGoodsname());
					detailList.add(detail1);
					
					OapiProcessinstanceCreateRequest.FormComponentValueVo detail2 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
					detail2.setName("数量");
					detail2.setValue(purchaseDetaileds.get(i).getNumber().toString());
					detailList.add(detail2);
					
					OapiProcessinstanceCreateRequest.FormComponentValueVo detail3 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
					detail3.setName("单位");
					detail3.setValue(purchaseDetaileds.get(i).getUnit());
					detailList.add(detail3);
					
					OapiProcessinstanceCreateRequest.FormComponentValueVo detail4 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
					detail4.setName("单价(元)");
					detail4.setValue(purchaseDetaileds.get(i).getPrice().toString());
					detailList.add(detail4);
					
					OapiProcessinstanceCreateRequest.FormComponentValueVo detail5 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
					detail5.setName("总金额(元)");
					detail5.setValue(purchaseDetaileds.get(i).getTotalprice().toString());
					detailList.add(detail5);
					
					if (purchaseDetaileds.get(i).getSpecs()!=null&&purchaseDetaileds.get(i).getSpecs()!="") {
						OapiProcessinstanceCreateRequest.FormComponentValueVo detail6 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
						detail6.setName("规格");
						detail6.setValue(purchaseManagement.getRemarks());
						detailList.add(detail6);
					}
					list.add(detailList);
				}
				String value=JSON.toJSONString(list);
				vo.setValue(value);
				formComponentValues.add(vo);
			}

purchaseDetaileds对象存储的是前端传过来的list<purchaseDetail>数组对象。因为vue的组件思想,直接就可以传上来了,不需要做封装的。剩下就是后台做处理就好了。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值