附件上传

This commit is contained in:
xiangerlin 2025-07-24 16:39:50 +08:00
parent 8d284e9e29
commit defa8e33e7
1 changed files with 55 additions and 0 deletions

View File

@ -10,17 +10,22 @@ import com.hzya.frame.execsql.service.IExecSqlService;
import com.hzya.frame.plugin.oa.poorder.entity.PoOrderEntity; import com.hzya.frame.plugin.oa.poorder.entity.PoOrderEntity;
import com.hzya.frame.plugin.oa.poorder.service.IPoOrderExtService; import com.hzya.frame.plugin.oa.poorder.service.IPoOrderExtService;
import com.hzya.frame.plugin.oa.poorder.service.IPoOrderService; import com.hzya.frame.plugin.oa.poorder.service.IPoOrderService;
import com.hzya.frame.seeyon.entity.CollAttachmentResDTO;
import com.hzya.frame.seeyon.enums.ColEventTypeEnum; import com.hzya.frame.seeyon.enums.ColEventTypeEnum;
import com.hzya.frame.seeyon.org.member.entity.UserViewEntity; import com.hzya.frame.seeyon.org.member.entity.UserViewEntity;
import com.hzya.frame.seeyon.org.member.service.IUserViewService; import com.hzya.frame.seeyon.org.member.service.IUserViewService;
import com.hzya.frame.seeyon.util.OARestUtil; import com.hzya.frame.seeyon.util.OARestUtil;
import com.hzya.frame.web.entity.BaseResult; import com.hzya.frame.web.entity.BaseResult;
import com.hzya.frame.web.entity.JsonResultEntity; import com.hzya.frame.web.entity.JsonResultEntity;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.net.URLDecoder;
import java.util.Base64;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@ -202,11 +207,61 @@ public class PoOrderServiceImpl implements IPoOrderService {
poOrderEntity.setField0059("-1"); poOrderEntity.setField0059("-1");
poOrderExtService.updateVerifyFlag(poOrderEntity); poOrderExtService.updateVerifyFlag(poOrderEntity);
} }
}else if (ColEventTypeEnum.ONPROCESSFINISHED.getType().equals(eventType)){
try {
//附件上传
if (StrUtil.isNotEmpty(formmainData.getString("field0063")) &&
StrUtil.isNotEmpty(formmainData.getString("field0056"))){
uploadFile(summaryId, headers, formmainData.getString("field0056"));
}
}catch(Exception e){
logger.error("OA采购订单附件上传到NCC出错:{}",e);
}
} }
return BaseResult.getSuccessMessageEntity(resultJson.getJSONObject("attribute")); return BaseResult.getSuccessMessageEntity(resultJson.getJSONObject("attribute"));
} }
return BaseResult.getSuccessMessageEntity("审批NCC采购订单"); return BaseResult.getSuccessMessageEntity("审批NCC采购订单");
} }
/**
* 附件上传
* @param summaryId
* @param headers
* @param pk_order
*/
private void uploadFile(String summaryId, JSONObject headers, String pk_order) {
String fileApiCode = headers.getString("fileApiCode");
String token = oaRestUtil.getToken(null, fileApiCode);
List<CollAttachmentResDTO> collAttachmentList = oaRestUtil.getColAttachments(summaryId, "0", fileApiCode, token);
if (CollectionUtils.isNotEmpty(collAttachmentList)){
//获取OA token
for (CollAttachmentResDTO collAttachment : collAttachmentList) {
try {
String fileName = URLDecoder.decode(collAttachment.getFilename(), "UTF-8");
byte[] bytes = oaRestUtil.downloadFileBytes("hzya", fileApiCode, collAttachment.getFileUrl(), fileName, token);
String base64File = Base64.getEncoder().encodeToString(bytes);
JSONObject fileParams = new JSONObject();
fileParams.put("creator", headers.getString("creator"));
fileParams.put("pk_bill", pk_order);
fileParams.put("filename",fileName);
fileParams.put("file",base64File);
String result = HttpRequest.post(interfaceUrl)
.header("appId", "800065")//NCC应用
.header("apiCode", "8000650001")//NCC附件上传接口
.header("publicKey", "ZJYAbkr9+XjnDrlfQCRKXtpVvg/BjxqtxzcLgg5TIGagEKJCe7eDIk+3zDUT+v578prj")//OA公钥
.header("secretKey", "2GR4+yrcx+Ev+pN0Q6V6wxCdvisPX7wzNKBgc5SsIYGxYI5GTISXT6GvTPfp1u2Rj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//OA密钥
.body(fileParams.toString())//表单内容
.timeout(30000)//超时毫秒
.execute().body();
logger.info("======OA采购订单附件上传到NCC响应参数:{}======",result);
}catch(Exception e){
e.printStackTrace();
logger.error("下载OA附件出错:{}",e);
}
}
}
}
/** /**
* 把NCC的 boolean类型转成OA * 把NCC的 boolean类型转成OA
* NCC Y/N * NCC Y/N