|
|
|
@@ -10,6 +10,9 @@ import com.iformall.mapper.WxSettleMerchantMapper; |
|
|
|
import com.iformall.service.WxSettleMerchantService; |
|
|
|
import com.iformall.utils.DateUtils; |
|
|
|
import com.iformall.utils.ExcelExportUtils; |
|
|
|
import com.iformall.utils.PriceUtil; |
|
|
|
import com.iformall.utils.PriceUtilV2; |
|
|
|
|
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
@@ -40,7 +43,7 @@ public class WxSettleMerchantServiceImpl implements WxSettleMerchantService{ |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Map<String,Object> getMapDetail(WxSettleMerchant record) { |
|
|
|
public Map<String,Object> getMapDetail(WxSettleMerchant record,boolean needCalcute) { |
|
|
|
Map<String,Object> valueMap = new HashMap<String,Object>(); |
|
|
|
valueMap.put("beginTime", DateUtils.format(record.getBeginTime())); |
|
|
|
valueMap.put("endTime", DateUtils.format(record.getEndTime())); |
|
|
|
@@ -49,7 +52,15 @@ public class WxSettleMerchantServiceImpl implements WxSettleMerchantService{ |
|
|
|
valueMap.put("merchantCode", record.getMerchantCode()); |
|
|
|
valueMap.put("merchantPerson", record.getMerchantPerson()); |
|
|
|
valueMap.put("merchantPhone", record.getMerchantPhone()); |
|
|
|
valueMap.put("totalMoney", record.getTotalMoney()); |
|
|
|
|
|
|
|
if (needCalcute) { |
|
|
|
record.setCardMoney(calcuteByMoneyAndRate(record.getCardSaleMoney(),record.getCardRate())); |
|
|
|
record.setZfbMoney(calcuteByMoneyAndRate(record.getZfbSaleMoney(),record.getZfbRate())); |
|
|
|
record.setUnionMoney(calcuteByMoneyAndRate(record.getUnionSaleMoney(),record.getUnionRate())); |
|
|
|
record.setWxMoney(calcuteByMoneyAndRate(record.getWxSaleMoney(),record.getWxRate())); |
|
|
|
record.setEraseZeroMoney(calcuteByMoneyAndRate(record.getEraseZeroSaleMoney(),record.getEraseZeroRate())); |
|
|
|
record.setCashMoney(calcuteByMoneyAndRate(record.getCashSaleMoney(),record.getCashRate())); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
valueMap.put("cardSaleMoney", handleExcelData(record.getCardSaleMoney())); |
|
|
|
@@ -70,10 +81,12 @@ public class WxSettleMerchantServiceImpl implements WxSettleMerchantService{ |
|
|
|
valueMap.put("cashSaleMoney", handleExcelData(record.getCashSaleMoney())); |
|
|
|
valueMap.put("cashRate", handleExcelData(record.getCashRate())); |
|
|
|
valueMap.put("cashMoney", handleExcelData(record.getCashMoney())); |
|
|
|
valueMap.put("totalSaleMoney", calcuteAdd(record.getCardSaleMoney(),record.getZfbSaleMoney(),record.getUnionSaleMoney(), |
|
|
|
record.getWxSaleMoney(),record.getEraseZeroSaleMoney(),record.getCashSaleMoney())); |
|
|
|
valueMap.put("totalReduceMoney", calcuteAdd(record.getCardMoney(),record.getZfbMoney(),record.getUnionMoney(),record.getWxMoney(), |
|
|
|
record.getEraseZeroMoney(),record.getCashMoney())); |
|
|
|
BigDecimal totalSaleMoney = calcuteAdd(record.getCardSaleMoney(),record.getZfbSaleMoney(),record.getUnionSaleMoney(), |
|
|
|
record.getWxSaleMoney(),record.getEraseZeroSaleMoney(),record.getCashSaleMoney()); |
|
|
|
valueMap.put("totalSaleMoney", totalSaleMoney); |
|
|
|
BigDecimal totalReduceMoney = calcuteAdd(record.getCardMoney(),record.getZfbMoney(),record.getUnionMoney(),record.getWxMoney(), |
|
|
|
record.getEraseZeroMoney(),record.getCashMoney()); |
|
|
|
valueMap.put("totalReduceMoney", totalReduceMoney); |
|
|
|
|
|
|
|
|
|
|
|
valueMap.put("rentMoney", handleExcelData(record.getRentMoney())); |
|
|
|
@@ -85,13 +98,24 @@ public class WxSettleMerchantServiceImpl implements WxSettleMerchantService{ |
|
|
|
valueMap.put("otherMoney", handleExcelData(record.getOtherMoney())); |
|
|
|
valueMap.put("lastRemaining", handleExcelData(record.getLastRemaining())); |
|
|
|
valueMap.put("pointsRate", handleExcelData(record.getPointsRate())); |
|
|
|
if (needCalcute) { |
|
|
|
record.setPointsMoney(calcuteByMoneyAndRate(totalSaleMoney,record.getPointsRate())); |
|
|
|
} |
|
|
|
valueMap.put("pointsMoney", handleExcelData(record.getPointsMoney())); |
|
|
|
valueMap.put("totalTempMoney", calcuteAdd(record.getRentMoney(),record.getRentContractMoney(),record.getEmployeeManageMoney(),record.getSalesSlipMoney(), |
|
|
|
record.getSalary(),record.getEarnestMoney(),record.getOtherMoney(),record.getLastRemaining(),record.getPointsMoney())); |
|
|
|
BigDecimal totalTempMoney = calcuteAdd(record.getRentMoney(),record.getRentContractMoney(),record.getEmployeeManageMoney(),record.getSalesSlipMoney(), |
|
|
|
record.getSalary(),record.getEarnestMoney(),record.getOtherMoney(),record.getLastRemaining(),record.getPointsMoney()); |
|
|
|
valueMap.put("totalTempMoney", totalTempMoney); |
|
|
|
|
|
|
|
valueMap.put("totalMoneyDX", valueMap); |
|
|
|
valueMap.put("actualMoneyDX", valueMap); |
|
|
|
if (needCalcute) { |
|
|
|
record.setTotalMoney(totalSaleMoney.subtract(calcuteAdd(totalReduceMoney,totalTempMoney))); |
|
|
|
} |
|
|
|
|
|
|
|
valueMap.put("totalMoney", record.getTotalMoney()); |
|
|
|
valueMap.put("actualMoney", record.getActualMoney()); |
|
|
|
valueMap.put("totalMoneyDX", PriceUtilV2.number2CNMontrayUnit(record.getTotalMoney())); |
|
|
|
if (null != record.getActualMoney()) { |
|
|
|
valueMap.put("actualMoneyDX", PriceUtilV2.number2CNMontrayUnit(record.getActualMoney())); |
|
|
|
} |
|
|
|
|
|
|
|
valueMap.put("accountName", record.getAccountName()); |
|
|
|
valueMap.put("accountBank", record.getAccountBank()); |
|
|
|
@@ -99,6 +123,13 @@ public class WxSettleMerchantServiceImpl implements WxSettleMerchantService{ |
|
|
|
return valueMap; |
|
|
|
} |
|
|
|
|
|
|
|
private BigDecimal calcuteByMoneyAndRate(BigDecimal saleMoney,BigDecimal rate) { |
|
|
|
if (null == saleMoney || null == rate) { |
|
|
|
return new BigDecimal(0); |
|
|
|
} |
|
|
|
return saleMoney.multiply(rate).setScale(3,BigDecimal.ROUND_HALF_UP); |
|
|
|
} |
|
|
|
|
|
|
|
private BigDecimal calcuteAdd(BigDecimal... args) { |
|
|
|
BigDecimal result = new BigDecimal(0); |
|
|
|
for (int i = 0 ; i < args.length ; i ++) { |
|
|
|
@@ -138,10 +169,8 @@ public class WxSettleMerchantServiceImpl implements WxSettleMerchantService{ |
|
|
|
|
|
|
|
@Override |
|
|
|
public void exportData(WxSettleMerchant record, HttpServletRequest request, HttpServletResponse response) { |
|
|
|
Map<String,Object> valueMap = getMapDetail(record); |
|
|
|
Map<String,Object> valueMap = getMapDetail(record,false); |
|
|
|
ExcelExportUtils.exportByModel("excel/settle.xlsx","供应商结算单_"+record.getMerchantName(),"供应商结算单", valueMap,request,response); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|