1.添加物资出入库汇总数据生成代码
parent
3dd30519db
commit
340073ea81
@ -0,0 +1,7 @@
|
||||
package com.glxp.api.dao.inout;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.glxp.api.entity.inout.IoStatDayEntity;
|
||||
|
||||
public interface IoStatDayDao extends BaseMapper<IoStatDayEntity> {
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package com.glxp.api.dao.inout;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.glxp.api.entity.inout.IoStatMonthEntity;
|
||||
|
||||
public interface IoStatMonthDao extends BaseMapper<IoStatMonthEntity> {
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package com.glxp.api.dao.inout;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.glxp.api.entity.inout.IoStatOrderEntity;
|
||||
|
||||
public interface IoStatOrderDao extends BaseMapper<IoStatOrderEntity> {
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package com.glxp.api.dao.inout;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.glxp.api.entity.inout.IoStatQuarterEntity;
|
||||
|
||||
public interface IoStatQuarterDao extends BaseMapper<IoStatQuarterEntity> {
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package com.glxp.api.dao.inout;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.glxp.api.entity.inout.IoStatYearEntity;
|
||||
|
||||
public interface IoStatYearDao extends BaseMapper<IoStatYearEntity> {
|
||||
}
|
@ -0,0 +1,160 @@
|
||||
package com.glxp.api.entity.inout;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 物资出入库汇总 - 天
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "io_stat_day")
|
||||
public class IoStatDayEntity {
|
||||
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 年度
|
||||
*/
|
||||
@TableField(value = "`year`")
|
||||
private Integer year;
|
||||
|
||||
/**
|
||||
* 季度
|
||||
*/
|
||||
@TableField(value = "quarter")
|
||||
private Integer quarter;
|
||||
|
||||
/**
|
||||
* 月份
|
||||
*/
|
||||
@TableField(value = "`month`")
|
||||
private Integer month;
|
||||
|
||||
/**
|
||||
* 日
|
||||
*/
|
||||
@TableField(value = "`day`")
|
||||
private Integer day;
|
||||
|
||||
/**
|
||||
* 物资编码主键
|
||||
*/
|
||||
@TableField(value = "relIdFk")
|
||||
private String relIdFk;
|
||||
|
||||
/**
|
||||
* 产品DI
|
||||
*/
|
||||
@TableField(value = "nameCode")
|
||||
private String nameCode;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
@TableField(value = "productName")
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 规格型号
|
||||
*/
|
||||
@TableField(value = "ggxh")
|
||||
private String ggxh;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
@TableField(value = "batchNo")
|
||||
private String batchNo;
|
||||
|
||||
/**
|
||||
* 期初数量
|
||||
*/
|
||||
@TableField(value = "beginCount")
|
||||
private Integer beginCount;
|
||||
|
||||
/**
|
||||
* 期初价格
|
||||
*/
|
||||
@TableField(value = "beginPrice")
|
||||
private BigDecimal beginPrice;
|
||||
|
||||
/**
|
||||
* 期初金额
|
||||
*/
|
||||
@TableField(value = "beginAmount")
|
||||
private BigDecimal beginAmount;
|
||||
|
||||
/**
|
||||
* 入库数量
|
||||
*/
|
||||
@TableField(value = "inCount")
|
||||
private String inCount;
|
||||
|
||||
/**
|
||||
* 入库价格
|
||||
*/
|
||||
@TableField(value = "inPrice")
|
||||
private BigDecimal inPrice;
|
||||
|
||||
/**
|
||||
* 入库金额
|
||||
*/
|
||||
@TableField(value = "inAmount")
|
||||
private String inAmount;
|
||||
|
||||
/**
|
||||
* 出库数量
|
||||
*/
|
||||
@TableField(value = "outCount")
|
||||
private String outCount;
|
||||
|
||||
/**
|
||||
* 出库价格
|
||||
*/
|
||||
@TableField(value = "outPrice")
|
||||
private BigDecimal outPrice;
|
||||
|
||||
/**
|
||||
* 出库金额
|
||||
*/
|
||||
@TableField(value = "outAmount")
|
||||
private String outAmount;
|
||||
|
||||
/**
|
||||
* 结余数量
|
||||
*/
|
||||
@TableField(value = "balanceCount")
|
||||
private String balanceCount;
|
||||
|
||||
/**
|
||||
* 结余价格
|
||||
*/
|
||||
@TableField(value = "balancePrice")
|
||||
private BigDecimal balancePrice;
|
||||
|
||||
/**
|
||||
* 结余金额
|
||||
*/
|
||||
@TableField(value = "balanceAmount")
|
||||
private String balanceAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(value = "updateTime")
|
||||
private Date updateTime;
|
||||
|
||||
}
|
@ -0,0 +1,154 @@
|
||||
package com.glxp.api.entity.inout;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 物资出入库汇总 - 月
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "io_stat_month")
|
||||
public class IoStatMonthEntity {
|
||||
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 年度
|
||||
*/
|
||||
@TableField(value = "`year`")
|
||||
private Integer year;
|
||||
|
||||
/**
|
||||
* 季度
|
||||
*/
|
||||
@TableField(value = "quarter")
|
||||
private Integer quarter;
|
||||
|
||||
/**
|
||||
* 月份
|
||||
*/
|
||||
@TableField(value = "`month`")
|
||||
private Integer month;
|
||||
|
||||
/**
|
||||
* 物资编码主键
|
||||
*/
|
||||
@TableField(value = "relIdFk")
|
||||
private String relIdFk;
|
||||
|
||||
/**
|
||||
* 产品DI
|
||||
*/
|
||||
@TableField(value = "nameCode")
|
||||
private String nameCode;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
@TableField(value = "productName")
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 规格型号
|
||||
*/
|
||||
@TableField(value = "ggxh")
|
||||
private String ggxh;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
@TableField(value = "batchNo")
|
||||
private String batchNo;
|
||||
|
||||
/**
|
||||
* 期初数量
|
||||
*/
|
||||
@TableField(value = "beginCount")
|
||||
private Integer beginCount;
|
||||
|
||||
/**
|
||||
* 期初价格
|
||||
*/
|
||||
@TableField(value = "beginPrice")
|
||||
private BigDecimal beginPrice;
|
||||
|
||||
/**
|
||||
* 期初金额
|
||||
*/
|
||||
@TableField(value = "beginAmount")
|
||||
private BigDecimal beginAmount;
|
||||
|
||||
/**
|
||||
* 入库数量
|
||||
*/
|
||||
@TableField(value = "inCount")
|
||||
private String inCount;
|
||||
|
||||
/**
|
||||
* 入库价格
|
||||
*/
|
||||
@TableField(value = "inPrice")
|
||||
private BigDecimal inPrice;
|
||||
|
||||
/**
|
||||
* 入库金额
|
||||
*/
|
||||
@TableField(value = "inAmount")
|
||||
private String inAmount;
|
||||
|
||||
/**
|
||||
* 出库数量
|
||||
*/
|
||||
@TableField(value = "outCount")
|
||||
private String outCount;
|
||||
|
||||
/**
|
||||
* 出库价格
|
||||
*/
|
||||
@TableField(value = "outPrice")
|
||||
private BigDecimal outPrice;
|
||||
|
||||
/**
|
||||
* 出库金额
|
||||
*/
|
||||
@TableField(value = "outAmount")
|
||||
private String outAmount;
|
||||
|
||||
/**
|
||||
* 结余数量
|
||||
*/
|
||||
@TableField(value = "balanceCount")
|
||||
private String balanceCount;
|
||||
|
||||
/**
|
||||
* 结余价格
|
||||
*/
|
||||
@TableField(value = "balancePrice")
|
||||
private BigDecimal balancePrice;
|
||||
|
||||
/**
|
||||
* 结余金额
|
||||
*/
|
||||
@TableField(value = "balanceAmount")
|
||||
private String balanceAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(value = "updateTime")
|
||||
private Date updateTime;
|
||||
|
||||
}
|
@ -0,0 +1,147 @@
|
||||
package com.glxp.api.entity.inout;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 物资出入库汇总 - 季度
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "io_stat_quarter")
|
||||
public class IoStatQuarterEntity {
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 年度
|
||||
*/
|
||||
@TableField(value = "`year`")
|
||||
private Integer year;
|
||||
|
||||
/**
|
||||
* 季度
|
||||
*/
|
||||
@TableField(value = "quarter")
|
||||
private Integer quarter;
|
||||
|
||||
/**
|
||||
* 物资编码主键
|
||||
*/
|
||||
@TableField(value = "relIdFk")
|
||||
private String relIdFk;
|
||||
|
||||
/**
|
||||
* 产品DI
|
||||
*/
|
||||
@TableField(value = "nameCode")
|
||||
private String nameCode;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
@TableField(value = "productName")
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 规格型号
|
||||
*/
|
||||
@TableField(value = "ggxh")
|
||||
private String ggxh;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
@TableField(value = "batchNo")
|
||||
private String batchNo;
|
||||
|
||||
/**
|
||||
* 期初数量
|
||||
*/
|
||||
@TableField(value = "beginCount")
|
||||
private Integer beginCount;
|
||||
|
||||
/**
|
||||
* 期初价格
|
||||
*/
|
||||
@TableField(value = "beginPrice")
|
||||
private BigDecimal beginPrice;
|
||||
|
||||
/**
|
||||
* 期初金额
|
||||
*/
|
||||
@TableField(value = "beginAmount")
|
||||
private BigDecimal beginAmount;
|
||||
|
||||
/**
|
||||
* 入库数量
|
||||
*/
|
||||
@TableField(value = "inCount")
|
||||
private String inCount;
|
||||
|
||||
/**
|
||||
* 入库价格
|
||||
*/
|
||||
@TableField(value = "inPrice")
|
||||
private BigDecimal inPrice;
|
||||
|
||||
/**
|
||||
* 入库金额
|
||||
*/
|
||||
@TableField(value = "inAmount")
|
||||
private String inAmount;
|
||||
|
||||
/**
|
||||
* 出库数量
|
||||
*/
|
||||
@TableField(value = "outCount")
|
||||
private String outCount;
|
||||
|
||||
/**
|
||||
* 出库价格
|
||||
*/
|
||||
@TableField(value = "outPrice")
|
||||
private BigDecimal outPrice;
|
||||
|
||||
/**
|
||||
* 出库金额
|
||||
*/
|
||||
@TableField(value = "outAmount")
|
||||
private String outAmount;
|
||||
|
||||
/**
|
||||
* 结余数量
|
||||
*/
|
||||
@TableField(value = "balanceCount")
|
||||
private String balanceCount;
|
||||
|
||||
/**
|
||||
* 结余价格
|
||||
*/
|
||||
@TableField(value = "balancePrice")
|
||||
private BigDecimal balancePrice;
|
||||
|
||||
/**
|
||||
* 结余金额
|
||||
*/
|
||||
@TableField(value = "balanceAmount")
|
||||
private String balanceAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(value = "updateTime")
|
||||
private Date updateTime;
|
||||
|
||||
}
|
@ -0,0 +1,142 @@
|
||||
package com.glxp.api.entity.inout;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 物资出入库汇总 - 年
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "io_stat_year")
|
||||
public class IoStatYearEntity {
|
||||
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 年度
|
||||
*/
|
||||
@TableField(value = "`year`")
|
||||
private Integer year;
|
||||
|
||||
/**
|
||||
* 物资编码主键
|
||||
*/
|
||||
@TableField(value = "relIdFk")
|
||||
private String relIdFk;
|
||||
|
||||
/**
|
||||
* 产品DI
|
||||
*/
|
||||
@TableField(value = "nameCode")
|
||||
private String nameCode;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
@TableField(value = "productName")
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 规格型号
|
||||
*/
|
||||
@TableField(value = "ggxh")
|
||||
private String ggxh;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
@TableField(value = "batchNo")
|
||||
private String batchNo;
|
||||
|
||||
/**
|
||||
* 期初数量
|
||||
*/
|
||||
@TableField(value = "beginCount")
|
||||
private Integer beginCount;
|
||||
|
||||
/**
|
||||
* 期初价格
|
||||
*/
|
||||
@TableField(value = "beginPrice")
|
||||
private BigDecimal beginPrice;
|
||||
|
||||
/**
|
||||
* 期初金额
|
||||
*/
|
||||
@TableField(value = "beginAmount")
|
||||
private BigDecimal beginAmount;
|
||||
|
||||
/**
|
||||
* 入库数量
|
||||
*/
|
||||
@TableField(value = "inCount")
|
||||
private String inCount;
|
||||
|
||||
/**
|
||||
* 入库价格
|
||||
*/
|
||||
@TableField(value = "inPrice")
|
||||
private BigDecimal inPrice;
|
||||
|
||||
/**
|
||||
* 入库金额
|
||||
*/
|
||||
@TableField(value = "inAmount")
|
||||
private String inAmount;
|
||||
|
||||
/**
|
||||
* 出库数量
|
||||
*/
|
||||
@TableField(value = "outCount")
|
||||
private String outCount;
|
||||
|
||||
/**
|
||||
* 出库价格
|
||||
*/
|
||||
@TableField(value = "outPrice")
|
||||
private BigDecimal outPrice;
|
||||
|
||||
/**
|
||||
* 出库金额
|
||||
*/
|
||||
@TableField(value = "outAmount")
|
||||
private String outAmount;
|
||||
|
||||
/**
|
||||
* 结余数量
|
||||
*/
|
||||
@TableField(value = "balanceCount")
|
||||
private String balanceCount;
|
||||
|
||||
/**
|
||||
* 结余价格
|
||||
*/
|
||||
@TableField(value = "balancePrice")
|
||||
private BigDecimal balancePrice;
|
||||
|
||||
/**
|
||||
* 结余金额
|
||||
*/
|
||||
@TableField(value = "balanceAmount")
|
||||
private String balanceAmount;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(value = "updateTime")
|
||||
private Date updateTime;
|
||||
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package com.glxp.api.service.inout;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 物资出入库汇总 - 天 Service
|
||||
*/
|
||||
public interface IoStatDayService {
|
||||
|
||||
/**
|
||||
* 统计出入库汇总数据
|
||||
*
|
||||
* @param date
|
||||
*/
|
||||
void statData(Date date);
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.glxp.api.service.inout;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 物资出入库汇总 - 月 Service
|
||||
*/
|
||||
public interface IoStatMonthService {
|
||||
|
||||
/**
|
||||
* 统计出入库汇总数据
|
||||
*
|
||||
* @param date
|
||||
*/
|
||||
void statData(Date date);
|
||||
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package com.glxp.api.service.inout;
|
||||
|
||||
/**
|
||||
* 物资出入库汇总 - 总表 Service
|
||||
*/
|
||||
public interface IoStatOrderService {
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.glxp.api.service.inout;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 物资出入库汇总 - 季度 Service
|
||||
*/
|
||||
public interface IoStatQuarterService {
|
||||
|
||||
/**
|
||||
* 统计出入库汇总数据
|
||||
*
|
||||
* @param date
|
||||
*/
|
||||
void statData(Date date);
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.glxp.api.service.inout;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 物资出入库汇总 - 年 Service
|
||||
*/
|
||||
public interface IoStatYearService {
|
||||
|
||||
/**
|
||||
* 统计出入库汇总数据
|
||||
*
|
||||
* @param date
|
||||
*/
|
||||
void statData(Date date);
|
||||
|
||||
}
|
@ -0,0 +1,97 @@
|
||||
package com.glxp.api.service.inout.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.glxp.api.constant.ConstantType;
|
||||
import com.glxp.api.dao.inout.IoOrderDao;
|
||||
import com.glxp.api.dao.inout.IoOrderDetailResultDao;
|
||||
import com.glxp.api.dao.inout.IoStatDayDao;
|
||||
import com.glxp.api.entity.inout.IoOrderDetailResultEntity;
|
||||
import com.glxp.api.entity.inout.IoOrderEntity;
|
||||
import com.glxp.api.entity.inout.IoStatDayEntity;
|
||||
import com.glxp.api.service.inout.IoStatDayService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class IoStatDayServiceImpl implements IoStatDayService {
|
||||
|
||||
@Resource
|
||||
private IoStatDayDao statDayDao;
|
||||
@Resource
|
||||
private IoOrderDetailResultDao ioOrderDetailResultDao;
|
||||
@Resource
|
||||
private IoOrderDao orderDao;
|
||||
|
||||
@Override
|
||||
public void statData(Date date) {
|
||||
//汇总前一天的数据
|
||||
DateTime yesterday = DateUtil.offsetDay(date, -1);
|
||||
List<IoOrderDetailResultEntity> orderDetailResultEntities = ioOrderDetailResultDao.selectList(new QueryWrapper<IoOrderDetailResultEntity>()
|
||||
.select("orderIdFk", "bindRlFk", "nameCode", "batchNo", "productDate", "expireDate", "coName", "spec", "price", "count", "reCount")
|
||||
.between("createTime", DateUtil.beginOfDay(yesterday), DateUtil.endOfDay(yesterday)));
|
||||
if (CollUtil.isNotEmpty(orderDetailResultEntities)) {
|
||||
List<IoOrderDetailResultEntity> dataList = new CopyOnWriteArrayList<>(orderDetailResultEntities);
|
||||
dataList.parallelStream().forEach(orderDetailResultEntity -> {
|
||||
//查询此产品前一天的数据
|
||||
IoStatDayEntity statDayEntity = statDayDao.selectOne(buildQueryWrapper(orderDetailResultEntity, yesterday));
|
||||
if (null == statDayEntity) {
|
||||
//第一次汇总次产品数据
|
||||
statDayEntity = new IoStatDayEntity();
|
||||
statDayEntity.setYear(yesterday.year());
|
||||
statDayEntity.setMonth(yesterday.month());
|
||||
statDayEntity.setDay(DateUtil.dayOfMonth(yesterday));
|
||||
statDayEntity.setRelIdFk(String.valueOf(orderDetailResultEntity.getBindRlFk()));
|
||||
statDayEntity.setNameCode(orderDetailResultEntity.getNameCode());
|
||||
statDayEntity.setProductName(orderDetailResultEntity.getCoName());
|
||||
statDayEntity.setGgxh(orderDetailResultEntity.getSpec());
|
||||
statDayEntity.setBatchNo(orderDetailResultEntity.getBatchNo());
|
||||
|
||||
//设置期初数据
|
||||
statDayEntity.setBeginCount(0);
|
||||
statDayEntity.setBeginPrice(orderDetailResultEntity.getPrice());
|
||||
statDayEntity.setBeginAmount(BigDecimal.ZERO);
|
||||
//查询此单是出库还是入库
|
||||
IoOrderEntity order = orderDao.selectOne(new QueryWrapper<IoOrderEntity>().select("mainAction").eq("billNo", orderDetailResultEntity.getOrderIdFk()));
|
||||
if (order.getMainAction().equals(ConstantType.TYPE_PUT)) {
|
||||
//入库
|
||||
statDayEntity.setInCount(String.valueOf(orderDetailResultEntity.getReCount()));
|
||||
statDayEntity.setInPrice(orderDetailResultEntity.getPrice());
|
||||
BigDecimal inAmount = orderDetailResultEntity.getPrice().multiply(BigDecimal.valueOf(orderDetailResultEntity.getReCount()));
|
||||
statDayEntity.setInAmount(inAmount.toString());
|
||||
|
||||
} else if (order.getMainAction().equals(ConstantType.TYPE_OUT)) {
|
||||
//出库
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static QueryWrapper<IoStatDayEntity> buildQueryWrapper(IoOrderDetailResultEntity orderDetailResultEntity, DateTime yesterday) {
|
||||
QueryWrapper<IoStatDayEntity> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("year", yesterday.year())
|
||||
.eq("month", yesterday.month())
|
||||
.eq("day", DateUtil.dayOfMonth(yesterday))
|
||||
.eq("relIdFk", orderDetailResultEntity.getBindRlFk())
|
||||
.eq(StrUtil.isNotBlank(orderDetailResultEntity.getBatchNo()), "batchNo", orderDetailResultEntity.getBatchNo())
|
||||
.eq(StrUtil.isNotBlank(orderDetailResultEntity.getNameCode()), "nameCode", orderDetailResultEntity.getNameCode());
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.glxp.api.service.inout.impl;
|
||||
|
||||
import com.glxp.api.service.inout.IoStatMonthService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class IoStatMonthServiceImpl implements IoStatMonthService {
|
||||
@Override
|
||||
public void statData(Date date) {
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package com.glxp.api.service.inout.impl;
|
||||
|
||||
import com.glxp.api.service.inout.IoStatOrderService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class IoStatOrderServiceImpl implements IoStatOrderService {
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.glxp.api.service.inout.impl;
|
||||
|
||||
import com.glxp.api.service.inout.IoStatQuarterService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class IoStatQuarterServiceImpl implements IoStatQuarterService {
|
||||
@Override
|
||||
public void statData(Date date) {
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.glxp.api.service.inout.impl;
|
||||
|
||||
import com.glxp.api.service.inout.IoStatYearService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class IoStatYearServiceImpl implements IoStatYearService {
|
||||
@Override
|
||||
public void statData(Date date) {
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,90 @@
|
||||
package com.glxp.api.task;
|
||||
|
||||
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import com.glxp.api.dao.schedule.ScheduledDao;
|
||||
import com.glxp.api.entity.system.ScheduledEntity;
|
||||
import com.glxp.api.req.system.ScheduledRequest;
|
||||
import com.glxp.api.service.inout.IoStatDayService;
|
||||
import com.glxp.api.service.inout.IoStatMonthService;
|
||||
import com.glxp.api.service.inout.IoStatQuarterService;
|
||||
import com.glxp.api.service.inout.IoStatYearService;
|
||||
import com.glxp.api.util.DateUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.scheduling.annotation.SchedulingConfigurer;
|
||||
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
|
||||
import org.springframework.scheduling.support.CronTrigger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 物资出入库汇总定时任务
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class IoStatOrderTask implements SchedulingConfigurer {
|
||||
|
||||
@Resource
|
||||
private ScheduledDao scheduledDao;
|
||||
@Resource
|
||||
private IoStatDayService statDayService;
|
||||
@Resource
|
||||
private IoStatMonthService statMonthService;
|
||||
@Resource
|
||||
private IoStatQuarterService statQuarterService;
|
||||
@Resource
|
||||
private IoStatYearService statYearService;
|
||||
|
||||
@Override
|
||||
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
|
||||
taskRegistrar.addTriggerTask(this::process, triggerContext -> {
|
||||
ScheduledRequest scheduledRequest = new ScheduledRequest();
|
||||
scheduledRequest.setCronName("ioStatOrderTask");
|
||||
ScheduledEntity scheduled = scheduledDao.findScheduled(scheduledRequest);
|
||||
if (null == scheduled) {
|
||||
log.info("物资出入库汇总定时任务未配置,请注意!");
|
||||
return null;
|
||||
}
|
||||
String cron = scheduled.getCron();
|
||||
return new CronTrigger(cron).nextExecutionTime(triggerContext);
|
||||
});
|
||||
}
|
||||
|
||||
private void process() {
|
||||
log.info("开始汇总物资出入库数据");
|
||||
//生成每日汇总数据
|
||||
Date today = new Date();
|
||||
ThreadUtil.execAsync(() -> {
|
||||
log.info("开始生成每日物资出入库汇总数据");
|
||||
statDayService.statData(today);
|
||||
log.info("每日物资出入库数据汇总生成结束");
|
||||
});
|
||||
|
||||
if (DateUtil.isMonthStart(today)) {
|
||||
ThreadUtil.execAsync(() -> {
|
||||
log.info("本日为月初,生成月度物资出入库汇总数据");
|
||||
statMonthService.statData(today);
|
||||
log.info("月度物资出入库汇总数据生成结束");
|
||||
});
|
||||
}
|
||||
|
||||
if (DateUtil.isQuarterStart(today)) {
|
||||
ThreadUtil.execAsync(() -> {
|
||||
log.info("本日为季初,生成季度物资出入库汇总数据");
|
||||
statQuarterService.statData(today);
|
||||
log.info("季度物资出入库汇总数据生成结束");
|
||||
});
|
||||
}
|
||||
|
||||
if (DateUtil.isYearStart(today)) {
|
||||
ThreadUtil.execAsync(() -> {
|
||||
log.info("本日为年初,生成年度物资出入库汇总数据");
|
||||
statYearService.statData(today);
|
||||
log.info("年度物资出入库汇总数据生成结束");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.glxp.api.dao.inout.IoStatDayDao">
|
||||
|
||||
</mapper>
|
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.glxp.api.dao.inout.IoStatMonthDao">
|
||||
</mapper>
|
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.glxp.api.dao.inout.IoStatOrderDao">
|
||||
</mapper>
|
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.glxp.api.dao.inout.IoStatQuarterDao">
|
||||
</mapper>
|
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.glxp.api.dao.inout.IoStatYearDao">
|
||||
</mapper>
|
Loading…
Reference in New Issue