diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java index 73c74337..739778e2 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java @@ -7,6 +7,7 @@ import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.*; import com.jsh.erp.datasource.vo.DepotItemStockWarningCount; import com.jsh.erp.datasource.vo.DepotItemVoBatchNumberList; +import com.jsh.erp.datasource.vo.InOutPriceVo; import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.depot.DepotService; import com.jsh.erp.service.depotHead.DepotHeadService; @@ -806,33 +807,69 @@ public class DepotItemController { Map map = new HashMap(); try { Long userId = userService.getUserId(request); + List monthList = Tools.getLastMonths(6); + String beginTime = Tools.firstDayOfMonth(monthList.get(0)) + BusinessConstants.DAY_FIRST_TIME; + String endTime = Tools.getNow() + BusinessConstants.DAY_LAST_TIME; + List inOrOutPriceList = depotItemService.inOrOutPriceList(beginTime, endTime); String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); - List list = Tools.getLastMonths(6); JSONArray buyPriceList = new JSONArray(); - for(String month: list) { + for(String month: monthList) { JSONObject obj = new JSONObject(); - BigDecimal outPrice = depotItemService.inOrOutPrice("入库", "采购", month); - BigDecimal inPrice = depotItemService.inOrOutPrice("出库", "采购退货", month); + BigDecimal outPrice = BigDecimal.ZERO; + BigDecimal inPrice = BigDecimal.ZERO; + for(InOutPriceVo item: inOrOutPriceList) { + String billOperMonth = Tools.dateToStr(item.getOperTime(), "yyyy-MM"); + if(month.equals(billOperMonth)) { + if("入库".equals(item.getType()) && "采购".equals(item.getSubType())) { + outPrice = outPrice.add(item.getDiscountLastMoney()); + } + if("出库".equals(item.getType()) && "采购退货".equals(item.getSubType())) { + inPrice = inPrice.add(item.getDiscountLastMoney()); + } + } + } obj.put("x", month); obj.put("y", roleService.parseHomePriceByLimit(outPrice.subtract(inPrice), "buy", priceLimit, "***", request)); buyPriceList.add(obj); } map.put("buyPriceList", buyPriceList); JSONArray salePriceList = new JSONArray(); - for(String month: list) { + for(String month: monthList) { JSONObject obj = new JSONObject(); - BigDecimal outPrice = depotItemService.inOrOutPrice("出库", "销售", month); - BigDecimal inPrice = depotItemService.inOrOutPrice("入库", "销售退货", month); + BigDecimal outPrice = BigDecimal.ZERO; + BigDecimal inPrice = BigDecimal.ZERO; + for(InOutPriceVo item: inOrOutPriceList) { + String billOperMonth = Tools.dateToStr(item.getOperTime(), "yyyy-MM"); + if(month.equals(billOperMonth)) { + if("出库".equals(item.getType()) && "销售".equals(item.getSubType())) { + outPrice = outPrice.add(item.getDiscountLastMoney()); + } + if("入库".equals(item.getType()) && "销售退货".equals(item.getSubType())) { + inPrice = inPrice.add(item.getDiscountLastMoney()); + } + } + } obj.put("x", month); obj.put("y", roleService.parseHomePriceByLimit(outPrice.subtract(inPrice), "sale", priceLimit, "***", request)); salePriceList.add(obj); } map.put("salePriceList", salePriceList); JSONArray retailPriceList = new JSONArray(); - for(String month: list) { + for(String month: monthList) { JSONObject obj = new JSONObject(); - BigDecimal outPrice = depotItemService.inOrOutRetailPrice("出库", "零售", month); - BigDecimal inPrice = depotItemService.inOrOutRetailPrice("入库", "零售退货", month); + BigDecimal outPrice = BigDecimal.ZERO; + BigDecimal inPrice = BigDecimal.ZERO; + for(InOutPriceVo item: inOrOutPriceList) { + String billOperMonth = Tools.dateToStr(item.getOperTime(), "yyyy-MM"); + if(month.equals(billOperMonth)) { + if("出库".equals(item.getType()) && "零售".equals(item.getSubType())) { + outPrice = outPrice.add(item.getTotalPrice().abs()); + } + if("入库".equals(item.getType()) && "零售退货".equals(item.getSubType())) { + inPrice = inPrice.add(item.getTotalPrice().abs()); + } + } + } obj.put("x", month); obj.put("y", roleService.parseHomePriceByLimit(outPrice.subtract(inPrice), "retail", priceLimit, "***", request)); retailPriceList.add(obj); 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 0e47a91b..5616a718 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 @@ -241,18 +241,7 @@ public interface DepotHeadMapperEx { List getDepotHeadListByCreator(@Param("creatorArray") String[] creatorArray); - BigDecimal getBuyAndSaleBasicStatistics( - @Param("type") String type, - @Param("subType") String subType, - @Param("hasSupplier") Integer hasSupplier, - @Param("beginTime") String beginTime, - @Param("endTime") String endTime, - @Param("creatorArray") String[] creatorArray, - @Param("forceFlag") Boolean forceFlag); - - BigDecimal getBuyAndSaleRetailStatistics( - @Param("type") String type, - @Param("subType") String subType, + List getBuyAndSaleStatisticsList( @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("creatorArray") String[] creatorArray, diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java index 698219e5..c64b1c73 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java @@ -4,6 +4,7 @@ import com.jsh.erp.datasource.entities.*; import com.jsh.erp.datasource.vo.DepotItemStockWarningCount; import com.jsh.erp.datasource.vo.DepotItemVo4Stock; import com.jsh.erp.datasource.vo.DepotItemVoBatchNumberList; +import com.jsh.erp.datasource.vo.InOutPriceVo; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; @@ -133,17 +134,7 @@ public interface DepotItemMapperEx { @Param("depotList") List depotList, @Param("forceFlag") Boolean forceFlag); - BigDecimal inOrOutPrice( - @Param("type") String type, - @Param("subType") String subType, - @Param("beginTime") String beginTime, - @Param("endTime") String endTime, - @Param("creatorArray") String[] creatorArray, - @Param("forceFlag") Boolean forceFlag); - - BigDecimal inOrOutRetailPrice( - @Param("type") String type, - @Param("subType") String subType, + List inOrOutPriceList( @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("creatorArray") String[] creatorArray, diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/InOutPriceVo.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/InOutPriceVo.java new file mode 100644 index 00000000..f2cd4250 --- /dev/null +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/vo/InOutPriceVo.java @@ -0,0 +1,27 @@ +package com.jsh.erp.datasource.vo; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Author jishenghua + * @Date 2024-04-26 22:23 + */ +@Data +public class InOutPriceVo { + + private Long id; + + private BigDecimal discountLastMoney; + + private BigDecimal totalPrice; + + private String type; + + private String subType; + + private Date operTime; + +} 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 8756b23f..a794cd63 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 @@ -1224,60 +1224,126 @@ public class DepotHeadService { String yearBegin, String yearEnd, HttpServletRequest request) throws Exception { Long userId = userService.getUserId(request); String priceLimit = userService.getRoleTypeByUserId(userId).getPriceLimit(); + Boolean forceFlag = systemConfigService.getForceApprovalFlag(); String [] creatorArray = getCreatorArray(); + List inOutPriceVoList = depotHeadMapperEx.getBuyAndSaleStatisticsList(yearBegin, yearEnd, creatorArray, forceFlag); Map map = new HashMap<>(); //今日 - BigDecimal todayBuy = getBuyAndSaleBasicStatistics("入库", "采购", - 1, today, getNow3(), creatorArray); //今日采购入库 - BigDecimal todayBuyBack = getBuyAndSaleBasicStatistics("出库", "采购退货", - 1, today, getNow3(), creatorArray); //今日采购退货 - BigDecimal todaySale = getBuyAndSaleBasicStatistics("出库", "销售", - 1, today, getNow3(), creatorArray); //今日销售出库 - BigDecimal todaySaleBack = getBuyAndSaleBasicStatistics("入库", "销售退货", - 1, today, getNow3(), creatorArray); //今日销售退货 - BigDecimal todayRetailSale = getBuyAndSaleRetailStatistics("出库", "零售", - today, getNow3(), creatorArray); //今日零售出库 - BigDecimal todayRetailSaleBack = getBuyAndSaleRetailStatistics("入库", "零售退货", - today, getNow3(), creatorArray); //今日零售退货 + BigDecimal todayBuy = BigDecimal.ZERO; //今日采购入库 + BigDecimal todayBuyBack = BigDecimal.ZERO; //今日采购退货 + BigDecimal todaySale = BigDecimal.ZERO; //今日销售出库 + BigDecimal todaySaleBack = BigDecimal.ZERO; //今日销售退货 + BigDecimal todayRetailSale = BigDecimal.ZERO; //今日零售出库 + BigDecimal todayRetailSaleBack = BigDecimal.ZERO; //今日零售退货 + for(InOutPriceVo item: inOutPriceVoList) { + if(item.getOperTime().compareTo(Tools.strToDate(today))>=0 && item.getOperTime().compareTo(Tools.strToDate(getNow3()))<=0) { + if("入库".equals(item.getType()) && "采购".equals(item.getSubType())) { + todayBuy = todayBuy.add(item.getDiscountLastMoney()); + } + if("出库".equals(item.getType()) && "采购退货".equals(item.getSubType())) { + todayBuyBack = todayBuyBack.add(item.getDiscountLastMoney()); + } + if("出库".equals(item.getType()) && "销售".equals(item.getSubType())) { + todaySale = todaySale.add(item.getDiscountLastMoney()); + } + if("入库".equals(item.getType()) && "销售退货".equals(item.getSubType())) { + todaySaleBack = todaySaleBack.add(item.getDiscountLastMoney()); + } + if("出库".equals(item.getType()) && "零售".equals(item.getSubType())) { + todayRetailSale = todayRetailSale.add(item.getTotalPrice().abs()); + } + if("入库".equals(item.getType()) && "零售退货".equals(item.getSubType())) { + todayRetailSaleBack = todayRetailSaleBack.add(item.getTotalPrice().abs()); + } + } + } //本月 - BigDecimal monthBuy = getBuyAndSaleBasicStatistics("入库", "采购", - 1, monthFirstDay, getNow3(), creatorArray); //本月采购入库 - BigDecimal monthBuyBack = getBuyAndSaleBasicStatistics("出库", "采购退货", - 1, monthFirstDay, getNow3(), creatorArray); //本月采购退货 - BigDecimal monthSale = getBuyAndSaleBasicStatistics("出库", "销售", - 1,monthFirstDay, getNow3(), creatorArray); //本月销售出库 - BigDecimal monthSaleBack = getBuyAndSaleBasicStatistics("入库", "销售退货", - 1,monthFirstDay, getNow3(), creatorArray); //本月销售退货 - BigDecimal monthRetailSale = getBuyAndSaleRetailStatistics("出库", "零售", - monthFirstDay, getNow3(), creatorArray); //本月零售出库 - BigDecimal monthRetailSaleBack = getBuyAndSaleRetailStatistics("入库", "零售退货", - monthFirstDay, getNow3(), creatorArray); //本月零售退货 + BigDecimal monthBuy = BigDecimal.ZERO; //本月采购入库 + BigDecimal monthBuyBack = BigDecimal.ZERO; //本月采购退货 + BigDecimal monthSale = BigDecimal.ZERO; //本月销售出库 + BigDecimal monthSaleBack = BigDecimal.ZERO; //本月销售退货 + BigDecimal monthRetailSale = BigDecimal.ZERO; //本月零售出库 + BigDecimal monthRetailSaleBack = BigDecimal.ZERO; //本月零售退货 + for(InOutPriceVo item: inOutPriceVoList) { + if(item.getOperTime().compareTo(Tools.strToDate(monthFirstDay))>=0 && item.getOperTime().compareTo(Tools.strToDate(getNow3()))<=0) { + if("入库".equals(item.getType()) && "采购".equals(item.getSubType())) { + monthBuy = monthBuy.add(item.getDiscountLastMoney()); + } + if("出库".equals(item.getType()) && "采购退货".equals(item.getSubType())) { + monthBuyBack = monthBuyBack.add(item.getDiscountLastMoney()); + } + if("出库".equals(item.getType()) && "销售".equals(item.getSubType())) { + monthSale = monthSale.add(item.getDiscountLastMoney()); + } + if("入库".equals(item.getType()) && "销售退货".equals(item.getSubType())) { + monthSaleBack = monthSaleBack.add(item.getDiscountLastMoney()); + } + if("出库".equals(item.getType()) && "零售".equals(item.getSubType())) { + monthRetailSale = monthRetailSale.add(item.getTotalPrice().abs()); + } + if("入库".equals(item.getType()) && "零售退货".equals(item.getSubType())) { + monthRetailSaleBack = monthRetailSaleBack.add(item.getTotalPrice().abs()); + } + } + } //昨日 - BigDecimal yesterdayBuy = getBuyAndSaleBasicStatistics("入库", "采购", - 1, yesterdayBegin, yesterdayEnd, creatorArray); //昨日采购入库 - BigDecimal yesterdayBuyBack = getBuyAndSaleBasicStatistics("出库", "采购退货", - 1, yesterdayBegin, yesterdayEnd, creatorArray); //昨日采购退货 - BigDecimal yesterdaySale = getBuyAndSaleBasicStatistics("出库", "销售", - 1, yesterdayBegin, yesterdayEnd, creatorArray); //昨日销售出库 - BigDecimal yesterdaySaleBack = getBuyAndSaleBasicStatistics("入库", "销售退货", - 1, yesterdayBegin, yesterdayEnd, creatorArray); //昨日销售退货 - BigDecimal yesterdayRetailSale = getBuyAndSaleRetailStatistics("出库", "零售", - yesterdayBegin, yesterdayEnd, creatorArray); //昨日零售出库 - BigDecimal yesterdayRetailSaleBack = getBuyAndSaleRetailStatistics("入库", "零售退货", - yesterdayBegin, yesterdayEnd, creatorArray); //昨日零售退货 + BigDecimal yesterdayBuy = BigDecimal.ZERO; //昨日采购入库 + BigDecimal yesterdayBuyBack = BigDecimal.ZERO; //昨日采购退货 + BigDecimal yesterdaySale = BigDecimal.ZERO; //昨日销售出库 + BigDecimal yesterdaySaleBack = BigDecimal.ZERO; //昨日销售退货 + BigDecimal yesterdayRetailSale = BigDecimal.ZERO; //昨日零售出库 + BigDecimal yesterdayRetailSaleBack = BigDecimal.ZERO; //昨日零售退货 + for(InOutPriceVo item: inOutPriceVoList) { + if(item.getOperTime().compareTo(Tools.strToDate(yesterdayBegin))>=0 && item.getOperTime().compareTo(Tools.strToDate(yesterdayEnd))<=0) { + if("入库".equals(item.getType()) && "采购".equals(item.getSubType())) { + yesterdayBuy = yesterdayBuy.add(item.getDiscountLastMoney()); + } + if("出库".equals(item.getType()) && "采购退货".equals(item.getSubType())) { + yesterdayBuyBack = yesterdayBuyBack.add(item.getDiscountLastMoney()); + } + if("出库".equals(item.getType()) && "销售".equals(item.getSubType())) { + yesterdaySale = yesterdaySale.add(item.getDiscountLastMoney()); + } + if("入库".equals(item.getType()) && "销售退货".equals(item.getSubType())) { + yesterdaySaleBack = yesterdaySaleBack.add(item.getDiscountLastMoney()); + } + if("出库".equals(item.getType()) && "零售".equals(item.getSubType())) { + yesterdayRetailSale = yesterdayRetailSale.add(item.getTotalPrice().abs()); + } + if("入库".equals(item.getType()) && "零售退货".equals(item.getSubType())) { + yesterdayRetailSaleBack = yesterdayRetailSaleBack.add(item.getTotalPrice().abs()); + } + } + } //今年 - BigDecimal yearBuy = getBuyAndSaleBasicStatistics("入库", "采购", - 1, yearBegin, yearEnd, creatorArray); //今年采购入库 - BigDecimal yearBuyBack = getBuyAndSaleBasicStatistics("出库", "采购退货", - 1, yearBegin, yearEnd, creatorArray); //今年采购退货 - BigDecimal yearSale = getBuyAndSaleBasicStatistics("出库", "销售", - 1, yearBegin, yearEnd, creatorArray); //今年销售出库 - BigDecimal yearSaleBack = getBuyAndSaleBasicStatistics("入库", "销售退货", - 1, yearBegin, yearEnd, creatorArray); //今年销售退货 - BigDecimal yearRetailSale = getBuyAndSaleRetailStatistics("出库", "零售", - yearBegin, yearEnd, creatorArray); //今年零售出库 - BigDecimal yearRetailSaleBack = getBuyAndSaleRetailStatistics("入库", "零售退货", - yearBegin, yearEnd, creatorArray); //今年零售退货 + BigDecimal yearBuy = BigDecimal.ZERO; //今年采购入库 + BigDecimal yearBuyBack = BigDecimal.ZERO; //今年采购退货 + BigDecimal yearSale = BigDecimal.ZERO; //今年销售出库 + BigDecimal yearSaleBack = BigDecimal.ZERO; //今年销售退货 + BigDecimal yearRetailSale = BigDecimal.ZERO; //今年零售出库 + BigDecimal yearRetailSaleBack = BigDecimal.ZERO; //今年零售退货 + for(InOutPriceVo item: inOutPriceVoList) { + if(item.getOperTime().compareTo(Tools.strToDate(yearBegin))>=0 && item.getOperTime().compareTo(Tools.strToDate(yearEnd))<=0) { + if("入库".equals(item.getType()) && "采购".equals(item.getSubType())) { + yearBuy = yearBuy.add(item.getDiscountLastMoney()); + } + if("出库".equals(item.getType()) && "采购退货".equals(item.getSubType())) { + yearBuyBack = yearBuyBack.add(item.getDiscountLastMoney()); + } + if("出库".equals(item.getType()) && "销售".equals(item.getSubType())) { + yearSale = yearSale.add(item.getDiscountLastMoney()); + } + if("入库".equals(item.getType()) && "销售退货".equals(item.getSubType())) { + yearSaleBack = yearSaleBack.add(item.getDiscountLastMoney()); + } + if("出库".equals(item.getType()) && "零售".equals(item.getSubType())) { + yearRetailSale = yearRetailSale.add(item.getTotalPrice().abs()); + } + if("入库".equals(item.getType()) && "零售退货".equals(item.getSubType())) { + yearRetailSaleBack = yearRetailSaleBack.add(item.getTotalPrice().abs()); + } + } + } map.put("todayBuy", roleService.parseHomePriceByLimit(todayBuy.subtract(todayBuyBack), "buy", priceLimit, "***", request)); map.put("todaySale", roleService.parseHomePriceByLimit(todaySale.subtract(todaySaleBack), "sale", priceLimit, "***", request)); map.put("todayRetailSale", roleService.parseHomePriceByLimit(todayRetailSale.subtract(todayRetailSaleBack), "retail", priceLimit, "***", request)); @@ -1293,18 +1359,6 @@ public class DepotHeadService { return map; } - public BigDecimal getBuyAndSaleBasicStatistics(String type, String subType, Integer hasSupplier, - String beginTime, String endTime, String[] creatorArray) throws Exception { - Boolean forceFlag = systemConfigService.getForceApprovalFlag(); - return depotHeadMapperEx.getBuyAndSaleBasicStatistics(type, subType, hasSupplier, beginTime, endTime, creatorArray, forceFlag); - } - - public BigDecimal getBuyAndSaleRetailStatistics(String type, String subType, - String beginTime, String endTime, String[] creatorArray) throws Exception { - Boolean forceFlag = systemConfigService.getForceApprovalFlag(); - return depotHeadMapperEx.getBuyAndSaleRetailStatistics(type, subType, beginTime, endTime, creatorArray, forceFlag).abs(); - } - public DepotHead getDepotHead(String number)throws Exception { DepotHead depotHead = new DepotHead(); try{ diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java index a89a33ad..df8629c5 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java @@ -9,6 +9,7 @@ import com.jsh.erp.datasource.mappers.*; import com.jsh.erp.datasource.vo.DepotItemStockWarningCount; import com.jsh.erp.datasource.vo.DepotItemVo4Stock; import com.jsh.erp.datasource.vo.DepotItemVoBatchNumberList; +import com.jsh.erp.datasource.vo.InOutPriceVo; import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.exception.JshException; import com.jsh.erp.service.depot.DepotService; @@ -369,44 +370,18 @@ public class DepotItemService { } /** - * 统计采购或销售的总金额 - * @param type - * @param subType - * @param month + * 统计采购、销售、零售的总金额列表 + * @param beginTime + * @param endTime * @return * @throws Exception */ - public BigDecimal inOrOutPrice(String type, String subType, String month) throws Exception{ - BigDecimal result= BigDecimal.ZERO; + public List inOrOutPriceList(String beginTime, String endTime) throws Exception{ + List result = new ArrayList<>(); try{ String [] creatorArray = depotHeadService.getCreatorArray(); Boolean forceFlag = systemConfigService.getForceApprovalFlag(); - String beginTime = Tools.firstDayOfMonth(month) + BusinessConstants.DAY_FIRST_TIME; - String endTime = Tools.lastDayOfMonth(month) + BusinessConstants.DAY_LAST_TIME; - result = depotItemMapperEx.inOrOutPrice(type, subType, beginTime, endTime, creatorArray, forceFlag); - }catch(Exception e){ - JshException.readFail(logger, e); - } - return result; - } - - /** - * 统计零售的总金额 - * @param type - * @param subType - * @param month - * @return - * @throws Exception - */ - public BigDecimal inOrOutRetailPrice(String type, String subType, String month) throws Exception{ - BigDecimal result= BigDecimal.ZERO; - try{ - String [] creatorArray = depotHeadService.getCreatorArray(); - Boolean forceFlag = systemConfigService.getForceApprovalFlag(); - String beginTime = Tools.firstDayOfMonth(month) + BusinessConstants.DAY_FIRST_TIME; - String endTime = Tools.lastDayOfMonth(month) + BusinessConstants.DAY_LAST_TIME; - result = depotItemMapperEx.inOrOutRetailPrice(type, subType, beginTime, endTime, creatorArray, forceFlag); - result = result.abs(); + result = depotItemMapperEx.inOrOutPriceList(beginTime, endTime, creatorArray, forceFlag); }catch(Exception e){ JshException.readFail(logger, e); } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/utils/Tools.java b/jshERP-boot/src/main/java/com/jsh/erp/utils/Tools.java index ad3b29c6..c5491893 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/utils/Tools.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/utils/Tools.java @@ -83,6 +83,29 @@ public class Tools { return new SimpleDateFormat("yyyy-MM").format(new Date()); } + /** + * 获得指定时间,格式为yyyy-MM-dd HH:mm:ss或yyyy-MM-dd + * + * @return 格式化后的日期格式 + */ + public static String dateToStr(Date date, String format) { + if(date!=null) { + return new SimpleDateFormat(format).format(date); + } else { + return ""; + } + } + + /** + * 将日期的字符串格式转为时间格式 + * @param dateString + * @return + * @throws ParseException + */ + public static Date strToDate(String dateString) throws ParseException { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 日期格式 + return formatter.parse(dateString); // 字符串转换为Date + } /** * 获取指定日期格式 yyyy-MM-dd * diff --git a/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml index c1178807..9fbc43b3 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml @@ -1086,26 +1086,12 @@ and ifnull(delete_flag,'0') !='1' - + select distinct dh.id, dh.discount_last_money, dh.total_price, dh.type, dh.sub_type, dh.oper_time from jsh_depot_head dh - left join jsh_depot_item di on dh.id = di.header_id - where 1=1 - and di.id is not null - - and dh.type=#{type} - - - and dh.sub_type=#{subType} - - - and dh.organ_id is not null - - - and dh.organ_id is null - + left join jsh_depot_item di on dh.id = di.header_id and ifnull(di.delete_flag,'0') !='1' + where di.id is not null + and (dh.type='入库' or dh.type='出库') and dh.oper_time >= #{beginTime} @@ -1123,41 +1109,6 @@ ) and ifnull(dh.delete_flag,'0') !='1' - and ifnull(di.delete_flag,'0') !='1') tb - - - - + select distinct dh.id, dh.discount_last_money, dh.total_price, dh.type, dh.sub_type, dh.oper_time from jsh_depot_head dh - left join jsh_depot_item di on dh.id = di.header_id - where 1=1 - and di.id is not null - and dh.type=#{type} and dh.sub_type=#{subType} + left join jsh_depot_item di on dh.id = di.header_id and ifnull(di.delete_flag,'0') != '1' + where di.id is not null + and (dh.type='入库' or dh.type='出库') and dh.oper_time >= #{beginTime} and dh.oper_time <= #{endTime} @@ -651,32 +649,7 @@ ) - and ifnull(dh.delete_flag,'0') !='1' - and ifnull(di.delete_flag, '0') != '1') tb - - - +