Init_21_ProductParameter.groovy 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import Ignore_ExecPageFlipper as ExecPageFlipper
  2. import com.dderp.business.dao.ProductDao
  3. import com.dderp.common.api.NoSqlKeysService
  4. import com.dderp.common.datas.RedisKeys
  5. import com.dderp.common.entity.product.ProductParameter
  6. import com.dderp.common.tool.ERPUtils
  7. import com.dySweetFishPlugin.redis.RedisService
  8. import com.dySweetFishPlugin.sql.TableCodeNode
  9. import com.dySweetFishPlugin.sql.TableIdNode
  10. import com.dySweetFishPlugin.sql.TableIdService
  11. import com.sweetfish.convert.json.JsonConvert
  12. import com.sweetfish.source.PageFlipper
  13. import org.apache.commons.lang3.StringUtils
  14. import org.rex.RMap
  15. static def createRunnable(TableIdService tableIdService, RedisService redisService, NoSqlKeysService keysService, ProductDao productDao, JsonConvert jsonConvert, String sysRunMode, String dataSourceId, long supplierCode) {
  16. return {
  17. redisService.del(keysService.getRedisKey(RedisKeys.KEY_PRODUCT_PARAMETER, supplierCode))
  18. RMap params = new RMap()
  19. ExecPageFlipper.execute(300, { PageFlipper p ->
  20. List<ProductParameter> productParameterList = productDao.selectProductParameter(params, p, dataSourceId, supplierCode)
  21. if (!productParameterList.isEmpty()) {
  22. Map<String, String> productParameterHashMap = productParameterList.collectEntries { [String.valueOf(it.id), jsonConvert.convertTo(it)] }
  23. redisService.hmset(keysService.getRedisKey(RedisKeys.KEY_PRODUCT_PARAMETER, supplierCode), productParameterHashMap)
  24. }
  25. })
  26. String json = redisService.hget(keysService.getRedisKey(RedisKeys.KEY_PRODUCT_PARAMETER, supplierCode), String.valueOf(ERPUtils.RESERVE_PRODUCT_PARAMETER_ID))
  27. ProductParameter reserveParameter = (StringUtils.isBlank(json)) ? null : jsonConvert.convertFromO(ProductParameter.class, json) as ProductParameter
  28. if ("ProductCenter".equalsIgnoreCase(sysRunMode)) {
  29. //产品中心模式,查看有没有 保留的产品参数,有则需要删除
  30. if (reserveParameter != null) {
  31. productDao.deleteProductParameter(reserveParameter, dataSourceId, supplierCode)
  32. redisService.hdel(keysService.getRedisKey(RedisKeys.KEY_PRODUCT_PARAMETER, supplierCode), String.valueOf(ERPUtils.RESERVE_PRODUCT_PARAMETER_ID))
  33. //还需要刷新下tableId
  34. tableIdService.addTableIdNode(TableIdNode.newBuilder()
  35. .idName("tbProductParameter.id")
  36. .tableName("tbProductParameter")
  37. .idFieldName("id")
  38. .build(),
  39. dataSourceId,
  40. String.valueOf(supplierCode))
  41. }
  42. } else {
  43. //如果是其它模式,则增加一条记录
  44. if (reserveParameter == null) {
  45. reserveParameter = new ProductParameter()
  46. reserveParameter.id = ERPUtils.RESERVE_PRODUCT_PARAMETER_ID
  47. reserveParameter.parameterName = "系统分界线参数"
  48. reserveParameter.parameterFieldPart = ""
  49. reserveParameter.parameterFieldOrder = ""
  50. reserveParameter.fieldType = 1
  51. reserveParameter.selectKind = 0
  52. reserveParameter.idDictType = 0L
  53. reserveParameter.voidFlag = 1
  54. ProductParameter.create(reserveParameter, 0L)
  55. productDao.addProductParameterSync(reserveParameter, dataSourceId, supplierCode)
  56. redisService.hset(keysService.getRedisKey(RedisKeys.KEY_PRODUCT_PARAMETER, supplierCode), String.valueOf(reserveParameter.id), jsonConvert.convertTo(reserveParameter))
  57. //还需要刷新下tableId
  58. tableIdService.addTableIdNode(TableIdNode.newBuilder()
  59. .idName("tbProductParameter.id")
  60. .tableName("tbProductParameter")
  61. .idFieldName("id")
  62. .build(),
  63. dataSourceId,
  64. String.valueOf(supplierCode))
  65. }
  66. }
  67. } as Runnable
  68. }
  69. //groovy最后一个表达式的值为返回
  70. createRunnable(tableIdService, redisService, keysService, productDao, jsonConvert, sysRunMode, dataSourceId, supplierCode)