CustomerInterLowerServiceImpl.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. package com.jkcredit.invoice.credit.custInterface;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.jkcredit.invoice.common.DataResult;
  4. import com.jkcredit.invoice.common.ResponseCode;
  5. import com.jkcredit.invoice.mapper.customer.CustomerMapper;
  6. import com.jkcredit.invoice.mapper.customer.CustomerRecMapper;
  7. import com.jkcredit.invoice.model.entity.customer.Customer;
  8. import com.jkcredit.invoice.model.entity.customer.CustomerRec;
  9. import com.jkcredit.invoice.service.customer.CustomerService;
  10. import com.jkcredit.invoice.service.lowerService.CustomeLowerService;
  11. import com.jkcredit.invoice.util.Base64Util;
  12. import com.jkcredit.invoice.util.RespR;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import java.text.SimpleDateFormat;
  18. import java.util.ArrayList;
  19. import java.util.Date;
  20. import java.util.List;
  21. import java.util.UUID;
  22. @Slf4j
  23. @Service("customerInterLowerService")
  24. public class CustomerInterLowerServiceImpl implements CustomerInterLowerService {
  25. @Autowired
  26. CustomeLowerService lowerService;
  27. @Autowired
  28. CustomerService customerService;
  29. @Autowired
  30. CustomerMapper customerMapper;
  31. @Autowired
  32. CustomerRecMapper customerRecMapper;
  33. /**
  34. * 无车 自有车 企业注册
  35. * @param appKey
  36. * @param api
  37. * @param data
  38. * @return
  39. */
  40. @Override
  41. public DataResult customeInterRec(String appKey, String api, String data,String requestid) {
  42. long costtimestart = System.currentTimeMillis();
  43. DataResult result = new DataResult();
  44. result.setData(3);
  45. result.setCode(200);
  46. result.setRequestid(requestid);
  47. result.setMsg("无法认证");
  48. try {
  49. log.info("[-CustomerInterLowerServiceImpl.customeInterRec-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data);
  50. JSONObject jsonObject = JSONObject.parseObject(data);
  51. Integer interType = 0;//0-接口 1-平台 3.手工录入
  52. String name = jsonObject.getString("name");//公司名称 companyName
  53. String taxpayerCode = jsonObject.getString("taxplayerCode");//企业税号 companyReferencenum
  54. String customerName = appKey;//客户名称
  55. Customer cust = customerMapper.selectByCustomerName(customerName);
  56. /**
  57. * 所属类型:
  58. *1-行业用户 2-自营平台 3-合作商户
  59. */
  60. Integer companyType = jsonObject.getInteger("companyType");
  61. /**
  62. * 运用类型:
  63. * 1-快递
  64. 2-速运
  65. 3-货运代理
  66. 4-普通货运
  67. 5-专线运输
  68. 6-其他
  69. * 运营范围
  70. */
  71. Integer operatingRangeType = jsonObject.getInteger("operatingRangeType");
  72. String contact = jsonObject.getString("contact");//联系人
  73. String tel = jsonObject.getString("tel");//联系人电话
  74. String emergencyContact = jsonObject.getString("emergencyContact");//紧急联系人 companyLeader
  75. String emergencyTel = jsonObject.getString("emergencyTel");//紧急联系人电话 companyLeaderPhone
  76. String buyerName = jsonObject.getString("buyerName");//购方客户名称
  77. String buyerTaxpayerCode = jsonObject.getString("buyerTaxpayerCode");//购方税号
  78. String buyerAddr = jsonObject.getString("buyerAddr");//购方单位地址
  79. String buyerTel = jsonObject.getString("buyerTel");//购方电话
  80. String buyerBank = jsonObject.getString("buyerBank");//购方开户行
  81. String buyerBankAccount = jsonObject.getString("buyerBankAccount");//购方银行账号
  82. if(StringUtils.isEmpty(data)|| null == jsonObject
  83. || StringUtils.isEmpty(name)
  84. || StringUtils.isEmpty(taxpayerCode)
  85. || StringUtils.isEmpty(customerName)
  86. || null == companyType
  87. || null == operatingRangeType
  88. || StringUtils.isEmpty(emergencyContact)
  89. || StringUtils.isEmpty(emergencyTel)
  90. || StringUtils.isEmpty(contact)
  91. || StringUtils.isEmpty(tel)
  92. || StringUtils.isEmpty(buyerName)
  93. || StringUtils.isEmpty(buyerTaxpayerCode)
  94. || StringUtils.isEmpty(buyerAddr)
  95. || StringUtils.isEmpty(buyerTel)
  96. || StringUtils.isEmpty(buyerBank)
  97. || StringUtils.isEmpty(buyerBankAccount)
  98. ){
  99. return result;
  100. }
  101. CustomerRec customerRec = new CustomerRec();
  102. customerRec.setCustomerName(customerName);//客户名称
  103. customerRec.setCompanyLeader(contact);//紧急联系人
  104. customerRec.setCompanyLeaderPhone(tel);//紧急联系人电话
  105. customerRec.setCompanyName(name);//企业名称
  106. customerRec.setCompanyReferencenum(taxpayerCode);//企业税号
  107. customerRec.setCompanyOpenbank(buyerBank);//公司开户行
  108. customerRec.setCompanyOpenbankAcc(buyerBankAccount);//公司开户行电话
  109. customerRec.setCompanyAdress(buyerAddr);//公司地址
  110. customerRec.setCompanyPhone(buyerTel);//公司电话
  111. customerRec.setInterType(interType);////0-接口 1-平台
  112. customerRec.setBussinessType(String.valueOf(cust.getBussinessType()));//业务类型 0 -自有车 1-外协车 2-无车
  113. customerRec.setOperatingRangeType(operatingRangeType);//运用类型
  114. customerRec.setCompanyType(companyType);//所属类型
  115. // customerRec.setServiceStartTime(serviceStartTime);//服务开始时间
  116. // customerRec.setServiceEndTime(serviceEndTime);//服务结束时间
  117. // customerRec.setServiceType(serviceType);//协议类型
  118. // customerRec.setContractFileName(contractFileName);//协议名称
  119. // customerRec.setBase64Str(base64Str);//协议base64编码
  120. List<CustomerRec> customerRecs = new ArrayList<CustomerRec>();
  121. customerRecs.add(customerRec);
  122. RespR rs = lowerService.customeRec(customerRecs);
  123. long costtimeend = System.currentTimeMillis();
  124. log.info("[-CustomerInterLowerServiceImpl.customeInterRec-] result is "
  125. + rs.toString() + ", request is " + data + " ,costtime="
  126. + (costtimeend - costtimestart));
  127. //返回成功
  128. if(null != rs && rs.getCode() == 0){
  129. RespR rs1 = customerService.customeRec(customerRec);
  130. log.info("[-CustomerInterLowerServiceImpl.customeInterRecRc1-] result is "
  131. + rs1.toString() + ", request is " + data + " ,costtime="
  132. + (System.currentTimeMillis() - costtimestart));
  133. if(null != rs1 && rs1.getCode() == 0){
  134. result.setData(1);
  135. result.setCode(200);
  136. result.setMsg(rs1.getMsg());
  137. return result;
  138. }else {
  139. result.setData(3);
  140. result.setCode(200);
  141. result.setMsg(rs1.getMsg());
  142. return result;
  143. }
  144. } else {
  145. result.setData(3);
  146. result.setCode(200);
  147. result.setMsg("无法认证");
  148. return result;
  149. }
  150. } catch (Exception e) {
  151. log.error("[-CustomerInterLowerServiceImpl.customeInterRec-] get httpclient exception is "
  152. + e + ", request is " + data);
  153. }
  154. return result;
  155. }
  156. /**
  157. * 无车 自有车企业查询
  158. * @param appKey
  159. * @param api
  160. * @param data
  161. * @return
  162. */
  163. @Override
  164. public DataResult customeInterRecQuery(String appKey, String api, String data,String requestid) {
  165. long costtimestart = System.currentTimeMillis();
  166. DataResult result = new DataResult();
  167. result.setData(3);
  168. result.setCode(200);
  169. result.setRequestid(requestid);
  170. result.setMsg("无法认证");
  171. try {
  172. log.info("[-CustomerInterLowerServiceImpl.customeInterRecQuery-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data);
  173. JSONObject jsonObject = JSONObject.parseObject(data);
  174. String companyName = jsonObject.getString("companyName");//企业名称
  175. String taxpayerCode = jsonObject.getString("taxplayerCode");//企业税号
  176. if(StringUtils.isEmpty(data)|| null == jsonObject){
  177. return result;
  178. }
  179. if( StringUtils.isEmpty(companyName) && StringUtils.isEmpty(taxpayerCode)){
  180. return result;
  181. }
  182. CustomerRec customerRec = new CustomerRec();
  183. customerRec.setCompanyName(companyName);
  184. customerRec.setCompanyReferencenum(taxpayerCode);
  185. RespR rs = customerService.customerRecQuery(customerRec);
  186. long costtimeend = System.currentTimeMillis();
  187. log.info("[-CustomerInterLowerServiceImpl.customeInterRecQuery-] result is "
  188. + rs.toString() + ", request is " + data + " ,costtime="
  189. + (costtimeend - costtimestart));
  190. if(null != rs && rs.getCode() == 0){
  191. result.setData(1);
  192. result.setCode(200);
  193. result.setMsg(rs.getData().toString());
  194. return result;
  195. } else {
  196. result.setData(3);
  197. result.setCode(200);
  198. result.setMsg(rs.getMsg());
  199. return result;
  200. }
  201. } catch (Exception e) {
  202. log.error("[-CustomerInterLowerServiceImpl.customeInterRecQuery-] get httpclient exception is "
  203. + e + ", request is " + data);
  204. }
  205. return result;
  206. }
  207. @Override
  208. public DataResult customeProtocolUpLoad(String appKey, String api, String data, String requestid) {
  209. long costtimestart = System.currentTimeMillis();
  210. DataResult result = new DataResult();
  211. result.setData(3);
  212. result.setCode(200);
  213. result.setRequestid(requestid);
  214. result.setMsg("无法认证");
  215. try {
  216. log.info("[-CustomerInterLowerServiceImpl.customeProtocolUpLoad-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data);
  217. JSONObject jsonObject = JSONObject.parseObject(data);
  218. String companyNum = jsonObject.getString("companyNum");//公司编号
  219. String serviceStartTime = jsonObject.getString("serviceStartTime");//服务开始时间
  220. String serviceEndTime = jsonObject.getString("serviceEndTime");//服务结束时间
  221. String contractFileName = jsonObject.getString("contractFileName");//协议文件名
  222. String base64Str = jsonObject.getString("base64Str");//上传文件转换的base64
  223. Integer serviceType = jsonObject.getInteger("serviceType");//协议类型
  224. if(StringUtils.isEmpty(data)|| null == jsonObject){
  225. return result;
  226. }
  227. if( StringUtils.isEmpty(companyNum) || StringUtils.isEmpty(serviceStartTime)
  228. || StringUtils.isEmpty(serviceEndTime)
  229. || StringUtils.isEmpty(contractFileName)
  230. || StringUtils.isEmpty(base64Str)
  231. || null == serviceType){
  232. return result;
  233. }
  234. CustomerRec customerRec2 = new CustomerRec();
  235. customerRec2.setCustomerName(appKey);
  236. customerRec2.setCompanyNum(companyNum);
  237. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec2);
  238. if (null == customerRec1 || customerRec1.getRecStatus() != 1){
  239. result.setMsg("企业还未备案成功!");
  240. return result;
  241. }
  242. /* if((Base64Util.base64FileSize(base64Str)/1024)> 10){
  243. result.setMsg("pdf不可超过10M!");
  244. return result;
  245. }*/
  246. String fileType = contractFileName.substring(contractFileName.lastIndexOf(".") + 1, contractFileName.length()).toLowerCase();
  247. if(!fileType.equals("pdf")){
  248. result.setMsg("必须是pdf文件!");
  249. return result;
  250. }
  251. CustomerRec customerRec = new CustomerRec();
  252. customerRec.setServiceStartTime(serviceStartTime);//服务开始时间
  253. customerRec.setServiceEndTime(serviceEndTime);//服务结束时间
  254. customerRec.setServiceType(serviceType);//协议类型
  255. customerRec.setLowerFileName(contractFileName);//协议名称
  256. customerRec.setLowerBase64Str(base64Str);//协议base64编码
  257. customerRec.setCustomerName(appKey);//客户名称
  258. customerRec.setCompanyNum(companyNum);
  259. customerRec.setInterType(0);//接口
  260. List<CustomerRec> customerRecs = new ArrayList<CustomerRec>();
  261. customerRecs.add(customerRec);
  262. RespR rs = lowerService.customeRecUpload(customerRecs);
  263. long costtimeend = System.currentTimeMillis();
  264. log.info("[-CustomerInterLowerServiceImpl.customeProtocolUpLoad-] result is "
  265. + rs.toString() + ", request is " + data + " ,costtime="
  266. + (costtimeend - costtimestart));
  267. if(null != rs && rs.getCode() == 0){
  268. result.setData(1);
  269. result.setCode(200);
  270. result.setMsg(rs.getMsg());
  271. return result;
  272. } else {
  273. result.setData(3);
  274. result.setCode(200);
  275. result.setMsg(rs.getMsg());
  276. return result;
  277. }
  278. } catch (Exception e) {
  279. log.error("[-CustomerInterLowerServiceImpl.customeProtocolUpLoad-] get httpclient exception is "
  280. + e + ", request is " + data);
  281. }
  282. return result;
  283. }
  284. }