From 1fff4d35498ad8057b8af5e40537d0509a30d073 Mon Sep 17 00:00:00 2001 From: wen <1455474577@qq.com> Date: Thu, 23 Dec 2021 17:57:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=9F=A5=E8=AF=A2=E5=8F=91?= =?UTF-8?q?=E7=A5=A8=E6=8A=AC=E5=A4=B4=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=20=E5=AE=8C=E6=88=90=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=9C=80=E5=90=8E=E4=B8=80=E6=AC=A1=E8=BE=93=E5=85=A5=E7=9A=84?= =?UTF-8?q?=E5=8F=91=E7=A5=A8=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../invoice/api/XhpcInvoiceApiController.java | 57 ++++++++++++++ .../controller/XhpcInvoiceController.java | 18 +++-- .../invoice/domain/InvoiceTitleResponse.java | 43 +++++++++++ .../xhpc/invoice/domain/TitleResponse.java | 74 +++++++++++++++++++ .../invoice/mapper/XhpcInvoiceMapper.java | 26 +++++++ .../invoice/service/XhpcInvoiceService.java | 35 ++++++--- .../service/impl/XhpcInvoiceServiceImpl.java | 54 +++++++++++--- .../resources/mapper/XhpcInvoiceMapper.xml | 14 ++++ 8 files changed, 296 insertions(+), 25 deletions(-) create mode 100644 xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/api/XhpcInvoiceApiController.java create mode 100644 xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/InvoiceTitleResponse.java create mode 100644 xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/TitleResponse.java diff --git a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/api/XhpcInvoiceApiController.java b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/api/XhpcInvoiceApiController.java new file mode 100644 index 00000000..b2c1fa8b --- /dev/null +++ b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/api/XhpcInvoiceApiController.java @@ -0,0 +1,57 @@ +package com.xhpc.invoice.api; + +import com.xhpc.common.core.web.controller.BaseController; +import com.xhpc.common.core.web.domain.AjaxResult; +import com.xhpc.invoice.domain.InvoiceTitleResponse; +import com.xhpc.invoice.domain.TitleResponse; +import com.xhpc.invoice.service.XhpcInvoiceService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 小程序的InvoiceController + * + * @author WH + * @date 2021/12/23 13:49 + * @since version-1.0 + */ +@RestController +@RequestMapping("/api/invoice") +public class XhpcInvoiceApiController extends BaseController { + + @Resource + XhpcInvoiceService xhpcInvoiceService; + + /** + * 查询发票抬头信息 + * + * @author WH + * @date 2021/12/23 15:07 + * @since version-1.0 + */ + @GetMapping(value = "/selectInvoiceTitleInfo") + public AjaxResult selectInvoiceTitleInfo(@RequestParam(value = "firmName") String firmName) { + + InvoiceTitleResponse invoiceTitleResponse = xhpcInvoiceService.selectInvoiceTitleInfo(firmName); + return AjaxResult.success(invoiceTitleResponse); + } + + /** + * 查询用户最后一次输入的发票信息 + * + * @author WH + * @date 2021/12/23 15:07 + * @since version-1.0 + */ + @GetMapping(value = "/selectUserInputInvoiceInfo") + public AjaxResult selectUserInputInvoiceInfo(@RequestParam(value = "creatorId") Long creatorId, @RequestParam("creatorType") Integer creatorType) { + + TitleResponse titleResponse = xhpcInvoiceService.selectUserInputInvoiceInfo(creatorId, creatorType); + return AjaxResult.success(titleResponse); + } + +} diff --git a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/controller/XhpcInvoiceController.java b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/controller/XhpcInvoiceController.java index 767acff2..c9126f51 100644 --- a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/controller/XhpcInvoiceController.java +++ b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/controller/XhpcInvoiceController.java @@ -42,21 +42,26 @@ public class XhpcInvoiceController extends BaseController { public AjaxResult invoiceToUser(@RequestBody InvoiceToUserRequest requestData) { //前置条件 if (requestData.getInvoiceId() == null) { - AjaxResult.error("必须传递未开发票id"); + return AjaxResult.error("必须传递未开发票id"); } if (requestData.getStatus() == null || requestData.getStatus().equals(InvoiceStatusConst.INVOICING)) { - AjaxResult.error("必须传递发票状态或发票不能为0"); + return AjaxResult.error("必须传递发票状态或发票状态不能为0"); } //开失败发票 if (requestData.getStatus().equals(InvoiceStatusConst.FAIL)) { - Boolean flagOfjudge = xhpcInvoiceService.failInvoiceToUser(requestData); + try { + xhpcInvoiceService.failInvoiceToUser(requestData); + return AjaxResult.success(); + } catch (Exception e) { + return AjaxResult.error("开失败发票失败"); + } } else { //开成功发票 try { //捕获参数异常 Boolean flagOfjudge = xhpcInvoiceService.invoiceToUser(requestData); if (!flagOfjudge) { - AjaxResult.error("客户邮箱有误,邮件未发送成功,请通知用户修改邮箱"); + return AjaxResult.error("客户邮箱有误,邮件未发送成功,请通知用户修改邮箱"); } } catch (Exception e) { return AjaxResult.error(e.getMessage()); @@ -78,7 +83,7 @@ public class XhpcInvoiceController extends BaseController { public AjaxResult selectAllInvoiceOrders(@RequestBody AllInvoiceOrdersRequest requestData) { if (requestData.getCurrentPage() == null || requestData.getItems() == null) { - AjaxResult.error("当前页数、每页要显示的条数为必传递项"); + return AjaxResult.error("当前页数、每页要显示的条数为必传递项"); } AllInvoiceOrdersResponse allInvoiceOrdersResponse = xhpcInvoiceService.selectAllInvoiceOrders(requestData); return AjaxResult.success(allInvoiceOrdersResponse); @@ -99,8 +104,9 @@ public class XhpcInvoiceController extends BaseController { Long invoiceId = Long.valueOf(String.valueOf(invoiceIdMap.get("invoiceId"))); SpecificInvoiceWrap specificInvoiceWrap = xhpcInvoiceService.selectSpecificInvoice(invoiceId); if (specificInvoiceWrap == null) { - AjaxResult.error("要回显的订单发票id有误"); + return AjaxResult.error("要回显的订单发票id有误"); } return AjaxResult.success(specificInvoiceWrap); } + } diff --git a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/InvoiceTitleResponse.java b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/InvoiceTitleResponse.java new file mode 100644 index 00000000..5853a07c --- /dev/null +++ b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/InvoiceTitleResponse.java @@ -0,0 +1,43 @@ +package com.xhpc.invoice.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * selectInvoiceTitle接口的回显包装类 + * + * @author WH + * @date 2021/12/23 + * @since version-1.0 + */ +@NoArgsConstructor +@Data +public class InvoiceTitleResponse { + + /** + * 存放公司税号的集合 + */ + @JsonProperty("data") + private List data; + + @NoArgsConstructor + @Data + public static class DataDTO { + + /** + * 公司名称 + */ + @JsonProperty("firmName") + private String firmName; + /** + * 税号 + */ + @JsonProperty("dutyNumber") + private String dutyNumber; + + } + +} diff --git a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/TitleResponse.java b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/TitleResponse.java new file mode 100644 index 00000000..41a02b6b --- /dev/null +++ b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/domain/TitleResponse.java @@ -0,0 +1,74 @@ +package com.xhpc.invoice.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * /selectTitle接口的返回数据的包装类 + * + * @author WH + * @date 2021/12/23 17:07 + * @since version-1.0 + */ +@NoArgsConstructor +@Data +public class TitleResponse { + + /** + * 用户接收发票的邮箱 + */ + @JsonProperty("receiveEmail") + private String receiveEmail; + /** + * 用户所要开的发票的抬头类型,0为企业用户,1为非企业用户 + */ + @JsonProperty("titleType") + private Integer titleType; + /** + * 用户所填写的发票抬头类型 + */ + @JsonProperty("titleContent") + private String titleContent; + /** + * 发票税号 + */ + @JsonProperty("dutyNumber") + private String dutyNumber; + /** + * 用户所要开的发票的抬头内容 + */ + @JsonProperty("invoiceContent") + private String invoiceContent; + /** + * 公司地址 + */ + @JsonProperty("firmAddress") + private String firmAddress; + /** + * 公司号码 + */ + @JsonProperty("firmPhone") + private String firmPhone; + /** + * 公司开户行 + */ + @JsonProperty("firmBank") + private String firmBank; + /** + * 公司开户行账户 + */ + @JsonProperty("firmBankAccount") + private String firmBankAccount; + /** + * 是否显示交易日期(0,为不显示,1为显示) + */ + @JsonProperty("isShowDate") + private Integer isShowDate; + /** + * 用户所填写的备注 + */ + @JsonProperty("userNotes") + private String userNotes; + +} diff --git a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/mapper/XhpcInvoiceMapper.java b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/mapper/XhpcInvoiceMapper.java index 700a7870..9ab84e95 100644 --- a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/mapper/XhpcInvoiceMapper.java +++ b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/mapper/XhpcInvoiceMapper.java @@ -3,6 +3,7 @@ package com.xhpc.invoice.mapper; import com.xhpc.invoice.domain.AllInvoiceOrdersRequest; import com.xhpc.invoice.domain.InvoiceToUserRequest; import com.xhpc.invoice.pojo.XhpcInvoice; +import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; import java.util.List; @@ -86,10 +87,35 @@ public interface XhpcInvoiceMapper { /** * 更新指定发票状态,让其成为开发票失败状态 * + * @param requestData 更新数据的来源 + * @return Long 返回受影响的行数 * @author WH * @date 2021/12/23 13:30 * @since version-1.0 */ Long failInvoiceToUser(InvoiceToUserRequest requestData); + /** + * 模糊查询指定公司名称和税号 + * + * @param firmName 公司名称 + * @return 返回几个公司的名称和税号 + * @author WH + * @date 2021/12/23 15:54 + * @since version-1.0 + */ + List selectInvoiceTitleInfo(String firmName); + + /** + * 查询用户最近一次提交发票的发票信息 + * + * @param creatorId 用户id + * @param creatorType 用户类型 + * @return 最近一次提交的发票信息 + * @author WH + * @date 2021/12/23 17:29 + * @since version-1.0 + */ + XhpcInvoice selectUserLastInputInvoiceInfo(@Param("creatorId") Long creatorId, @Param("creatorType") Integer creatorType); + } \ No newline at end of file diff --git a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/service/XhpcInvoiceService.java b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/service/XhpcInvoiceService.java index 34185c27..d9fdd22f 100644 --- a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/service/XhpcInvoiceService.java +++ b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/service/XhpcInvoiceService.java @@ -1,9 +1,6 @@ package com.xhpc.invoice.service; -import com.xhpc.invoice.domain.AllInvoiceOrdersRequest; -import com.xhpc.invoice.domain.AllInvoiceOrdersResponse; -import com.xhpc.invoice.domain.InvoiceToUserRequest; -import com.xhpc.invoice.domain.SpecificInvoiceWrap; +import com.xhpc.invoice.domain.*; /** * 用于处理发票相关请求的Service @@ -48,16 +45,36 @@ public interface XhpcInvoiceService { Boolean invoiceToUser(InvoiceToUserRequest requestData); /** - * 存储发票开失败的状态,将该发票所包含的订单释放, - * 即将其所包含的历史订单的del_flag设置为1,表明已经被删除, - * 然后将其发票状态设置为取消开票状态 + * 存储发票开失败的状态,将其发票状态设置为取消开票状态 * * @param requestData 开票失败所传递的参数 - * @return 是否执行成功 * @author WH * @date 2021/12/23 12:48 * @since version-1.0 */ - Boolean failInvoiceToUser(InvoiceToUserRequest requestData); + void failInvoiceToUser(InvoiceToUserRequest requestData); + + /** + * 查询发票抬头信息 + * + * @param firmName 公司名称 + * @return 公司名称以及对应的税号 + * @author WH + * @date 2021/12/23 15:29 + * @since version-1.0 + */ + InvoiceTitleResponse selectInvoiceTitleInfo(String firmName); + + /** + * 查询用户输入的最后一次的开发票所填写的信息 + * + * @param creatorId 用户id + * @param creatorType 用户类型 + * @return 要回显的数据 + * @author WH + * @date 2021/12/23 17:23 + * @since version-1.0 + */ + TitleResponse selectUserInputInvoiceInfo(Long creatorId, Integer creatorType); } diff --git a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/service/impl/XhpcInvoiceServiceImpl.java b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/service/impl/XhpcInvoiceServiceImpl.java index 8dc7574b..7d44186b 100644 --- a/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/service/impl/XhpcInvoiceServiceImpl.java +++ b/xhpc-modules/xhpc-invoice/src/main/java/com/xhpc/invoice/service/impl/XhpcInvoiceServiceImpl.java @@ -4,10 +4,7 @@ import cn.hutool.extra.mail.MailUtil; import com.xhpc.common.core.utils.DateUtils; import com.xhpc.common.core.utils.bean.BeanUtils; import com.xhpc.common.domain.XhpcChargingStation; -import com.xhpc.invoice.domain.AllInvoiceOrdersRequest; -import com.xhpc.invoice.domain.AllInvoiceOrdersResponse; -import com.xhpc.invoice.domain.InvoiceToUserRequest; -import com.xhpc.invoice.domain.SpecificInvoiceWrap; +import com.xhpc.invoice.domain.*; import com.xhpc.invoice.mapper.*; import com.xhpc.invoice.pojo.XhpcInvoice; import com.xhpc.invoice.pojo.XhpcInvoiceMapHistoryOrder; @@ -109,9 +106,10 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { //发送电子发票pdf到接收者邮箱 XhpcInvoice xhpcInvoice = xhpcInvoiceMapper.selectByPrimaryKey(requestData.getInvoiceId()); String receiveEmail = xhpcInvoice.getReceiveEmail(); - File eletricInvoiceFile = new File("D:\\Enterprise_Resources\\ElectricInvoice\\ElectricInvoice.pdf"); + //todo 从阿里云上下载下来电子发票 + File electricInvoiceFile = new File("D:\\Enterprise_Resources\\ElectricInvoice\\ElectricInvoice.pdf"); try { - MailUtil.send(receiveEmail, "【小华充电】电子发票", "邮件来自小华充电", false, eletricInvoiceFile); + MailUtil.send(receiveEmail, "【小华充电】电子发票", "邮件来自小华充电", false, electricInvoiceFile); } catch (Exception e) { System.out.println(e.getMessage()); return Boolean.FALSE; @@ -126,11 +124,47 @@ public class XhpcInvoiceServiceImpl implements XhpcInvoiceService { @Override @Transactional(rollbackFor = Exception.class) - public Boolean failInvoiceToUser(InvoiceToUserRequest requestData) { - //todo - //最后入库更新 + public void failInvoiceToUser(InvoiceToUserRequest requestData) { + //根据操作人的id,查询操作人的名字 + SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(requestData.getDrawer())); + requestData.setDrawer(sysUser.getNickName()); + //入库更新 xhpcInvoiceMapper.failInvoiceToUser(requestData); - return null; + } + + @Override + public InvoiceTitleResponse selectInvoiceTitleInfo(String firmName) { + + List xhpcInvoiceList = xhpcInvoiceMapper.selectInvoiceTitleInfo(firmName); + ArrayList dataDTOList = new ArrayList<>(); + for (XhpcInvoice xhpcInvoice : xhpcInvoiceList) { + InvoiceTitleResponse.DataDTO dataDTO = new InvoiceTitleResponse.DataDTO(); + dataDTO.setFirmName(xhpcInvoice.getTitleContent()); + dataDTO.setDutyNumber(xhpcInvoice.getDutyNumber()); + dataDTOList.add(dataDTO); + } + InvoiceTitleResponse invoiceTitleResponse = new InvoiceTitleResponse(); + invoiceTitleResponse.setData(dataDTOList); + return invoiceTitleResponse; + } + + /** + * 查询用户输入的最后一次的开发票所填写的信息 + * + * @param creatorId 用户id + * @param creatorType 用户类型 + * @return 要回显的数据 + * @author WH + * @date 2021/12/23 17:23 + * @since version-1.0 + */ + @Override + public TitleResponse selectUserInputInvoiceInfo(Long creatorId, Integer creatorType) { + + XhpcInvoice xhpcInvoice = xhpcInvoiceMapper.selectUserLastInputInvoiceInfo(creatorId, creatorType); + TitleResponse titleResponse = new TitleResponse(); + BeanUtils.copyProperties(xhpcInvoice, titleResponse); + return titleResponse; } /** diff --git a/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcInvoiceMapper.xml b/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcInvoiceMapper.xml index 1b64c9a9..f3a3e440 100644 --- a/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcInvoiceMapper.xml +++ b/xhpc-modules/xhpc-invoice/src/main/resources/mapper/XhpcInvoiceMapper.xml @@ -124,6 +124,20 @@ WHERE del_flag IS NULL AND `status` = 0 + + delete from xhpc_invoice