diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleInvoiceChRecordController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleInvoiceChRecordController.java index 8c04edaf7..fdc83bfc3 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleInvoiceChRecordController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleInvoiceChRecordController.java @@ -14,11 +14,16 @@ package com.xdadan.erp.web.emis; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.alibaba.fastjson.JSONObject; import com.xdadan.erp.emis.domain.EmisSettleInvoiceChRecord; import com.xdadan.erp.emis.domain.EmisSettleInvoiceRecord; +import com.xdadan.erp.emis.domain.EmisWaybill; import com.xdadan.erp.emis.domain.exception.EmisBizError; import com.xdadan.erp.emis.service.IEmisSettleInvoiceChRecordService; +import com.xdadan.erp.emis.utils.WaybillHelper; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DuplicateKeyException; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -34,7 +39,6 @@ import com.xdadan.erp.common.core.controller.BaseController; import com.xdadan.erp.common.core.domain.AjaxResult; import com.xdadan.erp.common.core.page.TableDataInfo; import com.xdadan.erp.common.enums.BusinessType; -import com.xdadan.erp.common.utils.StringUtils; import com.xdadan.erp.common.utils.poi.ExcelUtil; /** @@ -149,6 +153,32 @@ public class EmisSettleInvoiceChRecordController extends BaseController } + /** + * 作废发票 + */ + @Log(title = "渠道开票记录表", businessType = BusinessType.UPDATE) + @PostMapping + public AjaxResult invalidInvoice(@RequestBody EmisSettleInvoiceChRecord emisSettleInvoiceChRecord) + { + + try { + return toAjax(emisSettleInvoiceChRecordService.invalidInvoice(emisSettleInvoiceChRecord)); + + }catch(EmisBizError ex){ + ex.printStackTrace(); + return AjaxResult.error("("+ex.getErrorCode()+")"+ex.getMessage()); + } + catch (Exception ex){ + ex.printStackTrace(); + // 返回子定义异常 + if(ex instanceof EmisBizError){ + return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode()); + } + + return AjaxResult.error("服务器异常,联系客服"); + } + + } /** * 修改渠道开票记录表 diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleInvoiceChRecordService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleInvoiceChRecordService.java index b9780dbdf..237784a41 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleInvoiceChRecordService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleInvoiceChRecordService.java @@ -61,6 +61,14 @@ public interface IEmisSettleInvoiceChRecordService */ public int updateEmisSettleInvoiceChRecord(EmisSettleInvoiceChRecord emisSettleInvoiceChRecord); + + /** + * 作废发票 + * @param emisSettleInvoiceChRecord + * @return + */ + public int invalidInvoice(EmisSettleInvoiceChRecord emisSettleInvoiceChRecord) throws EmisBizError; + /** * 批量删除渠道开票记录表 * diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceChRecordServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceChRecordServiceImpl.java index d58ef9ec3..4a4063961 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceChRecordServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceChRecordServiceImpl.java @@ -446,6 +446,49 @@ public class EmisSettleInvoiceChRecordServiceImpl extends EmisBaseService implem return emisSettleInvoiceChRecordMapper.updateEmisSettleInvoiceChRecord(emisSettleInvoiceChRecord); } + /** + * 作废发票 + * + * @param emisSettleInvoiceChRecord 渠道开票记录表 + * @return 结果 + */ + @Override + public int invalidInvoice(EmisSettleInvoiceChRecord emisSettleInvoiceChRecord) throws EmisBizError { + // 判断发票金额申请金额是否一致 + EmisSettleInvoiceChRecord rcd=emisSettleInvoiceChRecordMapper.selectEmisSettleInvoiceChRecordById(emisSettleInvoiceChRecord.getId()); + if(rcd==null){ + throw new EmisBizError(EmisBizErrorType.FAIL,"发票不存在"); + } + + // 获取申请单金额 开票申请金额==开票金额 + EmisSettleInvoiceRecord oldIRCD=emisSettleInvoiceRecordMapper.selectInvoiceRecordByApplySeqNo(rcd.getApplySeqNo()); + if(oldIRCD.getApplyMoney().compareTo(rcd.getOpenMoney()) == 0 ){ + + // 发票作废 + emisSettleInvoiceChRecord.setOpenChStatus("3"); + emisSettleInvoiceChRecordMapper.updateEmisSettleInvoiceChRecord(emisSettleInvoiceChRecord); + + // 更新申请状态为审核不通过 + emisSettleInvoiceRecordMapper.auditCenterNoPass(oldIRCD); + + // 重新计算账单状态 + String[] settleBillNoArr = oldIRCD.getSettleBillNo().split(","); + for(int i=0;i