对接oa系统

 1. 根据 客户的需求,要从oa系统发起建单操作,那么先就要从客户系统的oa系统页面,发起一个获取我们系统token的接口,然后oa那边再将token放到请求头里,把json报文放在body体里,我们指定一个接口接收。完整代码如下:

package com.hand.hcf.app.expense.oareport.web;

import com.hand.hcf.app.expense.client.extraApi.CompanyLevelInterface;
import com.hand.hcf.app.expense.oareport.client.OrganizationForOAFeignClient;
import com.hand.hcf.app.expense.oareport.domain.ExpenseReportOaLog;
import com.hand.hcf.app.expense.oareport.domain.OaFormRespMessage;
import com.hand.hcf.app.expense.oareport.dto.*;
import com.hand.hcf.app.expense.oareport.service.*;
import com.hand.hcf.app.expense.report.domain.ExpenseReportHeader;
import com.hand.hcf.app.expense.oareport.service.ExpenseOAReportLineImportService;
import io.swagger.annotations.*;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.time.ZonedDateTime;

/**
 * @apiDefine ExpenseReport oa报账单
 */

@Api(tags = "OA报账单")
@RestController
@RequestMapping("/api/expense/oareport")
public class ExpenseOAReportController {
    @Autowired
    ExpenseOAReportHeaderService expenseOAReportHeaderService;
    @Autowired
    OrganizationForOAFeignClient organizationForOAFeignClient;
    @Autowired
    ExpenseOAReportLineImportService expenseOAReportLineImportService;
    @Autowired
    ExpenseReportOaLogService expenseReportOaLogService;

    @PostMapping("/save")
    @ApiOperation(value = "OA表单数据", notes = "OA表单数据 ")
    public ResponseEntity<OaFormRespMessage> saveExpenseOAReport(@ApiParam(value = "OA表单数据") @RequestBody @Valid ExpenseOAReportHeaderDTO dto,@RequestHeader("Authorization")  String token){
        ExpenseReportOaLog expenseReportOaLog = new ExpenseReportOaLog();
        //插入日志表
        JSONObject send_json = JSONObject.fromObject(dto);
        expenseReportOaLog.setCreatedDate(ZonedDateTime.now());
        OaFormRespMessage oaFormRespMessage = expenseOAReportHeaderService.saveOAExpenseReport(dto,token);
        JSONObject return_json = JSONObject.fromObject(oaFormRespMessage);
        expenseReportOaLog.setTaskId(dto.getTaskId());
        if (send_json.toString().length()>4000){
            expenseReportOaLog.setSendMsg(send_json.toString().substring(0,4000));
        }else{
            expenseReportOaLog.setSendMsg(send_json.toString());
        }
        expenseReportOaLog.setReturnMsg(return_json.toString());
        expenseReportOaLog.setLastUpdatedDate(ZonedDateTime.now());
        expenseReportOaLogService.insertOrUpdate(expenseReportOaLog);
        return ResponseEntity.ok(oaFormRespMessage);

    }


    @PostMapping("/next/save")
    @ApiOperation(value = "OA表单下一步", notes = "根据OA传过来的数据自动生成报销单")
    public ResponseEntity<ExpenseReportHeader> saveExpenseReportInfo(@ApiParam(value = "报账单头") @RequestBody @Valid ExpenseReportHeader expenseReportHeader,
                                      @ApiParam(value = "OA报账头id") @RequestParam Long headerId){
        return ResponseEntity.ok(expenseOAReportHeaderService.saveExpenseOAReportInfo(expenseReportHeader,headerId));

    }
    @PostMapping("/get/oatoken")
    @ApiOperation(value = "OA获取token", notes = "OA获取token")
    public String getOaToken(@ApiParam(value = "员工工号") @RequestParam String employeeCode, @ApiParam(value = "账套id") @RequestParam Long setOfBooksId){
        return expenseOAReportHeaderService.getOaToken(employeeCode,setOfBooksId);
    }


}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章