md
This commit is contained in:
parent
910202b024
commit
66e308d7af
@ -13,6 +13,9 @@ package com.xdadan.erp.web.emis;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
||||
import com.xdadan.erp.emis.domain.vo.scan.ScanResult;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@ -107,7 +110,18 @@ public class EmisSettleBillController extends BaseController
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody EmisSettleBill emisSettleBill)
|
||||
{
|
||||
return toAjax(emisSettleBillService.insertEmisSettleBill(emisSettleBill));
|
||||
try {
|
||||
return toAjax(emisSettleBillService.insertEmisSettleBill(emisSettleBill));
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
// 返回子定义异常
|
||||
if(ex instanceof EmisBizError){
|
||||
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
|
||||
}
|
||||
|
||||
return AjaxResult.error("系统异常,联系客服");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -19,6 +19,8 @@ import com.xdadan.erp.common.core.domain.TreeEntity;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@ -116,4 +118,7 @@ public class EmisSettleBill extends BaseEntity
|
||||
/* 网点确认备注 */
|
||||
private String siteConfirmNote;
|
||||
|
||||
List<EmisSettleSubBill> subBillList;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -35,6 +35,9 @@ public interface EmisSettleSubBillMapper extends BaseMapper<EmisSettleSubBill>
|
||||
|
||||
public EmisSettleSubBill selectSettleSubBillByBillCode(String billCode);
|
||||
|
||||
|
||||
public EmisSettleSubBill selectSettleSubBillBySubBillNo(String subBillNo);
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
*
|
||||
@ -76,6 +79,11 @@ public interface EmisSettleSubBillMapper extends BaseMapper<EmisSettleSubBill>
|
||||
*/
|
||||
public int updateEmisSettleSubBill(EmisSettleSubBill emisSettleSubBill);
|
||||
|
||||
|
||||
// 更新主账单号
|
||||
public int updateMainSettleBillNo(EmisSettleSubBill emisSettleSubBill);
|
||||
|
||||
|
||||
// 财务中心取消和确认,确认不出账,设置异常
|
||||
public int confirmBillByCenter(EmisSettleSubBill emisSettleSubBill);
|
||||
public int cancelConfirmBillByCenter(EmisSettleSubBill emisSettleSubBill);
|
||||
|
||||
@ -1048,6 +1048,16 @@ public class EmisBaseService {
|
||||
public EmisSettleSubBill getSettleSubBillByBillCode(String billCode){
|
||||
return emisSettleSubBillMapper.selectSettleSubBillByBillCode(billCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取运单主账单信息 根据子账单编号
|
||||
* @param subBillNo
|
||||
* @return
|
||||
*/
|
||||
public EmisSettleSubBill getSettleSubBillBySubBillNo(String subBillNo){
|
||||
return emisSettleSubBillMapper.selectSettleSubBillBySubBillNo(subBillNo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 财务账单确认
|
||||
* @param emisSettleSubBill
|
||||
|
||||
@ -11,8 +11,9 @@ package com.xdadan.erp.emis.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.xdadan.erp.emis.domain.EmisSettleBill;
|
||||
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
||||
|
||||
/**
|
||||
/**
|
||||
* @ClassName EmisSettleBillService
|
||||
* @Description 结算总账单
|
||||
* @author linfso
|
||||
@ -50,7 +51,7 @@ public interface IEmisSettleBillService
|
||||
* @param emisSettleBill 结算总账单
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertEmisSettleBill(EmisSettleBill emisSettleBill);
|
||||
public int insertEmisSettleBill(EmisSettleBill emisSettleBill) throws EmisBizError;
|
||||
|
||||
/**
|
||||
* 修改结算总账单
|
||||
|
||||
@ -10,25 +10,38 @@
|
||||
|
||||
package com.xdadan.erp.emis.service.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.xdadan.erp.emis.domain.EmisSettleSubBill;
|
||||
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
|
||||
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
||||
import com.xdadan.erp.emis.mapper.EmisSettleSubBillMapper;
|
||||
import com.xdadan.erp.emis.service.EmisBaseService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.xdadan.erp.emis.domain.EmisSettleBill;
|
||||
import com.xdadan.erp.emis.mapper.EmisSettleBillMapper;
|
||||
import com.xdadan.erp.emis.service.IEmisSettleBillService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
/**
|
||||
* 结算总账单Service业务层处理
|
||||
*
|
||||
* @author linfso
|
||||
* @date 2024-07-03 18:54:51
|
||||
*/
|
||||
@Service
|
||||
public class EmisSettleBillServiceImpl implements IEmisSettleBillService
|
||||
public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisSettleBillService
|
||||
{
|
||||
@Autowired
|
||||
private EmisSettleBillMapper emisSettleBillMapper;
|
||||
|
||||
@Autowired
|
||||
private EmisSettleSubBillMapper emisSettleSubBillMapper;
|
||||
|
||||
/**
|
||||
* 查询结算总账单
|
||||
*
|
||||
@ -73,8 +86,64 @@ public class EmisSettleBillServiceImpl implements IEmisSettleBillService
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertEmisSettleBill(EmisSettleBill emisSettleBill)
|
||||
{
|
||||
public int insertEmisSettleBill(EmisSettleBill emisSettleBill) throws EmisBizError {
|
||||
// 检查子账单是否可加入
|
||||
|
||||
if(CollectionUtil.isEmpty(emisSettleBill.getSubBillList())){
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL,"合账失败,未选择子账单");
|
||||
}
|
||||
|
||||
// 计算应收总账单金额
|
||||
// 检查子账单是否可加入
|
||||
BigDecimal totalRecMoney = BigDecimal.ZERO;
|
||||
/* 总票数 */
|
||||
Integer sendPieceSum = emisSettleBill.getSubBillList().size();
|
||||
// /* 总件数 */
|
||||
Integer pieceNumber=0;
|
||||
// /* 总重量 */
|
||||
BigDecimal feeWeight = BigDecimal.ZERO;
|
||||
// /* 合计金额 */
|
||||
BigDecimal sendMoneySum= BigDecimal.ZERO;
|
||||
|
||||
for (EmisSettleSubBill subBill: emisSettleBill.getSubBillList()
|
||||
) {
|
||||
EmisSettleSubBill subBllOld = getSettleSubBillBySubBillNo(subBill.getBillNo());
|
||||
if(subBllOld==null){
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL,"合账失败,子账单["+subBllOld.getBillCode()+"]不存在");
|
||||
}
|
||||
|
||||
if(!"1".equals(subBllOld.getBlConfirm()) ){
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL,"合账失败,子单号["+subBllOld.getBillCode()+"]未确认");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 更新主账单编号
|
||||
subBllOld.setSettleBillNo(emisSettleBill.getSettleBillNo());
|
||||
emisSettleSubBillMapper.updateMainSettleBillNo(subBllOld);
|
||||
|
||||
// 累加应收
|
||||
totalRecMoney=totalRecMoney.add(subBllOld.getBillFee());
|
||||
pieceNumber=pieceNumber+subBllOld.getWaybillDetail().getParcelQty();
|
||||
feeWeight=feeWeight.add(subBllOld.getWaybillDetail().getSettlementWeight());
|
||||
|
||||
// 主账单公共信息
|
||||
emisSettleBill.setSettleType(subBllOld.getSettleType());
|
||||
emisSettleBill.setCustNo(subBllOld.getCustNo());
|
||||
emisSettleBill.setCustomerCode(subBllOld.getCustomerCode());
|
||||
emisSettleBill.setCustomerName(subBllOld.getCustomerName());
|
||||
}
|
||||
|
||||
sendMoneySum=totalRecMoney;
|
||||
|
||||
emisSettleBill.setSendPieceSum(sendPieceSum);
|
||||
emisSettleBill.setPieceNumber(pieceNumber);
|
||||
emisSettleBill.setFeeWeight(feeWeight);
|
||||
emisSettleBill.setRecMoney(totalRecMoney);
|
||||
emisSettleBill.setRecMoney(sendMoneySum);
|
||||
|
||||
// 账单总金额
|
||||
return emisSettleBillMapper.insertEmisSettleBill(emisSettleBill);
|
||||
}
|
||||
|
||||
|
||||
@ -316,6 +316,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
from emis_settle_sub_bill a
|
||||
where a.del_flag='0' and a.bill_code = #{billCode} and a.parent_bill_no='0' limit 1
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectSettleSubBillBySubBillNo" parameterType="String" resultMap="EmisSettleSubBillResult">
|
||||
select id, bill_no, parent_bill_no, settle_bill_no, bill_code, bill_date, bill_fee, currency, settle_type, bl_split, bill_month, cust_no, customer_code, customer_name, bl_confirm, confirm_date, confirm_site, confirm_man_code, bl_site_confirm, confirm_note, site_confirm_date, site_confirm_man_code, site_confirm_note, del_flag, create_by, create_time, update_by, update_time, create_site, update_site
|
||||
from emis_settle_sub_bill a
|
||||
where a.del_flag='0' and a.bill_no = #{subBillNo} limit 1
|
||||
</select>
|
||||
|
||||
<insert id="insertEmisSettleSubBill" parameterType="EmisSettleSubBill" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into emis_settle_sub_bill
|
||||
@ -421,6 +428,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<!-- 更新合账单 -->
|
||||
<update id="updateMainSettleBillNo" parameterType="EmisSettleSubBill">
|
||||
update emis_settle_sub_bill
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
settle_bill_no = #{settleBillNo}
|
||||
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 中心确认 -->
|
||||
<update id="confirmBillByCenter" parameterType="EmisSettleSubBill">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user