diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSettleBill.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSettleBill.java index c834e157f..dca7ba1ee 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSettleBill.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSettleBill.java @@ -121,7 +121,7 @@ public class EmisSettleBill extends BaseEntity private String confirmCenterManCode; /* 财务确认站点 */ private String confirmCenterCode; - /* 站点确认状态 0-待确认 1-已确认 2-驳回 */ + /* 站点确认状态 0-待确认 1-已确认 2-驳回 3-账单异常 */ private String blConfirmSite; /* 站点确认日期 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleBillService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleBillService.java index 77ccb4e19..b5b0338fe 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleBillService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleBillService.java @@ -29,6 +29,9 @@ public interface IEmisSettleBillService public EmisSettleBill selectEmisSettleBillById(Long id); + public EmisSettleBill selectEmisSettleBillBySettleBillNo(String settleBillNo); + + /** * 查询结算总账单列表 * @@ -59,10 +62,10 @@ public interface IEmisSettleBillService public int removeSubBillFromSettleBill(EmisSettleBill emisSettleBill) throws EmisBizError; + public int reCalcSettleBillFee(EmisSettleBill emisSettleBill) throws EmisBizError; - - /** + /** * 修改结算总账单 * * @param emisSettleBill 结算总账单 diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java index da05d9aa6..5dc3fc848 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java @@ -58,6 +58,14 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS } + @Override + public EmisSettleBill selectEmisSettleBillBySettleBillNo(String settleBillNo) + { + return emisSettleBillMapper.selectSettleBillBySettleBillNo(settleBillNo); + } + + + /** * 查询结算总账单列表 @@ -272,7 +280,8 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS * @return * @throws EmisBizError */ - private int reCalcSettleBillFee(EmisSettleBill old) throws EmisBizError { + @Override + public int reCalcSettleBillFee(EmisSettleBill old) throws EmisBizError { // 计算应收总账单金额 // 检查子账单是否可加入 @@ -326,6 +335,19 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS // emisSettleBill.setRecMoney(sendMoneySum); + // 如果有已收款,则更新收款状态为部分收款 + if(emisSettleBill.getRecedMoney() !=null + && emisSettleBill.getRecedMoney().compareTo(BigDecimal.ZERO)>0 + ){ + // 账单总金额大于收款总金额 + if(totalRecMoney.compareTo(emisSettleBill.getRecedMoney())>0){ + // 部分收款 + emisSettleBill.setPaymentStatus("2"); + } + } + + //发票状态不改变 + // 账单总金额 return emisSettleBillMapper.updateEmisSettleBill(emisSettleBill); } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java index 47a186632..50d4e58d5 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java @@ -19,8 +19,11 @@ import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType; import com.xdadan.erp.emis.domain.exception.EmisBizError; import com.xdadan.erp.emis.domain.vo.WaybillOrder; import com.xdadan.erp.emis.service.EmisBaseService; +import com.xdadan.erp.emis.service.IEmisSettleBillService; import com.xdadan.erp.emis.service.IEmisWaybillService; import com.xdadan.erp.emis.utils.WaybillHelper; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.xdadan.erp.emis.mapper.EmisWaybillAjustApplyMapper; @@ -42,6 +45,9 @@ public class EmisWaybillAjustApplyServiceImpl extends EmisBaseService implements @Autowired private IEmisWaybillService emisWaybillService; + @Autowired + private IEmisSettleBillService emisSettleBillService; + /** * 查询运单调整申请 * @@ -180,7 +186,12 @@ public class EmisWaybillAjustApplyServiceImpl extends EmisBaseService implements // 获取账单状态,若账单处于非未确认状态,不允许审核 List emisSettleSubBillList=getSettleSubBillListByBillCode(emisWaybillAjustApply.getBillCode()); - if(emisSettleSubBillList!=null && emisSettleSubBillList.size()>0){ + if(!CollectionUtils.isEmpty(emisSettleSubBillList)){ + + if(emisSettleSubBillList.size()>1){ + throw new EmisBizError(EmisBizErrorType.FAIL,"已拆子账单,不允许修改!"); + } + for (EmisSettleSubBill emisSettleSubBill:emisSettleSubBillList) { if("1".equals(emisSettleSubBill.getBlConfirmCenter())){ throw new EmisBizError(EmisBizErrorType.FAIL,"财务已确认账单,不允许审核,请先取消财务确认!"); @@ -188,12 +199,6 @@ public class EmisWaybillAjustApplyServiceImpl extends EmisBaseService implements } } - - - - - - // 运单更新 JSONObject jsonObject = JSONObject.parseObject(emisWaybillAjustApply.getJsonData()); JSONObject newValueJObj=jsonObject.getJSONObject("newValue"); @@ -207,6 +212,21 @@ public class EmisWaybillAjustApplyServiceImpl extends EmisBaseService implements emisWaybillService.reUpdateWayBill(emisWaybillOld,emisWaybillSave); + // 重新计算总账单费用 + // 获取账单是否已经被合并,若合并则更新账单费用 + if(!CollectionUtils.isEmpty(emisSettleSubBillList)) { + // 如果只有一个子账单,则更新总账单 + if(emisSettleSubBillList.size()==1) { + EmisSettleSubBill emisSettleSubBill=emisSettleSubBillList.get(0); + if(!StringUtils.isEmpty(emisSettleSubBill.getSettleBillNo())) { + EmisSettleBill old=emisSettleBillService.selectEmisSettleBillBySettleBillNo(emisSettleSubBill.getSettleBillNo()); + if(old!=null) { + emisSettleBillService.reCalcSettleBillFee(old); + } + } + } + } + // 审核通过 return emisWaybillAjustApplyMapper.auditCenterPass(emisWaybillAjustApply);