汇总统计

test
anthonywj 1 year ago
parent 70323f2e5f
commit e319a9888d

@ -6,6 +6,7 @@ import com.glxp.api.req.inout.CptTraceRequest;
import com.glxp.api.req.inout.FilterOrderDetailResultRequest;
import com.glxp.api.res.inout.CptTraceOrderResponse;
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
import com.glxp.api.res.inv.IoOrderDetailStatRsponse;
import io.lettuce.core.dynamic.annotation.Param;
import java.util.List;
@ -33,7 +34,7 @@ public interface IoOrderDetailResultDao extends BaseMapperPlus<IoOrderDetailBizD
*
* @return
*/
List<IoOrderDetailResultEntity> selectStatDataByTime(@Param("list") List<String> orderIdFk);
List<IoOrderDetailStatRsponse> selectStatDataByTime(@Param("list") List<String> orderIdFk);
List<CptTraceOrderResponse> cptTrace(CptTraceRequest cptTraceRequest);
}

@ -192,5 +192,6 @@ public class IoOrderDetailResultEntity {
@TableField(exist = false)
private String deptCode;
@TableField(exist = false)
private String invCode;
}

@ -166,6 +166,14 @@ public class IoStatDayEntity {
@TableField(value = "deptCode")
private String deptCode;
/**
*
*/
@TableField(value = "invCode")
private String invCode;
@TableField(exist = false)
private String deptName;

@ -160,6 +160,12 @@ public class IoStatMonthEntity {
@TableField(value = "deptCode")
private String deptCode;
/**
*
*/
@TableField(value = "invCode")
private String invCode;
@TableField(exist = false)
private String deptName;
}

@ -54,4 +54,17 @@ public class IoStatOrderEntity {
@TableField(value = "remark")
private String remark;
/**
*
*/
@TableField(value = "deptCode")
private String deptCode;
/**
*
*/
@TableField(value = "invCode")
private String invCode;
}

@ -154,6 +154,11 @@ public class IoStatQuarterEntity {
@TableField(value = "deptCode")
private String deptCode;
/**
*
*/
@TableField(value = "invCode")
private String invCode;
@TableField(exist = false)
private String deptName;

@ -147,6 +147,11 @@ public class IoStatYearEntity {
@TableField(value = "deptCode")
private String deptCode;
/**
*
*/
@TableField(value = "invCode")
private String invCode;
@TableField(exist = false)
private String deptName;

@ -0,0 +1,23 @@
package com.glxp.api.res.inv;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class IoOrderDetailStatRsponse {
private String mainAction;
private String orderIdFk;
private String bindRlFk;
private String nameCode;
private String batchNo;
private String coName;
private String spec;
private BigDecimal price;
private int reCount;
private String deptCode;
private String invCode;
}

@ -13,6 +13,7 @@ import com.glxp.api.dao.inout.IoStatDayDao;
import com.glxp.api.dao.inout.IoStatOrderDao;
import com.glxp.api.entity.inout.*;
import com.glxp.api.req.inout.FilterStatDataDetailRequest;
import com.glxp.api.res.inv.IoOrderDetailStatRsponse;
import com.glxp.api.service.inout.IoStatDayService;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
@ -58,7 +59,7 @@ public class IoStatDayServiceImpl implements IoStatDayService {
//查询单号
List<String> orderIdFkList = new ArrayList<>();
orderIdFkList = orderDao.selectOrderIdList(yesterday.toString("yyyy-MM-dd"));
List<IoOrderDetailResultEntity> orderDetailResultEntities = new ArrayList<>();
List<IoOrderDetailStatRsponse> orderDetailResultEntities = new ArrayList<>();
if (orderIdFkList.size() > 0) {
orderDetailResultEntities = ioOrderDetailResultDao.selectStatDataByTime(orderIdFkList);
}
@ -126,7 +127,7 @@ public class IoStatDayServiceImpl implements IoStatDayService {
* @param orderDetailResultEntity
* @return
*/
private IoStatDayEntity getStatData(List<IoStatDayEntity> dataList, IoOrderDetailResultEntity orderDetailResultEntity, DateTime yesterday) {
private IoStatDayEntity getStatData(List<IoStatDayEntity> dataList, IoOrderDetailStatRsponse orderDetailResultEntity, DateTime yesterday) {
if (CollUtil.isNotEmpty(dataList)) {
for (IoStatDayEntity statDayEntity : dataList) {
if (Long.valueOf(statDayEntity.getRelIdFk()).equals(orderDetailResultEntity.getBindRlFk()) && statDayEntity.getDeptCode().equals(orderDetailResultEntity.getDeptCode())) {
@ -183,7 +184,6 @@ public class IoStatDayServiceImpl implements IoStatDayService {
//设置结余价格
statData.setBalancePrice(null == orderDetailResultEntity.getPrice() ? BigDecimal.ZERO : orderDetailResultEntity.getPrice());
dataList.add(statData);
return statData;
}
@ -192,9 +192,16 @@ public class IoStatDayServiceImpl implements IoStatDayService {
*
*
* @param date
* @param dataList
*/
private void saveData(Date date, List<IoStatDayEntity> dataList) {
private void saveData(Date date, List<IoStatDayEntity> statDayEntities) {
Map<String, List<IoStatDayEntity>> stringListMap = statDayEntities.stream()
.collect(Collectors.groupingBy(IoStatDayEntity::getInvCode));
for (String key : stringListMap.keySet()) {
List<IoStatDayEntity> dataList = stringListMap.get(key);
//生成汇总记录
IoStatOrderEntity statOrderEntity = new IoStatOrderEntity();
//生成记录号
@ -202,12 +209,12 @@ public class IoStatDayServiceImpl implements IoStatDayService {
String orderNo = gennerOrderUtils.createStatOrderNo(orderNoTypeBean);
statOrderEntity.setRecordKey(orderNo);
statOrderEntity.setType(4);
statOrderEntity.setInvCode(key);
statOrderEntity.setDate(date);
statOrderEntity.setTitle(DateUtil.format(date, "yyyy-MM-dd") + " 日出入库汇总");
Date updateTime = new Date();
statOrderEntity.setUpdateTime(updateTime);
statOrderDao.insert(statOrderEntity);
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED);
@ -219,7 +226,6 @@ public class IoStatDayServiceImpl implements IoStatDayService {
//计算结余数据
statDayEntity.setBalanceCount(statDayEntity.getBalanceCount() + statDayEntity.getInCount() - statDayEntity.getOutCount());
statDayEntity.setBalanceAmount(statDayEntity.getBalanceAmount().add(statDayEntity.getInAmount()).subtract(statDayEntity.getOutAmount()));
mapper.insert(statDayEntity);
});
@ -227,7 +233,10 @@ public class IoStatDayServiceImpl implements IoStatDayService {
sqlSession.close();
}
private static QueryWrapper<IoStatDayEntity> buildQueryWrapper(IoOrderDetailResultEntity orderDetailResultEntity, DateTime yesterday) {
}
private static QueryWrapper<IoStatDayEntity> buildQueryWrapper(IoOrderDetailStatRsponse orderDetailResultEntity, DateTime yesterday) {
QueryWrapper<IoStatDayEntity> wrapper = new QueryWrapper<>();
DateTime dateTime = DateUtil.offsetDay(yesterday, -1); //取前天的时间
wrapper.eq("year", dateTime.year())

@ -13,6 +13,7 @@ import com.glxp.api.dao.schedule.SystemParamConfigDao;
import com.glxp.api.entity.inout.*;
import com.glxp.api.req.inout.FilterStatDataDetailRequest;
import com.glxp.api.res.dev.DateRequest;
import com.glxp.api.res.inv.IoOrderDetailStatRsponse;
import com.glxp.api.service.inout.IoStatMonthService;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
@ -61,7 +62,7 @@ public class IoStatMonthServiceImpl implements IoStatMonthService {
//查询单号
List<String> orderIdFkList = new ArrayList<>();
orderIdFkList = orderDao.selectOrderfirstAndLastIdList(dateRequest1.getFirstDay(), dateRequest1.getLastDay());
List<IoOrderDetailResultEntity> orderDetailResultEntities = new ArrayList<>();
List<IoOrderDetailStatRsponse> orderDetailResultEntities = new ArrayList<>();
if (orderIdFkList.size() > 0) {
orderDetailResultEntities = ioOrderDetailResultDao.selectStatDataByTime(orderIdFkList);
}
@ -130,9 +131,14 @@ public class IoStatMonthServiceImpl implements IoStatMonthService {
*
*
* @param lastMonth
* @param dataList
*/
private void saveData(DateTime lastMonth, List<IoStatMonthEntity> dataList) {
private void saveData(DateTime lastMonth, List<IoStatMonthEntity> statMonthEntities) {
Map<String, List<IoStatMonthEntity>> stringListMap = statMonthEntities.stream()
.collect(Collectors.groupingBy(IoStatMonthEntity::getInvCode));
for (String key : stringListMap.keySet()) {
List<IoStatMonthEntity> dataList = stringListMap.get(key);
//生成汇总记录
IoStatOrderEntity statOrderEntity = new IoStatOrderEntity();
//生成记录号
@ -165,6 +171,8 @@ public class IoStatMonthServiceImpl implements IoStatMonthService {
sqlSession.close();
}
}
/**
*
*
@ -173,7 +181,7 @@ public class IoStatMonthServiceImpl implements IoStatMonthService {
* @param lastMonth
* @return
*/
private IoStatMonthEntity getStatData(List<IoStatMonthEntity> dataList, IoOrderDetailResultEntity orderDetailResultEntity, DateTime lastMonth) {
private IoStatMonthEntity getStatData(List<IoStatMonthEntity> dataList, IoOrderDetailStatRsponse orderDetailResultEntity, DateTime lastMonth) {
if (CollUtil.isNotEmpty(dataList)) {
for (IoStatMonthEntity statDayEntity : dataList) {
@ -242,7 +250,7 @@ public class IoStatMonthServiceImpl implements IoStatMonthService {
* @param lastMonth
* @return
*/
private Wrapper<IoStatMonthEntity> buildQueryWrapper(IoOrderDetailResultEntity ioOrderDetailResultEntity, DateTime lastMonth) {
private Wrapper<IoStatMonthEntity> buildQueryWrapper(IoOrderDetailStatRsponse ioOrderDetailResultEntity, DateTime lastMonth) {
QueryWrapper<IoStatMonthEntity> wrapper = new QueryWrapper<>();
if (lastMonth.monthBaseOne() == 1) {
//当前汇总的记录为1月上一月份的时间取前一年的12月

@ -10,6 +10,7 @@ import com.glxp.api.constant.ConstantType;
import com.glxp.api.dao.inout.*;
import com.glxp.api.entity.inout.*;
import com.glxp.api.req.inout.FilterStatDataDetailRequest;
import com.glxp.api.res.inv.IoOrderDetailStatRsponse;
import com.glxp.api.service.inout.IoStatQuarterService;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
@ -61,7 +62,7 @@ public class IoStatQuarterServiceImpl implements IoStatQuarterService {
//汇总上一个季度的数据
List<IoStatQuarterEntity> dataList = new ArrayList<>();
orderIdFkList = orderDao.selectOrderfirstAndLastIdList(lastDate, topDate);
List<IoOrderDetailResultEntity> orderDetailResultEntities = new ArrayList<>();
List<IoOrderDetailStatRsponse> orderDetailResultEntities = new ArrayList<>();
if (orderIdFkList.size() > 0) {
orderDetailResultEntities = ioOrderDetailResultDao.selectStatDataByTime(orderIdFkList);
}
@ -127,9 +128,15 @@ public class IoStatQuarterServiceImpl implements IoStatQuarterService {
*
*
* @param yesterday
* @param dataList
*/
private void saveData(DateTime yesterday, List<IoStatQuarterEntity> dataList) {
private void saveData(DateTime yesterday, List<IoStatQuarterEntity> statQuarterEntities) {
Map<String, List<IoStatQuarterEntity>> stringListMap = statQuarterEntities.stream()
.collect(Collectors.groupingBy(IoStatQuarterEntity::getInvCode));
for (String key : stringListMap.keySet()) {
List<IoStatQuarterEntity> dataList = stringListMap.get(key);
//生成汇总记录
IoStatOrderEntity statOrderEntity = new IoStatOrderEntity();
//生成记录号
@ -163,6 +170,8 @@ public class IoStatQuarterServiceImpl implements IoStatQuarterService {
sqlSession.close();
}
}
/**
*
*
@ -171,7 +180,7 @@ public class IoStatQuarterServiceImpl implements IoStatQuarterService {
* @param yesterday
* @return
*/
private IoStatQuarterEntity getStatData(List<IoStatQuarterEntity> dataList, IoOrderDetailResultEntity orderDetailResultEntity, DateTime yesterday) {
private IoStatQuarterEntity getStatData(List<IoStatQuarterEntity> dataList, IoOrderDetailStatRsponse orderDetailResultEntity, DateTime yesterday) {
if (CollUtil.isNotEmpty(dataList)) {
for (IoStatQuarterEntity statDayEntity : dataList) {
@ -238,7 +247,7 @@ public class IoStatQuarterServiceImpl implements IoStatQuarterService {
* @param yesterday
* @return
*/
private QueryWrapper<IoStatQuarterEntity> buildQueryWrapper(IoOrderDetailResultEntity ioOrderDetailResultEntity, DateTime yesterday) {
private QueryWrapper<IoStatQuarterEntity> buildQueryWrapper(IoOrderDetailStatRsponse ioOrderDetailResultEntity, DateTime yesterday) {
QueryWrapper<IoStatQuarterEntity> wrapper = new QueryWrapper<>();
if (yesterday.quarter() == 1) {
//当前汇总的记录为第一季度,上一季度时间取前一年的第四季度数据

@ -10,6 +10,7 @@ import com.glxp.api.constant.ConstantType;
import com.glxp.api.dao.inout.*;
import com.glxp.api.entity.inout.*;
import com.glxp.api.req.inout.FilterStatDataDetailRequest;
import com.glxp.api.res.inv.IoOrderDetailStatRsponse;
import com.glxp.api.service.inout.IoStatYearService;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
@ -56,7 +57,7 @@ public class IoStatYearServiceImpl implements IoStatYearService {
List<String> orderIdFkList = new ArrayList<>();
//汇总上一个季度的数据
orderIdFkList = orderDao.selectOrderfirstAndLastIdList(yesterday.year() + "-12-31", yesterday.year() + "-01-01");
List<IoOrderDetailResultEntity> orderDetailResultEntities = new ArrayList<>();
List<IoOrderDetailStatRsponse> orderDetailResultEntities = new ArrayList<>();
if (orderIdFkList.size() > 0) {
orderDetailResultEntities = ioOrderDetailResultDao.selectStatDataByTime(orderIdFkList);
}
@ -120,9 +121,15 @@ public class IoStatYearServiceImpl implements IoStatYearService {
*
*
* @param yesterday
* @param dataList
*/
private void saveData(DateTime yesterday, List<IoStatYearEntity> dataList) {
private void saveData(DateTime yesterday, List<IoStatYearEntity> statYearEntities) {
Map<String, List<IoStatYearEntity>> stringListMap = statYearEntities.stream()
.collect(Collectors.groupingBy(IoStatYearEntity::getInvCode));
for (String key : stringListMap.keySet()) {
List<IoStatYearEntity> dataList = stringListMap.get(key);
//生成汇总记录
IoStatOrderEntity statOrderEntity = new IoStatOrderEntity();
//生成记录号
@ -155,6 +162,9 @@ public class IoStatYearServiceImpl implements IoStatYearService {
sqlSession.close();
}
}
/**
*
*
@ -163,7 +173,7 @@ public class IoStatYearServiceImpl implements IoStatYearService {
* @param yesterday
* @return
*/
private IoStatYearEntity getStatData(List<IoStatYearEntity> dataList, IoOrderDetailResultEntity orderDetailResultEntity, DateTime yesterday) {
private IoStatYearEntity getStatData(List<IoStatYearEntity> dataList, IoOrderDetailStatRsponse orderDetailResultEntity, DateTime yesterday) {
if (CollUtil.isNotEmpty(dataList)) {
for (IoStatYearEntity statDayEntity : dataList) {
@ -229,7 +239,7 @@ public class IoStatYearServiceImpl implements IoStatYearService {
* @param ioOrderDetailResultEntity
* @param yesterday
*/
private QueryWrapper<IoStatYearEntity> buildQueryWrapper(IoOrderDetailResultEntity ioOrderDetailResultEntity, DateTime yesterday) {
private QueryWrapper<IoStatYearEntity> buildQueryWrapper(IoOrderDetailStatRsponse ioOrderDetailResultEntity, DateTime yesterday) {
QueryWrapper<IoStatYearEntity> wrapper = new QueryWrapper<>();
wrapper.eq("year", yesterday.year() - 1);
wrapper.eq("relIdFk", ioOrderDetailResultEntity.getBindRlFk());

@ -663,5 +663,4 @@
</otherwise>
</choose>
</select>
</mapper>

@ -92,7 +92,7 @@
</where>
</select>
<select id="selectStatDataByTime" resultType="com.glxp.api.entity.inout.IoOrderDetailResultEntity">
<select id="selectStatDataByTime" resultType="com.glxp.api.res.inv.IoOrderDetailStatRsponse">
select orderIdFk,
bindRlFk,
nameCode,
@ -101,12 +101,13 @@
spec,
price,
reCount,
io_order.deptCode
io_order.deptCode,
io_order.invCode
from io_order_detail_result
left JOIN io_order on io_order.billNo = io_order_detail_result.orderIdFk
<where>
<if test="list != null and list.size() > 0">
orderIdFk in
and io_order_detail_result.orderIdFk in
<foreach item="item" index="index" collection="list"
open="(" separator="," close=")">
#{item}

@ -19,5 +19,4 @@
</if>
</where>
</select>
</mapper>

@ -997,3 +997,9 @@ CALL Pro_Temp_ColumnWork('inv_count_codes', 'expireDate', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('inv_count_codes', 'serialNo', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('inv_count_order', 'codeCount', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('io_stat_order', 'deptCode', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('io_stat_day', 'invCode', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('io_stat_month', 'invCode', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('io_stat_quarter', 'invCode', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('io_stat_year', 'invCode', 'varchar(255)', 1);

Loading…
Cancel
Save