| | |
| | | import com.zy.asrs.utils.OrderInAndOutUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.jdbc.core.JdbcTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | private OrderDetlPakinServiceImpl orderDetlPakinService; |
| | | @Autowired |
| | | private OrderDetlPakoutService orderDetlPakoutService; |
| | | @Autowired |
| | | private JdbcTemplate jdbcTemplate; |
| | | |
| | | public ReturnT<String> start(){ |
| | | // List<Order> settleEqual6 = orderService.selectList(new EntityWrapper<Order>() |
| | |
| | | return SUCCESS; |
| | | } |
| | | |
| | | /** |
| | | * 每天 0 点将未执行的出库单转入历史档,并标记为系统自动删除。 |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public ReturnT<String> startPakoutAutoArchive() { |
| | | try { |
| | | Integer orderCount = jdbcTemplate.queryForObject( |
| | | "select count(1) from man_order_pakout where settle = 1", |
| | | Integer.class |
| | | ); |
| | | if (orderCount == null || orderCount == 0) { |
| | | return SUCCESS; |
| | | } |
| | | |
| | | int detailLogCount = jdbcTemplate.update( |
| | | "insert into man_order_detl_log_pakout " + |
| | | "select * from man_order_detl_pakout " + |
| | | "where order_id in (select id from man_order_pakout where settle = 1)" |
| | | ); |
| | | jdbcTemplate.update( |
| | | "update logDetl " + |
| | | "set logDetl.memo = case " + |
| | | "when logDetl.memo is null or logDetl.memo = '' " + |
| | | "then '系统0点自动删除迁移[' + convert(varchar(19), getdate(), 120) + ']' " + |
| | | "else logDetl.memo + ';系统0点自动删除迁移[' + convert(varchar(19), getdate(), 120) + ']' " + |
| | | "end, " + |
| | | "logDetl.update_by = 0, " + |
| | | "logDetl.update_time = getdate() " + |
| | | "from man_order_detl_log_pakout logDetl " + |
| | | "where exists (" + |
| | | "select 1 " + |
| | | "from man_order_detl_pakout detl " + |
| | | "inner join man_order_pakout pakout on detl.order_id = pakout.id " + |
| | | "where pakout.settle = 1 and detl.id = logDetl.id)" |
| | | ); |
| | | int detailDeleteCount = jdbcTemplate.update( |
| | | "delete from man_order_detl_pakout " + |
| | | "where order_id in (select id from man_order_pakout where settle = 1)" |
| | | ); |
| | | |
| | | int orderLogCount = jdbcTemplate.update( |
| | | "insert into man_order_log_pakout " + |
| | | "select * from man_order_pakout " + |
| | | "where settle = 1" |
| | | ); |
| | | jdbcTemplate.update( |
| | | "update logOrder " + |
| | | "set logOrder.memo = case " + |
| | | "when logOrder.memo is null or logOrder.memo = '' " + |
| | | "then '系统0点自动删除迁移[' + convert(varchar(19), getdate(), 120) + ']' " + |
| | | "else logOrder.memo + ';系统0点自动删除迁移[' + convert(varchar(19), getdate(), 120) + ']' " + |
| | | "end, " + |
| | | "logOrder.update_by = 0, " + |
| | | "logOrder.update_time = getdate() " + |
| | | "from man_order_log_pakout logOrder " + |
| | | "where exists (" + |
| | | "select 1 " + |
| | | "from man_order_pakout pakout " + |
| | | "where pakout.settle = 1 and pakout.id = logOrder.id)" |
| | | ); |
| | | int orderDeleteCount = jdbcTemplate.update( |
| | | "delete from man_order_pakout where settle = 1" |
| | | ); |
| | | |
| | | log.info( |
| | | "0点自动迁移出库单至历史档完成, 订单数={}, 订单历史数={}, 明细历史数={}, 订单删除数={}, 明细删除数={}", |
| | | orderCount, orderLogCount, detailLogCount, orderDeleteCount, detailDeleteCount |
| | | ); |
| | | return SUCCESS; |
| | | } catch (Exception e) { |
| | | log.error("0点自动迁移出库单至历史档失败", e); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return FAIL.setMsg(e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | private void moveBoth(Order order, List<OrderDetl> orderDetls){ |
| | | Date now = new Date(); |
| | | if (!Cools.isEmpty(orderDetls)) { |