From 53d39f5a8678d9fbef95c59214cc0a288c82c0a6 Mon Sep 17 00:00:00 2001 From: kane Date: Mon, 26 Jun 2023 16:37:15 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=A2=E5=AD=97=E4=BF=A1=E6=81=AF=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=92=8C=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/RedInformationController.java | 12 +++ .../ExceptionInformationConstants.java | 12 ++- .../platform/constant/RedWordConstants.java | 6 ++ .../platform/dto/invoicered/RedWordDTO.java | 2 + .../dto/invoicered/RedinfodetailDTO.java | 1 - .../service/RedInformationService.java | 14 +++ .../impl/RedInformationServiceImpl.java | 98 ++++++++++++++++++- .../platform/vo/invoicered/FindRedWordVO.java | 2 + 8 files changed, 141 insertions(+), 6 deletions(-) diff --git a/jianshui-admin/src/main/java/com/jianshui/web/controller/platform/RedInformationController.java b/jianshui-admin/src/main/java/com/jianshui/web/controller/platform/RedInformationController.java index 2fc83d9..0d5b829 100644 --- a/jianshui-admin/src/main/java/com/jianshui/web/controller/platform/RedInformationController.java +++ b/jianshui-admin/src/main/java/com/jianshui/web/controller/platform/RedInformationController.java @@ -48,4 +48,16 @@ public class RedInformationController { public AjaxResult findRedWordDetail(@PathVariable Long id){ return redInformationService.findRedWordDetail(id); } + + @ApiOperation("红字信息删除") + @DeleteMapping("/deleteRedWord/{ids}") + public AjaxResult deleteRedWord(@PathVariable Long[] ids){ + return redInformationService.deleteRedWord(ids); + } + + @ApiOperation("红字信息修改") + @PutMapping("/updateRedWord") + public AjaxResult updateRedWord(@RequestBody RedWordDTO dto){ + return redInformationService.updateRedWord(dto); + } } diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/constant/ExceptionInformationConstants.java b/jianshui-platform/src/main/java/com/jianshui/platform/constant/ExceptionInformationConstants.java index 80bd882..c297c95 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/constant/ExceptionInformationConstants.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/constant/ExceptionInformationConstants.java @@ -20,13 +20,19 @@ public class ExceptionInformationConstants { // 申请类型有误 public static final String REQUESTTYPEERROR = "申请类型有误"; - //发票相关信息为空 + // 发票相关信息为空 public static final String INVOICEINFORMATIONISEMPTY = "发票相关信息为空"; - //红字信息为空 + // 红字信息为空 public static final String REDWORDINFOISEMPT = "传入红字信息为空"; - //未查询到红字信息 + // 未查询到红字信息 public static final String NOTFINREDWORDINFO = "未查询到该红字信息表"; + // 上传红字信息不能删除 + public static final String NOTDELETEREDWORD = "已上传红字信息不能删除,请重新选择"; + + // 上传红字信息不能修改 + public static final String NOTUPDATEREDWORD = "已上传红字信息不能修改,请重新选择"; + } diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/constant/RedWordConstants.java b/jianshui-platform/src/main/java/com/jianshui/platform/constant/RedWordConstants.java index b2b65df..5547bcc 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/constant/RedWordConstants.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/constant/RedWordConstants.java @@ -23,4 +23,10 @@ public class RedWordConstants { // 提交结果响应 public static final String SUBMITSUCCESS = "提交成功"; + + //删除成功 + public static final String DELETESUCCESS = "删除成功"; + + //修改成功 + public static final String UPDATESUCCESS = "修改成功"; } diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedWordDTO.java b/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedWordDTO.java index 976d51c..e6997b9 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedWordDTO.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedWordDTO.java @@ -17,6 +17,8 @@ import java.util.List; @ApiModel("红字信息") @Data public class RedWordDTO { + @ApiModelProperty("红字信息id") + private Long id; @NotEmpty @ApiModelProperty("填开类型") diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedinfodetailDTO.java b/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedinfodetailDTO.java index dfd8020..cb8049f 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedinfodetailDTO.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/dto/invoicered/RedinfodetailDTO.java @@ -3,7 +3,6 @@ package com.jianshui.platform.dto.invoicered; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; - import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.math.BigDecimal; diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/service/RedInformationService.java b/jianshui-platform/src/main/java/com/jianshui/platform/service/RedInformationService.java index 4d878a0..3d8bc70 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/service/RedInformationService.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/service/RedInformationService.java @@ -39,4 +39,18 @@ public interface RedInformationService { * @return : com.jianshui.common.core.domain.AjaxResult */ AjaxResult findRedWordDetail(Long id); + + /** + * 功能描述: 批量删除红字信息 + * @param ids + * @return : com.jianshui.common.core.domain.AjaxResult + */ + AjaxResult deleteRedWord(Long[] ids); + + /** + * 功能描述: 修改红字信息 + * @param dto + * @return : com.jianshui.common.core.domain.AjaxResult + */ + AjaxResult updateRedWord(RedWordDTO dto); } diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/service/impl/RedInformationServiceImpl.java b/jianshui-platform/src/main/java/com/jianshui/platform/service/impl/RedInformationServiceImpl.java index 74e151c..cacd1ac 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/service/impl/RedInformationServiceImpl.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/service/impl/RedInformationServiceImpl.java @@ -37,7 +37,6 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; -import static com.github.pagehelper.page.PageMethod.startPage; /** * @Author: kane @@ -205,7 +204,7 @@ public class RedInformationServiceImpl implements RedInformationService { redinfo.setOutTradeOrderno(outOrderNO); redinfo.setFpqqlsh(uuidhm); redinfo.setCompanyId(sysUser.getCompanyId()); - redinfo.setRedInfoStatus("0"); + redinfo.setRedInfoStatus("6"); String serviceKey = null; try { serviceKey = serviceManageService.getCompanyServiceSupplier("invoice", sysUser.getCompanyId()); @@ -311,4 +310,99 @@ public class RedInformationServiceImpl implements RedInformationService { return AjaxResult.success(redWordDTO); } + /** + * 功能描述: 批量删除红字信息 + * @param ids + * @return : com.jianshui.common.core.domain.AjaxResult + */ + @Override + public AjaxResult deleteRedWord(Long[] ids) { + if (ids == null || ids.length == 0){ + return AjaxResult.error(ExceptionInformationConstants.REDWORDINFOISEMPT); + } + for (Long id : ids) { + Redinfo redinfo = redinfoMapper.selectRedinfoById(id); + String redInfoStatus = redinfo.getRedInfoStatus(); + if (!"6".equals(redInfoStatus)){ + return AjaxResult.error(ExceptionInformationConstants.NOTDELETEREDWORD); + } + } + //批量删除 + redinfoMapper.deleteRedinfoByIds(ids); + redinfoMapper.deleteRedinfodetailByRedinfoIds(ids); + return AjaxResult.success(RedWordConstants.DELETESUCCESS); + } + + /** + * 功能描述: 红字信息修改 + * @param dto + * @return : com.jianshui.common.core.domain.AjaxResult + */ + @Override + public AjaxResult updateRedWord(RedWordDTO dto) { + if (dto.getId() == null){ + return AjaxResult.error(ExceptionInformationConstants.REDWORDINFOISEMPT); + } + Redinfo redinfo = redinfoMapper.selectRedinfoById(dto.getId()); + if (redinfo == null){ + return AjaxResult.error(ExceptionInformationConstants.NOTFINREDWORDINFO); + } + if ("6".equals(redinfo.getRedInfoStatus()) || "2".equals(redinfo.getRedInfoStatus())){ + BeanUtils.copyProperties(dto,redinfo); + if (RedWordConstants.TAXINVOICE.equals(dto.getStatus())){ + // 含税总计金额 + redinfo.setTaxamt(dto.getTotalMoney()); + // 总计税额 + redinfo.setTax(dto.getTotalTax()); + // 不含税总计金额 + redinfo.setTaxfreeamt(dto.getTotalMoney().subtract(dto.getTotalTax())); + } + if (RedWordConstants.NOTTAXINVOICE.equals(dto.getStatus())){ + // 不含税总计金额 + redinfo.setTaxfreeamt(dto.getTotalMoney()); + // 含税总计金额 + redinfo.setTaxamt(dto.getTotalMoney().add(dto.getTotalTax())); + // 总计税额 + redinfo.setTax(dto.getTotalTax()); + } + redinfoMapper.updateRedinfo(redinfo); + // 红字信息详情 + List redinfodetailList = dto.getRedinfodetailList(); + List redinfodetails = new ArrayList<>(); + int count = 1; + for (RedinfodetailDTO redinfodetailDTO : redinfodetailList) { + //删除详情表 + redinfoMapper.deleteRedinfodetailByRedinfoId(dto.getId()); + Redinfodetail redinfodetail = new Redinfodetail(); + BeanUtils.copyProperties(redinfodetailDTO,redinfodetail); + redinfodetail.setRedinfoId(redinfo.getId()); + redinfodetail.setIndex(count); + redinfodetail.setTaxrate(redinfodetailDTO.getTaxrate().divide(new BigDecimal("100"),4,BigDecimal.ROUND_HALF_UP)); + if (RedWordConstants.TAXINVOICE.equals(dto.getStatus())){ + //单价税额 + BigDecimal taxCost = redinfodetailDTO.getTax().divide(redinfodetailDTO.getNum(),2,BigDecimal.ROUND_HALF_UP); + //不含税单价 + redinfodetail.setPrice(redinfodetailDTO.getCost().subtract(taxCost)); + //含税金额 + redinfodetail.setTaxamt(redinfodetailDTO.getMoney()); + //不含税金额 + redinfodetail.setTaxfreeamt(redinfodetailDTO.getMoney().subtract(redinfodetailDTO.getTax())); + }else if (RedWordConstants.NOTTAXINVOICE.equals(dto.getStatus())){ + //不含税单价 + redinfodetail.setPrice(redinfodetailDTO.getCost()); + //不含税金额 + redinfodetail.setTaxfreeamt(redinfodetailDTO.getMoney()); + //含税金额 + redinfodetail.setTaxamt(redinfodetailDTO.getMoney().add(redinfodetailDTO.getTax())); + } + redinfodetails.add(redinfodetail); + count++; + } + redinfoMapper.batchRedinfodetail(redinfodetails); + return AjaxResult.success(RedWordConstants.SUBMITSUCCESS); + }else { + return AjaxResult.error(ExceptionInformationConstants.NOTUPDATEREDWORD); + } + } + } diff --git a/jianshui-platform/src/main/java/com/jianshui/platform/vo/invoicered/FindRedWordVO.java b/jianshui-platform/src/main/java/com/jianshui/platform/vo/invoicered/FindRedWordVO.java index 5fb27fa..f18802d 100644 --- a/jianshui-platform/src/main/java/com/jianshui/platform/vo/invoicered/FindRedWordVO.java +++ b/jianshui-platform/src/main/java/com/jianshui/platform/vo/invoicered/FindRedWordVO.java @@ -16,6 +16,8 @@ import java.math.BigDecimal; @ApiModel("红字信息查询返回结果") public class FindRedWordVO { + @ApiModelProperty("主键id 红字信息id") + private Long id; @ApiModelProperty("信息表编号") private String redInfoNo;