diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java index 7b3a2c6e4..bc3828d4c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java @@ -204,6 +204,15 @@ public class WxAllBillController extends BillBaseController { if (null == wxMerchant.getId()) { return new ResultData(Result.ERROR,"请选择商户"); } + WxMerchantBillVo vo = getMerchantBillVo(wxMerchant); + if (null == vo) { + return new ResultData(); + } + + return new ResultData(vo); + } + + private WxMerchantBillVo getMerchantBillVo( WxMerchant wxMerchant) { wxMerchant.updateTenantInfo(getTenantInfo()); Date starttime = wxMerchant.getStarttime(); Date enttime = wxMerchant.getEndtime(); @@ -211,7 +220,7 @@ public class WxAllBillController extends BillBaseController { wxMerchant.setEndtime(null); WxMerchant m = wxMerchantService.selectById(wxMerchant.getId()); if (null == m) { - return new ResultData(Result.ERROR,"商户未查询到"); + return null; } WxMerchantBillVo vo = new WxMerchantBillVo(); vo.setMerchantId(m.getId()); @@ -224,7 +233,7 @@ public class WxAllBillController extends BillBaseController { //根据科目来 List sumList = billAllHelper.getFeesBillSum(wxMerchant,starttime, enttime); if (null == sumList ) { - return new ResultData(); + return null; } WxEnergyFees fq = new WxEnergyFees(); @@ -249,8 +258,18 @@ public class WxAllBillController extends BillBaseController { vo.setPaid(paid.toPlainString()); vo.setOwe(owe.toPlainString()); vo.setBillSumList(sumList); - - return new ResultData(vo); + return vo; + } + + @ApiOperation("预览结算单") + @PostMapping("viewSettleTemplate") + @TenantIgnore + public ResultData viewSettleTemplate(@RequestBody WxMerchant merchant,Long templateId) { + if (null == merchant.getId() || null == merchant.getFeesIdList() || merchant.getFeesIdList().size() <= 0 ) { + return new ResultData(Result.ERROR,"清选择商户和科目"); + } + WxMerchantBillVo vo = getMerchantBillVo(merchant); + return new ResultData(wxFinancePrintService.parseTemplateData(merchant.getTenantId(),templateId,merchant.getFeesIdList(),vo)); } /** @@ -752,16 +771,5 @@ public class WxAllBillController extends BillBaseController { record.setIsPreview(EnumYesOrNo.NO.getCode()); return new ResultData(wxAllBillService.getBillMonthSum(record)); } - - @ApiOperation("预览结算单") - @PostMapping("viewSettleTemplate") - @TenantIgnore - public ResultData viewSettleTemplate(@RequestBody WxMerchant merchant,Long templateId) { - if (null == merchant.getId()) { - return new ResultData(Result.ERROR,"清选择商户"); - } - merchant.updateTenantInfo(getTenantInfo()); - return new ResultData(wxFinancePrintService.parseTemplateData(merchant.getTenantId(),templateId,null,merchant)); - } } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java b/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java index 7915eccca..975073830 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java @@ -143,7 +143,7 @@ public class WxAllBill extends TenantEntity { returnPay = "0"; } if (StringUtils.isNotBlank(receivePay) && StringUtils.isNotBlank(pay)) { - String o = new BigDecimal(receivePay).subtract(new BigDecimal(pay)).subtract(new BigDecimal(returnPay)).subtract(new BigDecimal(setOff)).toPlainString(); + String o = new BigDecimal(receivePay).subtract(new BigDecimal(pay)).add(new BigDecimal(returnPay)).subtract(new BigDecimal(setOff)).toPlainString(); return o; } return "0"; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java index f9e1a2637..90895dd74 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java @@ -484,5 +484,7 @@ public class WxMerchant extends TenantEntity { public Integer toPayMerchant; @TableField(exist = false) public Integer isPreview; + @TableField(exist = false) + public List feesIdList; } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/PrintMerchantSettleVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/PrintMerchantSettleVo.java deleted file mode 100644 index 77fea0df5..000000000 --- a/mallinkService/src/main/java/com/iformall/domain/vo/PrintMerchantSettleVo.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.iformall.domain.vo; - -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - -@Data -public class PrintMerchantSettleVo implements Serializable{ - - private static final long serialVersionUID = 1L; - - private Date startDate; - - private Date endDate; - - private Date ReceiveDate; -} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java index 83b282bef..4c2aeaceb 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java @@ -54,6 +54,11 @@ public enum EnumBillAllType { return isFixedPrice; } + public static EnumBillAllType[] getDepositTypes() { + EnumBillAllType[] ret = new EnumBillAllType[] {RENT_DEPOSIT,PROPERTY_DEPOSIT,OTHER_DEPOSIT}; + return ret; + } + public static EnumBillAllType[] getSystemTypes() { EnumBillAllType[] ret = new EnumBillAllType[] {RENT,RENT_BUSSINESS_MANAGE,RENT_OPERATION_MANAGE, PROPERTY,PROPERTY_DEPOSIT}; diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java index b8fc87d89..89151dc13 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java @@ -36,7 +36,7 @@ public class PrintCustomedTableDataHandler{ } sb.append(">"); for (int j = 0 ; j < titleTds.size() ; j ++) { - Node td = titleTds.get(i); + Node td = titleTds.get(j); String tdclass = titleTr.attr("class"); String tdstyle = titleTr.attr("style"); String tdcolspan = titleTr.attr("colspan"); @@ -59,7 +59,7 @@ public class PrintCustomedTableDataHandler{ String[] fs = fieldName.split(","); if (null != fs) { for (int k = 0 ; k merchantMap,Map feesMap) { - PrintMerchantSettleVo receive = (PrintMerchantSettleVo) o; //根据科目来查询对应的信息 // if (name.equals("id")) { // return receive.getId(); diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java index 2b8f69e7e..19e2eb1f7 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java @@ -16,5 +16,5 @@ public interface WxFinancePrintService { void update(WxFinancePrintTemplate record); void copy(WxFinancePrintTemplate record); void setTemplatesDel(WxFinancePrintTemplate record); - List parseTemplateData(String tenantId,Long templateId,List dataIds,BaseEntity entity); + List parseTemplateData(String tenantId,Long templateId,List dataIds,Object entity); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java index 0f0692cb5..33da1529b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java @@ -24,6 +24,7 @@ import com.iformall.domain.vo.WxBillHotNotify; import com.iformall.domain.vo.WxBillNotify; import com.iformall.domain.vo.WxBillSum; import com.iformall.enums.EnumBillAction; +import com.iformall.enums.EnumBillAllType; import com.iformall.enums.EnumBillStatus; import com.iformall.enums.EnumRentShopType; import com.iformall.enums.EnumYesOrNo; @@ -386,6 +387,19 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill wxBillRent.updateTenantInfo(dto); wxBillRent.setUpdatetime(new Date()); wxBillRent.setReturnPay(oldpay.add(new BigDecimal(dto.getPayToMerchant())).toPlainString()); + //如果屎押金 + boolean isDeposit = false; + for (EnumBillAllType dep : EnumBillAllType.getDepositTypes()) { + if (dbBill.getBillType().intValue() == dep.getCode().intValue()) { + isDeposit = true; + break; + } + } + String owe = wxBillRent.getOwe(); +// if (isDeposit && ) { +// +// } + wxAllBillMapper.updateById(wxBillRent); this.addBillAction(EnumBillAction.RETURN, dto.getBillTypeValue(),dto.getId(), dto.getAddpay(), dto.getAddpay(),null,wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java index 1419ac556..181d5a095 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -20,8 +20,9 @@ import com.iformall.domain.po.WxFinanceReceive; import com.iformall.domain.po.WxFinanceReceiveBill; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.base.BaseEntity; -import com.iformall.domain.vo.PrintMerchantSettleVo; import com.iformall.domain.vo.PrintVo; +import com.iformall.domain.vo.WxBillSum; +import com.iformall.domain.vo.WxMerchantBillVo; import com.iformall.enums.EnumFinancePrintDataType; import com.iformall.enums.EnumYesOrNo; import com.iformall.exception.MallinkException; @@ -39,6 +40,7 @@ import com.iformall.service.WxFinanceService; import com.iformall.service.WxMerchantService; import com.iformall.service.WxShopService; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -182,7 +184,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { @Override - public List parseTemplateData(String tenantId, Long templateId, List dataIds,BaseEntity entity) { + public List parseTemplateData(String tenantId, Long templateId, List dataIds,Object entity) { WxFinancePrintTemplate template = this.getTemplateById(templateId); if (null == template) { return null; @@ -284,15 +286,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { } return voList; }else if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.RENT_OWE.getCode()) { - WxMerchant bq = (WxMerchant) entity; - List merchantList = wxMerchantService.findList(bq); - if (null == merchantList || merchantList.size() <= 0 ) { - return null; - } - WxMerchant m = merchantList.get(0); + WxMerchantBillVo bq = (WxMerchantBillVo) entity; + //打哪些科目 + List feesId = dataIds; List voList = new ArrayList(); - //TODO 获取结算单信息 - PrintMerchantSettleVo sv = null; PrintVo vo = new PrintVo(); vo.setDataId(templateId); @@ -303,12 +300,26 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { Integer isCustomedTable = ov.getInteger("isFmCustomizedTable"); if (null != isCustomedTable && EnumYesOrNo.YES.getCode().intValue() == isCustomedTable.intValue()) { //表格解析 + List sumlist = new ArrayList(); + BigDecimal receiveTotal = new BigDecimal(0); + BigDecimal payTotal = new BigDecimal(0); + BigDecimal setoffTotal = new BigDecimal(0); + BigDecimal returnTotal = new BigDecimal(0); + for (int k = 0 ; k< bq.getBillSumList().size() ; k++) { + WxBillSum billSum = bq.getBillSumList().get(k); + if (feesId.contains(billSum.getEnergyFeesId())) { + sumlist.add(billSum); + } + + } + + String componentContent = ov.getString("value"); - //if (null != billList) { - // printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList))); - //} +// if (null != billList) { +// printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList))); +// } }else { - ov.put("value", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),sv,merchantMap,feesMap)); + //ov.put("value", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),sv,merchantMap,feesMap)); } }