package com.product.file.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.product.core.config.CoreConst;
import com.product.core.controller.support.AbstractBaseController;
import com.product.core.entity.DataTableEntity;
import com.product.core.entity.FieldSetEntity;
import com.product.core.entity.RequestParameterEntity;
import com.product.core.exception.BaseException;
import com.product.core.spring.context.SpringMVCContextHolder;
import com.product.file.config.CmnConst;
import com.product.file.config.DocumentCode;
import com.product.file.service.DocumentService;
import com.product.file.service.ide.IDocumentService;
import com.product.file.util.ResultInfo;
import com.product.module.sys.version.ApiVersion;
import com.product.util.BaseUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
/**
* Copyright LX-BASE
*
* @Title: ClaimExpenseController
* @Project: LX-BASE-SERVER
* @Date: 2020-11-18 11:30:48
* @Author: luoxin
* @Description: 鏂囦欢绠$悊Constoller
* 鍒嗕负鍗曚綅鏂囦欢澶瑰拰涓汉鏂囦欢澶� 鏈夋壒閲忓垹闄ょЩ鍔ㄧ殑鍔熻兘
*/
@RequestMapping("/api/document")
@RestController
public class DocumentController extends AbstractBaseController {
@Autowired
public DocumentService documentService;
/**
* 鏂板鏂囦欢鏁版嵁(涓婁紶)3
*
* @param request
* @return
*/
@RequestMapping(value = "/addDocument/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String addDocument(HttpServletRequest request) {
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);
IDocumentService service = (IDocumentService) getProxyInstance(documentService);
String uuids = service.addDocument(fse);
return OK_Add(uuids);
} catch (BaseException e) {
e.printStackTrace();
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(e);
} catch (Exception e) {
e.printStackTrace();
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(DocumentCode.DOCUMENT_SAVE_FAIL.getValue(), DocumentCode.DOCUMENT_SAVE_FAIL.getText());
}
}
/**
* 閲嶅懡鍚嶏紙缂栬緫锛�4
*
* @param request
* @return
*/
@RequestMapping(value = "/upDocumentName/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String upDocumentName(HttpServletRequest request) {
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = null;
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
if (bean != null) {
RequestParameterEntity reqp = (RequestParameterEntity) bean;
fse = reqp.getFormData();
}
//鍒ゆ柇鍙傛暟鏄惁涓虹┖
if (fse == null) {
SpringMVCContextHolder
.getSystemLogger().error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
return this.error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
}
IDocumentService service = (IDocumentService) getProxyInstance(documentService);
boolean flag = service.upDocumentName(fse);
if (flag) {
return OK();
}
return this.error(DocumentCode.DOCUMENT_SAVE_FAIL.getValue(), DocumentCode.DOCUMENT_SAVE_FAIL.getText());
} catch (BaseException e) {
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(e);
} catch (Exception e) {
e.printStackTrace();
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(DocumentCode.DOCUMENT_SAVE_FAIL.getValue(), DocumentCode.DOCUMENT_SAVE_FAIL.getText());
}
}
/**
* 鍒犻櫎鏂囦欢锛堟壒閲忓垹闄わ級5
*
* @param request
* @return
*/
@RequestMapping(value = "/delDocument/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String delDocument(HttpServletRequest request) {
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = null;
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
if (bean != null) {
RequestParameterEntity reqp = (RequestParameterEntity) bean;
fse = reqp.getFormData();
}
//鍒ゆ柇鍙傛暟鏄惁涓虹┖
if (fse == null) {
SpringMVCContextHolder
.getSystemLogger().error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
return this.error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
}
IDocumentService service = (IDocumentService) getProxyInstance(documentService);
boolean flag = service.delDocument(fse);
if (flag) {
return OK();
}
return this.error(DocumentCode.DOCUMENT_DELETE_FAIL.getValue(), DocumentCode.DOCUMENT_DELETE_FAIL.getText());
} catch (BaseException e) {
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(e);
} catch (Exception e) {
e.printStackTrace();
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(DocumentCode.DOCUMENT_DELETE_FAIL.getValue(), DocumentCode.DOCUMENT_DELETE_FAIL.getText());
}
}
/**
* 鏍规嵁鏂囦欢澶硅幏鍙栨枃浠跺垪琛紙鏌ョ湅锛�1
*
* @param request
* @return
*/
@RequestMapping(value = "/documentAll/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String documentAll(HttpServletRequest request) {
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = null;
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
if (bean != null) {
RequestParameterEntity reqp = (RequestParameterEntity) bean;
fse = reqp.getFormData();
}
//鍒ゆ柇鍙傛暟鏄惁涓虹┖
if (fse == null) {
SpringMVCContextHolder
.getSystemLogger().error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
return this.error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
}
DataTableEntity dataTableEntity = documentService.documentAll(fse);
return OK_List(dataTableEntity);
} catch (BaseException e) {
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(e);
} catch (Exception e) {
e.printStackTrace();
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(DocumentCode.DOCUMENT_GET_LIST_FAIL.getValue(), DocumentCode.DOCUMENT_GET_LIST_FAIL.getText());
}
}
/**
* 鑾峰彇鏂囦欢璇︽儏锛堟煡鐪嬶級1
*
* @param request
* @return
*/
@RequestMapping(value = "/documentInfo/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String documentInfo(HttpServletRequest request) {
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = null;
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
if (bean != null) {
RequestParameterEntity reqp = (RequestParameterEntity) bean;
fse = reqp.getFormData();
}
//鍒ゆ柇鍙傛暟鏄惁涓虹┖
if (fse == null) {
SpringMVCContextHolder
.getSystemLogger().error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
return this.error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
}
return OK_List(documentService.documentInfo(fse));
} catch (BaseException e) {
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(e);
} catch (Exception e) {
e.printStackTrace();
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(DocumentCode.DOCUMENT_GET_FAIL.getValue(), DocumentCode.DOCUMENT_GET_FAIL.getText());
}
}
/**
* 鑾峰彇褰撳墠鐢ㄦ埛鏂囨。鐩綍鎸夐挳鏉冮檺鏉冮檺
* 鍜屾枃浠跺叏璺緞
* 鑻ユ湁鏌ョ湅鏉冮檺鏌ョ湅鎵€鏈夋枃浠�
* 鏉冮檺1(鏌ョ湅),2(涓嬭浇),3(鏂板{鎵归噺涓婁紶}),4(淇敼),5(鎵归噺鍒犻櫎),6(鎵归噺绉诲姩)
*
* @param request
* @return
*/
@RequestMapping(value = "/getButtonPermissions/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String getButtonPermissions(HttpServletRequest request) {
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = null;
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
if (bean != null) {
RequestParameterEntity reqp = (RequestParameterEntity) bean;
fse = reqp.getFormData();
}
//鍒ゆ柇鍙傛暟鏄惁涓虹┖
if (fse == null) {
SpringMVCContextHolder
.getSystemLogger().error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
return this.error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
}
if (BaseUtil.strIsNull(fse.getString(CmnConst.DIRECTORY_UUID))) {
return OK();
}
FieldSetEntity fieldSet = documentService.getButtonPermissions(fse);
DataTableEntity dataTableEntity = fieldSet.getSubDataTable("dataTable");
String str = OK_List(dataTableEntity);
JSONObject object = JSONObject.parseObject(str);
JSONArray systemFieldMeta = object.getJSONArray("systemFieldMeta");
Object systemSeniorQueryString = object.get("systemSeniorQueryString");
Map<String, Object> map = new HashMap<>();
map.put("systemFieldMeta", systemFieldMeta);
map.put("systemSeniorQueryString", systemSeniorQueryString);
//浼犲叆fieldSet, 鍜岄澶栫殑map 瀵硅薄
return BaseUtil.success(fieldSet, map);
} catch (BaseException e) {
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(e);
} catch (Exception e) {
e.printStackTrace();
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(DocumentCode.DOCUMENT_GET_LIST_FAIL.getValue(), DocumentCode.DOCUMENT_GET_LIST_FAIL.getText());
}
}
/**
* 寮瑰嚭绉诲姩鐩綍妗�
*
* @param request
* @return
*/
@RequestMapping(value = "/popBoxGetFileDirectory/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String popBoxGetFileDirectory(HttpServletRequest request) {
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = null;
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
if (bean != null) {
RequestParameterEntity reqp = (RequestParameterEntity) bean;
fse = reqp.getFormData();
}
//鍒ゆ柇鍙傛暟鏄惁涓虹┖
if (fse == null) {
SpringMVCContextHolder
.getSystemLogger().error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
return this.error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
}
JSONObject obj = documentService.popBoxGetFileDirectory(fse);
return ResultInfo.success(obj);
} catch (BaseException e) {
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(e);
} catch (Exception e) {
e.printStackTrace();
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(DocumentCode.DOCUMENT_CATALOG_GET_FAIL.getValue(), DocumentCode.DOCUMENT_CATALOG_GET_FAIL.getText());
}
}
/**
* 绉诲姩锛堟枃浠舵壒閲忕Щ鍔級6
*
* @param request
* @return
*/
@RequestMapping(value = "/fileMoveTo/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String fileMoveTo(HttpServletRequest request) {
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = null;
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
if (bean != null) {
RequestParameterEntity reqp = (RequestParameterEntity) bean;
fse = reqp.getFormData();
}
//鍒ゆ柇鍙傛暟鏄惁涓虹┖
if (fse == null) {
SpringMVCContextHolder
.getSystemLogger().error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
return this.error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
}
if (documentService.fileMoveTo(fse)) {
return OK();
} else {
return this.error(DocumentCode.DOCUMENT_USER_RIGHT_FAIL.getValue(), DocumentCode.DOCUMENT_USER_RIGHT_FAIL.getText());
}
} catch (BaseException e) {
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(e);
} catch (Exception e) {
e.printStackTrace();
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(DocumentCode.DOCUMENT_MOVE_FAIL.getValue(), DocumentCode.DOCUMENT_MOVE_FAIL.getText());
}
}
/**
* @param request
* @return
*/
@RequestMapping(value = "/getDocumentLog/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String getDocumentLog(HttpServletRequest request) {
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = null;
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
if (bean != null) {
RequestParameterEntity reqp = (RequestParameterEntity) bean;
fse = reqp.getFormData();
}
//鍒ゆ柇鍙傛暟鏄惁涓虹┖
if (fse == null) {
SpringMVCContextHolder
.getSystemLogger().error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
return this.error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
}
return OK_List(documentService.getDocumentLog(fse));
} catch (BaseException e) {
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(e);
} catch (Exception e) {
e.printStackTrace();
SpringMVCContextHolder.getSystemLogger().error(e);
return this.error(DocumentCode.DOCUMENT_LOG_FAIL.getValue(), DocumentCode.DOCUMENT_LOG_FAIL.getText());
}
}
/**
* 鏂囨。鏀惰棌
*
* @param request
* @return
*/
@RequestMapping(value = "/collection/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String documentCollection(HttpServletRequest request) {
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_OA_DOCUMENT_COLLECTION);
return OK_Add(documentService.documentCollection(fse));
} catch (BaseException e) {
e.printStackTrace();
return this.error(e);
} catch (Exception e) {
e.printStackTrace();
return this.error(DocumentCode.DOCUMENT_COLLECTION_FAIL.getValue(), DocumentCode.DOCUMENT_COLLECTION_FAIL.getText() + e.getMessage());
}
}
/**
* 鏂囨。鍙栨秷鏀惰棌
*
* @param request
* @return
*/
@RequestMapping(value = "/cancel-collection/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String documentCancelCollection(HttpServletRequest request) {
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_OA_DOCUMENT_COLLECTION);
if (documentService.documentCancelCollection(fse.getString("document_uuid"))) {
return OK();
}
return error(DocumentCode.DOCUMENT_CANCEL_COLLECTION_FAIL.getValue(), DocumentCode.DOCUMENT_CANCEL_COLLECTION_FAIL.getText());
} catch (BaseException e) {
e.printStackTrace();
return this.error(e);
} catch (Exception e) {
e.printStackTrace();
return this.error(DocumentCode.DOCUMENT_OPERATE_FAIL.getValue(), DocumentCode.DOCUMENT_OPERATE_FAIL.getText() + e.getMessage());
}
}
/**
* 鏂囨。鍘嗗彶鐗堟湰
*
* @param request
* @return
*/
@RequestMapping(value = "/document-history/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String findDocumentHistory(HttpServletRequest request) {
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_OA_DOCUMENT_HISTORY);
return OK_List(documentService.findDocumentHistory(fse.getUUID()));
} catch (BaseException e) {
e.printStackTrace();
return this.error(e);
} catch (Exception e) {
e.printStackTrace();
return this.error(DocumentCode.DOCUMENT_OPERATE_FAIL.getValue(), DocumentCode.DOCUMENT_OPERATE_FAIL.getText() + e.getMessage());
}
}
/**
* 鏂囨。鏈€鏂扮増鏈繚瀛�
*
* @param request
* @return
*/
@RequestMapping(value = "/document-save-new-version/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String documentSaveNewVersion(HttpServletRequest request) {
try {
//鑾峰彇鍙傛暟
FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_OA_DOCUMENT);
if (documentService.documentSaveNewVersion(fse)) {
return OK();
}
return error(DocumentCode.DOCUMENT_SAVE_NEW_VERION_FAIL.getValue(), DocumentCode.DOCUMENT_SAVE_NEW_VERION_FAIL.getText());
} catch (BaseException e) {
e.printStackTrace();
return this.error(e);
} catch (Exception e) {
e.printStackTrace();
return this.error(DocumentCode.DOCUMENT_OPERATE_FAIL.getValue(), DocumentCode.DOCUMENT_OPERATE_FAIL.getText() + e.getMessage());
}
}
@RequestMapping(value = "/getApplyDocument/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String getApplyDocument(HttpServletRequest request) {
//鑾峰彇鍙傛暟
FieldSetEntity fse = null;
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
if (bean != null) {
RequestParameterEntity reqp = (RequestParameterEntity) bean;
fse = reqp.getFormData();
}
//鍒ゆ柇鍙傛暟鏄惁涓虹┖
if (fse == null) {
SpringMVCContextHolder
.getSystemLogger().error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
return this.error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
}
DataTableEntity applyDocument = documentService.getApplyDocument(fse);
return OK_List(applyDocument);
}
/**
* 鏂囨。鐢宠淇濆瓨涓庢洿鏂�
*
* @param request
* @return
*/
@RequestMapping(value = "/addOrUpdateApplyDocument/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String addOrUpdateApplyDocument(HttpServletRequest request) {
//鑾峰彇鍙傛暟
FieldSetEntity fse = null;
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
if (bean != null) {
RequestParameterEntity reqp = (RequestParameterEntity) bean;
fse = reqp.getFormData();
}
//鍒ゆ柇鍙傛暟鏄惁涓虹┖
if (fse == null) {
SpringMVCContextHolder
.getSystemLogger().error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
return this.error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
}
documentService.addOrUpdateApplyDocument(fse);
return OK();
}
/**
* 鍊熼槄鏂囨。鎺掑悕
*
* @return
*/
@RequestMapping(value = "/getApplayFileSort/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String getApplayFileSort() {
DataTableEntity applayFileSort = documentService.getApplyFileSort();
return OK_List(applayFileSort);
}
/**
* 鏂囨。鍊熼槄浜哄憳鎺掑悕
*
* @return
*/
@RequestMapping(value = "/getApplayUserSort/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String getApplayUserSort() {
DataTableEntity applayFileSort = documentService.getApplyUserSort();
return OK_List(applayFileSort);
}
/**
* 鑾峰彇鍊熼槄璇︽儏淇℃伅
*
* @param request
*/
@RequestMapping(value = "/getApplayInfo/{version}", method = RequestMethod.POST)
@ApiVersion(1)
public String getApplayInfo(HttpServletRequest request) {
//鑾峰彇鍙傛暟
FieldSetEntity fse = null;
Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
if (bean != null) {
RequestParameterEntity reqp = (RequestParameterEntity) bean;
fse = reqp.getFormData();
}
//鍒ゆ柇鍙傛暟鏄惁涓虹┖
if (fse == null) {
SpringMVCContextHolder
.getSystemLogger().error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
return this.error(DocumentCode.DOCUMENT_FORM_NODATA.getValue(), DocumentCode.DOCUMENT_FORM_NODATA.getText());
}
FieldSetEntity applayInfo = documentService.getApplyInfo(fse);
return OK_List(applayInfo);
}
}