| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import com.dderp.business.dao.OrderDao
- import com.dderp.common.api.NoSqlKeysService
- import com.dderp.common.api.SupplierInitService
- import com.dderp.common.datas.RedisKeys
- import com.dderp.common.entity.order.OrderLifeCycle
- import com.dySweetFishPlugin.tool.lang.Holder
- import com.sweetfish.convert.json.JsonConvert
- import org.apache.logging.log4j.Logger
- //订单生命周期
- static def createRunnable(SupplierInitService supplierService, NoSqlKeysService keysService, OrderDao orderDao, JsonConvert jsonConvert, Logger logger, String dataSourceId, long supplierCode) {
- return {
- //lrange返回字符串列表
- List<String> allJson = supplierService.redisListGetAndDel(keysService.getRedisKey(RedisKeys.KEY_ERP_ORDER_CYCLE_ITEM, supplierCode), 300)
- List<OrderLifeCycle> itemList = allJson.collect { x -> (OrderLifeCycle) jsonConvert.convertFrom(OrderLifeCycle.class, x) }
- if (!itemList.isEmpty()) {
- //按操作方式分组
- try {
- logger.warn("开始写入订单生命周期记录")
- Map<Integer, List<OrderLifeCycle>> groups = itemList.groupBy { it.dataKind }
- //按顺序执行
- Holder<Integer> itemInsertCount = Holder.of(0)
- Holder<Integer> itemUpdateCount = Holder.of(0)
- Holder<Integer> itemBreedCount = Holder.of(0)
- Holder<Integer> itemDeleteCount = Holder.of(0)
- groups.each { k, v ->
- if (k == 0) {
- orderDao.addOrderLifeCycleSync(v, dataSourceId, String.valueOf(supplierCode))
- itemInsertCount.set(v.size())
- }
- }
- groups.each { k, v ->
- if (k == 1) {
- orderDao.updateOrderLifeCycleSync(v, dataSourceId, String.valueOf(supplierCode))
- itemUpdateCount.set(v.size())
- }
- }
- groups.each { k, v ->
- if (k == 3) {
- orderDao.updateOrderLifeCycleByBreedSync(v, dataSourceId, String.valueOf(supplierCode))
- itemBreedCount.set(v.size())
- }
- }
- groups.each { k, v ->
- if (k == 2) {
- orderDao.deleteOrderLifeCycleSync(v, dataSourceId, String.valueOf(supplierCode))
- itemDeleteCount.set(v.size())
- }
- }
- logger.warn("写入订单生命周期记录:insert " + itemInsertCount.get()
- + " update " + itemUpdateCount.get()
- + " updateBreed " + itemBreedCount.get()
- + " delete " + itemDeleteCount.get()
- )
- } catch (Exception e) {
- logger.error(e.getMessage(), e)
- }
- } else {
- logger.warn("暂无订单生命周期记录")
- }
- } as Runnable
- }
- //groovy最后一个表达式的值为返回
- createRunnable(supplierService, keysService, orderDao, jsonConvert, logger, dataSourceId, supplierCode)
|