Commit 4e9d7d73 by huluobin

周转消费队列

parent c4f7b0be
......@@ -33,7 +33,7 @@ public class AmazonAdGenerateReportIdJob extends PointJob {
@Override
public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) {
LocalDateTime maxAllowTime = LocalDateTime.now().minusHours(36);
LocalDateTime maxAllowTime = LocalDateTime.now().minusHours(12);
LocalDateTime reportDate = jobPointLog.getStartTime();
if (reportDate.compareTo(maxAllowTime) >= 0) {
return;
......
......@@ -106,7 +106,7 @@ public class EbayFinanceAdSyncJobTest {
public void testThreadPool2() {
EbayFinanceAdSyncJob ebayFinanceAdSyncJob = new EbayFinanceAdSyncJob();
LocalDateTime start = LocalDateTime.of(2020, 11, 25, 0, 0);
LocalDateTime start = LocalDateTime.of(2020, 11, 18, 0, 0);
LocalDateTime end = LocalDateTime.of(2020, 12, 2, 0, 0);
List<LocalDateTime> localDateTimeList = Stream.iterate(start,
......
......@@ -29,8 +29,8 @@ public class Application {
public static void main(String[] args) {
new JobScheduler(createRegistryCenter(), createJobConfiguration(), createJobEventConfiguration(), new OrderSyncJobListener()).init();
new JobScheduler(createRegistryCenter(), createJobConfiguration1(), createJobEventConfiguration(), new OrderSyncJobListener()).init();
new JobScheduler(createRegistryCenter(), createJobConfiguration2(), createJobEventConfiguration(), new OrderSyncJobListener()).init();
// new JobScheduler(createRegistryCenter(), createJobConfiguration1(), createJobEventConfiguration(), new OrderSyncJobListener()).init();
// new JobScheduler(createRegistryCenter(), createJobConfiguration2(), createJobEventConfiguration(), new OrderSyncJobListener()).init();
}
......
......@@ -22,7 +22,7 @@ public class OrderSyncJob30 extends PointJob {
SqlSession sqlSession = SessionUtil.getFactory().openSession(true);
DcBaseOmsSku30Mapper dcBaseOmsSku30Mapper = sqlSession.getMapper(DcBaseOmsSku30Mapper.class);
try {
dcBaseOmsSku30Mapper.truncateTable();
// dcBaseOmsSku30Mapper.truncateTable();
dcBaseOmsSku30Mapper.upsertByOmsSku(queryTime);
} finally {
sqlSession.close();
......
......@@ -27,6 +27,23 @@ import java.util.List;
public class WmsStockJob extends PointJob {
private PropertiesUtil propertiesUtil = PropertiesUtil.getInstance("const");
public static void main(String[] args) {
Data data = new Data();
Page page = new Page();
Search search = new Search();
Root root = new Root();
data.setPage(page);
data.setSearch(search);
root.setData(data);
page.setRows(5);
search.setWarehouseCodes(listWmsStockWarehouse());
search.setLastModificationTime_start(LocalDateTime.now()); //"2020-12-02 6:20:16"
search.setLastModificationTime_end(LocalDateTime.now()); //"2020-12-02 15:23:52"
log.info(JSON.toJSONString(root));
}
@Override
public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) {
Data data = new Data();
......@@ -43,7 +60,7 @@ public class WmsStockJob extends PointJob {
do {
OkHttpClient client = OkHttpUtil.getInstance();
MediaType mediaType = MediaType.parse("application/json");
page.setPage(jobPointLog.getPageIndex() > 0? jobPointLog.getPageIndex() : 1);
page.setPage(jobPointLog.getPageIndex() > 0 ? jobPointLog.getPageIndex() : 1);
RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(root));
Request request = new Request.Builder()
.url(propertiesUtil.getPropertyAsString("STOCK_WMS_URL"))
......@@ -112,7 +129,7 @@ public class WmsStockJob extends PointJob {
jobPointLog.setEndTime(jobPointLog.getStartTime().plusDays(jobPointLog.getIntervalTime()).isAfter(LocalDateTime.now()) ? LocalDateTime.now() : jobPointLog.getEndTime().plusDays(jobPointLog.getIntervalTime()));
}
private List<String> listWmsStockWarehouse() {
private static List<String> listWmsStockWarehouse() {
List<String> listWmsStockWarehouse = null;
try {
DcBaseWarehouseMapper mapper = SessionUtil.getSession().getMapper(DcBaseWarehouseMapper.class);
......
......@@ -177,7 +177,8 @@ public class TransferDetailsServiceImpl {
}
try {
DcBaseTransferTransitMapper mapper4 = SessionUtil.getSession().getMapper(DcBaseTransferTransitMapper.class);
int i = mapper4.updateByExampleSelective(dcBaseTransferTransit, DcBaseTransferTransitExample.newAndCreateCriteria().andBailunSkuEqualTo(dcBaseTransferTransit.getBailunSku())
int i = mapper4.updateByExampleSelective(dcBaseTransferTransit, DcBaseTransferTransitExample.newAndCreateCriteria()
.andBailunSkuEqualTo(dcBaseTransferTransit.getBailunSku())
.andTransferOrderIdEqualTo(dcBaseTransferTransit.getTransferOrderId()).example());
if (i == 0) {
mapper4.insertSelective(dcBaseTransferTransit);
......
SELECT
tb11.bailun_sku bailun_sku,
tb11.warehouse_code warehouse_code,
tb11.transfer_order_id transfer_order_id,
tb5.estimated_arrival_time estimated_arrival_time,
tb11.create_time create_time,
( tb11.count - IFNULL( tb4.count, 0 ) ) AS count
FROM
(
SELECT
tb1.bailun_sku,
tb1.warehouse_code,
tb1.transfer_order_id,
tb1.create_time,
sum( tb1.count ) count
FROM
dc_base_transfer_bale tb1
LEFT JOIN dc_base_transfer_complete tb2 ON tb1.transfer_order_id = tb2.transfer_order_id
WHERE
tb2.bailun_sku IS NULL
AND tb1.bailun_sku = #{bailunSku}
AND tb1.warehouse_code = #{warehouseCode}
AND tb1.deleted = 0
GROUP BY
bailun_sku,
warehouse_code,
transfer_order_id
) tb11
LEFT JOIN (
SELECT
tb1.bailun_sku,
tb1.warehouse_code,
tb1.transfer_order_id,
tb1.estimated_arrival_time,
tb1.create_time,
sum( tb1.count ) count
FROM
dc_base_transfer_verify tb1
LEFT JOIN dc_base_transfer_complete tb2 ON tb1.transfer_order_id = tb2.transfer_order_id
WHERE
tb2.bailun_sku IS NULL
AND tb1.bailun_sku = #{bailunSku}
AND tb1.warehouse_code = #{warehouseCode}
AND tb1.deleted = 0
GROUP BY
bailun_sku,
warehouse_code,
transfer_order_id
) tb5 ON tb5.bailun_sku = tb11.bailun_sku
AND tb5.warehouse_code = tb11.warehouse_code
AND tb5.transfer_order_id = tb11.transfer_order_id
LEFT JOIN (
SELECT
bailun_sku,
warehouse_code,
transfer_order_id,
sum( count ) count
FROM
(
SELECT
t1.bailun_sku,
t1.warehouse_code,
t2.count,
t1.transfer_order_id
FROM
( SELECT max( create_time ) AS create_time, bailun_sku, warehouse_code, transfer_order_id FROM dc_base_transfer_inbound WHERE deleted = 0 AND bailun_sku = #{bailunSku}
AND warehouse_code = #{warehouseCode} GROUP BY bailun_sku, warehouse_code, transfer_order_id ) t1
INNER JOIN dc_base_transfer_inbound t2 ON t1.bailun_sku = t2.bailun_sku
AND t1.warehouse_code = t2.warehouse_code
AND t1.transfer_order_id = t2.transfer_order_id
AND t1.create_time = t2.create_time
LEFT JOIN dc_base_transfer_complete tb2 ON t1.transfer_order_id = tb2.transfer_order_id
WHERE
tb2.bailun_sku IS NULL
) tb3
GROUP BY
bailun_sku,
warehouse_code,
transfer_order_id
) tb4 ON tb5.bailun_sku = tb4.bailun_sku
AND tb5.warehouse_code = tb4.warehouse_code
AND tb5.transfer_order_id = tb4.transfer_order_id
WHERE
( tb11.count - IFNULL( tb4.count, 0 ) ) > 0 UNION ALL
SELECT
bailun_sku,
warehouse_code,
transfer_plan_order_id,
NULL,
update_time,
count
FROM
dc_base_transfer_plan
WHERE
STATUS = 1
AND deleted = 0
AND bailun_sku = #{bailunSku}
AND warehouse_code = #{warehouseCode}
package com.bailuntec.domain.entity;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class DcBaseQueue {
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_queue.id
*
* @mbg.generated
*/
private Integer id;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_queue.type
*
* @mbg.generated
*/
private String type;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_queue.message
*
* @mbg.generated
*/
private String message;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_queue.submit_date
*
* @mbg.generated
*/
private LocalDateTime submitDate;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_queue.consume_date
*
* @mbg.generated
*/
private LocalDateTime consumeDate;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_queue.error_message
*
* @mbg.generated
*/
private String errorMessage;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_base_queue.error_stack_trace
*
* @mbg.generated
*/
private String errorStackTrace;
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @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(", type=").append(type);
sb.append(", message=").append(message);
sb.append(", submitDate=").append(submitDate);
sb.append(", consumeDate=").append(consumeDate);
sb.append(", errorMessage=").append(errorMessage);
sb.append(", errorStackTrace=").append(errorStackTrace);
sb.append("]");
return sb.toString();
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
DcBaseQueue other = (DcBaseQueue) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
&& (this.getMessage() == null ? other.getMessage() == null : this.getMessage().equals(other.getMessage()))
&& (this.getSubmitDate() == null ? other.getSubmitDate() == null : this.getSubmitDate().equals(other.getSubmitDate()))
&& (this.getConsumeDate() == null ? other.getConsumeDate() == null : this.getConsumeDate().equals(other.getConsumeDate()))
&& (this.getErrorMessage() == null ? other.getErrorMessage() == null : this.getErrorMessage().equals(other.getErrorMessage()))
&& (this.getErrorStackTrace() == null ? other.getErrorStackTrace() == null : this.getErrorStackTrace().equals(other.getErrorStackTrace()));
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
result = prime * result + ((getMessage() == null) ? 0 : getMessage().hashCode());
result = prime * result + ((getSubmitDate() == null) ? 0 : getSubmitDate().hashCode());
result = prime * result + ((getConsumeDate() == null) ? 0 : getConsumeDate().hashCode());
result = prime * result + ((getErrorMessage() == null) ? 0 : getErrorMessage().hashCode());
result = prime * result + ((getErrorStackTrace() == null) ? 0 : getErrorStackTrace().hashCode());
return result;
}
}
\ No newline at end of file
......@@ -2893,6 +2893,11 @@
and warehouse_code = #{warehouseCode}
and !(paid_time &gt;= '2020-11-11 00:00:00' and paid_time &lt;= '2020-11-13 00:00:00' and
platform_type = 'Aliexpress')
and !(paid_time &gt;= '2020-11-23 00:00:00' and paid_time &lt;= '2020-11-28 00:00:00' and
platform_type = 'Aliexpress')
and !(paid_time &gt;= '2020-11-23 00:00:00' and paid_time &lt;= '2020-12-06 00:00:00' and
platform_type = 'FBA')
and platform_order_type != '手工单'
) sales_table
</select>
......
package com.bailuntec.mapper;
import com.bailuntec.domain.entity.DcBaseQueue;
import com.bailuntec.domain.example.DcBaseQueueExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface DcBaseQueueMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
long countByExample(DcBaseQueueExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
int deleteByExample(DcBaseQueueExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
int deleteByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
int insert(DcBaseQueue record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
int insertSelective(DcBaseQueue record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
DcBaseQueue selectOneByExample(DcBaseQueueExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
DcBaseQueue selectOneByExampleWithBLOBs(DcBaseQueueExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
List<DcBaseQueue> selectByExampleWithBLOBs(DcBaseQueueExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
List<DcBaseQueue> selectByExample(DcBaseQueueExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
DcBaseQueue selectByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
int updateByExampleSelective(@Param("record") DcBaseQueue record, @Param("example") DcBaseQueueExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
int updateByExampleWithBLOBs(@Param("record") DcBaseQueue record, @Param("example") DcBaseQueueExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
int updateByExample(@Param("record") DcBaseQueue record, @Param("example") DcBaseQueueExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
int updateByPrimaryKeySelective(DcBaseQueue record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
int updateByPrimaryKeyWithBLOBs(DcBaseQueue record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
*/
int updateByPrimaryKey(DcBaseQueue record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsert(DcBaseQueue record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsertSelective(DcBaseQueue record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_queue
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsertWithBLOBs(DcBaseQueue record);
}
\ No newline at end of file
table-name=dc_base_week_coefficient
table-name=dc_base_queue
......@@ -3,5 +3,5 @@ VOLUME /tmp
ADD mid-calculate-transit-1.0-SNAPSHOT.jar app.jar
RUN echo "Asia/Shanghai" > /etc/timezone
ENTRYPOINT ["java","-Xms30m","-Xmx80m","-jar","/app.jar"]
ENTRYPOINT ["java","-Xms4096m","-Xmx4096m","-jar","/app.jar"]
EXPOSE 8080
......@@ -29,6 +29,12 @@
</dependency>
<dependency>
<groupId>com.dangdang</groupId>
<artifactId>elastic-job-lite-lifecycle</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
......
......@@ -2,6 +2,7 @@ package com.bailuntec;
import com.alibaba.druid.pool.DruidDataSource;
import com.bailuntec.job.AutoTurnoverJob;
import com.bailuntec.job.QueueConsumerJob;
import com.bailuntec.job.ReplaceLogisticJob;
import com.bailuntec.utils.PropertiesUtil;
import com.dangdang.ddframe.job.config.JobCoreConfiguration;
......@@ -10,9 +11,12 @@ import com.dangdang.ddframe.job.event.JobEventConfiguration;
import com.dangdang.ddframe.job.event.rdb.JobEventRdbConfiguration;
import com.dangdang.ddframe.job.lite.api.JobScheduler;
import com.dangdang.ddframe.job.lite.config.LiteJobConfiguration;
import com.dangdang.ddframe.job.lite.lifecycle.api.JobAPIFactory;
import com.dangdang.ddframe.job.lite.lifecycle.api.JobOperateAPI;
import com.dangdang.ddframe.job.reg.base.CoordinatorRegistryCenter;
import com.dangdang.ddframe.job.reg.zookeeper.ZookeeperConfiguration;
import com.dangdang.ddframe.job.reg.zookeeper.ZookeeperRegistryCenter;
import com.google.common.base.Optional;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
......@@ -44,14 +48,27 @@ public class Application {
createJobEventConfiguration()).init();
new JobScheduler(createRegistryCenter(),
createQueueConsumer(),
createJobEventConfiguration()).init();
new JobScheduler(createRegistryCenter(),
createJobConfigurationNeNormal(),
createJobEventConfiguration()).init();
log.info("start success");
}
private static LiteJobConfiguration createQueueConsumer() {
JobCoreConfiguration simpleCoreConfig = JobCoreConfiguration.newBuilder(
"queueConsumer",
"0/1 * * * * ? ",
1)
.build();
SimpleJobConfiguration simpleJobConfig = new SimpleJobConfiguration(simpleCoreConfig, QueueConsumerJob.class.getCanonicalName());
return LiteJobConfiguration.newBuilder(simpleJobConfig).build();
}
private static LiteJobConfiguration createReplaceLogistic() {
JobCoreConfiguration simpleCoreConfig = JobCoreConfiguration.newBuilder(
"ReplaceLogistic",
......@@ -63,7 +80,8 @@ public class Application {
}
private static CoordinatorRegistryCenter createRegistryCenter() {
CoordinatorRegistryCenter regCenter = new ZookeeperRegistryCenter(new ZookeeperConfiguration(propertiesUtil.getPropertyAsString("ZOOKEEPER_SERVER"), propertiesUtil.getPropertyAsString("NAME_SPACE")));
CoordinatorRegistryCenter regCenter = new ZookeeperRegistryCenter(new ZookeeperConfiguration(propertiesUtil.getPropertyAsString("ZOOKEEPER_SERVER"),
propertiesUtil.getPropertyAsString("NAME_SPACE")));
regCenter.init();
return regCenter;
}
......
......@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.bailuntec.domain.constant.CommonConstant;
import com.bailuntec.domain.constant.Constant;
import com.bailuntec.domain.dto.SalesDetailItem;
import com.bailuntec.domain.dto.SalesVolumeAvgDTO;
import com.bailuntec.domain.dto.SalesVolumeDTO;
import com.bailuntec.domain.entity.*;
......@@ -17,9 +16,11 @@ import com.bailuntec.service.AutoTurnoverService;
import com.bailuntec.service.impl.AutoSalesServiceImpl;
import com.bailuntec.service.impl.AutoTurnoverServiceImpl;
import com.bailuntec.support.PointJob;
import com.bailuntec.utils.*;
import com.bailuntec.utils.DigestUtils;
import com.bailuntec.utils.OkHttpUtil;
import com.bailuntec.utils.PropertiesUtil;
import com.bailuntec.utils.SessionUtil;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
import okhttp3.OkHttpClient;
......@@ -39,8 +40,6 @@ import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@Slf4j
public class AutoTurnoverJob extends PointJob {
......@@ -250,7 +249,10 @@ public class AutoTurnoverJob extends PointJob {
if (StringUtils.isEmpty(salesVolumeDTO.getHistorySales().trim())) {
DcAutoSalesMapper dcAutoSalesMapper = SessionUtil.getSession().getMapper(DcAutoSalesMapper.class);
dcAutoSales = new DcAutoSales(bailunSku, warehouseCode);
int i = dcAutoSalesMapper.updateByExampleSelective(dcAutoSales, DcAutoSalesExample.newAndCreateCriteria().andBailunSkuEqualTo(dcAutoSales.getBailunSku()).andWarehouseCodeEqualTo(dcAutoSales.getWarehouseCode()).example());
int i = dcAutoSalesMapper.updateByExampleSelective(dcAutoSales, DcAutoSalesExample
.newAndCreateCriteria()
.andBailunSkuEqualTo(dcAutoSales.getBailunSku())
.andWarehouseCodeEqualTo(dcAutoSales.getWarehouseCode()).example());
if (i == 0) {
dcAutoSalesMapper.insertSelective(dcAutoSales);
}
......@@ -1232,7 +1234,14 @@ public class AutoTurnoverJob extends PointJob {
/**
* 预计入库
*/
private void ExpectedStorage(DcAutoConfigDelivery dcAutoConfigDelivery, List<String> forecastInboundRelationList, Integer purchase, Integer transfer, LocalDate recordTime, DcAutoTurnoverWithBLOBs dcAutoTurnover, List<Integer> forecastPurchaseInboundList, List<Integer> forecastTransferInboundList, List<Integer> forecastInboundList) {
private void ExpectedStorage(DcAutoConfigDelivery dcAutoConfigDelivery,
List<String> forecastInboundRelationList,
Integer purchase,
Integer transfer,
LocalDate recordTime,
DcAutoTurnoverWithBLOBs dcAutoTurnover,
List<Integer> forecastPurchaseInboundList,
List<Integer> forecastTransferInboundList, List<Integer> forecastInboundList) {
/*
* 拿到预计到货时间在周转期内的采购单
* 采购系统的预计到货只是到货时间
......
package com.bailuntec.job;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.annotation.JSONField;
import com.bailuntec.domain.constant.CommonConstant;
import com.bailuntec.domain.entity.DcBaseQueue;
import com.bailuntec.domain.entity.DcBaseStock;
import com.bailuntec.domain.example.DcBaseQueueExample;
import com.bailuntec.domain.example.DcBaseStockExample;
import com.bailuntec.mapper.DcBaseQueueMapper;
import com.bailuntec.mapper.DcBaseStockMapper;
import com.bailuntec.utils.SessionUtil;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSession;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/11/24 4:10 下午
*/
@Slf4j
public class QueueConsumerJob implements SimpleJob {
@Data
static class BaseQueueMessage {
@JSONField(name = "bailun_sku")
private String bailunSku;
@JSONField(name = "warehouse_code")
private String warehouseCode;
}
@Override
public void execute(ShardingContext shardingContext) {
SqlSession sqlSession = SessionUtil.getFactory().openSession(true);
try {
AutoTurnoverJob autoTurnoverJob = new AutoTurnoverJob();
DcBaseQueueMapper dcBaseQueueMapper = sqlSession.getMapper(DcBaseQueueMapper.class);
DcBaseStockMapper dcBaseStockMapper = sqlSession.getMapper(DcBaseStockMapper.class);
List<DcBaseQueue> dcBaseQueueList = dcBaseQueueMapper.selectByExample(DcBaseQueueExample.newAndCreateCriteria()
.andConsumeDateIsNull()
.example());
dcBaseQueueList.forEach(dcBaseQueue -> {
BaseQueueMessage baseQueueMessage = JSON.parseObject(dcBaseQueue.getMessage(), BaseQueueMessage.class);
DcBaseStock dcBaseStock = dcBaseStockMapper.selectOneByExample(DcBaseStockExample.newAndCreateCriteria()
.andBailunSkuEqualTo(baseQueueMessage.getBailunSku())
.andWarehouseCodeEqualTo(baseQueueMessage.getWarehouseCode())
.example());
try {
autoTurnoverJob.autoTurnoverFromStock(DateTimeFormatter.ofPattern(CommonConstant.DATE_FORMAT).format(LocalDate.now()), dcBaseStock);
} catch (Exception e) {
dcBaseQueue.setErrorMessage(e.getMessage());
dcBaseQueue.setErrorStackTrace(e.getStackTrace().toString());
} finally {
log.info("消费一条数据 message:{}", dcBaseQueue.getMessage());
dcBaseQueue.setConsumeDate(LocalDateTime.now());
dcBaseQueueMapper.updateByPrimaryKey(dcBaseQueue);
}
});
} finally {
sqlSession.close();
}
}
}
......@@ -10,9 +10,9 @@ EVENT_RDB_STORAGE_PASSWORD=#7kfnymAM$Y9-Ntf
ZOOKEEPER_SERVER=172.31.255.120:2181
NAME_SPACE=data-center
JOB_NAME=show-auto-turnover17
JOB_CRON=0 30 0 * * ?
#JOB_CRON=0 10 9 * * ?
JOB_NAME=show-auto-turnover20
#JOB_CRON=0 30 0 * * ?
JOB_CRON=0 10 12 * * ?
SHARDING_TOTAL_COUNT=8
......
......@@ -7,9 +7,13 @@ import com.bailuntec.excel.DcAutoTurnoverExcel;
import com.bailuntec.excel.ExcelListener;
import com.bailuntec.job.AutoTurnoverJob;
import com.bailuntec.mapper.DcBaseStockMapper;
import com.bailuntec.utils.PropertiesUtil;
import com.bailuntec.utils.SessionUtil;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.executor.ShardingContexts;
import com.dangdang.ddframe.job.lite.lifecycle.api.JobAPIFactory;
import com.dangdang.ddframe.job.lite.lifecycle.api.JobOperateAPI;
import com.google.common.base.Optional;
import org.junit.jupiter.api.Test;
import java.time.LocalDate;
......@@ -47,6 +51,14 @@ public class AutoTurnoverTest {
System.out.println(interval2);
}
private PropertiesUtil propertiesUtil = PropertiesUtil.getInstance("const");
@Test
public void testxx() {
JobOperateAPI jobAPIService = JobAPIFactory.createJobOperateAPI(propertiesUtil.getPropertyAsString("ZOOKEEPER_SERVER"), propertiesUtil.getPropertyAsString("NAME_SPACE"), Optional.fromNullable("null"));
jobAPIService.trigger(Optional.of("com.bailuntec.job.AutoTurnoverJob"), Optional.absent());
}
@Test
public void test() throws Exception {
// 生成周转
......@@ -137,8 +149,8 @@ public class AutoTurnoverTest {
public void testXX() {
DcBaseStock dcBaseStock = SessionUtil.getSession().getMapper(DcBaseStockMapper.class)
.selectOneByExample(DcBaseStockExample.newAndCreateCriteria()
.andBailunSkuEqualTo("950136209")
.andWarehouseCodeEqualTo("GZBLWH")
.andBailunSkuEqualTo("N-S-BT")
.andWarehouseCodeEqualTo("ESFBABLEM")
.example());
try {
......
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