Commit 35b8d15c by yinyong

数据中心--记录每天的sku+仓库的调拨出库的在途数和30天内的调拨出库数

parent c4def909
package com.bailuntec.domain.entity;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Data
public class DcDailyTransitFrom {
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_daily_transit_from.id
*
* @mbg.generated
*/
private Integer id;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_daily_transit_from.gmt_create
*
* @mbg.generated
*/
private LocalDateTime gmtCreate;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_daily_transit_from.gmt_modified
*
* @mbg.generated
*/
private LocalDateTime gmtModified;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_daily_transit_from.bailun_sku
*
* @mbg.generated
*/
private String bailunSku;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_daily_transit_from.warehouse_code
*
* @mbg.generated
*/
private String warehouseCode;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_daily_transit_from.quantity_transfer_inbound
*
* @mbg.generated
*/
private Integer quantityTransferInbound;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_daily_transit_from.quantity_transfer
*
* @mbg.generated
*/
private Integer quantityTransfer;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_daily_transit_from.quantity_transfer_plan
*
* @mbg.generated
*/
private Integer quantityTransferPlan;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_daily_transit_from.record_time
*
* @mbg.generated
*/
private LocalDate recordTime;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_daily_transit_from.company_id
*
* @mbg.generated
*/
private Integer companyId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_daily_transit_from.unit_price
*
* @mbg.generated
*/
private BigDecimal unitPrice;
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", gmtCreate=").append(gmtCreate);
sb.append(", gmtModified=").append(gmtModified);
sb.append(", bailunSku=").append(bailunSku);
sb.append(", warehouseCode=").append(warehouseCode);
sb.append(", quantityTransferInbound=").append(quantityTransferInbound);
sb.append(", quantityTransfer=").append(quantityTransfer);
sb.append(", quantityTransferPlan=").append(quantityTransferPlan);
sb.append(", recordTime=").append(recordTime);
sb.append(", companyId=").append(companyId);
sb.append(", unitPrice=").append(unitPrice);
sb.append("]");
return sb.toString();
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
DcDailyTransitFrom other = (DcDailyTransitFrom) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getGmtCreate() == null ? other.getGmtCreate() == null : this.getGmtCreate().equals(other.getGmtCreate()))
&& (this.getGmtModified() == null ? other.getGmtModified() == null : this.getGmtModified().equals(other.getGmtModified()))
&& (this.getBailunSku() == null ? other.getBailunSku() == null : this.getBailunSku().equals(other.getBailunSku()))
&& (this.getWarehouseCode() == null ? other.getWarehouseCode() == null : this.getWarehouseCode().equals(other.getWarehouseCode()))
&& (this.getQuantityTransferInbound() == null ? other.getQuantityTransferInbound() == null : this.getQuantityTransferInbound().equals(other.getQuantityTransferInbound()))
&& (this.getQuantityTransfer() == null ? other.getQuantityTransfer() == null : this.getQuantityTransfer().equals(other.getQuantityTransfer()))
&& (this.getQuantityTransferPlan() == null ? other.getQuantityTransferPlan() == null : this.getQuantityTransferPlan().equals(other.getQuantityTransferPlan()))
&& (this.getRecordTime() == null ? other.getRecordTime() == null : this.getRecordTime().equals(other.getRecordTime()))
&& (this.getCompanyId() == null ? other.getCompanyId() == null : this.getCompanyId().equals(other.getCompanyId()))
&& (this.getUnitPrice() == null ? other.getUnitPrice() == null : this.getUnitPrice().equals(other.getUnitPrice()));
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getGmtCreate() == null) ? 0 : getGmtCreate().hashCode());
result = prime * result + ((getGmtModified() == null) ? 0 : getGmtModified().hashCode());
result = prime * result + ((getBailunSku() == null) ? 0 : getBailunSku().hashCode());
result = prime * result + ((getWarehouseCode() == null) ? 0 : getWarehouseCode().hashCode());
result = prime * result + ((getQuantityTransferInbound() == null) ? 0 : getQuantityTransferInbound().hashCode());
result = prime * result + ((getQuantityTransfer() == null) ? 0 : getQuantityTransfer().hashCode());
result = prime * result + ((getQuantityTransferPlan() == null) ? 0 : getQuantityTransferPlan().hashCode());
result = prime * result + ((getRecordTime() == null) ? 0 : getRecordTime().hashCode());
result = prime * result + ((getCompanyId() == null) ? 0 : getCompanyId().hashCode());
result = prime * result + ((getUnitPrice() == null) ? 0 : getUnitPrice().hashCode());
return result;
}
}
\ No newline at end of file
package com.bailuntec.mapper;
import com.bailuntec.domain.dto.TransferTransitQuantity;
import com.bailuntec.domain.entity.DcDailyTransitFrom;
import com.bailuntec.domain.example.DcDailyTransitFromExample;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
public interface DcDailyTransitFromMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
long countByExample(DcDailyTransitFromExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
int deleteByExample(DcDailyTransitFromExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
int deleteByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
int insert(DcDailyTransitFrom record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
int insertSelective(DcDailyTransitFrom record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
DcDailyTransitFrom selectOneByExample(DcDailyTransitFromExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
List<DcDailyTransitFrom> selectByExample(DcDailyTransitFromExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
DcDailyTransitFrom selectByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
int updateByExampleSelective(@Param("record") DcDailyTransitFrom record, @Param("example") DcDailyTransitFromExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
int updateByExample(@Param("record") DcDailyTransitFrom record, @Param("example") DcDailyTransitFromExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
int updateByPrimaryKeySelective(DcDailyTransitFrom record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
*/
int updateByPrimaryKey(DcDailyTransitFrom record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsert(DcDailyTransitFrom record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_daily_transit_from
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsertSelective(DcDailyTransitFrom record);
List<TransferTransitQuantity> selectQuantityTransferTransitFrom();
int calculateTransferTransitFrom(@Param("list") List<TransferTransitQuantity> list, @Param("localDate") LocalDate localDate);
List<TransferTransitQuantity> selectQuantityTransferComplete(@Param("localDate") LocalDate localDate);
int updateSkuUnitPrice(@Param("localDate") LocalDate localDate);
}
\ No newline at end of file
......@@ -2,6 +2,7 @@ package com.bailuntec;
import com.alibaba.druid.pool.DruidDataSource;
import com.bailuntec.job.DailyStockJob;
import com.bailuntec.job.DailyTransferJob;
import com.bailuntec.listener.DailyStockJobListener;
import com.bailuntec.utils.PropertiesUtil;
import com.dangdang.ddframe.job.config.JobCoreConfiguration;
......@@ -26,6 +27,7 @@ public class Application {
private static final String EVENT_RDB_STORAGE_PASSWORD = propertiesUtil.getPropertyAsString("EVENT_RDB_STORAGE_PASSWORD");
public static void main(String[] args) {
new JobScheduler(createRegistryCenter(), createJobConfiguration1(),createJobEventConfiguration(), new DailyStockJobListener()).init();
new JobScheduler(createRegistryCenter(), createJobConfiguration2()).init();
}
private static CoordinatorRegistryCenter createRegistryCenter() {
......@@ -41,6 +43,13 @@ public class Application {
return simpleJobRootConfig;
}
private static LiteJobConfiguration createJobConfiguration2() {
JobCoreConfiguration simpleCoreConfig = JobCoreConfiguration.newBuilder(propertiesUtil.getPropertyAsString("JOB_NAME_TRANSFER"), propertiesUtil.getPropertyAsString("JOB_CRON_TRANSFER"), propertiesUtil.getPropertyAsInt("SHARDING_TOTAL_COUNT")).build();
SimpleJobConfiguration simpleJobConfig = new SimpleJobConfiguration(simpleCoreConfig, DailyTransferJob.class.getCanonicalName());
LiteJobConfiguration simpleJobRootConfig = LiteJobConfiguration.newBuilder(simpleJobConfig).build();
return simpleJobRootConfig;
}
private static JobEventConfiguration createJobEventConfiguration() {
JobEventConfiguration jobEventRdbConfig = new JobEventRdbConfiguration(setUpEventTraceDataSource());
return jobEventRdbConfig;
......
package com.bailuntec.job;
import com.bailuntec.domain.dto.TransferTransitQuantity;
import com.bailuntec.domain.entity.DcDailyTransitFrom;
import com.bailuntec.mapper.DcBaseStockMapper;
import com.bailuntec.mapper.DcBaseTransferCompleteMapper;
import com.bailuntec.mapper.DcDailyTransitFromMapper;
import com.bailuntec.mapper.DcMidTransitMapper;
import com.bailuntec.utils.SessionUtil;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.TransactionIsolationLevel;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@Slf4j
public class DailyTransferJob implements SimpleJob {
@Override
public void execute(ShardingContext shardingContext) {
LocalDate localDate = LocalDate.now();
LocalDate lastLocalDate = localDate.minusDays(1L);
SqlSession sqlSession = SessionUtil.getFactory().openSession(TransactionIsolationLevel.READ_UNCOMMITTED);
try {
DcDailyTransitFromMapper dcDailyTransitFromMapper = sqlSession.getMapper(DcDailyTransitFromMapper.class);
List<TransferTransitQuantity> transferTransitQuantityList = dcDailyTransitFromMapper.selectQuantityTransferTransitFrom();
if(transferTransitQuantityList != null) {
dcDailyTransitFromMapper.calculateTransferTransitFrom(transferTransitQuantityList, lastLocalDate);
}
sqlSession.commit();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("计算调拨在途数失败",e);
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
try {
DcDailyTransitFromMapper dcDailyTransitFromMapper = SessionUtil.getSession().getMapper(DcDailyTransitFromMapper.class);
List<TransferTransitQuantity> transferTransitQuantityList = dcDailyTransitFromMapper.selectQuantityTransferComplete(localDate);
for(TransferTransitQuantity transferTransitQuantity : transferTransitQuantityList) {
DcDailyTransitFrom dcDailyTransitFrom = new DcDailyTransitFrom();
dcDailyTransitFrom.setBailunSku(transferTransitQuantity.getBailunSku());
dcDailyTransitFrom.setWarehouseCode(transferTransitQuantity.getWarehouseCode());
dcDailyTransitFrom.setQuantityTransferInbound(transferTransitQuantity.getCount());
dcDailyTransitFrom.setRecordTime(lastLocalDate);
int result = dcDailyTransitFromMapper.upsertSelective(dcDailyTransitFrom);
}
}catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("计算近30天入库失败", e);
}finally {
SessionUtil.closeSession();
}
try{
DcDailyTransitFromMapper dcDailyTransitFromMapper = SessionUtil.getSession().getMapper(DcDailyTransitFromMapper.class);
dcDailyTransitFromMapper.updateSkuUnitPrice(lastLocalDate);
}catch (Exception e){
e.printStackTrace();
throw new RuntimeException("更改sku单价失败", e);
}finally {
SessionUtil.closeSession();
}
}
}
......@@ -11,4 +11,6 @@ ZOOKEEPER_SERVER=172.31.255.120:2181
NAME_SPACE=data-center
JOB_NAME_DAILY=daily-stock-snapshot
JOB_CRON_DAILY=0 10 0 * * ? *
JOB_NAME_TRANSFER=daily-transfer-from-snapshot
JOB_CRON_TRANSFER=0 10 0 * * ? *
SHARDING_TOTAL_COUNT=1
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment