parent
2f93dded99
commit
432abf3943
|
@ -17,7 +17,7 @@ public class AttachmentFileDaoImpl extends MybatisGenericDao<AttachmentFileEntit
|
|||
@DS("#entity.dataSourceCode")
|
||||
@Override
|
||||
public Integer saveData(AttachmentFileEntity entity) {
|
||||
Integer o = super.insert(getSqlIdPrifx() + "AttachmentFileEntity_insert", entity);
|
||||
Integer o = super.insert("com.hzya.frame.grpU8.nxproof.attachment.entity.AttachmentFileEntity.AttachmentFileEntity_insert", entity);
|
||||
return o;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,21 +20,21 @@ public class OerAnnexDaoImpl extends MybatisGenericDao<OerAnnexEntity, String> i
|
|||
@DS("#entity.dataSourceCode")
|
||||
@Override
|
||||
public Integer deleteAnnex(OerAnnexEntity entity) {
|
||||
Integer o = super.delete(getSqlIdPrifx() + "OerAnnexEntity_delete", entity);
|
||||
Integer o = super.delete( "com.hzya.frame.grpU8.nxproof.oerannex.entity.OerAnnexEntity.OerAnnexEntity_delete", entity);
|
||||
return o;
|
||||
}
|
||||
|
||||
@DS("#entity.dataSourceCode")
|
||||
@Override
|
||||
public OerAnnexEntity queryMaxId(OerAnnexEntity entity) {
|
||||
OerAnnexEntity o = super.query(entity,getSqlIdPrifx() + "OerAnnexEntity_max_id");
|
||||
OerAnnexEntity o = super.query(entity,"com.hzya.frame.grpU8.nxproof.oerannex.entity.OerAnnexEntity.OerAnnexEntity_max_id");
|
||||
return o;
|
||||
}
|
||||
|
||||
@DS("#entity.dataSourceCode")
|
||||
@Override
|
||||
public Integer saveData(OerAnnexEntity entity) {
|
||||
Integer o = super.insert(getSqlIdPrifx() + "entity_insert",entity);
|
||||
Integer o = super.insert("com.hzya.frame.grpU8.nxproof.oerannex.entity.OerAnnexEntity.OerAnnexEntity_insert",entity);
|
||||
return o;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -270,6 +270,8 @@ GSDM,KJND,mlId
|
|||
<select id="queryOerDjml" resultType="com.hzya.frame.grpU8.nxproof.oerdjml.entity.OerDjmlEntity" parameterType = "com.hzya.frame.grpU8.nxproof.oerdjml.entity.OerDjmlEntity">
|
||||
select
|
||||
mlId,
|
||||
kjnd,
|
||||
gsdm,
|
||||
DJBH
|
||||
from OER_DJML
|
||||
<trim prefix="where" prefixOverrides="and">
|
||||
|
|
|
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
|
@ -73,14 +74,14 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
|||
}
|
||||
}
|
||||
Map<String, String> headers = entity.getHeaders();
|
||||
String eventType = headers.get("eventType");
|
||||
String formmainTableName = headers.get("formmainTableName");
|
||||
String forsonTableName = headers.get("forsonTableName");
|
||||
String djlxid = headers.get("djlxid");
|
||||
String djlx = headers.get("djlx");
|
||||
String flowcode = headers.get("flowcode");
|
||||
String fileApiCode = headers.get("file_api_code");
|
||||
JSONObject bodyObj = JSONObject.parseObject(bodys);
|
||||
//事件类型
|
||||
String eventType = bodyObj.getString("eventType");
|
||||
//summaryId
|
||||
String summaryId = bodyObj.getString("summaryId");
|
||||
JSONObject seeyonData = bodyObj.getJSONObject("businessDataStr");
|
||||
if (null != seeyonData){
|
||||
/**
|
||||
|
@ -94,16 +95,16 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
|||
String res = "";
|
||||
if (DjlxEnum.TRAVEL.type.equals(djlx)) {
|
||||
//差旅报销 travel
|
||||
res = travel(headers, eventType, djlxid, flowcode, fileApiCode, seeyonData, formmainData, forsonData);
|
||||
res = travel(headers,eventType,summaryId,grpDataSourceCode,formmainData,forsonData);
|
||||
}else if(DjlxEnum.EXPENSE.type.equals(djlx)){
|
||||
//费用报销 expense
|
||||
res = expense(headers, eventType, djlxid, flowcode, fileApiCode, seeyonData, formmainData, forsonData);
|
||||
res = expense(headers,seeyonData, formmainData, forsonData);
|
||||
}else if (DjlxEnum.LABOR.type.equals(djlx)){
|
||||
//劳务费 labor
|
||||
}
|
||||
if (StrUtil.isNotEmpty(res)){
|
||||
entity.setBodys(res);
|
||||
//return entity;
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
}catch (Exception ex ){
|
||||
|
@ -115,15 +116,16 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
|||
/**
|
||||
* 费用报销单
|
||||
* @param headers 请求头
|
||||
* @param eventType 事件类型
|
||||
* @param djlxid 单据类型id
|
||||
* @param flowcode 流程编码
|
||||
* @param fileApiCode 附件下载apicode
|
||||
* @param seeyonData 表单对象
|
||||
* @param formmainData 主表数据
|
||||
* @param forsonData 子表数据
|
||||
*/
|
||||
private String expense(Map<String, String> headers, String eventType, String djlxid, String flowcode, String fileApiCode, JSONObject seeyonData, JSONObject formmainData, JSONArray forsonData) {
|
||||
private String expense(Map<String, String> headers,JSONObject seeyonData, JSONObject formmainData, JSONArray forsonData) {
|
||||
String eventType = headers.get("eventType");
|
||||
String djlxid = headers.get("djlxid");
|
||||
String flowcode = headers.get("flowcode");
|
||||
String fileApiCode = headers.get("file_api_code");
|
||||
|
||||
OerDjmlEntity djml = new OerDjmlEntity();
|
||||
djml.setLclb(eventType);
|
||||
djml.setDjbh(formmainData.getString("field0001"));
|
||||
|
@ -136,8 +138,8 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
|||
djml.setZt("2");
|
||||
djml.setCrerdm("");
|
||||
djml.setCrermc("");
|
||||
djml.setCrerdate(timestampConvert(formmainData.getString("start_date")));
|
||||
djml.setDjdate(timestampConvert(formmainData.getString("field0016")));
|
||||
djml.setCrerdate(timestampConvert(formmainData.getString("start_date"),"yyyyMMdd"));
|
||||
djml.setDjdate(timestampConvert(formmainData.getString("field0016"),"yyyyMMdd"));
|
||||
djml.setJe(formmainData.getString("field0052"));
|
||||
djml.setJedx(formmainData.getString("field0071"));
|
||||
djml.setYjje("0.00");
|
||||
|
@ -239,17 +241,19 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
|||
* 差旅报销单
|
||||
* @param headers 请求头
|
||||
* @param eventType 事件类型
|
||||
* @param djlxid 单据类型id
|
||||
* @param flowcode 流程编码
|
||||
* @param fileApiCode 附件下载apicode
|
||||
* @param seeyonData 表单对象
|
||||
* @param summaryId 流程id
|
||||
* @param dataSourceCode
|
||||
* @param formmainData 主表数据
|
||||
* @param forsonData 子表数据
|
||||
*/
|
||||
private String travel(Map<String, String> headers, String eventType, String djlxid, String flowcode, String fileApiCode, JSONObject seeyonData, JSONObject formmainData, JSONArray forsonData) {
|
||||
private String travel(Map<String, String> headers, String eventType,String summaryId, String dataSourceCode,JSONObject formmainData, JSONArray forsonData) {
|
||||
String djlxid = headers.get("djlxid");
|
||||
String flowcode = headers.get("flowcode");
|
||||
String fileApiCode = headers.get("file_api_code");
|
||||
OerDjmlEntity djml = new OerDjmlEntity();
|
||||
djml.setLclb(eventType);
|
||||
djml.setDjbh(formmainData.getString("field0001"));
|
||||
djml.setDataSourceCode(dataSourceCode);
|
||||
//流程发起
|
||||
if (ColEventTypeEnum.ONSTART.getType().equals(eventType)){
|
||||
JSONObject forjsonData0 = forsonData.getJSONObject(0);
|
||||
|
@ -259,8 +263,8 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
|||
djml.setZt("2");
|
||||
djml.setCrerdm(formmainData.getString("field0107"));
|
||||
djml.setCrermc(formmainData.getString("field0114"));
|
||||
djml.setCrerdate(timestampConvert(formmainData.getString("start_date")));
|
||||
djml.setDjdate((timestampConvert(formmainData.getString("field0002"))));
|
||||
djml.setCrerdate(timestampConvert(formmainData.getString("start_date"),"yyyyMMdd"));
|
||||
djml.setDjdate((timestampConvert(formmainData.getString("field0002"),"yyyyMMdd")));
|
||||
djml.setJe(formmainData.getString("field0033"));
|
||||
djml.setJedx(formmainData.getString("field0034"));
|
||||
djml.setYjje("0.00");
|
||||
|
@ -295,7 +299,7 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
|||
djml.setSsrq( DateUtil.format(formmainData.getDate("startDate"),"yyyyMMddHHmmssSSS"));
|
||||
djml.setSsrid(formmainData.getString("field0108"));
|
||||
djml.setSsr(formmainData.getString("field0115"));
|
||||
|
||||
djml.setClf_cclb(forjsonData0.getString("field0098"));
|
||||
//报销明细
|
||||
List<OerDjnrEntity> djnrList = new ArrayList<>();
|
||||
//结算方式
|
||||
|
@ -330,8 +334,8 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
|||
djnr.setJflxdm("");
|
||||
djnr.setJflxmc("");
|
||||
djnr.setZy(forson.getString("field0030"));
|
||||
djnr.setClf_startdate(forson.getString("field0016"));
|
||||
djnr.setClf_enddate(forson.getString("field0017"));
|
||||
djnr.setClf_startdate(timestampConvert(forson.getString("field0016"),"yyyy-MM-dd"));
|
||||
djnr.setClf_enddate(timestampConvert(forson.getString("field0017"),"yyyy-MM-dd"));
|
||||
djnr.setClf_ccdd(forson.getString("field0019"));
|
||||
djnr.setClf_ccksd(forson.getString("field0018"));
|
||||
djnr.setClf_djzs(djml.getFjs());
|
||||
|
@ -405,20 +409,21 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
|||
djml.setCurshjd("999");
|
||||
djml.setNextshjd("-1");
|
||||
//查询协同附件
|
||||
List<FileInfoDTO> fileInfoList = fileDownload(seeyonData.getString("summaryId"), fileApiCode);
|
||||
List<FileInfoDTO> fileInfoList = fileDownload(summaryId, fileApiCode);
|
||||
djml.setFileInfoList(fileInfoList);
|
||||
}
|
||||
String djmlStr = JSONObject.toJSONString(djml);
|
||||
logger.info("差旅报销单报文:{}",djmlStr);
|
||||
//logger.info("差旅报销单报文:{}",djmlStr);
|
||||
return djmlStr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 时间戳转成 yyyyMMdd
|
||||
* @param timestamp
|
||||
* 时间戳转成 指定格式
|
||||
* @param timestamp 时间戳
|
||||
* @param format 格式
|
||||
* @return
|
||||
*/
|
||||
private String timestampConvert(String timestamp){
|
||||
private String timestampConvert(String timestamp,String format){
|
||||
if (StrUtil.isNotEmpty(timestamp) && NumberUtil.isNumber(timestamp)){
|
||||
try {
|
||||
DateTime date = DateUtil.date(Long.valueOf(timestamp));
|
||||
|
@ -439,15 +444,19 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
|||
*/
|
||||
private List<FileInfoDTO> fileDownload(String summaryId,String apiCode){
|
||||
try {
|
||||
List<CollAttachmentResDTO> colAttachmentList = restUtil.getColAttachments(summaryId, "0", apiCode, "hzya");
|
||||
List<CollAttachmentResDTO> colAttachmentList = restUtil.getColAttachments(summaryId, "0", apiCode, null);
|
||||
//下载协同附件
|
||||
if (CollectionUtils.isNotEmpty(colAttachmentList)){
|
||||
String token = restUtil.getToken(null, apiCode);
|
||||
List<FileInfoDTO> fileList = new ArrayList<>();
|
||||
for (CollAttachmentResDTO att : colAttachmentList) {
|
||||
FileInfoDTO fileInfoDTO = new FileInfoDTO();
|
||||
|
||||
String fileName = URLDecoder.decode(att.getFilename(), "UTF-8");
|
||||
byte[] bytes = restUtil.downloadFileBytes("hzya", apiCode, att.getFileUrl(), fileName);
|
||||
byte[] bytes = restUtil.downloadFileBytes(null, apiCode, att.getFileUrl(), fileName,token);
|
||||
if (!FileUtil.isDirectory(DSK+ File.separator+DateUtil.today())){
|
||||
FileUtil.mkdir(DSK+ File.separator+DateUtil.today());
|
||||
}
|
||||
String filePath = DSK+ File.separator+DateUtil.today()+File.separator+att.getFileUrl()+"."+att.getExtension();
|
||||
File file = new File(filePath);
|
||||
// 使用 FileOutputStream 写入字节数组到文件
|
||||
|
@ -455,7 +464,7 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
|||
fos.write(bytes);
|
||||
}
|
||||
if (null != file){
|
||||
String zipPath = DSK+File.separator+DateUtil.today()+File.separator+att.getSubReference()+".zip";
|
||||
String zipPath = DSK+File.separator+DateUtil.today()+File.separator+att.getFileUrl()+".zip";
|
||||
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipPath), Charset.forName("GBK"));
|
||||
writeZipFile(file, zos, fileName);
|
||||
zos.close();
|
||||
|
@ -476,6 +485,7 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
|||
fileList.add(fileInfoDTO);
|
||||
}
|
||||
}
|
||||
return fileList;
|
||||
}
|
||||
}catch (Exception e){
|
||||
logger.error("下载附件出错:{}",e);
|
||||
|
|
|
@ -765,6 +765,8 @@ public class OerDjmlServiceImpl implements IOerDjmlService {
|
|||
//修改状态
|
||||
oerDjmlAllEntity.setMlId(oerDjmlAllEntities.get(0).getMlId());
|
||||
oerDjmlAllEntity.setZt(entity.getZt());
|
||||
oerDjmlAllEntity.setCurshjd(entity.getCurshjd());
|
||||
oerDjmlAllEntity.setNextshjd(entity.getNextshjd());
|
||||
iOerDjmlDao.updateOerDjml(oerDjmlAllEntity);
|
||||
//释放指标
|
||||
GbiZbsyrecAllEntity gbiZbsyrecAllEntity = new GbiZbsyrecAllEntity();
|
||||
|
@ -844,6 +846,7 @@ public class OerDjmlServiceImpl implements IOerDjmlService {
|
|||
annexEntity.setDataSourceCode(entity.getDataSourceCode());
|
||||
annexEntity.setMlid(oerDjmlAllEntities.get(0).getMlId());
|
||||
annexEntity.setKjnd(oerDjmlAllEntities.get(0).getKjnd());
|
||||
annexEntity.setGsdm(oerDjmlAllEntities.get(0).getGsdm());
|
||||
annexEntity.setAnnexName(fileName);
|
||||
annexEntity.setAnnexSize(Convert.toLong(fileInfo.getFile_size()));
|
||||
annexEntity.setOnlyid(fileEntity.getaTGuid());
|
||||
|
|
|
@ -390,7 +390,7 @@ public class SeeYonInterFaceImpl implements ISeeYonInterFace {
|
|||
object.put("eventType",eventType);
|
||||
object.put("businessDataStr",seeYonBean.toJSONString());
|
||||
object.put("affairId","");
|
||||
object.put("summaryId",interFaceEntity.getSummaryId());
|
||||
object.put("summaryId",requestData.getString("summaryId"));
|
||||
object.put("currentActivityId","");
|
||||
object.put("id",forMainId);
|
||||
object.put("hzyaExtData",requestData.getJSONObject("hzyaExtData"));
|
||||
|
|
|
@ -81,7 +81,7 @@ public class RestUtil {
|
|||
if (StrUtil.isNotEmpty(summaryId) && StrUtil.isNotEmpty(apiCode)){
|
||||
SysApplicationApiEntity sysApp = getByCode(apiCode);
|
||||
String token = getToken(loginName,sysApp);
|
||||
String appUrl = sysApp.getAppUrl();
|
||||
String appUrl = StrUtil.removeSuffix(sysApp.getAppUrl(),"/");
|
||||
if (StrUtil.isEmpty(attType)){
|
||||
attType = "0";
|
||||
}
|
||||
|
@ -95,6 +95,7 @@ public class RestUtil {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 附件下载
|
||||
* @param loginName oa登录名
|
||||
|
@ -107,7 +108,32 @@ public class RestUtil {
|
|||
if (StrUtil.isNotEmpty(apiCode)){
|
||||
SysApplicationApiEntity sysApp = getByCode(apiCode);
|
||||
String token = getToken(loginName,sysApp);
|
||||
String appUrl = sysApp.getAppUrl();
|
||||
String appUrl = StrUtil.removeSuffix(sysApp.getAppUrl(),"/");
|
||||
String url = "/seeyon/rest/attachment/file/@ctp_file_ID@?fileName=@文件名@&token=@token@";
|
||||
url = url.replaceAll("@ctp_file_ID@",fileId).replaceAll("@文件名@",fileName).replaceAll("@token@",token);
|
||||
byte[] bytes = HttpUtil.downloadBytes(appUrl + url);
|
||||
return bytes;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 附件下载
|
||||
* @param loginName oa登录名
|
||||
* @param apiCode 接口编码
|
||||
* @param fileId 附件id
|
||||
* @param fileName 附件名
|
||||
* @param token
|
||||
* @return 附件字节数组
|
||||
*/
|
||||
public byte[] downloadFileBytes(String loginName,String apiCode,String fileId,String fileName,String token){
|
||||
if (StrUtil.isNotEmpty(apiCode)){
|
||||
SysApplicationApiEntity sysApp = getByCode(apiCode);
|
||||
if (StrUtil.isEmpty(token)){
|
||||
token = getToken(loginName,sysApp);
|
||||
}
|
||||
String appUrl = StrUtil.removeSuffix(sysApp.getAppUrl(),"/");
|
||||
String url = "/seeyon/rest/attachment/file/@ctp_file_ID@?fileName=@文件名@&token=@token@";
|
||||
url = url.replaceAll("@ctp_file_ID@",fileId).replaceAll("@文件名@",fileName).replaceAll("@token@",token);
|
||||
byte[] bytes = HttpUtil.downloadBytes(appUrl + url);
|
||||
|
@ -139,7 +165,7 @@ public class RestUtil {
|
|||
public String getToken(String login_name,SysApplicationApiEntity sysApp){
|
||||
if (null != sysApp){
|
||||
HashMap<String, String> hashMap = new HashMap<>();
|
||||
String app_url = sysApp.getAppUrl();
|
||||
String app_url = StrUtil.removeSuffix(sysApp.getAppUrl(), "/");
|
||||
String url = app_url+"/seeyon/rest/token";
|
||||
String headerIn = sysApp.getHeaderIn();
|
||||
JSONArray headers = JSON.parseArray(headerIn);
|
||||
|
@ -151,8 +177,9 @@ public class RestUtil {
|
|||
hashMap.put(parameterName,example);
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotEmpty(login_name)){
|
||||
hashMap.put("loginName",login_name);
|
||||
login_name = hashMap.get("loginName");
|
||||
if (StrUtil.isEmpty(login_name)){
|
||||
hashMap.put("loginName","hzya");
|
||||
}
|
||||
String result = HttpRequest.post(url).body(JSON.toJSONString(hashMap)).execute().body();
|
||||
JSONObject jsonObject = JSONObject.parseObject(result);
|
||||
|
|
Loading…
Reference in New Issue