From 9c49ede494a10d7e7a322eb2e793afa412ea07e1 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期一, 24 八月 2026 09:35:40 +0800
Subject: [PATCH] feat:科室新增开票类型 水电房租标的物问题 机动车开票选项
---
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java | 129 ++++++++++++++++++++++++++++++++++++++++---
1 files changed, 120 insertions(+), 9 deletions(-)
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java
index 4245c12..2f5997a 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java
@@ -425,6 +425,10 @@
if (CollUtil.isNotEmpty(slipList)){
detailVo.setPaymentSlip(slipList);
}
+ BusinessCustomer customer = businessCustomerMapper.selectById(contract.getPartyAId());
+ if (ObjUtil.isNotNull(customer)){
+ detailVo.setInvoiceType(customer.getInvoiceType());
+ }
return detailVo;
}
@@ -720,15 +724,58 @@
}
}
- if (StrUtil.equals(contract.getPartyBId()+"",smj)&&StrUtil.isNotEmpty(smjErp)){
- log.info("鐭崇叅鏈哄悎鍚屾帹閫乪rp鍏ュ弬锛歿}",request.toJSONString());
- String result = HttpUtil.post(smjErp,request.toJSONString());
- log.info("鐭崇叅鏈哄悎鍚屾帹閫乪rp鍥炲弬锛歿}",result);
- //淇濆瓨璇锋眰璁板綍
- saveErpRequestRecord("smj",request.toJSONString(),result);
- //鏇存柊鍚堝悓erp鎺ㄩ�佹爣璇�
- contract.setErpPushFlag("1");
- baseMapper.updateById(contract);
+ if ((StrUtil.equals(contract.getPartyBId()+"",smj)||StrUtil.equals(contract.getPartyBId()+"",smjsc)||
+ StrUtil.equals(contract.getPartyBId()+"",smjzt))&&StrUtil.isNotEmpty(smjErp)){
+ request.put("customerCode",customer.getErpCompanyCode());
+ request.put("currencyId","RMB");
+ request.put("signDate",DateUtil.format(contract.getSignDate(),DatePattern.NORM_DATETIME_PATTERN));
+ request.put("dateDeliver",DateUtil.format(contract.getExpirationDate(),DatePattern.NORM_DATETIME_PATTERN));
+ request.put("moneySum",contract.getAmount());
+ request.put("signManner","闈㈢");
+ request.put("salesman","");
+ if (ArrayUtil.isNotEmpty(subjectMatterList)){
+ JSONArray subjectMatter = new JSONArray();
+ subjectMatterList.stream().forEach(contractSubjectMatter -> {
+ JSONObject subjectMatterItem = new JSONObject();
+ subjectMatterItem.put("itemNo",contractSubjectMatter.getMaterialCode());
+ subjectMatterItem.put("salePrice",contractSubjectMatter.getUnitPrice());
+ subjectMatterItem.put("qtyRequired",contractSubjectMatter.getQuantity());
+ subjectMatterItem.put("money",contractSubjectMatter.getQuantity().multiply(contractSubjectMatter.getUnitPrice()));
+ Product product = productMapper.selectOne(Wrappers.<Product>lambdaQuery().eq(Product::getCompId,contract.getCompId())
+ .eq(Product::getErpCode,contractSubjectMatter.getMaterialCode()));
+ if (ObjUtil.isNotNull(product)){
+ subjectMatterItem.put("taxRate",new BigDecimal(product.getTaxRate()).divide(new BigDecimal("100")));
+ }
+ subjectMatterItem.put("dateDeliver",ObjUtil.isNotNull(contractSubjectMatter.getPlannedDeliveryDate())?
+ DateUtil.format(contractSubjectMatter.getPlannedDeliveryDate(),DatePattern.NORM_DATETIME_PATTERN):
+ DateUtil.format(contract.getExpirationDate(),DatePattern.NORM_DATETIME_PATTERN));
+ subjectMatter.add(subjectMatterItem);
+ });
+ request.put("details",subjectMatter);
+ }
+
+ JSONObject loginJson = new JSONObject();
+ loginJson.put("username","admin");
+ loginJson.put("password","Zimafold@2026");
+ log.info("鐭崇叅鏈哄悎鍚屾帹閫佽幏鍙杢oken鍏ュ弬锛歿}",loginJson.toJSONString());
+ String loginResp = HttpUtil.post(smjErp+"/api/account/v1/login",loginJson.toJSONString());
+ log.info("鐭崇叅鏈哄悎鍚屾帹閫佽幏鍙杢oken鍥炲弬锛歿}",loginResp);
+ JSONObject respJson = JSONObject.parseObject(loginResp);
+ if (respJson.getInteger("code")==0){
+ JSONObject dataJson = JSONObject.parseObject(respJson.getString("data"));
+ log.info("鐭崇叅鏈哄悎鍚屾帹閫乪rp鍏ュ弬锛歿}",request.toJSONString());
+ HttpResponse response = HttpRequest.post(smjErp+"/api/contract/v1/createWithDetails")
+ .header("token", dataJson.getString("token")) // 娣诲姞璁よ瘉澶�
+ .header("Content-Type", "application/json") // 璁剧疆鍐呭绫诲瀷
+ .body(request.toJSONString()) // 璁剧疆璇锋眰浣�
+ .execute(); // 鎵ц璇锋眰.post(ymjErp,request.toJSONString());
+ log.info("鐭崇叅鏈哄悎鍚屾帹閫乪rp鍥炲弬锛歿}",response.body());
+ //淇濆瓨璇锋眰璁板綍
+ saveErpRequestRecord("smj",request.toJSONString(),response.body());
+ //鏇存柊鍚堝悓erp鎺ㄩ�佹爣璇�
+ contract.setErpPushFlag("1");
+ baseMapper.updateById(contract);
+ }
}
if (StrUtil.equals(contract.getPartyBId()+"",jxc)&&StrUtil.isNotEmpty(jxcErp)){
@@ -1188,6 +1235,8 @@
}
contractExecDate.setGenFlag("1");
contractExecDateMapper.updateById(contractExecDate);
+ contract.setBillingStatus("2");
+ baseMapper.updateById(contract);
});
}
return R.ok();
@@ -2270,4 +2319,66 @@
baseMapper.insert(contract);
return R.ok();
}
+
+ @Override
+ public R pushCenter(Long id) {
+ Contract contract = baseMapper.selectById(id);
+ List<ContractSubjectMatter> subjectMatterList=contractSubjectMatterMapper.selectList(Wrappers.<ContractSubjectMatter>lambdaQuery()
+ .eq(ContractSubjectMatter::getContractId,id));
+ JSONObject requestApply = new JSONObject();
+ requestApply.put("fd_selectionmethod", "鍏紑鎷涙爣");
+ requestApply.put("fd_isrelated", "鏄�");
+ requestApply.put("fd_bizId", contract.getId());
+ requestApply.put("fd_remark", contract.getRemark());
+ requestApply.put("fd_MainContent", "");
+ requestApply.put("fd_settlementType", "00");
+ requestApply.put("fd_applyType", "澶栭攢");
+ requestApply.put("fd_contractsubject ", subjectMatterList.stream().map(item -> item.getMaterialName()).collect(Collectors.joining(",")));
+ requestApply.put("fd_docNumber", contract.getContractNo());
+ requestApply.put("fd_templateId", "19e39bb6c1edadbdb162c434274a8a18");
+ requestApply.put("fd_name", contract.getContractName());
+ requestApply.put("fd_signDate", DateUtil.formatDate(contract.getSignDate()));
+ requestApply.put("fd_endDate", DateUtil.formatDate(contract.getExpirationDate()));
+ requestApply.put("fd_contractCreater", contract.getNickName());
+ requestApply.put("fd_currency", "浜烘皯甯�");
+ requestApply.put("fd_ContractAmount", contract.getAmount());
+ requestApply.put("fd_finAmount", contract.getAmount().divide(new BigDecimal("113"), 2, RoundingMode.HALF_UP)
+ .multiply(new BigDecimal("87")));
+ requestApply.put("fd_docStatus", "20");
+ requestApply.put("fd_taxRates", 13);
+ requestApply.put("fd_customerName", contract.getPartyA());
+ requestApply.put("fd_systemSource", "闈炵叅閿�鍞郴缁�");
+ requestApply.put("fd_type", "00");
+ log.info("鍚堝悓涓績鍚堝悓璧疯崏鎺ュ彛鍏ュ弬锛歿}", requestApply.toJSONString());
+ String respApply = HttpUtil.post("https://oatest.res.jzeg.cn/ekp/api/km-agreement/kmAgreementWebService/addSupplyContractApply", requestApply.toJSONString());
+ log.info("鍚堝悓涓績鍚堝悓璧疯崏鎺ュ彛鍥炲弬锛歿}", respApply);
+ JSONObject applyResp = JSONObject.parseObject(respApply);
+ if (applyResp.getString("code").equals("00")) {
+ JSONObject request = new JSONObject();
+ request.put("fd_docNumber", contract.getContractNo());
+ request.put("fd_singer", contract.getNickName());
+ request.put("fd_signTime", DateUtil.formatDate(contract.getSignDate()));
+ request.put("fd_linkPerson", "");
+ request.put("fd_linkPhone", "");
+ request.put("fd_address", contract.getSignPlace());
+ request.put("fd_receivedTime", DateUtil.format(contract.getCreateTime(), DatePattern.NORM_DATETIME_PATTERN));
+ request.put("fd_receivedNum", 1);
+ request.put("fd_effedate", DateUtil.formatDate(contract.getSignDate()));
+ request.put("fd_enddate", DateUtil.formatDate(contract.getExpirationDate()));
+ request.put("fd_reviewerNo", contract.getNickName());
+ request.put("fd_docStatus", "20");
+ request.put("fd_templateId", "19e39bb6c1edadbdb162c434274a8a18");
+ request.put("fd_attName", contract.getAttachmentName());
+ request.put("fd_attcontent", NetworkFileToBase64.convertNetworkFileToBase64("https://zbjt.res.jzeg.cn/api" + contract.getAttachmentUrl()));
+ log.info("鍚堝悓涓績鍚屾鍚堝悓鎺ュ彛鍏ュ弬锛歿}", request.toJSONString());
+ String resp = HttpUtil.post("https://oatest.res.jzeg.cn/ekp/api/km-agreement/kmAgreementWebService/addContractReview", request.toJSONString());
+ log.info("鍚堝悓涓績鍚屾鍚堝悓鎺ュ彛鍥炲弬锛歿}", resp);
+ JSONObject respJson = JSONObject.parseObject(resp);
+ if (respJson.getString("code").equals("00")) {
+ contract.setCenterPushFlag("1");
+ baseMapper.updateById(contract);
+ }
+ }
+ return R.ok();
+ }
}
--
Gitblit v1.9.1