根据发货单号批量更新设备编号/设备状态

/**
 * @author QiaoChu
 * @codeName 根据发货单号批量更新设备编号/设备状态
 * @description 根据发货单号批量作废设备/设备状态
 * @notice 查找关联类型的字段得传[主键:_id]
 * @params field_tkHAh__c 设备关联发货单编码
 */
String name = context.data['name'];
String suffixName = "-" + name.split('-')[1];
QueryResult queryRes = Fx.object.find("DeviceObj",
        FQLAttribute.builder()
                .columns(["_id", "device_code"])
                .queryTemplate(QueryTemplate.AND(["field_tkHAh__c": QueryOperator.EQ(context.data['_id'])]))
                .build(),
        SelectAttribute.builder().build()).result() as QueryResult
List dataList = queryRes.dataList;
log.info(dataList)
dataList.each { item ->
    log.info(item)
    String objectId = item["_id"] as String
    String deviceCode = item["device_code"] as String
    log.info(objectId)
    log.info(deviceCode + suffixName)
    def (Boolean error, Map data, String errorMessage) = Fx.object.update("DeviceObj", objectId, ["life_status": "invalid", "device_code": deviceCode + suffixName], UpdateAttribute.builder().triggerWorkflow(false).build())
    if (!error) {
        log.info(data)
    } else {
        log.info(errorMessage)
    }
}

参考:
1、Fx.object.find
Fx.object | 纷享销客 | 帮助中心
2、Fx.object.update
Fx.object | 纷享销客 | 帮助中心

private boolean checkBaseMaterial(StringBuilder sb, String goodsId, BaseMaterial mac) { boolean isOk = false; if (mac == null || !BasicConstant.ENABLE_Y.equals(mac.getEnable())) { sb.append(String.format("物品[%s]在XMS中不合法 ", goodsId)); isOk = true; } return isOk; }public void setTransferSysToSave(Transfersys transfersys) { if (null == transfersys.getGoodsType()) { transfersys.setGoodsType(EnumGoodsType.GOODS.getId()); } if (null == transfersys.getGoodsStatus()) { transfersys.setGoodsStatus(EnumGoodsStatus.GOOD.getId()); } transfersys.setIsPos(BasicConstant.ENABLE_Y); // 设置机构信息并校验 Integer serviceType = transfersys.getServiceType(); String xmsOrgId = getXmsOrgId(transfersys); checkOrg(serviceType, xmsOrgId); // 设置物品信息并校验 StringBuilder sb = new StringBuilder(); for (TransfersysItem item : transfersys.getItemList()) { String goodsId = item.getMacno(); Integer quantity = item.getAppQuantity(); BaseMaterial mac = basicService.getMaterial(goodsId); if (checkItemQuantity(sb, goodsId, quantity) || checkBaseMaterial(sb, goodsId, mac)) { continue; } item.setVerifyQuantity(quantity); item.setMacname(mac.getMacname()); } String errMsg = sb.toString(); if (StringUtils.isNotEmpty(errMsg)) { throw new BusinessException(errMsg); } transfersys.setUpdatePerson(transfersys.getCreatePerson()); // 设置状态、标题等信息 Org org = orgService.getById(xmsOrgId); String title = basicService.getOrgName(org.getId()) + "-" + transfersys.getServiceTypeDesc() + "-" + transfersys.getGoodsTypeDesc() + "-" + transfersys.getGoodsStatusDesc() + "-" + DateUtil.date2str(new Date()); transfersys.setTitle(title); transfersys.setStatus(EnumTransfersysStatus.TO_BE_AUDIT.getId()); if (TransfersysUtil.isReceive(transfersys.getServiceType())) { // 收货 transfersys.setToOrgid(org.getId()); transfersys.setToAddress(org.getName()); } else { // 发货 transfersys.setFromOrgid(org.getId()); transfersys.setFromAddress(org.getName()); } if (TransfersysUtil.isMiHome(org.getType())) { // 是否米家 transfersys.setPssXmsBizType(EnumPssXmsBizType.MIHOME); } else { transfersys.setPssXmsBizType(EnumPssXmsBizType.OTHER); } }@Override public Response<TransferSysCreateDTO> create(TransferSysCreateRequest request) { if (request == null || request.getTransfersys() == null) { return Response.getResult(X5GateWayExceptionCode.COMMON_PARAM_ERROR, "req empty"); } log.info("TransferSysGateWayDubboService.create 入参:{}", JsonUtils.writeValueQuite(request)); Transfersys transfersys = request.getTransfersys(); TransferSysCreateDTO transferSysCreateDTO = new TransferSysCreateDTO(); if (StringUtils.isNotBlank(transfersys.getId()) && TransfersysUtil.isWmsServiceType(transfersys.getServiceType())) { ApiLog apiLog = apiLogService.findByParams(ImmutableMap.of("method", transfersys.getId())); if (null == apiLog) { return Response.getResult(X5GateWayExceptionCode.COMMON_PARAM_ERROR, "id not exists"); } String result = StringUtils.EMPTY; try { result = pssProxy.noticeCreatePssBatch(apiLog.getRequest(), apiLog.getIp()); } catch (Exception e) { log.error("noticeCreatePssBatch 创建失败:", e); return Response.getResult(X5GateWayExceptionCode.COMMON_UNEXPECTED_ERROR, e.getMessage()); } transferSysCreateDTO.setBizId(transfersys.getId()); Response<TransferSysCreateDTO> res = Response.getSuccess(transferSysCreateDTO); res.setMessage(result); return res; } //oms单幂等 try (LockService redisLock = new LockService("mal_oms_lock_" + transfersys.getWfReturnId() + "_" + transfersys.getId())) { if (TransfersysUtil.isOmsServiceType(transfersys.getServiceType()) && StringUtils.isNotEmpty(transfersys.getWfReturnId())) { if (!redisLock.tryLock(TimeUnit.MINUTES.toSeconds(CommonConstants.ONE_INT))) { throw new BusinessException("系统处理中,请稍后处理"); } Transfersys omsTransfersys = transfersysManager.findByWfreturnIdFromMaster(transfersys.getWfReturnId(), transfersys.getServiceType()); if (Objects.nonNull(omsTransfersys)) { transferSysCreateDTO.setBizId(omsTransfersys.getId()); return Response.getSuccess(transferSysCreateDTO); } } Response<String> response = checkSpmToXms(transfersys); if (Boolean.FALSE.equals(Response.isSuccess(response))) { return Response.getResult(X5GateWayExceptionCode.COMMON_PARAM_ERROR, response.getMessage()); } transferSyGateWayManage.setTransferSysToSave(transfersys); transferSysCreateDTO.setBizId(transfersysDubboService.createAndApproval(transfersys)); } catch (Exception e) { log.error("setTransferSysToSave 创建失败:", e); return Response.getResult(X5GateWayExceptionCode.COMMON_UNEXPECTED_ERROR, e.getMessage()); } Response<TransferSysCreateDTO> res = Response.getSuccess(transferSysCreateDTO); res.setMessage("create transfersys success"); return res; }@Override public Response<TransferSysCreateDTO> create(TransferSysCreateRequest request) { if (request == null || request.getTransfersys() == null) { return Response.getResult(X5GateWayExceptionCode.COMMON_PARAM_ERROR, "req empty"); } log.info("TransferSysGateWayDubboService.create 入参:{}", JsonUtils.writeValueQuite(request)); Transfersys transfersys = request.getTransfersys(); TransferSysCreateDTO transferSysCreateDTO = new TransferSysCreateDTO(); if (StringUtils.isNotBlank(transfersys.getId()) && TransfersysUtil.isWmsServiceType(transfersys.getServiceType())) { ApiLog apiLog = apiLogService.findByParams(ImmutableMap.of("method", transfersys.getId())); if (null == apiLog) { return Response.getResult(X5GateWayExceptionCode.COMMON_PARAM_ERROR, "id not exists"); } String result = StringUtils.EMPTY; try { result = pssProxy.noticeCreatePssBatch(apiLog.getRequest(), apiLog.getIp()); } catch (Exception e) { log.error("noticeCreatePssBatch 创建失败:", e); return Response.getResult(X5GateWayExceptionCode.COMMON_UNEXPECTED_ERROR, e.getMessage()); } transferSysCreateDTO.setBizId(transfersys.getId()); Response<TransferSysCreateDTO> res = Response.getSuccess(transferSysCreateDTO); res.setMessage(result); return res; } //oms单幂等 try (LockService redisLock = new LockService("mal_oms_lock_" + transfersys.getWfReturnId() + "_" + transfersys.getId())) { if (TransfersysUtil.isOmsServiceType(transfersys.getServiceType()) && StringUtils.isNotEmpty(transfersys.getWfReturnId())) { if (!redisLock.tryLock(TimeUnit.MINUTES.toSeconds(CommonConstants.ONE_INT))) { throw new BusinessException("系统处理中,请稍后处理"); } Transfersys omsTransfersys = transfersysManager.findByWfreturnIdFromMaster(transfersys.getWfReturnId(), transfersys.getServiceType()); if (Objects.nonNull(omsTransfersys)) { transferSysCreateDTO.setBizId(omsTransfersys.getId()); return Response.getSuccess(transferSysCreateDTO); } } Response<String> response = checkSpmToXms(transfersys); if (Boolean.FALSE.equals(Response.isSuccess(response))) { return Response.getResult(X5GateWayExceptionCode.COMMON_PARAM_ERROR, response.getMessage()); } transferSyGateWayManage.setTransferSysToSave(transfersys); transferSysCreateDTO.setBizId(transfersysDubboService.createAndApproval(transfersys)); } catch (Exception e) { log.error("setTransferSysToSave 创建失败:", e); return Response.getResult(X5GateWayExceptionCode.COMMON_UNEXPECTED_ERROR, e.getMessage()); } Response<TransferSysCreateDTO> res = Response.getSuccess(transferSysCreateDTO); res.setMessage("create transfersys success"); return res; }@Override public Response<TransferSysCreateDTO> create(TransferSysCreateRequest request) { if (request == null || request.getTransfersys() == null) { return Response.getResult(X5GateWayExceptionCode.COMMON_PARAM_ERROR, "req empty"); } log.info("TransferSysGateWayDubboService.create 入参:{}", JsonUtils.writeValueQuite(request)); Transfersys transfersys = request.getTransfersys(); TransferSysCreateDTO transferSysCreateDTO = new TransferSysCreateDTO(); if (StringUtils.isNotBlank(transfersys.getId()) && TransfersysUtil.isWmsServiceType(transfersys.getServiceType())) { ApiLog apiLog = apiLogService.findByParams(ImmutableMap.of("method", transfersys.getId())); if (null == apiLog) { return Response.getResult(X5GateWayExceptionCode.COMMON_PARAM_ERROR, "id not exists"); } String result = StringUtils.EMPTY; try { result = pssProxy.noticeCreatePssBatch(apiLog.getRequest(), apiLog.getIp()); } catch (Exception e) { log.error("noticeCreatePssBatch 创建失败:", e); return Response.getResult(X5GateWayExceptionCode.COMMON_UNEXPECTED_ERROR, e.getMessage()); } transferSysCreateDTO.setBizId(transfersys.getId()); Response<TransferSysCreateDTO> res = Response.getSuccess(transferSysCreateDTO); res.setMessage(result); return res; } //oms单幂等 try (LockService redisLock = new LockService("mal_oms_lock_" + transfersys.getWfReturnId() + "_" + transfersys.getId())) { if (TransfersysUtil.isOmsServiceType(transfersys.getServiceType()) && StringUtils.isNotEmpty(transfersys.getWfReturnId())) { if (!redisLock.tryLock(TimeUnit.MINUTES.toSeconds(CommonConstants.ONE_INT))) { throw new BusinessException("系统处理中,请稍后处理"); } Transfersys omsTransfersys = transfersysManager.findByWfreturnIdFromMaster(transfersys.getWfReturnId(), transfersys.getServiceType()); if (Objects.nonNull(omsTransfersys)) { transferSysCreateDTO.setBizId(omsTransfersys.getId()); return Response.getSuccess(transferSysCreateDTO); } } Response<String> response = checkSpmToXms(transfersys); if (Boolean.FALSE.equals(Response.isSuccess(response))) { return Response.getResult(X5GateWayExceptionCode.COMMON_PARAM_ERROR, response.getMessage()); } transferSyGateWayManage.setTransferSysToSave(transfersys); transferSysCreateDTO.setBizId(transfersysDubboService.createAndApproval(transfersys)); } catch (Exception e) { log.error("setTransferSysToSave 创建失败:", e); return Response.getResult(X5GateWayExceptionCode.COMMON_UNEXPECTED_ERROR, e.getMessage()); } Response<TransferSysCreateDTO> res = Response.getSuccess(transferSysCreateDTO); res.setMessage("create transfersys success"); return res; }@Override public Response<TransferSysCreateDTO> create(TransferSysCreateRequest request) { if (request == null || request.getTransfersys() == null) { return Response.getResult(X5GateWayExceptionCode.COMMON_PARAM_ERROR, "req empty"); } log.info("TransferSysGateWayDubboService.create 入参:{}", JsonUtils.writeValueQuite(request)); Transfersys transfersys = request.getTransfersys(); TransferSysCreateDTO transferSysCreateDTO = new TransferSysCreateDTO(); if (StringUtils.isNotBlank(transfersys.getId()) && TransfersysUtil.isWmsServiceType(transfersys.getServiceType())) { ApiLog apiLog = apiLogService.findByParams(ImmutableMap.of("method", transfersys.getId())); if (null == apiLog) { return Response.getResult(X5GateWayExceptionCode.COMMON_PARAM_ERROR, "id not exists"); } String result = StringUtils.EMPTY; try { result = pssProxy.noticeCreatePssBatch(apiLog.getRequest(), apiLog.getIp()); } catch (Exception e) { log.error("noticeCreatePssBatch 创建失败:", e); return Response.getResult(X5GateWayExceptionCode.COMMON_UNEXPECTED_ERROR, e.getMessage()); } transferSysCreateDTO.setBizId(transfersys.getId()); Response<TransferSysCreateDTO> res = Response.getSuccess(transferSysCreateDTO); res.setMessage(result); return res; } //oms单幂等 try (LockService redisLock = new LockService("mal_oms_lock_" + transfersys.getWfReturnId() + "_" + transfersys.getId())) { if (TransfersysUtil.isOmsServiceType(transfersys.getServiceType()) && StringUtils.isNotEmpty(transfersys.getWfReturnId())) { if (!redisLock.tryLock(TimeUnit.MINUTES.toSeconds(CommonConstants.ONE_INT))) { throw new BusinessException("系统处理中,请稍后处理"); } Transfersys omsTransfersys = transfersysManager.findByWfreturnIdFromMaster(transfersys.getWfReturnId(), transfersys.getServiceType()); if (Objects.nonNull(omsTransfersys)) { transferSysCreateDTO.setBizId(omsTransfersys.getId()); return Response.getSuccess(transferSysCreateDTO); } } Response<String> response = checkSpmToXms(transfersys); if (Boolean.FALSE.equals(Response.isSuccess(response))) { return Response.getResult(X5GateWayExceptionCode.COMMON_PARAM_ERROR, response.getMessage()); } transferSyGateWayManage.setTransferSysToSave(transfersys); transferSysCreateDTO.setBizId(transfersysDubboService.createAndApproval(transfersys)); } catch (Exception e) { log.error("setTransferSysToSave 创建失败:", e); return Response.getResult(X5GateWayExceptionCode.COMMON_UNEXPECTED_ERROR, e.getMessage()); } Response<TransferSysCreateDTO> res = Response.getSuccess(transferSysCreateDTO); res.setMessage("create transfersys success"); return res; } 物料编号无效异常 在 TransferSysGateWayManage.setTransferSysToSave 中,物品 63232 在 XMS 系统中校验不合法(如未注册、状态异常等),这个ERROR日志,这个问题如何解决属于业务错误(预期内错误)
07-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值