diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/poorder/service/impl/PoOrderServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/poorder/service/impl/PoOrderServiceImpl.java index 29f96467..54bae546 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/poorder/service/impl/PoOrderServiceImpl.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/poorder/service/impl/PoOrderServiceImpl.java @@ -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.service.IPoOrderExtService; 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.org.member.entity.UserViewEntity; import com.hzya.frame.seeyon.org.member.service.IUserViewService; import com.hzya.frame.seeyon.util.OARestUtil; import com.hzya.frame.web.entity.BaseResult; import com.hzya.frame.web.entity.JsonResultEntity; +import org.apache.commons.collections.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; + +import java.net.URLDecoder; +import java.util.Base64; import java.util.LinkedList; import java.util.List; @@ -202,11 +207,61 @@ public class PoOrderServiceImpl implements IPoOrderService { poOrderEntity.setField0059("-1"); 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("审批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 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 Y/N