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 { 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 checkExecute(InvokeCallParams source) { PrinterClient printerClient = jsonConvert.convertFrom(PrinterClient.class, source.params) if (StringUtils.isBlank(printerClient.printerUniqueCode)) { return RetResult. errorT().retinfo("未指定机台唯一编码") } if (StringUtils.isBlank(printerClient.printerName)) { return RetResult. errorT().retinfo("未指定机台名称") } if (printerClient.authorizeDate == null) { return RetResult. errorT().retinfo("未指定机台授权日期") } //检查一下传入的权限字段是否和设置的位数一致 if (StringUtils.isBlank(printerClient.permissions)) { return RetResult. errorT().retinfo("机台权限未设置") } InvokeCallParams callParams = InvokeCallParams.newBuilder() .dataSourceId(source.dataSourceId) .supplierCode(source.supplierCode) .build() RetResult retResult = authorizationService.callAuthorize(callParams, source.currentUser, source.dataSourceId, source.supplierCode) if (retResult.isSuccess()) { List itemList = jsonConvert.convertFrom(LocalTypeToken.listAuthorizationItem, retResult.result.data) if (printerClient.permissions.length() != itemList.size()) { return RetResult. errorT().retinfo("机台权限位数不正确") } } return RetResult. successT().result(source) } RetResult 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. successT().result(InvokeCallResult.success()) } }