This commit is contained in:
linfso 2024-12-25 16:28:42 +08:00
parent 2c571f48a5
commit cf26a1d12a
3 changed files with 82 additions and 1 deletions

View File

@ -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("服务器异常,联系客服");
}
}
/**
* 修改渠道开票记录表

View File

@ -61,6 +61,14 @@ public interface IEmisSettleInvoiceChRecordService
*/
public int updateEmisSettleInvoiceChRecord(EmisSettleInvoiceChRecord emisSettleInvoiceChRecord);
/**
* 作废发票
* @param emisSettleInvoiceChRecord
* @return
*/
public int invalidInvoice(EmisSettleInvoiceChRecord emisSettleInvoiceChRecord) throws EmisBizError;
/**
* 批量删除渠道开票记录表
*

View File

@ -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<settleBillNoArr.length;i++) {
emisSettleBillService.reCalcSettleBillInvoiceStatus(settleBillNoArr[i]);
}
}else{
// 其他需手工处理
throw new EmisBizError(EmisBizErrorType.FAIL,"发票金额不等于申请金额,不允许作废");
}
return 1;
}
/**
* 批量删除渠道开票记录表
*