| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- import com.dySweetFishPlugin.redis.RedisService
- import com.dySweetFishPlugin.sql.TableIdService
- import com.dySweetFishPlugin.sql.dao.TunaService
- import com.sweetfish.convert.json.JsonConvert
- import com.sweetfish.service.RetResult
- import com.yinjie.printerAuthorize.business.dao.PrintersDao
- import com.yinjie.printerAuthorize.common.api.BusinessExecutor
- import com.yinjie.printerAuthorize.common.api.NoSqlKeysService
- import com.yinjie.printerAuthorize.common.api.printersAuthorize.AuthorizationService
- import com.yinjie.printerAuthorize.common.datas.ERPModule
- import com.yinjie.printerAuthorize.common.datas.LocalTypeToken
- import com.yinjie.printerAuthorize.common.datas.RedisKeys
- import com.yinjie.printerAuthorize.common.entity.base.InvokeCallParams
- import com.yinjie.printerAuthorize.common.entity.base.InvokeCallResult
- import com.yinjie.printerAuthorize.common.entity.base.ProcessEntityItem
- import com.yinjie.printerAuthorize.common.entity.printers.AuthorizationItem
- import com.yinjie.printerAuthorize.common.entity.printers.PrinterClient
- import org.apache.commons.lang3.StringUtils
- import org.apache.logging.log4j.LogManager
- import org.apache.logging.log4j.Logger
- import javax.annotation.Resource
- class BE_RegisterPrinterClient implements BusinessExecutor<InvokeCallParams, InvokeCallResult> {
- private final Logger logger = LogManager.getLogger(this.getClass().getSimpleName())
- @Resource
- private JsonConvert jsonConvert
- @Resource
- private RedisService redisService
- @Resource
- private NoSqlKeysService keysService
- @Resource
- private TunaService tunaService
- @Resource
- private TableIdService tableIdService
- @Resource
- private AuthorizationService authorizationService
- private PrintersDao printersDao
- @Override
- String scriptName() {
- return "注册新数码机客户"
- }
- @Override
- ERPModule module() {
- return ERPModule.PRINTERS
- }
- @Override
- void start(long supplierCode) {
- printersDao = tunaService.generate(PrintersDao.class)
- }
- @Override
- RetResult<InvokeCallParams> checkExecute(InvokeCallParams source) {
- PrinterClient printerClient = jsonConvert.convertFrom(PrinterClient.class, source.params)
- if (StringUtils.isBlank(printerClient.printerUniqueCode)) {
- return RetResult.<InvokeCallParams> errorT().retinfo("未指定机台唯一编码")
- }
- if (StringUtils.isBlank(printerClient.printerName)) {
- return RetResult.<InvokeCallParams> errorT().retinfo("未指定机台名称")
- }
- if (printerClient.authorizeDate == null) {
- return RetResult.<InvokeCallParams> errorT().retinfo("未指定机台授权日期")
- }
- //检查一下传入的权限字段是否和设置的位数一致
- if (StringUtils.isBlank(printerClient.permissions)) {
- return RetResult.<InvokeCallParams> errorT().retinfo("机台权限未设置")
- }
- InvokeCallParams callParams = InvokeCallParams.newBuilder()
- .dataSourceId(source.dataSourceId)
- .supplierCode(source.supplierCode)
- .build()
- RetResult<InvokeCallResult> retResult = authorizationService.callAuthorize(callParams, source.currentUser, source.dataSourceId, source.supplierCode)
- if (retResult.isSuccess()) {
- List<AuthorizationItem> itemList = jsonConvert.convertFrom(LocalTypeToken.listAuthorizationItem, retResult.result.data)
- if (printerClient.permissions.length() != itemList.size()) {
- return RetResult.<InvokeCallParams> errorT().retinfo("机台权限位数不正确")
- }
- }
- return RetResult.<InvokeCallParams> successT().result(source)
- }
- RetResult<InvokeCallResult> execute(InvokeCallParams source) {
- PrinterClient printerClient = jsonConvert.convertFrom(PrinterClient.class, source.params)
- printerClient.setId(tableIdService.getTableIdMulti("ptprinterclient.id", 1, source.dataSourceId, source.supplierCode as String))
- printerClient.setAuthorizeDateLong(printerClient.authorizeDate.time)
- PrinterClient.create(printerClient, source.currentUser.id)
- redisService.hset(keysService.getRedisKey(RedisKeys.KEY_PRINTER_CLIENT_ID, source.supplierCode), printerClient.id as String, jsonConvert.convertTo(printerClient))
- redisService.hset(keysService.getRedisKey(RedisKeys.KEY_PRINTER_CLIENT_CODE, source.supplierCode), printerClient.printerUniqueCode, jsonConvert.convertTo(printerClient))
- printersDao.addPrinterClient(printerClient, source.dataSourceId, source.supplierCode)
- return RetResult.<InvokeCallResult> successT().result(InvokeCallResult.success())
- }
- }
|