package com.ld.igds.oa.view;
|
|
import java.io.File;
|
import java.io.IOException;
|
import java.io.UnsupportedEncodingException;
|
import java.net.URLDecoder;
|
import java.util.*;
|
|
import com.bstek.dorado.uploader.UploadFile;
|
import com.bstek.dorado.uploader.annotation.FileResolver;
|
import com.ld.igds.file.CoreFileService;
|
import com.ld.igds.models.*;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import com.bstek.dorado.annotation.DataProvider;
|
import com.bstek.dorado.annotation.DataResolver;
|
import com.bstek.dorado.annotation.Expose;
|
import com.bstek.dorado.data.provider.Page;
|
import com.ld.igds.oa.OAUtil;
|
import com.ld.igds.oa.service.HOfficeAutoService;
|
import com.ld.igds.util.ContextUtil;
|
|
/**
|
* OA模块-PR
|
*
|
* @author: andy.jia
|
* @description:
|
* @version:
|
* @data:2020年5月29日
|
*/
|
@Component("oaPR")
|
public class OfficeAutoPR {
|
|
@Autowired
|
private HOfficeAutoService service;
|
|
@Autowired
|
private GpsConfManager gpsConfManager;
|
|
@Autowired
|
private CoreFileService fileService;
|
|
// =====================考勤管理=====================//
|
|
/**
|
* oaPR#pageAttendance
|
*
|
* @param page
|
* @param param
|
* @throws Exception
|
*/
|
@DataProvider
|
public void pageAttendance(Page<OAAttendance> page,
|
Map<String, Object> param) throws Exception {
|
service.pageAttendance(page, param);
|
}
|
|
/**
|
* oaPR#saveAttendance
|
*
|
* @param data
|
*/
|
@DataResolver
|
public void saveAttendance(OAAttendance data) {
|
service.saveAttendance(data);
|
}
|
|
/**
|
* oaPR#delAttendance
|
*
|
* @param data
|
* @return
|
*/
|
@Expose
|
public String delAttendance(OAAttendance data) {
|
return service.delAttendance(data);
|
}
|
|
// =====================绩效管理=====================//
|
|
/**
|
* oaPR#pageAppraisal
|
*
|
* @param page
|
* @param param
|
* @throws Exception
|
*/
|
@DataProvider
|
public void pageAppraisal(Page<OAAppraisal> page, Map<String, Object> param)
|
throws Exception {
|
service.pageAppraisal(page, param);
|
}
|
|
/**
|
* oaPR#listAppraisalDetail
|
*
|
* @param id
|
* @return
|
*/
|
@DataProvider
|
public List<OAAppraisalDetail> listAppraisalDetail(String id) {
|
return service.listAppraisalDetail(id);
|
}
|
|
/**
|
* oaPR#saveAppraisal
|
*
|
* @param data
|
*/
|
@DataResolver
|
public void saveAppraisal(OAAppraisal data) {
|
service.saveAppraisal(data);
|
}
|
|
/**
|
* oaPR#delAppraisal
|
*
|
* @param data
|
* @return
|
*/
|
@Expose
|
public String delAppraisal(OAAppraisal data) {
|
return service.delAppraisal(data);
|
}
|
|
/**
|
* oaPR#delAppraisalDetail
|
*
|
* @param data
|
* @return
|
*/
|
@Expose
|
public String delAppraisalDetail(OAAppraisalDetail data) {
|
return service.delAppraisalDetail(data);
|
}
|
|
// =====================工资管理=====================//
|
|
/**
|
* oaPR#pageSalary
|
*
|
* @param page
|
* @param param
|
* @throws Exception
|
*/
|
@DataProvider
|
public void pageSalary(Page<OASalary> page, Map<String, Object> param)
|
throws Exception {
|
service.pageSalary(page, param);
|
}
|
|
/**
|
* oaPR#saveSalary
|
*
|
* @param data
|
*/
|
@DataResolver
|
public void saveSalary(OASalary data) {
|
service.saveSalary(data);
|
}
|
|
/**
|
* oaPR#delSalary
|
*
|
* @param data
|
* @return
|
*/
|
@Expose
|
public String delSalary(OASalary data) {
|
return service.delSalary(data);
|
}
|
|
// =====================档案管理=====================//
|
|
/**
|
* oaPR#pageArchives
|
*
|
* @param page
|
* @param param
|
* @throws Exception
|
*/
|
@DataProvider
|
public void pageArchives(Page<OAArchives> page, Map<String, Object> param)
|
throws Exception {
|
service.pageArchives(page, param);
|
}
|
|
/**
|
* oaPR#saveArchives
|
*
|
* @param data
|
*/
|
@DataResolver
|
public void saveArchives(OAArchives data) {
|
String orderId = service.saveArchives(data);
|
|
// 附件
|
List<FileInfo> files = data.getFileData();
|
fileService.saveFiles(files, orderId, null);
|
}
|
|
/**
|
* oaPR#delArchives
|
*
|
* @param data
|
* @return
|
*/
|
@Expose
|
public String delArchives(OAArchives data) throws Exception {
|
List<FileInfo> list = data.getFileData();
|
if (!list.isEmpty()) {
|
String fileId = list.get(0).getFileId();
|
Date createTime = list.get(0).getCreateTime();
|
if (null == createTime) {
|
createTime = new Date();
|
}
|
|
File file = new File(fileService.getCommonFilePath(createTime), fileId);
|
|
if (!file.exists()) {
|
return "删除失败,系统未找到当前附件";
|
}
|
|
file.delete();
|
fileService.delFile(fileId);
|
}
|
return service.delArchives(data);
|
}
|
|
/**
|
* oaPR#uploadFile
|
*
|
* @param file
|
* @param parameter
|
* @return fileId 新文件ID包含文件后缀
|
*/
|
@FileResolver
|
public String uploadFile(UploadFile file, Map<String, Object> parameter) {
|
String fileId = null;
|
String mark = (String) parameter.get("mark");
|
if ("NO_UPLOAD".equals(mark)) {
|
return null;
|
}
|
try {
|
|
String basePath = fileService.getCommonFilePath(null);
|
|
fileId = ContextUtil.getTimeId(1000)
|
+ file.getFileName().substring(
|
file.getFileName().lastIndexOf("."));
|
|
file.transferTo(new File(basePath + fileId));
|
|
} catch (IllegalStateException e) {
|
e.printStackTrace();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
|
return fileId;
|
}
|
|
// =====================资产管理=====================//
|
|
/**
|
* oaPR#pageAsset
|
*
|
* @param page
|
* @param param
|
* @throws Exception
|
*/
|
@DataProvider
|
public void pageAsset(Page<OAAsset> page, Map<String, Object> param)
|
throws Exception {
|
service.pageAsset(page, param);
|
}
|
|
/**
|
* oaPR#saveAsset
|
*
|
* @param data
|
*/
|
@DataResolver
|
public void saveAsset(OAAsset data) {
|
service.saveAsset(data);
|
}
|
|
/**
|
* oaPR#delAsset
|
*
|
* @param data
|
* @return
|
*/
|
@Expose
|
public String delAsset(OAAsset data) {
|
return service.delAsset(data);
|
}
|
|
/**
|
* oaPR#queryLocation
|
* <p>
|
* 查询设备位置
|
*
|
* @param data
|
* @return
|
*/
|
@Expose
|
public String queryLocation(OAAsset data) {
|
return gpsConfManager.queryLocation(data);
|
}
|
|
// =====================资产管理-GPS管理=====================//
|
|
/**
|
* ${dorado.getDataProvider("oaPR#triggerGpsStatus").getResult()}
|
*
|
* @return
|
*/
|
@DataProvider
|
public List<DicTrigger> triggerGpsStatus() {
|
List<DicTrigger> list = new ArrayList<DicTrigger>();
|
list.add(new DicTrigger(OAUtil.RUN_STATUS_RUN, "运行"));
|
list.add(new DicTrigger(OAUtil.RUN_STATUS_STOP, "停止"));
|
list.add(new DicTrigger(OAUtil.RUN_STATUS_NONE, "未知"));
|
return list;
|
}
|
|
/**
|
* oaPR#getGps
|
*
|
* @return
|
* @throws Exception
|
*/
|
@DataProvider
|
public List<OAGps> getGps() throws Exception {
|
return service.getGps();
|
}
|
|
/**
|
* oaPR#saveGps
|
*
|
* @return
|
* @throws Exception
|
*/
|
@Expose
|
public String saveGps(OAGps data) {
|
String msg = service.saveGps(data);
|
return msg;
|
}
|
|
/**
|
* oaPR#delGps
|
*
|
* @param data
|
* @return
|
*/
|
@Expose
|
public String delGps(OAGps data) {
|
String msg = service.delGps(data);
|
return msg;
|
}
|
|
/**
|
* oaPR#flushCache
|
*
|
* @param
|
* @return
|
*/
|
@Expose
|
public String flushCache() {
|
return service.flushCache(ContextUtil.getCompanyId());
|
}
|
|
// =====================报销管理=====================//
|
|
/**
|
* oaPR#pageExpClaimSubmit
|
*
|
* @param page
|
* @param param
|
* @throws Exception
|
*/
|
@DataProvider
|
public void pageExpClaimSubmit(Page<OAExpClaim> page,
|
Map<String, Object> param) throws Exception {
|
if (null == param)
|
param = new HashMap<String, Object>();
|
|
param.put("submitUserId", ContextUtil.getLoginUserName());
|
|
service.pageExpClaim(page, param);
|
}
|
|
/**
|
* oaPR#pageExpClaimAudit
|
*
|
* @param page
|
* @param param
|
* @throws Exception
|
*/
|
@DataProvider
|
public void pageExpClaimAudit(Page<OAExpClaim> page,
|
Map<String, Object> param) throws Exception {
|
|
service.pageExpClaim(page, param);
|
}
|
|
/**
|
* oaPR#listExpClaimDetail
|
*
|
* @param id
|
* @return
|
*/
|
@DataProvider
|
public List<OAExpClaimDetail> listExpClaimDetail(String id) {
|
return service.listExpClaimDetail(id);
|
}
|
|
/**
|
* oaPR#saveExpClaim
|
*
|
* @param data
|
*/
|
@DataResolver
|
public void saveExpClaim(OAExpClaim data) {
|
service.saveExpClaim(data, false);
|
}
|
|
/**
|
* oaPR#AuditExpClaim
|
*
|
* @param data
|
*/
|
@DataResolver
|
public void AuditExpClaim(OAExpClaim data) {
|
service.saveExpClaim(data, true);
|
}
|
|
/**
|
* oaPR#delExpClaim
|
*
|
* @param data
|
* @return
|
*/
|
@Expose
|
public String delExpClaim(OAExpClaim data) {
|
return service.delExpClaim(data);
|
}
|
|
/**
|
* oaPR#delExpClaimDetail
|
*
|
* @param data
|
* @return
|
*/
|
@Expose
|
public String delExpClaimDetail(OAExpClaimDetail data) {
|
return service.delExpClaimDetail(data);
|
}
|
|
// ${dorado.getDataProvider("oaPR#triggerStatus").getResult()}
|
@DataProvider
|
public List<DicTrigger> triggerStatus() {
|
List<DicTrigger> list = new ArrayList<DicTrigger>();
|
list.add(new DicTrigger(OAUtil.AUDIT_NONE, "待审核"));
|
list.add(new DicTrigger(OAUtil.AUDIT_PASS, "审核通过"));
|
list.add(new DicTrigger(OAUtil.AUDIT_UNPASS, "审核拒绝"));
|
return list;
|
}
|
|
}
|