diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java index 2a5fe106a..5c880c789 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java @@ -4,6 +4,7 @@ import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.inout.IoOrderDetailResultEntity; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; import com.glxp.api.res.inout.IoOrderDetailResultResponse; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -25,5 +26,12 @@ public interface IoOrderDetailResultDao extends BaseMapperPlus filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest); - + /** + * 根据起止时间查询单据信息 + * + * @param beginOfDay + * @param endOfDay + * @return + */ + List selectStatDataByTime(@Param("date") String date); } diff --git a/src/main/java/com/glxp/api/req/inout/FilterStatDataDetailRequest.java b/src/main/java/com/glxp/api/req/inout/FilterStatDataDetailRequest.java index 337c0788f..490d0a74f 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterStatDataDetailRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterStatDataDetailRequest.java @@ -26,4 +26,8 @@ public class FilterStatDataDetailRequest extends ListPageRequest { */ private String recordKey; + /** + * 规格型号 + */ + private String ggxh; } diff --git a/src/main/java/com/glxp/api/req/inout/FilterStatDataRequest.java b/src/main/java/com/glxp/api/req/inout/FilterStatDataRequest.java index 9b405d0f5..166ca303a 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterStatDataRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterStatDataRequest.java @@ -24,11 +24,11 @@ public class FilterStatDataRequest extends ListPageRequest { /** * 开始时间 */ - private String startDate; + private String startTime; /** * 结束时间 */ - private String endDate; + private String endTime; } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoStatDayServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoStatDayServiceImpl.java index bb0b491eb..1a25c5450 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoStatDayServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoStatDayServiceImpl.java @@ -56,9 +56,7 @@ public class IoStatDayServiceImpl implements IoStatDayService { public void statData(Date date) { //汇总前一天的数据 DateTime yesterday = DateUtil.offsetDay(date, -1); - List orderDetailResultEntities = ioOrderDetailResultDao.selectList(new QueryWrapper() - .select("orderIdFk", "bindRlFk", "nameCode", "batchNo", "productDate", "expireDate", "coName", "spec", "price", "count", "reCount") - .between("createTime", DateUtil.beginOfDay(yesterday), DateUtil.endOfDay(yesterday))); + List orderDetailResultEntities = ioOrderDetailResultDao.selectStatDataByTime(yesterday.toString("yyyy-MM-dd")); if (CollUtil.isNotEmpty(orderDetailResultEntities)) { //声明用于存放汇总数据的集合 List dataList = new ArrayList<>(); @@ -71,43 +69,17 @@ public class IoStatDayServiceImpl implements IoStatDayService { if (order.getMainAction().equals(ConstantType.TYPE_PUT)) { //入库 statData.setInCount(orderDetailResultEntity.getReCount() + statData.getInCount()); - statData.setInPrice(orderDetailResultEntity.getPrice()); - BigDecimal inAmount = orderDetailResultEntity.getPrice().multiply(BigDecimal.valueOf(orderDetailResultEntity.getReCount())); - statData.setInAmount(inAmount.add(statData.getInAmount())); - - //计算结余金额 - long balanceCount; - BigDecimal balanceAmount; - if (statData.getBalanceCount() == 0) { - balanceCount = statData.getBeginCount() + statData.getInCount(); - balanceAmount = orderDetailResultEntity.getPrice().multiply(BigDecimal.valueOf(balanceCount)); - } else { - balanceCount = statData.getBalanceCount() + orderDetailResultEntity.getReCount(); - balanceAmount = statData.getBalanceAmount().add(statData.getInAmount()); + if (null != orderDetailResultEntity.getPrice()) { + BigDecimal inAmount = orderDetailResultEntity.getPrice().multiply(BigDecimal.valueOf(orderDetailResultEntity.getReCount())); + statData.setInAmount(inAmount.add(statData.getInAmount())); } - - statData.setBalanceCount(Long.valueOf(balanceCount).intValue()); - statData.setBalanceAmount(balanceAmount); } else if (order.getMainAction().equals(ConstantType.TYPE_OUT)) { //出库 statData.setOutCount(orderDetailResultEntity.getReCount() + statData.getOutCount()); - statData.setOutPrice(orderDetailResultEntity.getPrice()); - BigDecimal outAmount = statData.getBeginAmount().add(orderDetailResultEntity.getPrice().multiply(BigDecimal.valueOf(orderDetailResultEntity.getReCount()))); - statData.setOutAmount(outAmount.add(statData.getOutAmount())); - - //计算结余金额 - long balanceCount; - BigDecimal balanceAmount; - if (statData.getBalanceCount() == 0) { - balanceCount = Long.valueOf(statData.getBeginCount()) - orderDetailResultEntity.getReCount(); - balanceAmount = orderDetailResultEntity.getPrice().multiply(BigDecimal.valueOf(balanceCount)); - } else { - balanceCount = statData.getBalanceCount() + orderDetailResultEntity.getReCount(); - balanceAmount = statData.getBalanceAmount().subtract(statData.getOutAmount()); + if (null != orderDetailResultEntity.getPrice()) { + BigDecimal outAmount = orderDetailResultEntity.getPrice().multiply(BigDecimal.valueOf(orderDetailResultEntity.getReCount())); + statData.setOutAmount(outAmount.add(statData.getOutAmount())); } - - statData.setBalanceCount(Long.valueOf(balanceCount).intValue()); - statData.setBalanceAmount(balanceAmount); } }); @@ -137,7 +109,7 @@ public class IoStatDayServiceImpl implements IoStatDayService { private IoStatDayEntity getStatData(List dataList, IoOrderDetailResultEntity orderDetailResultEntity, DateTime yesterday) { if (CollUtil.isNotEmpty(dataList)) { for (IoStatDayEntity statDayEntity : dataList) { - if (statDayEntity.getRelIdFk().equals(orderDetailResultEntity.getBindRlFk())) { + if (Long.valueOf(statDayEntity.getRelIdFk()).equals(orderDetailResultEntity.getBindRlFk())) { if ((StrUtil.isNotBlank(statDayEntity.getBatchNo()) && StrUtil.isNotBlank(orderDetailResultEntity.getBatchNo())) && statDayEntity.getBatchNo().equals(orderDetailResultEntity.getBatchNo())) { return statDayEntity; } else if (StrUtil.isBlank(statDayEntity.getBatchNo()) && StrUtil.isBlank(orderDetailResultEntity.getBatchNo())) { @@ -161,11 +133,11 @@ public class IoStatDayServiceImpl implements IoStatDayService { statData.setBalancePrice(orderDetailResultEntity.getPrice()); //设置初始化出入库数量和价格 statData.setInCount(0); - statData.setInPrice(orderDetailResultEntity.getPrice()); + statData.setInPrice(null == orderDetailResultEntity.getPrice() ? BigDecimal.ZERO : orderDetailResultEntity.getPrice()); statData.setInAmount(BigDecimal.ZERO); statData.setOutCount(0); - statData.setOutPrice(orderDetailResultEntity.getPrice()); + statData.setOutPrice(null == orderDetailResultEntity.getPrice() ? BigDecimal.ZERO : orderDetailResultEntity.getPrice()); statData.setOutAmount(BigDecimal.ZERO); //设置期初数据 @@ -173,11 +145,11 @@ public class IoStatDayServiceImpl implements IoStatDayService { if (null == statDayEntity) { //第一次汇总日数据 statData.setBeginCount(0); - statData.setBeginPrice(orderDetailResultEntity.getPrice()); + statData.setBeginPrice(null == orderDetailResultEntity.getPrice() ? BigDecimal.ZERO : orderDetailResultEntity.getPrice()); statData.setBeginAmount(BigDecimal.ZERO); statData.setBalanceCount(0); - statData.setBalancePrice(orderDetailResultEntity.getPrice()); + statData.setBalanceAmount(BigDecimal.ZERO); } else { //已存在此产品汇总数据,基于旧数据生成新的汇总数据 statData.setBeginCount(statDayEntity.getBalanceCount()); @@ -189,7 +161,7 @@ public class IoStatDayServiceImpl implements IoStatDayService { } //设置结余价格 - statData.setBalancePrice(orderDetailResultEntity.getPrice()); + statData.setBalancePrice(null == orderDetailResultEntity.getPrice() ? BigDecimal.ZERO : orderDetailResultEntity.getPrice()); dataList.add(statData); return statData; @@ -205,7 +177,7 @@ public class IoStatDayServiceImpl implements IoStatDayService { //生成汇总记录 IoStatOrderEntity statOrderEntity = new IoStatOrderEntity(); //生成记录号 - OrderNoTypeBean orderNoTypeBean = new OrderNoTypeBean("STATD", " yyyyMMdd"); + OrderNoTypeBean orderNoTypeBean = new OrderNoTypeBean("STATD", "yyyyMMdd"); String orderNo = gennerOrderUtils.createStatOrderNo(orderNoTypeBean); statOrderEntity.setRecordKey(orderNo); statOrderEntity.setType(4); @@ -222,6 +194,11 @@ public class IoStatDayServiceImpl implements IoStatDayService { dataList.forEach(statDayEntity -> { statDayEntity.setUpdateTime(updateTime); statDayEntity.setRecordKeyFk(orderNo); + + //计算结余数据 + statDayEntity.setBalanceCount(statDayEntity.getBalanceCount() + statDayEntity.getInCount() - statDayEntity.getOutCount()); + statDayEntity.setBalanceAmount(statDayEntity.getBalanceAmount().add(statDayEntity.getInAmount()).subtract(statDayEntity.getOutAmount())); + mapper.insert(statDayEntity); }); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoStatMonthServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoStatMonthServiceImpl.java index 01c50634c..ffd1b9b83 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoStatMonthServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoStatMonthServiceImpl.java @@ -72,10 +72,6 @@ public class IoStatMonthServiceImpl implements IoStatMonthService { statData.setOutCount(statData.getOutCount() + statDayEntity.getOutCount()); statData.setOutPrice(statDayEntity.getBalancePrice()); statData.setOutAmount(statData.getOutAmount().add(statDayEntity.getOutAmount())); - - //设置结余数据 - statData.setBalanceCount(statData.getBalanceCount() + statData.getInCount() - statData.getOutCount()); - statData.setBalanceAmount(statData.getBalanceAmount().add(statData.getInAmount()).subtract(statData.getOutAmount())); }); //插入汇总记录 @@ -121,6 +117,10 @@ public class IoStatMonthServiceImpl implements IoStatMonthService { dataList.forEach(statMonthEntity -> { statMonthEntity.setUpdateTime(updateTime); statMonthEntity.setRecordKeyFk(orderNo); + + //计算结余数据 + statMonthEntity.setBalanceCount(statMonthEntity.getBalanceCount() + statMonthEntity.getInCount() - statMonthEntity.getOutCount()); + statMonthEntity.setBalanceAmount(statMonthEntity.getBalanceAmount().add(statMonthEntity.getInAmount()).subtract(statMonthEntity.getOutAmount())); mapper.insert(statMonthEntity); }); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoStatQuarterServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoStatQuarterServiceImpl.java index 7753e23c8..c1e87aa0c 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoStatQuarterServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoStatQuarterServiceImpl.java @@ -66,10 +66,6 @@ public class IoStatQuarterServiceImpl implements IoStatQuarterService { statData.setOutCount(statData.getOutCount() + statMonthEntity.getOutCount()); statData.setOutPrice(statMonthEntity.getOutPrice()); statData.setOutAmount(statData.getOutAmount().add(statMonthEntity.getOutAmount())); - - //设置结余数据 - statData.setBalanceCount(statData.getBalanceCount() + statData.getInCount() - statData.getOutCount()); - statData.setBalanceAmount(statData.getBalanceAmount().add(statData.getInAmount()).subtract(statData.getOutAmount())); }); //插入汇总数据 @@ -116,6 +112,11 @@ public class IoStatQuarterServiceImpl implements IoStatQuarterService { dataList.forEach(statQuarterEntity -> { statQuarterEntity.setUpdateTime(updateTime); statQuarterEntity.setRecordKeyFk(orderNo); + + //设置结余数据 + statQuarterEntity.setBalanceCount(statQuarterEntity.getBalanceCount() + statQuarterEntity.getInCount() - statQuarterEntity.getOutCount()); + statQuarterEntity.setBalanceAmount(statQuarterEntity.getBalanceAmount().add(statQuarterEntity.getInAmount()).subtract(statQuarterEntity.getOutAmount())); + mapper.insert(statQuarterEntity); }); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoStatYearServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoStatYearServiceImpl.java index d7ba6f10f..cb8a44390 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoStatYearServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoStatYearServiceImpl.java @@ -69,16 +69,11 @@ public class IoStatYearServiceImpl implements IoStatYearService { statData.setOutCount(statData.getOutCount() + statQuarterEntity.getOutCount()); statData.setOutPrice(statQuarterEntity.getOutPrice()); statData.setOutAmount(statData.getOutAmount().add(statQuarterEntity.getOutAmount())); - - //设置结余数据 - statData.setBalanceCount(statData.getBalanceCount() + statData.getInCount() - statData.getOutCount()); - statData.setBalanceAmount(statData.getBalanceAmount().add(statData.getInAmount()).subtract(statData.getOutAmount())); }); //插入汇总数据 saveData(yesterday, dataList); } - } @Override @@ -119,6 +114,10 @@ public class IoStatYearServiceImpl implements IoStatYearService { dataList.forEach(statYearEntity -> { statYearEntity.setUpdateTime(updateTime); statYearEntity.setRecordKeyFk(orderNo); + + //设置结余数据 + statYearEntity.setBalanceCount(statYearEntity.getBalanceCount() + statYearEntity.getInCount() - statYearEntity.getOutCount()); + statYearEntity.setBalanceAmount(statYearEntity.getBalanceAmount().add(statYearEntity.getInAmount()).subtract(statYearEntity.getOutAmount())); mapper.insert(statYearEntity); }); diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml index 6674c3b7c..45f80060a 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml @@ -73,4 +73,18 @@ + + diff --git a/src/main/resources/mybatis/mapper/inout/IoStatDayDao.xml b/src/main/resources/mybatis/mapper/inout/IoStatDayDao.xml index 05dbbc973..884e07224 100644 --- a/src/main/resources/mybatis/mapper/inout/IoStatDayDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoStatDayDao.xml @@ -14,6 +14,9 @@ AND productName like concat('%', #{productName}, '%') + + AND ggxh like concat('%', #{ggxh}, '%') + diff --git a/src/main/resources/mybatis/mapper/inout/IoStatMonthDao.xml b/src/main/resources/mybatis/mapper/inout/IoStatMonthDao.xml index 92d228fc4..99fc2096b 100644 --- a/src/main/resources/mybatis/mapper/inout/IoStatMonthDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoStatMonthDao.xml @@ -14,6 +14,9 @@ AND productName like concat('%', #{productName}, '%') + + AND ggxh like concat('%', #{ggxh}, '%') + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/inout/IoStatOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoStatOrderDao.xml index 4b3ed5358..d8dee51db 100644 --- a/src/main/resources/mybatis/mapper/inout/IoStatOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoStatOrderDao.xml @@ -9,13 +9,13 @@ and type = #{type} - and recordKey like concat('%', #{recordKey}, '#') + and recordKey like concat('%', #{recordKey}, '%') - - and format(date, '%Y-%m-%d') >= format(#{startDate}, '%Y-%m-%d') + + and date_format(date, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') - - and format(date, '%Y-%m-%d') <= format(#{endDate}, '%Y-%m-%d') + + and date_format(date, '%Y-%m-%d') <= date_format(#{endTime}, '%Y-%m-%d') diff --git a/src/main/resources/mybatis/mapper/inout/IoStatQuarterDao.xml b/src/main/resources/mybatis/mapper/inout/IoStatQuarterDao.xml index f9dea29e0..35db8efe6 100644 --- a/src/main/resources/mybatis/mapper/inout/IoStatQuarterDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoStatQuarterDao.xml @@ -14,6 +14,9 @@ AND productName like concat('%', #{productName}, '%') + + AND ggxh like concat('%', #{ggxh}, '%') + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/inout/IoStatYearDao.xml b/src/main/resources/mybatis/mapper/inout/IoStatYearDao.xml index 32aac7cef..6c53ddd8c 100644 --- a/src/main/resources/mybatis/mapper/inout/IoStatYearDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoStatYearDao.xml @@ -14,6 +14,9 @@ AND productName like concat('%', #{productName}, '%') + + AND ggxh like concat('%', #{ggxh}, '%') + \ No newline at end of file