123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349 |
- package net.chenlin.dp.modules.api.service;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.dingtalk.api.DefaultDingTalkClient;
- import com.dingtalk.api.DingTalkClient;
- import com.dingtalk.api.request.OapiProcessinstanceCreateRequest;
- import com.dingtalk.api.response.OapiProcessinstanceCreateResponse;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.taobao.api.ApiException;
- import net.chenlin.dp.common.openapi4j.commons.TokenManager;
- import net.chenlin.dp.common.openapi4j.exception.OpenAPIException;
- import net.chenlin.dp.common.openapi4j.model.Record;
- import net.chenlin.dp.common.openapi4j.platform.TradeService;
- import net.chenlin.dp.common.openapi4j.service.BaseService;
- import net.chenlin.dp.common.openapi4j.service.CustomerService;
- import net.chenlin.dp.common.openapi4j.service.UserService;
- import net.chenlin.dp.common.openapi4j.util.HttpUtil;
- import net.chenlin.dp.common.openapi4j.util.PropUtil;
- import net.chenlin.dp.modules.api.controller.DingdingOpenInterface;
- import net.chenlin.dp.modules.api.vo.*;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import java.math.BigDecimal;
- import java.util.*;
- public class PayrequestService extends BaseService {
- final static Logger logger = LoggerFactory.getLogger(PayrequestService.class);
- private Properties prop = PropUtil.getProperties("/config.properties");
- public PayrequestService() {
- this.access_token = TokenManager.getToKenId();
- }
- public PayrequestService(String token) {
- this.access_token = token;
- }
- private DingdingOpenInterface dingdingOpenInterface=new DingdingOpenInterface();
-
- public static String getToaccount="";
-
- public JSONObject get(String id) throws OpenAPIException {
- JSONObject record;
- try {
- Map<String, String> paramMap = new HashMap();
- paramMap.put("to_account", getToaccount);
- paramMap.put("id", id);
- String url = this.createURL("payrequest/get", paramMap);
- logger.info(url);
- record = JSONObject.parseObject(HttpUtil.get(url));
- } catch (Exception e) {
- throw new OpenAPIException(e.getMessage(), e);
- }
- return record;
- }
-
- public JSONObject batchGet(Map<String, String> paramMap) throws OpenAPIException {
- JSONObject record;
- try {
- paramMap.put("to_account",getToaccount);
- String url = this.createURL("payrequestlist/batch_get", paramMap);
- logger.info(url);
- record = JSONObject.parseObject(HttpUtil.get(url));
- } catch (Exception e) {
-
- throw new OpenAPIException(e.getMessage(), e);
- }
- return record;
- }
-
- public List<Payrequest> yonyouQueryPayrequest(Map<String,String>map) throws OpenAPIException {
- map.put("to_account", getToaccount);
- try {
- JSONObject jsonObject = batchGet(map);
- HashMap hashMap = JSONObject.parseObject(jsonObject.toString(), HashMap.class);
- Object errcode = hashMap.get("errcode");
- if (errcode.equals("0")){
- Object row_count = hashMap.get("row_count");
- map.put("rows_per_page",row_count.toString());
- JSONObject jsonObjects = batchGet(map);
- HashMap hashMaps = JSONObject.parseObject(jsonObjects.toString(), HashMap.class);
- if (hashMaps.get("errcode").equals("0")){
- Object saleorderlist = hashMaps.get("payrequestlist");
- List<Payrequest> list= JSON.parseArray(JSON.toJSONString(saleorderlist), Payrequest.class);
- return list;
- }else {
- return null;
- }
- }else {
- return null;
- }
- }catch (Exception e){
- throw new OpenAPIException(e.getMessage(), e);
- }
- }
-
- public Payrequest yonyouGetPayrequest(String id) throws OpenAPIException {
- try {
- JSONObject jsonObject = get(id);
- HashMap hashMap = JSONObject.parseObject(jsonObject.toString(), HashMap.class);
- if (hashMap.get("errcode").equals("0")){
- Object payrequest = hashMap.get("payrequest");
- ObjectMapper objectMapper = new ObjectMapper();
- Payrequest zfsp = objectMapper.convertValue(payrequest, Payrequest.class);
- return zfsp;
- }else {
- return null;
- }
- }catch (Exception e){
- throw new OpenAPIException(e.getMessage(), e);
- }
- }
-
- public JSONObject shenghe() throws OpenAPIException {
- JSONObject record;
- try {
- Map<String, String> paramMap = new HashMap();
- String s = "{\n" +
- "\t\"payrequest\":{\n" +
- "\t\t\"voucher_code\":\"0000000001\",\n" +
- "\t\t\"user_id\":\"00001\",\n" +
- "\t\t\"opinion\":\"同意\",\n" +
- "\t\t\"agree\":\"1\"\n" +
- "\t}\n" +
- "}";
- paramMap.put("to_account", getToaccount);
- String url = this.createURL("payrequest/audit", paramMap);
- logger.debug(url);
- String resultStr = HttpUtil.post(url, s);
- logger.debug(resultStr);
- JSONObject resultRecord = Record.parseObject(resultStr);
- Thread.sleep(3000);
- record = Record.parseObject(HttpUtil.get(resultRecord.getString("url")));
- } catch (Exception e) {
- throw new OpenAPIException(e.getMessage(), e);
- }
- return record;
- }
-
- public void createPayrequest(String processCode, Long agentid, String userid, Long deptid, Payrequest so) throws ApiException {
- DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create");
- OapiProcessinstanceCreateRequest req = new OapiProcessinstanceCreateRequest();
- req.setAgentId(agentid);
- req.setProcessCode(processCode);
- req.setOriginatorUserId(userid);
- req.setDeptId(deptid);
- req.setCcPosition("START");
- String useridshenh = prop.getProperty("shenhe_userid");
- List<OapiProcessinstanceCreateRequest.ProcessInstanceApproverVo> processInstanceApproverVoList = new ArrayList<OapiProcessinstanceCreateRequest.ProcessInstanceApproverVo>();
- OapiProcessinstanceCreateRequest.ProcessInstanceApproverVo processInstanceApproverVo = new OapiProcessinstanceCreateRequest.ProcessInstanceApproverVo();
- processInstanceApproverVoList.add(processInstanceApproverVo);
- processInstanceApproverVo.setTaskActionType("NONE");
- processInstanceApproverVo.setUserIds(Arrays.asList(useridshenh));
- req.setApproversV2(processInstanceApproverVoList);
- if (so!=null){
- List<OapiProcessinstanceCreateRequest.FormComponentValueVo> formComponentValueVoList = new ArrayList<OapiProcessinstanceCreateRequest.FormComponentValueVo>();
- OapiProcessinstanceCreateRequest.FormComponentValueVo formComponentValueVo = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
- formComponentValueVo.setName("日期");
- formComponentValueVo.setValue(so.getDvouchdate());
- formComponentValueVoList.add(formComponentValueVo);
- OapiProcessinstanceCreateRequest.FormComponentValueVo fc = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
- fc.setName("部门");
- if (so.getCdepname()!=null&&!so.getCdepname().equals("")){
- fc.setValue(so.getCdepname());
- }else {
- fc.setValue("暂无");
- }
- formComponentValueVoList.add(fc);
- OapiProcessinstanceCreateRequest.FormComponentValueVo fc2 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
- fc2.setName("供应商");
- if (so.getCvenname()!=null&&!so.getCvenname().equals("")){
- fc2.setValue(so.getCvenname());
- }else {
- fc2.setValue("暂无");
- }
- formComponentValueVoList.add(fc2);
- OapiProcessinstanceCreateRequest.FormComponentValueVo fc3 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
- fc3.setName("结算方式");
- if (so.getCssname()!=null&&!so.getCssname().equals("0E-10")){
- fc3.setValue(so.getCssname());
- }else {
- fc3.setValue("暂无");
- }
- formComponentValueVoList.add(fc3);
- OapiProcessinstanceCreateRequest.FormComponentValueVo fc4 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
- fc4.setName("申请人");
- if (so.getCpersonname()!=null&&!so.getCpersonname().equals("")){
- fc4.setValue(so.getCpersonname());
- }else {
- fc4.setValue("暂无");
- }
- formComponentValueVoList.add(fc4);
- OapiProcessinstanceCreateRequest.FormComponentValueVo fc6 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
- fc6.setName("付款日期");
- if (so.getDgatheringdate()!=null&&!so.getDgatheringdate().equals("")){
- fc6.setValue(so.getDgatheringdate());
- }else {
- fc6.setValue(so.getDvouchdate());
- }
- formComponentValueVoList.add(fc6);
- List<List<OapiProcessinstanceCreateRequest.FormComponentValueVo>>ls=new ArrayList<>();
- BigDecimal a =new BigDecimal("0");
- for (PayrequestMin s:so.getEntry()){
- List<OapiProcessinstanceCreateRequest.FormComponentValueVo>mingxilist=new ArrayList<>();
- OapiProcessinstanceCreateRequest.FormComponentValueVo mingxi2 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
- mingxi2.setName("来源单据号");
- mingxi2.setValue(so.getCvouchid());
- mingxilist.add(mingxi2);
- OapiProcessinstanceCreateRequest.FormComponentValueVo fc7 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
- fc7.setName("存货名称");
- if (s.getCinvname()!=null&&!s.getCinvname().equals("")){
- fc7.setValue(s.getCinvname());
- }else {
- fc7.setValue("暂无");
- }
- mingxilist.add(fc7);
- OapiProcessinstanceCreateRequest.FormComponentValueVo fc8 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
- fc8.setName("存货数量");
- if (s.getIapplyamt_s()!=null&&!s.getIapplyamt_s().equals("0E-10")){
- fc8.setValue(s.getIapplyamt_s());
- }else {
- fc8.setValue("0");
- }
- mingxilist.add(fc8);
- OapiProcessinstanceCreateRequest.FormComponentValueVo fc9 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
- fc9.setName("单价");
- if (s.getInattaxprice()!=null&&!s.getInattaxprice().equals("0E-10")){
- fc9.setValue(s.getInattaxprice());
- }else {
- fc9.setValue("0");
- }
- mingxilist.add(fc9);
- OapiProcessinstanceCreateRequest.FormComponentValueVo fc10= new OapiProcessinstanceCreateRequest.FormComponentValueVo();
- fc10.setName("金额");
- if (s.getIapplyamt()!=null&&!s.getIapplyamt().equals("0E-10")){
- fc10.setValue(s.getIapplyamt());
- BigDecimal b=new BigDecimal(s.getIapplyamt());
- BigDecimal add = a.add(b);
- a=add;
- }else {
- fc10.setValue("0");
- }
- mingxilist.add(fc10);
- ls.add(mingxilist);
- }
- OapiProcessinstanceCreateRequest.FormComponentValueVo fc5 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
- fc5.setName("申请金额(元)");
- fc5.setValue(a.toString());
- formComponentValueVoList.add(fc5);
- OapiProcessinstanceCreateRequest.FormComponentValueVo obj7 = new OapiProcessinstanceCreateRequest.FormComponentValueVo();
- obj7.setName("表格");
- obj7.setValue(JSON.toJSONString(ls));
- formComponentValueVoList.add(obj7);
- req.setFormComponentValues(formComponentValueVoList);
- dingdingOpenInterface.getToken();
- OapiProcessinstanceCreateResponse rsp = client.execute(req, dingdingOpenInterface.gettoken);
- System.out.println(rsp.getBody());
- }
- }
-
- public void getToaccount(){
- Properties prop = PropUtil.getProperties("/config.properties");
- getToaccount= prop.getProperty("to_account");
- }
- public static void main(String[] args) throws OpenAPIException {
- PayrequestService payrequestService=new PayrequestService();
- payrequestService.getToaccount();
- SaleOrderRest saleOrderRest=new SaleOrderRest();
- UserService userService=new UserService();
- JSONObject login = userService.login("demo", "", PayrequestService.getToaccount);
- saleOrderRest.setUser_id("demo");
- saleOrderRest.setVoucher_code("0000000001");
- saleOrderRest.setAgree("1");
- payrequestService.shenghe();
- }
- }
|