合同提交erp功能编写
This commit is contained in:
@@ -199,4 +199,24 @@ public class ErpContractSaveReqVO {
|
||||
@Schema(description = "达到收款条件金额;销售合同,且类型为SAP02COSR必填")
|
||||
private BigDecimal payeeConditionAmount;
|
||||
|
||||
@Schema(description = "公司编号")
|
||||
private Long companyId;
|
||||
|
||||
@Schema(description = "公司名称")
|
||||
private String companyName;
|
||||
|
||||
@Schema(description = "部门编号")
|
||||
private Long deptId;
|
||||
|
||||
@Schema(description = "部门名称")
|
||||
private String deptName;
|
||||
|
||||
@Schema(description = "岗位编号")
|
||||
private Long postId;
|
||||
|
||||
@Schema(description = "创建者")
|
||||
private String creatorName;
|
||||
|
||||
@Schema(description = "更新者")
|
||||
private String updaterName;
|
||||
}
|
||||
@@ -70,4 +70,12 @@ public interface ErpContractService {
|
||||
PageResult<ErpContractDO> getErpContractPage(ErpContractPageReqVO pageReqVO);
|
||||
|
||||
void callErpRfcInterface();
|
||||
|
||||
/**
|
||||
* 合同提交ERP
|
||||
*
|
||||
* @param erpContractVO ERP合同映射数据
|
||||
* @return ERP合同映射
|
||||
*/
|
||||
String submitErp(ErpContractSaveReqVO erpContractVO);
|
||||
}
|
||||
@@ -6,6 +6,9 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.zt.plat.module.erp.api.ErpExternalApi;
|
||||
import com.zt.plat.module.erp.api.dto.ErpSubmitReqDTO;
|
||||
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractPageReqVO;
|
||||
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractRespVO;
|
||||
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractSaveReqVO;
|
||||
@@ -46,6 +49,9 @@ public class ErpContractServiceImpl implements ErpContractService {
|
||||
@Resource
|
||||
private ErpConfig erpConfig;
|
||||
|
||||
@Resource
|
||||
public ErpExternalApi erpExternalApi;
|
||||
|
||||
@Override
|
||||
public ErpContractRespVO createErpContract(ErpContractSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
@@ -226,6 +232,121 @@ public class ErpContractServiceImpl implements ErpContractService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String submitErp(ErpContractSaveReqVO erpContractVO) {
|
||||
|
||||
// 转换为DO
|
||||
ErpContractDO erpContract = BeanUtils.toBean(erpContractVO, ErpContractDO.class);
|
||||
|
||||
// 根据合同主信息ID查询合同映射
|
||||
ErpContractDO erpContractDO = getErpContractByMainId(erpContract.getContractMainId());
|
||||
if (erpContractDO == null) {
|
||||
// 不存在映射表则新增
|
||||
erpContractMapper.insert(erpContract);
|
||||
} else {
|
||||
// 存在映射表则更新
|
||||
erpContract.setId(erpContractDO.getId());
|
||||
erpContractMapper.updateById(erpContract);
|
||||
}
|
||||
|
||||
// 构建ERP接口的参数
|
||||
ErpSubmitReqDTO erpSubmitReqDTO = new ErpSubmitReqDTO();
|
||||
erpSubmitReqDTO.setFuncnr("060");
|
||||
erpSubmitReqDTO.setBskey(erpContract.getContractPaperNumber());
|
||||
erpSubmitReqDTO.setUsrid(SecurityFrameworkUtils.getLoginUserId().toString());
|
||||
erpSubmitReqDTO.setUsrnm(SecurityFrameworkUtils.getLoginUserNickname());
|
||||
|
||||
Map<String, Object> head = new HashMap<>();
|
||||
// CZBS 操作标识 枚举值0:新增 1:修改
|
||||
head.put("CZBS", erpContract.getOperationId());
|
||||
// HTBH 合同编号
|
||||
head.put("HTBH", erpContract.getContractPaperNumber());
|
||||
// HTMC 合同名称
|
||||
head.put("HTMC", erpContract.getContractName());
|
||||
// HTLXBH 合同类型编号
|
||||
head.put("HTLXBH", erpContract.getContractTypeNumber());
|
||||
// HTLXMC 合同类型名称
|
||||
head.put("HTLXMC", erpContract.getContractTypeName());
|
||||
// HTLB 合同类别 枚举值:1:购销合同
|
||||
head.put("HTLB", erpContract.getContractCategory());
|
||||
// SFXNHT 是否虚拟合同 枚举值 0:否 1:是
|
||||
head.put("SFXNHT", erpContract.getIsVirtualContract());
|
||||
// WLDWBH 客户/供应商编号 如果合同类型是收入类的,传客户编号和客户名称;
|
||||
head.put("WLDWBH", erpContract.getSupplierNumber());
|
||||
// WLDWMC 客户/供应商名称 如果合同类型是支出类的,传供应商编号和供应商名称;
|
||||
head.put("WLDWMC", erpContract.getSupplierName());
|
||||
// ZLIFNR 代理方
|
||||
head.put("ZLIFNR", erpContract.getAgent());
|
||||
// HTSSZTBH 合同实施主体编号 SAP公司代码
|
||||
head.put("HTSSZTBH", erpContract.getContractImplementNumber());
|
||||
// HTQDZTBH 合同签订主体编号 SAP公司代码
|
||||
head.put("HTQDZTBH", erpContract.getContractSignNumber());
|
||||
// HTQDRQ 合同签订日期 格式:YYYY-MM-DD
|
||||
head.put("HTQDRQ", erpContract.getSignDate());
|
||||
// HTQSRQ 合同起始日期 格式:YYYY-MM-DD
|
||||
head.put("HTQSRQ", erpContract.getStartDate());
|
||||
// HTZZRQ 合同终止日期 格式:YYYY-MM-DD
|
||||
head.put("HTZZRQ", erpContract.getStopDate());
|
||||
// BZBH 币种编号 CNY、USD…
|
||||
head.put("BZBH", erpContract.getCurrency());
|
||||
// HTYBZJE 合同总金额(原币-含税)
|
||||
head.put("HTYBZJE", erpContract.getSourceAmount());
|
||||
// HTBWBZJE 合同总金额(本位币-含税)
|
||||
head.put("HTBWBZJE", erpContract.getBasicAmount());
|
||||
// BGHHTYBZJE 变更后合同总金额(原币-含税) 如果未做合同变更,金额等于合同总金额(原币-含税)
|
||||
head.put("BGHHTYBZJE", erpContract.getChangeSourceAmount());
|
||||
// BGHHTBWBZJE 变更后合同总金额(本位币-含税) 如果未做合同变更,金额等于合同总金额(本位币-含税)
|
||||
head.put("BGHHTBWBZJE", erpContract.getChangeBasicAmount());
|
||||
// HTZTBH 合同状态编号
|
||||
head.put("HTZTBH", erpContract.getStatusNumber());
|
||||
// HTZTMC 合同状态名称
|
||||
head.put("HTZTMC", erpContract.getStatusName());
|
||||
// SFYYFK 是否有预付款 枚举值 0:否 1:是
|
||||
head.put("SFYYFK", erpContract.getIsPrepayment());
|
||||
// YFKBL 预付款比例 如果是否有预付款为1,则必填
|
||||
head.put("YFKBL", erpContract.getPrepaymentRatio());
|
||||
// YFKJE 预付款金额
|
||||
head.put("YFKJE", erpContract.getPrepaymentAmount());
|
||||
// LYBZJBGQYB 履约保证金-变更前(原币)
|
||||
head.put("LYBZJBGQYB", erpContract.getSourceBeforeBond());
|
||||
// LYBZJBGQBWB 履约保证金-变更前(本位币)
|
||||
head.put("LYBZJBGQBWB", erpContract.getBasicBeforeBond());
|
||||
// LYBZJBGHYB 履约保证金-变更后(原币)
|
||||
head.put("LYBZJBGHYB", erpContract.getSourceAfterBond());
|
||||
// LYBZJBGHBWB 履约保证金-变更后(本位币)
|
||||
head.put("LYBZJBGHBWB", erpContract.getBasicAfterBond());
|
||||
// SFHZBJ 是否含质保金 枚举值 0:否 1:是
|
||||
head.put("SFHZBJ", erpContract.getIsQualityassuranceAmount());
|
||||
// ZBJBL 质保金比例 如果是否含质保金为1,则必填
|
||||
head.put("ZBJBL", erpContract.getQualityassuranceRatio());
|
||||
// BZJJE 质保金金额
|
||||
head.put("BZJJE", erpContract.getQualityassuranceAmount());
|
||||
// SFNBQY 是否内部企业 枚举值 0:否 1:是
|
||||
head.put("SFNBQY", erpContract.getIsInternal());
|
||||
// SZXZ 收支性质 枚举值 1:收入 2:支出
|
||||
head.put("SZXZ", erpContract.getNature());
|
||||
// BZXX 备注信息
|
||||
head.put("BZXX", erpContract.getRemark());
|
||||
// SFKJHT 是否框架合同 0:否;1:是;当等于1时:合同总金额(本币)、合同总金额(原币)、变更后合同总金额(原币-含税)、变更后合同总金额(本位币-含税)赋默认值为:1000000000000000.00
|
||||
head.put("SFKJHT", erpContract.getIsFramework());
|
||||
// JNJW 境内/境外 枚举值 0:境内 1:境外
|
||||
head.put("JNJW", erpContract.getIsDomestic());
|
||||
// JZFWFSD 建筑服务发生地
|
||||
head.put("JZFWFSD", erpContract.getArchitectureServicePlace());
|
||||
// DDSKJE 达到收款条件金额
|
||||
head.put("DDSKJE", erpContract.getPayeeConditionAmount());
|
||||
|
||||
Map<String, Object> req = new HashMap<>();
|
||||
req.put("head", head);
|
||||
erpSubmitReqDTO.setReq(req);
|
||||
|
||||
HashMap<String, String> response = erpExternalApi.submitDataToErp(erpSubmitReqDTO);
|
||||
|
||||
System.out.println(response.get("resStr"));
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理数据,区分新增和更新
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user