diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java index ed6e4507..3be3f4c1 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java @@ -22,6 +22,7 @@ public interface DepotHeadMapperEx { @Param("type") String type, @Param("subType") String subType, @Param("creatorArray") String[] creatorArray, + @Param("hasDebt") String hasDebt, @Param("statusArray") String[] statusArray, @Param("purchaseStatusArray") String[] purchaseStatusArray, @Param("number") String number, @@ -43,6 +44,7 @@ public interface DepotHeadMapperEx { @Param("type") String type, @Param("subType") String subType, @Param("creatorArray") String[] creatorArray, + @Param("hasDebt") String hasDebt, @Param("statusArray") String[] statusArray, @Param("purchaseStatusArray") String[] purchaseStatusArray, @Param("number") String number, diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/DepotHeadVo4List.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/DepotHeadVo4List.java index 6badbd61..c47c28a5 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/DepotHeadVo4List.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/DepotHeadVo4List.java @@ -43,6 +43,11 @@ public class DepotHeadVo4List extends DepotHead{ private BigDecimal materialCount; + /** + * 是否有付款单或收款单 + */ + private Boolean hasFinancialFlag; + public String getProjectName() { return projectName; } @@ -186,4 +191,12 @@ public class DepotHeadVo4List extends DepotHead{ public void setMaterialCount(BigDecimal materialCount) { this.materialCount = materialCount; } + + public Boolean getHasFinancialFlag() { + return hasFinancialFlag; + } + + public void setHasFinancialFlag(Boolean hasFinancialFlag) { + this.hasFinancialFlag = hasFinancialFlag; + } } \ No newline at end of file diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadComponent.java b/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadComponent.java index 7cfb4ccc..850a624c 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadComponent.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadComponent.java @@ -34,6 +34,7 @@ public class DepotHeadComponent implements ICommonQuery { String type = StringUtil.getInfo(search, "type"); String subType = StringUtil.getInfo(search, "subType"); String roleType = StringUtil.getInfo(search, "roleType"); + String hasDebt = StringUtil.getInfo(search, "hasDebt"); String status = StringUtil.getInfo(search, "status"); String purchaseStatus = StringUtil.getInfo(search, "purchaseStatus"); String number = StringUtil.getInfo(search, "number"); @@ -46,8 +47,8 @@ public class DepotHeadComponent implements ICommonQuery { Long depotId = StringUtil.parseStrLong(StringUtil.getInfo(search, "depotId")); Long accountId = StringUtil.parseStrLong(StringUtil.getInfo(search, "accountId")); String remark = StringUtil.getInfo(search, "remark"); - return depotHeadService.select(type, subType, roleType, status, purchaseStatus, number, linkNumber, beginTime, endTime, materialParam, - organId, creator, depotId, accountId, remark, QueryUtils.offset(map), QueryUtils.rows(map)); + return depotHeadService.select(type, subType, roleType, hasDebt, status, purchaseStatus, number, linkNumber, + beginTime, endTime, materialParam, organId, creator, depotId, accountId, remark, QueryUtils.offset(map), QueryUtils.rows(map)); } @Override @@ -56,6 +57,7 @@ public class DepotHeadComponent implements ICommonQuery { String type = StringUtil.getInfo(search, "type"); String subType = StringUtil.getInfo(search, "subType"); String roleType = StringUtil.getInfo(search, "roleType"); + String hasDebt = StringUtil.getInfo(search, "hasDebt"); String status = StringUtil.getInfo(search, "status"); String purchaseStatus = StringUtil.getInfo(search, "purchaseStatus"); String number = StringUtil.getInfo(search, "number"); @@ -68,8 +70,8 @@ public class DepotHeadComponent implements ICommonQuery { Long depotId = StringUtil.parseStrLong(StringUtil.getInfo(search, "depotId")); Long accountId = StringUtil.parseStrLong(StringUtil.getInfo(search, "accountId")); String remark = StringUtil.getInfo(search, "remark"); - return depotHeadService.countDepotHead(type, subType, roleType, status, purchaseStatus, number, linkNumber, beginTime, endTime, materialParam, - organId, creator, depotId, accountId, remark); + return depotHeadService.countDepotHead(type, subType, roleType, hasDebt, status, purchaseStatus, number, linkNumber, + beginTime, endTime, materialParam, organId, creator, depotId, accountId, remark); } @Override diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java index 8cd4f860..dd7319dc 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java @@ -14,6 +14,7 @@ import com.jsh.erp.datasource.vo.DepotHeadVo4StatementAccount; import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.exception.JshException; import com.jsh.erp.service.account.AccountService; +import com.jsh.erp.service.accountHead.AccountHeadService; import com.jsh.erp.service.accountItem.AccountItemService; import com.jsh.erp.service.depot.DepotService; import com.jsh.erp.service.depotItem.DepotItemService; @@ -77,6 +78,8 @@ public class DepotHeadService { @Resource private AccountService accountService; @Resource + private AccountHeadService accountHeadService; + @Resource private AccountItemService accountItemService; @Resource DepotItemMapperEx depotItemMapperEx; @@ -105,7 +108,7 @@ public class DepotHeadService { return list; } - public List select(String type, String subType, String roleType, String status, String purchaseStatus, String number, String linkNumber, + public List select(String type, String subType, String roleType, String hasDebt, String status, String purchaseStatus, String number, String linkNumber, String beginTime, String endTime, String materialParam, Long organId, Long creator, Long depotId, Long accountId, String remark, int offset, int rows) throws Exception { List resList = new ArrayList<>(); List list=new ArrayList<>(); @@ -119,7 +122,7 @@ public class DepotHeadService { Map accountMap = accountService.getAccountMap(); beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME); endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); - list=depotHeadMapperEx.selectByConditionDepotHead(type, subType, creatorArray, statusArray, purchaseStatusArray, number, linkNumber, beginTime, endTime, + list=depotHeadMapperEx.selectByConditionDepotHead(type, subType, creatorArray, hasDebt, statusArray, purchaseStatusArray, number, linkNumber, beginTime, endTime, materialParam, organId, organArray, creator, depotId, depotArray, accountId, remark, offset, rows); if (null != list) { for (DepotHeadVo4List dh : list) { @@ -145,6 +148,14 @@ public class DepotHeadService { dh.setDeposit(BigDecimal.ZERO); } dh.setFinishDeposit(depotHeadMapperEx.getFinishDepositByNumber(dh.getNumber())); + //欠款计算 + BigDecimal discountLastMoney = dh.getDiscountLastMoney()!=null?dh.getDiscountLastMoney():BigDecimal.ZERO; + BigDecimal otherMoney = dh.getOtherMoney()!=null?dh.getOtherMoney():BigDecimal.ZERO; + BigDecimal changeAmount = dh.getChangeAmount()!=null?dh.getChangeAmount():BigDecimal.ZERO; + dh.setDebt(discountLastMoney.add(otherMoney).subtract((dh.getDeposit().add(changeAmount)))); + //是否有付款单或收款单 + int financialBillNoSize = accountHeadService.getFinancialBillNoByBillId(dh.getId()).size(); + dh.setHasFinancialFlag(financialBillNoSize>0); if(StringUtil.isNotEmpty(dh.getSalesMan())) { dh.setSalesManStr(personService.getPersonByMapAndIds(personMap,dh.getSalesMan())); } @@ -170,7 +181,7 @@ public class DepotHeadService { return resList; } - public Long countDepotHead(String type, String subType, String roleType, String status, String purchaseStatus, String number, String linkNumber, + public Long countDepotHead(String type, String subType, String roleType, String hasDebt, String status, String purchaseStatus, String number, String linkNumber, String beginTime, String endTime, String materialParam, Long organId, Long creator, Long depotId, Long accountId, String remark) throws Exception{ Long result=null; try{ @@ -181,7 +192,7 @@ public class DepotHeadService { String [] organArray = getOrganArray(subType, purchaseStatus); beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME); endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); - result=depotHeadMapperEx.countsByDepotHead(type, subType, creatorArray, statusArray, purchaseStatusArray, number, linkNumber, beginTime, endTime, + result=depotHeadMapperEx.countsByDepotHead(type, subType, creatorArray, hasDebt, statusArray, purchaseStatusArray, number, linkNumber, beginTime, endTime, materialParam, organId, organArray, creator, depotId, depotArray, accountId, remark); }catch(Exception e){ JshException.readFail(logger, e); diff --git a/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml index 50e0f231..c51185f4 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml @@ -134,6 +134,12 @@ and (dh.account_id=#{accountId} or dh.account_id_list like #{bindAccountId}) + + and (ifnull(dh.discount_last_money,0)+ifnull(dh.other_money,0)-ifnull(dh.deposit,0)-abs(ifnull(dh.change_amount,0))>0) + + + and (ifnull(dh.discount_last_money,0)+ifnull(dh.other_money,0)-ifnull(dh.deposit,0)-abs(ifnull(dh.change_amount,0))=0) + and (dh.remark like #{bindRemark} or di.remark like #{bindRemark}) @@ -224,6 +230,12 @@ and (dh.account_id=#{accountId} or dh.account_id_list like #{bindAccountId}) + + and (ifnull(dh.discount_last_money,0)+ifnull(dh.other_money,0)-ifnull(dh.deposit,0)-abs(ifnull(dh.change_amount,0))>0) + + + and (ifnull(dh.discount_last_money,0)+ifnull(dh.other_money,0)-ifnull(dh.deposit,0)-abs(ifnull(dh.change_amount,0))=0) + and (dh.remark like #{bindRemark} or di.remark like #{bindRemark})