From 4a2171c3a618af1f404ec00d754d1d34286ec09e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Fri, 22 Mar 2024 15:06:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E8=AE=B0=EF=BC=9A?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8E=A5=E5=8F=A3=E8=B0=83=E7=94=A8=E5=92=8C?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jianshui/JianshuiApplication.java | 2 + .../invoiceall/v1/InvoiceAllController.java | 35 ++++++-- .../jianshui/common/constant/Constants.java | 1 + .../invoiceall/service/IInvoiceAll.java | 4 +- .../service/impl/InvoiceAllImpl.java | 83 ++++++++++++++++--- .../invoice/mapper/UserRegistedLogMapper.java | 7 ++ .../service/UserRegistedLogService.java | 15 ++++ .../impl/UserRegistedLogServiceImpl.java | 36 ++++++++ jianshui-ui/src/api/digital/registered.js | 2 +- .../src/views/digital/registered/index.vue | 5 +- 10 files changed, 168 insertions(+), 22 deletions(-) create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/UserRegistedLogMapper.java create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/service/UserRegistedLogService.java create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/UserRegistedLogServiceImpl.java diff --git a/jianshui-admin/src/main/java/com/jianshui/JianshuiApplication.java b/jianshui-admin/src/main/java/com/jianshui/JianshuiApplication.java index c77f509..85cd15c 100644 --- a/jianshui-admin/src/main/java/com/jianshui/JianshuiApplication.java +++ b/jianshui-admin/src/main/java/com/jianshui/JianshuiApplication.java @@ -3,12 +3,14 @@ package com.jianshui; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.scheduling.annotation.EnableAsync; /** * 启动程序 * * @author 简税平台 */ +@EnableAsync @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) public class JianshuiApplication { public static void main(String[] args) { diff --git a/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoiceall/v1/InvoiceAllController.java b/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoiceall/v1/InvoiceAllController.java index 3be85de..e2b91b4 100644 --- a/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoiceall/v1/InvoiceAllController.java +++ b/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoiceall/v1/InvoiceAllController.java @@ -5,10 +5,6 @@ import com.jianshui.common.core.domain.AjaxResult; import com.jianshui.common.core.domain.entity.Companyservice; import com.jianshui.common.enums.ErrorCode; import com.jianshui.common.utils.StringUtils; -import com.jianshui.invoice.domain.dto.HXResponse; -import com.jianshui.invoice.service.IInvoiceApiService; -import com.jianshui.invoice.service.IInvoiceRequestService; -import com.jianshui.invoice.service.IInvoiceResponseService; import com.jianshui.invoiceall.domain.dto.*; import com.jianshui.invoiceall.domain.dto.jcsk.AutonomousAuthorizationDTO; import com.jianshui.invoiceall.domain.dto.jcsk.InvoiceAllSubmitNoteDTO; @@ -30,7 +26,6 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; - import javax.servlet.http.HttpServletRequest; /** @@ -146,6 +141,36 @@ public class InvoiceAllController { return incomeResponseService.response(result, companyservice, ""); } + @ApiOperation("用户登记接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "identity", value = "身份认证", dataType = "java.lang.Void", example = "1130", required = true), + @ApiImplicitParam(name = "order", value = "请求体",dataType = "java.lang.Void", required = true)}) + @PostMapping({"/api/invoice_all/v1/registed/{identity}", "/api/invoice_all/v1/registed"}) + public Object registed(HttpServletRequest request, String identity) throws Exception { + if (StringUtils.isEmpty(identity)) { + return AjaxResult.error(ErrorCode.EMPTY_IDENTITY); + } + + Companyservice companyservice = iCompanyserviceService.selectCompanyserviceByIdentity(identity); + if (companyservice == null) { + return AjaxResult.error(ErrorCode.COMPANY_NOT_FOUND); + } + + // 获得入口报文适配器 + IInvoiceAllRequestService incomeRequestService = new AisinoIncomeRequestAdapterImpl(); + JSONObject requestBody = incomeRequestService.decrypt(request, companyservice); + + // 指定请求实例 + IInvoiceAll invoiceAllService = iInvoceiAllServiceFactory.getService("elephant_invoiceall"); + + InvoiceAllYhdjDTO invoiceAllYhdjDTO = requestBody.toJavaObject(InvoiceAllYhdjDTO.class); + AjaxResult result = invoiceAllService.registed(companyservice, invoiceAllYhdjDTO); + + //返回报文处理器 + IInvoiceAllResponseService incomeResponseService = new AisinoIncomeResponseAdapterImpl(); + + return incomeResponseService.response(result, companyservice, ""); + } @ApiOperation("通用查询接口") @ApiImplicitParams({ diff --git a/jianshui-common/src/main/java/com/jianshui/common/constant/Constants.java b/jianshui-common/src/main/java/com/jianshui/common/constant/Constants.java index 181d5a5..b38f521 100644 --- a/jianshui-common/src/main/java/com/jianshui/common/constant/Constants.java +++ b/jianshui-common/src/main/java/com/jianshui/common/constant/Constants.java @@ -171,6 +171,7 @@ public class Constants { public static final String STRING_0 = "0"; public static final String STRING_1 = "1"; public static final String STRING_2 = "2"; + public static final String STRING_3 = "3"; public static final String PDF = "pdf"; public static final String PDF_UPCASE = "PDF"; public static final String OFD = "ofd"; diff --git a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/IInvoiceAll.java b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/IInvoiceAll.java index 55671fe..7024f91 100644 --- a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/IInvoiceAll.java +++ b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/IInvoiceAll.java @@ -5,8 +5,6 @@ import com.alibaba.fastjson.JSONObject; import com.jianshui.common.core.domain.AjaxResult; import com.jianshui.common.core.domain.entity.Companyservice; import com.jianshui.invoiceall.domain.dto.*; -import com.jianshui.invoiceall.domain.dto.jcsk.InvoiceAllSubmitNoteDTO; -import org.yaml.snakeyaml.extensions.compactnotation.CompactConstructor; /** * 发票认证抽象类 @@ -163,4 +161,6 @@ public interface IInvoiceAll { AjaxResult qrcodeResult(Companyservice companyservice, JSONObject requestBody); AjaxResult loginVerificated(Companyservice companyservice, JSONObject requestBody); + + AjaxResult registed(Companyservice companyservice, InvoiceAllYhdjDTO invoiceAllYhdjDTO); } diff --git a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/InvoiceAllImpl.java b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/InvoiceAllImpl.java index 13b5ac8..455467a 100644 --- a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/InvoiceAllImpl.java +++ b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/InvoiceAllImpl.java @@ -1,51 +1,54 @@ package com.jianshui.invoiceall.service.impl; -import java.util.Date; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.date.DateUtil; -import java.math.BigDecimal; -import java.util.*; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jianshui.common.constant.Constants; +import com.jianshui.common.constant.WebServiceConstant; import com.jianshui.common.core.domain.AjaxResult; import com.jianshui.common.core.domain.entity.Companyservice; import com.jianshui.common.enums.ErrorCode; -import com.jianshui.common.utils.HutoolUtilsPro; +import com.jianshui.common.utils.SecurityUtils; import com.jianshui.common.utils.StringUtils; import com.jianshui.common.utils.ValidateUtils; import com.jianshui.common.utils.http.HttpUtils; +import com.jianshui.common.utils.jcsk.ApiHttp; import com.jianshui.common.utils.uuid.IdUtils; import com.jianshui.framework.manager.AsyncManager; import com.jianshui.invoice.domain.BillDetail; import com.jianshui.invoice.domain.BillInfo; import com.jianshui.invoice.domain.Invoice; +import com.jianshui.invoice.domain.UserRegistedLogEntity; import com.jianshui.invoice.mapper.BillInfoMapper; import com.jianshui.invoice.mapper.InvoiceMapper; -import com.jianshui.common.constant.WebServiceConstant; -import com.jianshui.system.domain.InvoiceAllApiLog; -import com.jianshui.system.domain.InvoiceAllYhdj; +import com.jianshui.invoice.service.UserRegistedLogService; import com.jianshui.invoiceall.domain.dto.*; import com.jianshui.invoiceall.domain.dto.jcsk.*; -import com.jianshui.invoiceall.domain.dto.jcsk.add.*; +import com.jianshui.invoiceall.domain.dto.jcsk.add.InvoiceAllAddDTO; +import com.jianshui.invoiceall.domain.dto.jcsk.add.InvoiceAllAddInfoDTO; +import com.jianshui.invoiceall.domain.dto.jcsk.add.InvoiceAllAddmxListDTO; import com.jianshui.invoiceall.domain.dto.jcsk.red.AddRedInvoiceDTO; import com.jianshui.invoiceall.domain.vo.InvoiceAllKschVO; import com.jianshui.invoiceall.domain.vo.jcsk.AddInvoiceVO; import com.jianshui.invoiceall.domain.vo.jcsk.AddRedInvoiceVO; import com.jianshui.invoiceall.domain.vo.jcsk.KschVO; +import com.jianshui.invoiceall.service.IInvoiceAll; +import com.jianshui.system.domain.InvoiceAllApiLog; +import com.jianshui.system.domain.InvoiceAllYhdj; import com.jianshui.system.mapper.InvoiceAllApiLogMapper; import com.jianshui.system.mapper.InvoiceAllYhdjMapper; -import com.jianshui.invoiceall.service.IInvoiceAll; -import com.jianshui.common.utils.jcsk.ApiHttp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; +import java.util.*; /** @@ -71,6 +74,9 @@ public class InvoiceAllImpl implements IInvoiceAll { @Autowired private InvoiceAllYhdjMapper yhdjMapper; + @Autowired + private UserRegistedLogService userRegistedLogServicel; + /** * 用户登记 @@ -131,6 +137,47 @@ public class InvoiceAllImpl implements IInvoiceAll { } + /** + * 用户登记 + * + * @return + */ + @Override + public AjaxResult registed(Companyservice companyservice, InvoiceAllYhdjDTO invoiceAllYhdjDTO) { + + YhdjDTO yhdjDTO = BeanUtil.copyProperties(invoiceAllYhdjDTO, YhdjDTO.class); + ValidateUtils.validate(yhdjDTO); + if (BeanUtil.isEmpty(invoiceAllYhdjDTO.getJsonData())) { + return AjaxResult.error("传入报文错误,请检查,明细不存在!"); + } + YhdjDetailDTO yhdjDetailDTOList = BeanUtil.copyProperties(invoiceAllYhdjDTO.getJsonData(), YhdjDetailDTO.class); + ValidateUtils.validate(yhdjDetailDTOList); + yhdjDTO.setJsonData(yhdjDetailDTOList); + + JSONObject result = new JSONObject(); + + try { + result = ApiHttp.request(WebServiceConstant.YHDJ, WebServiceConstant.URL, yhdjDTO, companyservice); + + userRegistedLogServicel.saveRequest(JSON.toJSONString(yhdjDTO),result.toString(),Constants.STRING_1); + + String code = result.get("code") != null ? result.get("code").toString() : ""; + String msg = result.get("msg") != null ? result.get("msg").toString() : ""; + String data = result.get("data") != null ? result.get("data").toString() : ""; + + if ("0000".equals(code)) { + return AjaxResult.success(result); + } else { + return AjaxResult.error(msg); + } + + } catch (Exception e) { + e.printStackTrace(); + log.error("【金四服务类】【金财数科】【用户登记】API请求异常,外部报文返回code非0000。错误信息:{}", e.getMessage()); + return AjaxResult.error(ErrorCode.INCOME_ERROR); + + } + } /** * 授权活跃状态查询 @@ -147,6 +194,7 @@ public class InvoiceAllImpl implements IInvoiceAll { String code = result.get("code") != null ? result.get("code").toString() : ""; String msg = result.get("msg") != null ? result.get("msg").toString() : ""; + userRegistedLogServicel.saveRequest(requestBody.toJSONString(),responParam,Constants.STRING_3); if ("S000".equals(code)) { return AjaxResult.success(msg); } else { @@ -1334,6 +1382,7 @@ public class InvoiceAllImpl implements IInvoiceAll { String msg = result.get("msg") != null ? result.get("msg").toString() : ""; String data = result.get("data") != null ? result.get("data").toString() : ""; + userRegistedLogServicel.saveRequest(requestBody.toJSONString(),result.toString(),Constants.STRING_2); if ("0000".equals(code) && StrUtil.isNotEmpty(data)) { JSONObject json = JSONUtil.parseObj(data); String requestId = json.getOrDefault("requestId", "").toString(); @@ -1354,4 +1403,16 @@ public class InvoiceAllImpl implements IInvoiceAll { } + public boolean saveRequest(String requestParam,String responseParam,String requestType){ + + UserRegistedLogEntity userRegistedLog = new UserRegistedLogEntity(); + userRegistedLog.setBatchId(UUID.randomUUID().toString().replace("-","")); + userRegistedLog.setLoginAccount(SecurityUtils.getUsername()); + userRegistedLog.setCreateTime(new Date()); + userRegistedLog.setRequestType(requestType); + userRegistedLog.setRequestData(requestParam); + userRegistedLog.setResponseData(responseParam); + return userRegistedLogServicel.save(userRegistedLog); + } + } diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/UserRegistedLogMapper.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/UserRegistedLogMapper.java new file mode 100644 index 0000000..a6a3609 --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/UserRegistedLogMapper.java @@ -0,0 +1,7 @@ +package com.jianshui.invoice.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jianshui.invoice.domain.UserRegistedLogEntity; + +public interface UserRegistedLogMapper extends BaseMapper { +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/UserRegistedLogService.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/UserRegistedLogService.java new file mode 100644 index 0000000..d523925 --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/UserRegistedLogService.java @@ -0,0 +1,15 @@ +package com.jianshui.invoice.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jianshui.invoice.domain.UserRegistedLogEntity; + +public interface UserRegistedLogService extends IService { + /** + * 保存请求参数 + * @param requestParam + * @param responseParam + * @param requestType + * @return + */ + public void saveRequest(String requestParam,String responseParam,String requestType); +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/UserRegistedLogServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/UserRegistedLogServiceImpl.java new file mode 100644 index 0000000..3952721 --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/UserRegistedLogServiceImpl.java @@ -0,0 +1,36 @@ +package com.jianshui.invoice.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jianshui.common.utils.SecurityUtils; +import com.jianshui.invoice.domain.UserRegistedLogEntity; +import com.jianshui.invoice.mapper.UserRegistedLogMapper; +import com.jianshui.invoice.service.UserRegistedLogService; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.UUID; + +@Service +public class UserRegistedLogServiceImpl extends ServiceImpl implements UserRegistedLogService { + + /** + * 保存请求参数 + * @param requestParam + * @param responseParam + * @param requestType + * @return + */ + + @Async + public void saveRequest(String requestParam,String responseParam,String requestType){ + + UserRegistedLogEntity userRegistedLog = new UserRegistedLogEntity(); + userRegistedLog.setBatchId(UUID.randomUUID().toString().replace("-","")); + userRegistedLog.setCreateTime(new Date()); + userRegistedLog.setRequestType(requestType); + userRegistedLog.setRequestData(requestParam); + userRegistedLog.setResponseData(responseParam); + this.save(userRegistedLog); + } +} diff --git a/jianshui-ui/src/api/digital/registered.js b/jianshui-ui/src/api/digital/registered.js index b3b4d6a..0462003 100644 --- a/jianshui-ui/src/api/digital/registered.js +++ b/jianshui-ui/src/api/digital/registered.js @@ -20,7 +20,7 @@ export function getInvoiceallyhdj(id) { //用户登记 export function registeredMethod(registeredParams,identity) { return request({ - url: '/api/invoice_all/v1/registration?identity=' + identity+"&order="+registeredParams, + url: '/api/invoice_all/v1/registed?identity=' + identity+"&order="+registeredParams, method: 'post', }) } diff --git a/jianshui-ui/src/views/digital/registered/index.vue b/jianshui-ui/src/views/digital/registered/index.vue index 813ebc3..37a2c9c 100644 --- a/jianshui-ui/src/views/digital/registered/index.vue +++ b/jianshui-ui/src/views/digital/registered/index.vue @@ -423,8 +423,7 @@ export default { const requestBody = { key: resp.data.secret, order: JSON.stringify({ - nsrsbh: this.chooses[0].nsrsbh, - yhm: this.chooses[0].nsrmc + nsrsbh: this.chooses[0].nsrsbh }), } encrypt(requestBody).then(res => { @@ -501,7 +500,7 @@ export default { handleSelectionChange(selection) { this.ids = selection.map(item => item.id) this.chooses = selection.map(item => { - return {identity:item.identity,nsrsbh:item.nsrsbh,bsryxm:item.nsrmc} + return {identity:item.identity,nsrsbh:item.nsrsbh} }) this.single = selection.length!==1 this.multiple = !selection.length