diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java index 70e2fd837..a08be1eac 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -545,7 +545,12 @@ public class WxFinanceController extends BaseController { if (StringUtils.isNotBlank(record.getRemark())) { receive.setRemark(record.getRemark()); } - //TODO 如果此笔单据里面有预冲的,如果此预冲的费用被别的单据抵扣了,则不能作废。 + //如果此笔单据里面有预冲或者押金的,如果此詹丹的费用被别的单据抵扣了,则不能作废。 + Integer count = wxFinanceService.getAdvanceUsedBillCount(receive,receive.getId()); + if (null != count && count.intValue() > 0 ) { + return new ResultData(Result.ERROR,"单据押金或者预冲已被冲抵使用,不能操作"); + } + wxFinanceService.invalidReceive(receive, getUser(),"收款单作废"); return new ResultData(); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveSetoff.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveSetoff.java index 902540c7e..6246ba246 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveSetoff.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveSetoff.java @@ -9,6 +9,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; import java.util.Date; +import java.util.List; /** */ @TableName(value = "wx_finance_receive_setoff") @@ -64,4 +65,6 @@ public class WxFinanceReceiveSetoff extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "是否已删除", name = "isDel") private Integer isDel; + @TableField(exist = false) + private List advanceIdList; } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveSetoffMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveSetoffMapper.java index 00b8c245d..e6a6401ae 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveSetoffMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveSetoffMapper.java @@ -12,6 +12,8 @@ public interface WxFinanceReceiveSetoffMapper extends CommonMapper findList(WxFinanceReceiveSetoff wxBillRent); Integer findCount(WxFinanceReceiveSetoff wxBillRent); + List findAdvanceIdList(WxFinanceReceiveSetoff wxBillRent); + WxFinanceReceiveSetoff selectById(@Param("id")Long id,@Param("tenantId")String tenantId); void deleteByConditon(WxFinanceReceiveSetoff wxBillRent); diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java index 06891315e..905d7e206 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java @@ -66,6 +66,7 @@ public interface WxFinanceService { List calcuetSetOff(FinanceSetOffDTO dto,MallUserInfo user); //List getSetOffList(FinanceSetOffDTO dto,boolean isMerge); PageInfo receiveSetoffListAsPage(WxFinanceReceive record, Integer pageIndex, Integer pageSize); + Integer getAdvanceUsedBillCount(TenantEntity tenantEntity,Long receiveId); BigDecimal getBillSetoffSum(WxShop wxShop); BigDecimal getBillDepositSum(WxShop wxShop); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index 61340eb9b..a8780cf67 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -1691,6 +1691,23 @@ public class WxFinanceServiceImpl implements WxFinanceService { } return page; } + + @Override + public Integer getAdvanceUsedBillCount(TenantEntity tenantEntity,Long receiveId) { + WxFinanceReceiveSetoff aidq = new WxFinanceReceiveSetoff(); + aidq.updateTenantInfo(tenantEntity); + aidq.setReceiveId(receiveId); + List advanceIdList = wxFinanceReceiveSetoffMapper.findAdvanceIdList(aidq); + if (null == advanceIdList || advanceIdList.size() <= 0 ) { + return 0; + } + ; + WxFinanceReceiveSetoff rsq = new WxFinanceReceiveSetoff(); + rsq.updateTenantInfo(tenantEntity); + rsq.setAdvanceIdList(advanceIdList); + rsq.setIsDel(EnumYesOrNo.NO.getCode()); + return wxFinanceReceiveSetoffMapper.findCount(rsq); + } @Override public PageInfo finishListAsPage(WxFinanceFinish record, Integer pageIndex, Integer pageSize) { diff --git a/mallinkService/src/main/resources/mapper/WxFinanceReceiveSetoffMapper.xml b/mallinkService/src/main/resources/mapper/WxFinanceReceiveSetoffMapper.xml index 26535232a..5ff52b8f7 100644 --- a/mallinkService/src/main/resources/mapper/WxFinanceReceiveSetoffMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinanceReceiveSetoffMapper.xml @@ -40,6 +40,12 @@ and `advance_id` = #{advanceId} and `shop_id` = #{shopId} and `is_del` = #{isDel} + + and advance_id in + + #{aidItem} + + and id in @@ -62,6 +68,12 @@ + +