From c1aaa4877159b8fb8bc994d8a423340bedd5e8be Mon Sep 17 00:00:00 2001 From: xiang2lin <251481237@qq.com> Date: Fri, 16 Aug 2024 14:01:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=B2=A1=E7=94=A8=E7=9A=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=202024=E5=B9=B48=E6=9C=8816=E6=97=A514:00:54?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oerdjml/service/IOerDjmlService.java | 7 - .../service/impl/OerDjmlServiceImpl.java | 293 ------------------ 2 files changed, 300 deletions(-) diff --git a/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/service/IOerDjmlService.java b/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/service/IOerDjmlService.java index 0c91e8c7..5a713010 100644 --- a/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/service/IOerDjmlService.java +++ b/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/service/IOerDjmlService.java @@ -33,11 +33,4 @@ public interface IOerDjmlService { * @return java.lang.Object **/ Object handleOerDjml(JSONObject jsonObject); - - /** - * 保存方法前,先调这个方法 组装参数 - * @param entity - * @return - */ - SysExtensionApiEntity saveExpensePre(SysExtensionApiEntity entity); } diff --git a/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/service/impl/OerDjmlServiceImpl.java b/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/service/impl/OerDjmlServiceImpl.java index 9a4bbfb6..c1bd2022 100644 --- a/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/service/impl/OerDjmlServiceImpl.java +++ b/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/service/impl/OerDjmlServiceImpl.java @@ -821,289 +821,6 @@ public class OerDjmlServiceImpl implements IOerDjmlService { return BaseResult.getSuccessMessageEntity("处理成功"); } - /** - * 保存方法前,先调这个方法 组装参数 - * - * @param entity - * @return - */ - @Override - public SysExtensionApiEntity saveExpensePre(SysExtensionApiEntity entity) { - try { - String bodys = entity.getBodys(); - 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 flowcode = headers.get("flowcode"); - String fileApiCode = headers.get("file_api_code"); - JSONObject bodyObj = JSONObject.parseObject(bodys); - JSONObject seeyonData = bodyObj.getJSONObject("businessDataStr"); - if (null != seeyonData){ - /** - * 流程发起 保存/更新单据 要全部数据 - * 流程撤销 只更新状态,传单号和状态就好了 - * 流程终止 只更新状态,传单号和状态就好了 - * 流程结束 更新状态 并上传附件 - */ - JSONObject formmainData = seeyonData.getJSONObject(formmainTableName); - JSONArray forsonData = seeyonData.getJSONArray(forsonTableName); - JSONObject forjsonData0 = forsonData.getJSONObject(0); - OerDjmlEntity djml = new OerDjmlEntity(); - djml.setDjbh(formmainData.getString("field0001")); - djml.setLclb(eventType); - //流程发起 - if (ColEventTypeEnum.ONSTART.getType().equals(eventType)){ - djml.setGsdm(forjsonData0.getString("field0084")); - djml.setKjnd(forjsonData0.getString("field0082")); - djml.setDjlxId(djlxid); - djml.setZt("2"); - djml.setCrerdm(formmainData.getString("field0107")); - djml.setCrermc(""); - djml.setCrerdate(timestampConvert(formmainData.getString("start_date"))); - djml.setDjdate((formmainData.getString("field0002"))); - djml.setJe(formmainData.getString("field0080")); - djml.setJedx( Convert.numberToChinese(Double.valueOf(formmainData.getString("field0080")),true)); - djml.setYjje("0.00"); - djml.setThje("0.00"); - djml.setBlje(formmainData.getString("field0080")); - djml.setFjs( formmainData.getString("field0004")); - djml.setZy( formmainData.getString("field0009")); - //部门代码 - djml.setBmdm( formmainData.getString("field0006")); - djml.setBmmc( formmainData.getString("field0006")); - //项目代码 - djml.setXmdm(forjsonData0.getString("field0074")); - djml.setXmmc(forjsonData0.getString("field0075")); - //个人代码 - djml.setGrdm(formmainData.getString("field0108")); - djml.setGrmc(""); - //经济代码 - djml.setJjdm(""); - djml.setJjmc(""); - //银行帐号 开户银行 - djml.setYhzh(forjsonData0.getString("field0079")); - djml.setKhyh(forjsonData0.getString("field0078")); - //当前审核节点、下个审核节点 ,不在grp审批,是不是不用填了 - djml.setCurshjd("-9"); - djml.setNextshjd("999"); - djml.setFlowcode(flowcode); - djml.setJsfs(spliceStr(forjsonData0.getString("field0095"),forjsonData0.getString("field0094"))); - //电话,oa上没有 - djml.setTel(formmainData.getString("field0110")); - djml.setClf_ccr(formmainData.getString("field0010")); - //送审日期 - djml.setSsrq( DateUtil.format(formmainData.getDate("startDate"),"yyyyMMddHHmmssSSS")); - djml.setSsrid(""); - djml.setSsr(""); - - //报销明细 - List<OerDjnrEntity> djnrList = new ArrayList<>(); - //结算方式 - List<OerDjjsfsEntity> jsfsList = new ArrayList<>(); - //预算指标 - List<OerYszbEntity> yszbList = new ArrayList<>(); - //指标记录 - int xh = 1; - for (int i=0; i<forsonData.size();i++) { - JSONObject forson = forsonData.getJSONObject(i); - String gsdm = forson.getString("field0084"); - String kjnd = forson.getString("field0082"); - String je = forson.getString("field0032"); - //单据内容 - OerDjnrEntity djnr = new OerDjnrEntity(); - djnr.setXh(String.valueOf(xh)); - djnr.setGsdm(gsdm); - djnr.setKjnd(kjnd); - djnr.setDjlxId(djlxid); - djnr.setBnxId(headers.get("bxmx_bnxid")); - djnr.setJe(je); - djnr.setBmdm(forson.getString("field0088")); - djnr.setBmmc(forson.getString("field0087")); - djnr.setXmdm(forson.getString("field0074")); - djnr.setXmmc(forson.getString("field0075")); - djnr.setJjdm(""); - djnr.setJjmc(""); - //grp库里有,不知道是什么 1001基本支出 2001项目支出(网银) - djnr.setFzx8dm(""); - djnr.setFzx8mc(""); - //指标id - djnr.setZbId(forson.getString("field0085")); - djnr.setJflxdm(""); - djnr.setJflxmc(""); - djnr.setZy(forson.getString("field0030")); - djnr.setClf_startdate(forson.getString("field0016")); - djnr.setClf_enddate(forson.getString("field0017")); - djnr.setClf_ccdd(forson.getString("field0019")); - djnr.setClf_ccksd(forson.getString("field0018")); - djnr.setClf_djzs(djml.getFjs()); - djnr.setClf_ccts(forson.getString("field0023")); - djnr.setClf_ccrs(forson.getString("field0021")); - djnr.setClf_zw(forson.getString("field0092")); - djnr.setClf_jtgj(forson.getString("field0020")); - djnr.setClf_jtf(forson.getString("field0024")); - djnr.setClf_zsbz(forson.getString("field0077")); - djnr.setClf_zsf(forson.getString("field0025")); - //伙食补助是 标准金额 - djnr.setCLF_HSBZ(forson.getString("field0026")); - //伙食费是 实际报销的金额 - djnr.setClf_hsf(forson.getString("field0026")); - djnr.setClf_jtbz(forson.getString("field0024")); - djnr.setClf_qtf(forson.getString("field0028")); - djnr.setFjs(djml.getFjs()); - djnrList.add(djnr); - //结算方式 - OerDjjsfsEntity jsfs = new OerDjjsfsEntity(); - jsfs.setGsdm(gsdm); - jsfs.setKjnd(kjnd); - jsfs.setDjlxId(djlxid); - jsfs.setBnxid(headers.get("jsfs_bnxid")); - jsfs.setXh(String.valueOf(xh)); - jsfs.setJsfsdm(forson.getString("field0095")); - jsfs.setJsfsmc(forson.getString("field0094")); - jsfs.setKmdm(forson.getString("field0089")); - jsfs.setKmmc(forson.getString("field0066")); - jsfs.setSkr(forson.getString("field0096")); - jsfs.setKhyh(forson.getString("field0078")); - jsfs.setYhzh(forson.getString("field0079")); - jsfs.setJe(je); - jsfs.setYh(""); - jsfs.setYhhh(""); - jsfs.setProvince(""); - jsfs.setCity(""); - //支付方式为个人、公务卡时 可以选择 经办人、负责人、其他 - jsfs.setRytype(""); - //oa没有 - jsfs.setYt(forson.getString("field0030")); - jsfsList.add(jsfs); - //预算指标 - OerYszbEntity yszb = new OerYszbEntity(); - BeanUtil.copyProperties(djnr,yszb); - yszb.setBnxId(headers.get("yszb_bnxid")); - yszb.setZbdm(forson.getString("field0085")); - yszb.setZy(forson.getString("field0111")); - yszb.setKmdm(forson.getString("field0089")); - yszb.setKmmc(forson.getString("field0066")); - yszbList.add(yszb); - xh++; - } - logger.info("报销单主表:{}",JSONObject.toJSONString(djml)); - logger.info("报销单明细表:{}",JSONObject.toJSONString(djnrList)); - logger.info("报销单结算方式:{}",JSONObject.toJSONString(jsfsList)); - logger.info("报销单预算指标:{}",JSONObject.toJSONString(yszbList)); - djml.setOerDjnrEntityList(djnrList); - djml.setOerDjjsfsEntityList(jsfsList); - djml.setOerYszbEntityList(yszbList); - }else if (ColEventTypeEnum.ONSTOP.getType().equals(eventType)){ - //流程终止 修改状态,释放指标 - djml.setZt("0"); - }else if (ColEventTypeEnum.ONCANCEL.getType().equals(eventType)){ - //流程撤销 修改状态,释放指标 - djml.setZt("1"); - }else if (ColEventTypeEnum.ONPROCESSFINISHED.getType().equals(eventType)){ - //流程处理事件 - djml.setZt("3"); - djml.setCurshjd("999"); - djml.setNextshjd("-1"); - //查询协同附件 - List<FileInfoDTO> fileInfoList = fileDownload(seeyonData.getString("summaryId"),fileApiCode); - } - String djmlStr = JSONObject.toJSONString(djml); - logger.info("差旅报销单报文:{}",djmlStr); - } - }catch (Exception ex ){ - logger.error("保存报销单之前组装参数出错",ex); - } - return null; - } - - private String timestampConvert(String timestamp){ - if (StrUtil.isNotEmpty(timestamp)){ - try { - DateTime date = DateUtil.date(Long.valueOf(timestamp)); - String formattedDate = DateUtil.format(date, "yyyyMMdd"); - return formattedDate; - }catch (Exception e){ - logger.error("日期转换出错:{}",e); - } - } - return null; - } - private List<FileInfoDTO> fileDownload(String summaryId,String apiCode){ - try { - List<CollAttachmentResDTO> colAttachmentList = restUtil.getColAttachments(summaryId, "0", apiCode, "hzya"); - //下载协同附件 - if (CollectionUtils.isNotEmpty(colAttachmentList)){ - 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); - String filePath = DSK+File.separator+DateUtil.today()+File.separator+att.getFileUrl()+"."+att.getExtension(); - File file = new File(filePath); - // 使用 FileOutputStream 写入字节数组到文件 - try (FileOutputStream fos = new FileOutputStream(file)) { - fos.write(bytes); - } - if (null != file){ - String zipPath = DSK+File.separator+DateUtil.today()+File.separator+att.getSubReference()+".zip"; - ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipPath), Charset.forName("GBK")); - writeZipFile(file, zos, fileName); - zos.close(); - // 获取压缩文件的字节数组 - File zipFile = new File(zipPath); - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream((int) zipFile.length()); - BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(zipFile)); - int buf_size = 1024; - byte[] buffer = new byte[buf_size]; - int len = 0; - while (-1 != (len = bufferedInputStream.read(buffer, 0, buf_size))) { - byteArrayOutputStream.write(buffer, 0, len); - } - byte[] fileByte = byteArrayOutputStream.toByteArray(); - fileInfoDTO.setData(fileByte); - fileInfoDTO.setFile_size(att.getSize()); - fileInfoDTO.setFile_name(fileName); - fileList.add(fileInfoDTO); - } - } - } - }catch (Exception e){ - logger.error("下载附件出错:{}",e); - } - return null; - } - /** - * 把文件压缩成zip - * @param file 要压缩的文件 - * @param zos 文件压缩流 - * @param fileName 文件名 - */ - private void writeZipFile(File file, ZipOutputStream zos, String fileName) { - if (null != file && null != zos) { - try { - logger.info("=====压缩文件====="); - zos.putNextEntry(new ZipEntry(fileName)); - FileInputStream fos = new FileInputStream(file); - BufferedInputStream bis = new BufferedInputStream(fos); - int len; - byte[] buf = new byte[1024]; - while ((len = bis.read(buf, 0, 1024)) != -1) { - zos.write(buf, 0, len); - } - bis.close(); - fos.close(); - logger.info("=====压缩完成====="); - } catch (Exception e) { - e.printStackTrace(); - logger.error("=====压缩文件出错====="); - } - } - } - - /** * @Author lvleigang * @Description 保存或修改主表以及指标 @@ -1286,14 +1003,4 @@ public class OerDjmlServiceImpl implements IOerDjmlService { } return flag; } - /** - * code和name拼接[] - * @param code - * @param name - * @return 格式:03[公务卡] - */ - private String spliceStr(String code,String name){ - String template = "{}[{}]"; - return StrUtil.format(template,code,name); - } }