對接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);
    }


}

 

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