BE_RegisterPrinterClient.groovy 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import com.dySweetFishPlugin.redis.RedisService
  2. import com.dySweetFishPlugin.sql.TableIdService
  3. import com.dySweetFishPlugin.sql.dao.TunaService
  4. import com.sweetfish.convert.json.JsonConvert
  5. import com.sweetfish.service.RetResult
  6. import com.yinjie.printerAuthorize.business.dao.PrintersDao
  7. import com.yinjie.printerAuthorize.common.api.BusinessExecutor
  8. import com.yinjie.printerAuthorize.common.api.NoSqlKeysService
  9. import com.yinjie.printerAuthorize.common.api.printersAuthorize.AuthorizationService
  10. import com.yinjie.printerAuthorize.common.datas.ERPModule
  11. import com.yinjie.printerAuthorize.common.datas.LocalTypeToken
  12. import com.yinjie.printerAuthorize.common.datas.RedisKeys
  13. import com.yinjie.printerAuthorize.common.entity.base.InvokeCallParams
  14. import com.yinjie.printerAuthorize.common.entity.base.InvokeCallResult
  15. import com.yinjie.printerAuthorize.common.entity.base.ProcessEntityItem
  16. import com.yinjie.printerAuthorize.common.entity.printers.AuthorizationItem
  17. import com.yinjie.printerAuthorize.common.entity.printers.PrinterClient
  18. import org.apache.commons.lang3.StringUtils
  19. import org.apache.logging.log4j.LogManager
  20. import org.apache.logging.log4j.Logger
  21. import javax.annotation.Resource
  22. class BE_RegisterPrinterClient implements BusinessExecutor<InvokeCallParams, InvokeCallResult> {
  23. private final Logger logger = LogManager.getLogger(this.getClass().getSimpleName())
  24. @Resource
  25. private JsonConvert jsonConvert
  26. @Resource
  27. private RedisService redisService
  28. @Resource
  29. private NoSqlKeysService keysService
  30. @Resource
  31. private TunaService tunaService
  32. @Resource
  33. private TableIdService tableIdService
  34. @Resource
  35. private AuthorizationService authorizationService
  36. private PrintersDao printersDao
  37. @Override
  38. String scriptName() {
  39. return "注册新数码机客户"
  40. }
  41. @Override
  42. ERPModule module() {
  43. return ERPModule.PRINTERS
  44. }
  45. @Override
  46. void start(long supplierCode) {
  47. printersDao = tunaService.generate(PrintersDao.class)
  48. }
  49. @Override
  50. RetResult<InvokeCallParams> checkExecute(InvokeCallParams source) {
  51. PrinterClient printerClient = jsonConvert.convertFrom(PrinterClient.class, source.params)
  52. if (StringUtils.isBlank(printerClient.printerUniqueCode)) {
  53. return RetResult.<InvokeCallParams> errorT().retinfo("未指定机台唯一编码")
  54. }
  55. if (StringUtils.isBlank(printerClient.printerName)) {
  56. return RetResult.<InvokeCallParams> errorT().retinfo("未指定机台名称")
  57. }
  58. if (printerClient.authorizeDate == null) {
  59. return RetResult.<InvokeCallParams> errorT().retinfo("未指定机台授权日期")
  60. }
  61. //检查一下传入的权限字段是否和设置的位数一致
  62. if (StringUtils.isBlank(printerClient.permissions)) {
  63. return RetResult.<InvokeCallParams> errorT().retinfo("机台权限未设置")
  64. }
  65. InvokeCallParams callParams = InvokeCallParams.newBuilder()
  66. .dataSourceId(source.dataSourceId)
  67. .supplierCode(source.supplierCode)
  68. .build()
  69. RetResult<InvokeCallResult> retResult = authorizationService.callAuthorize(callParams, source.currentUser, source.dataSourceId, source.supplierCode)
  70. if (retResult.isSuccess()) {
  71. List<AuthorizationItem> itemList = jsonConvert.convertFrom(LocalTypeToken.listAuthorizationItem, retResult.result.data)
  72. if (printerClient.permissions.length() != itemList.size()) {
  73. return RetResult.<InvokeCallParams> errorT().retinfo("机台权限位数不正确")
  74. }
  75. }
  76. return RetResult.<InvokeCallParams> successT().result(source)
  77. }
  78. RetResult<InvokeCallResult> execute(InvokeCallParams source) {
  79. PrinterClient printerClient = jsonConvert.convertFrom(PrinterClient.class, source.params)
  80. printerClient.setId(tableIdService.getTableIdMulti("ptprinterclient.id", 1, source.dataSourceId, source.supplierCode as String))
  81. printerClient.setAuthorizeDateLong(printerClient.authorizeDate.time)
  82. PrinterClient.create(printerClient, source.currentUser.id)
  83. redisService.hset(keysService.getRedisKey(RedisKeys.KEY_PRINTER_CLIENT_ID, source.supplierCode), printerClient.id as String, jsonConvert.convertTo(printerClient))
  84. redisService.hset(keysService.getRedisKey(RedisKeys.KEY_PRINTER_CLIENT_CODE, source.supplierCode), printerClient.printerUniqueCode, jsonConvert.convertTo(printerClient))
  85. printersDao.addPrinterClient(printerClient, source.dataSourceId, source.supplierCode)
  86. return RetResult.<InvokeCallResult> successT().result(InvokeCallResult.success())
  87. }
  88. }