feat(api): 新增ERP产品管理功能

- 新增ErpProduct实体类,用于接收ERP产品信息
- 在IToErpService接口中增加创建车间入库单和其它出入库单的方法
- 在IToWmsService接口中增加接收、修改、作废物料的方法
- 实现ToErpServiceImpl中的callbackTransferBill方法,定时回调其他出入库单
- 实现ToWmsServiceImpl中对ErpProduct的接收、更新及作废操作
- 修改MydoJobServiceImpl逻辑,优化任务完成后的回调处理流程
- 更新ToErpApiController控制器,调整相关接口路径与实现方式
- 更新ToWmsApiController控制器,新增物料相关的RESTful接口
- 调整代码结构,引入必要的依赖并删除无用的导入包
- 修复部分注释和日志描述不准确的问题
This commit is contained in:
liuhanqing
2025-12-10 16:23:21 +08:00
parent fa1cf1565c
commit a072e6f862
8 changed files with 241 additions and 164 deletions

View File

@@ -28,34 +28,12 @@ public class ToErpApiController {
@Autowired @Autowired
private IToErpService toErpService; private IToErpService toErpService;
/**
* 接收物料信息
*/
@GetMapping("/receiveMaterial")
public AjaxResult receiveMaterial(@RequestBody BasProduct basProduct) {
return toErpService.receiveMaterial(basProduct);
}
/**
* 接收客户信息
*/
@GetMapping("/receiveCustomer")
public AjaxResult receiveCustomer(@RequestBody BasCustomer basProduct) {
return toErpService.receiveCustomer(basProduct);
}
/** /**
* 接收供应商信息 * 回传其他出入库单
*/
@GetMapping("/receiveSupplier")
public AjaxResult receiveSupplier(@RequestBody BasSupplier basSupplier) {
return toErpService.receiveSupplier(basSupplier);
}
/**
* 生成调拨单
*/ */
@Scheduled(fixedDelay = 1500) @Scheduled(fixedDelay = 1500)
public void saveTransferBill() { public void callbackTransferBill() {
toErpService.saveTransferBill(); toErpService.callbackTransferBill();
} }
} }

View File

@@ -1,6 +1,7 @@
package com.ruoyi.api.controller; package com.ruoyi.api.controller;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.ruoyi.api.domain.ErpProduct;
import com.ruoyi.api.domain.ReMaterialParam; import com.ruoyi.api.domain.ReMaterialParam;
import com.ruoyi.api.domain.RequestEnter; import com.ruoyi.api.domain.RequestEnter;
import com.ruoyi.api.domain.WmsJobRequest; import com.ruoyi.api.domain.WmsJobRequest;
@@ -129,29 +130,33 @@ public class ToWmsApiController {
/** /**
* 修改物料管理 * 接收物料
*/ */
@Log(title = "物料管理", businessType = BusinessType.UPDATE) @Log(title = "物料管理", businessType = BusinessType.INSERT)
@PutMapping("/updateProduct") @PutMapping("/receiveProduct")
public AjaxResult updateProduct(@RequestBody BasProduct basProduct) public AjaxResult receiveProduct(@RequestBody ErpProduct erpProduct)
{ {
if (basProductService.updateBasProduct(basProduct)>0){ return toWmsService.receiveProduct(erpProduct);
return AjaxResult.success(basProduct.getProductId());
}
return AjaxResult.error();
} }
/** /**
* 修改物料管理 * 修改物料管理
*/ */
@Log(title = "物料管理", businessType = BusinessType.UPDATE) @Log(title = "物料管理", businessType = BusinessType.UPDATE)
@PutMapping("/InvalidProduct") @PutMapping("/updateProduct")
public AjaxResult InvalidProduct(@RequestBody BasProduct basProduct) public AjaxResult updateProduct(@RequestBody ErpProduct erpProduct)
{ {
if (basProductService.updateBasProduct(basProduct)>0){ return toWmsService.updateProduct(erpProduct);
return AjaxResult.success(basProduct.getProductId()); }
}
return AjaxResult.error(); /**
* 作废物料
*/
@Log(title = "物料管理", businessType = BusinessType.UPDATE)
@PutMapping("/InvalidProduct")
public AjaxResult InvalidProduct(@RequestBody ErpProduct erpProduct)
{
return toWmsService.InvalidProduct(erpProduct);
} }
} }

View File

@@ -0,0 +1,20 @@
package com.ruoyi.api.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ErpProduct {
private String sys_MainId;
private String ITEM_CODE;
private String ITEM_NAME;
private String ITEM_SPECIFICATION;
private String LENTH;
private String WIDTH;
private String HEIGTH;
private String UNIT_CODE;
private String UNIT_NAME;
}

View File

@@ -13,13 +13,16 @@ import java.util.Map;
public interface IToErpService { public interface IToErpService {
Map<String,String> saveTransferBill(); void callbackTransferBill();
Map<String,String> billCompletedCallBack();
AjaxResult receiveMaterial(BasProduct basProduct); AjaxResult receiveMaterial(BasProduct basProduct);
AjaxResult receiveCustomer(BasCustomer basProduct); AjaxResult receiveCustomer(BasCustomer basProduct);
AjaxResult receiveSupplier(BasSupplier basSupplier); AjaxResult receiveSupplier(BasSupplier basSupplier);
AjaxResult createWorkshopInboundOrder();
AjaxResult createOtherInOutboundOrder();
} }

View File

@@ -1,5 +1,6 @@
package com.ruoyi.api.service; package com.ruoyi.api.service;
import com.ruoyi.api.domain.ErpProduct;
import com.ruoyi.api.domain.ReMaterialParam; import com.ruoyi.api.domain.ReMaterialParam;
import com.ruoyi.api.domain.RequestEnter; import com.ruoyi.api.domain.RequestEnter;
import com.ruoyi.api.domain.WmsJobRequest; import com.ruoyi.api.domain.WmsJobRequest;
@@ -43,4 +44,19 @@ public interface IToWmsService {
* 获取入库作业 * 获取入库作业
*/ */
AjaxResult requestEnterByTrayCodeAndEntranceId(RequestEnter requestEnter); AjaxResult requestEnterByTrayCodeAndEntranceId(RequestEnter requestEnter);
/**
* 接收物料
*/
AjaxResult receiveProduct(ErpProduct erpProduct);
/**
* 修改物料
*/
AjaxResult updateProduct(ErpProduct erpProduct);
/**
* 作废物料
*/
AjaxResult InvalidProduct(ErpProduct erpProduct);
} }

View File

@@ -1,5 +1,6 @@
package com.ruoyi.api.service.impl; package com.ruoyi.api.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.ObjUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.ruoyi.api.mapper.JobStatisticsMapper; import com.ruoyi.api.mapper.JobStatisticsMapper;
@@ -14,15 +15,14 @@ import com.ruoyi.bas.BasSupplier.service.IBasSupplierService;
import com.ruoyi.bas.cargoSpace.mapper.BasCargoSpaceMapper; import com.ruoyi.bas.cargoSpace.mapper.BasCargoSpaceMapper;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.in.erp.domain.TransferBillCallback;
import com.ruoyi.in.erp.service.ITransferBillCallbackService;
import com.ruoyi.job.mydojob.domain.MydoJob; import com.ruoyi.job.mydojob.domain.MydoJob;
import com.ruoyi.job.mydojob.mapper.MydoJobMapper; import com.ruoyi.job.mydojob.mapper.MydoJobMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* 作业统计 Service 实现 * 作业统计 Service 实现
@@ -38,20 +38,24 @@ public class ToErpServiceImpl implements IToErpService {
@Autowired @Autowired
private IBasCustomerService basCustomerService; private IBasCustomerService basCustomerService;
@Autowired
private ITransferBillCallbackService transferBillCallbackService;
@Override @Override
public Map<String, String> saveTransferBill() { public void callbackTransferBill() {
HashMap<String, String> map = new HashMap<>(); TransferBillCallback param = new TransferBillCallback();
map.put("code","200"); param.setStatus("0");
return map; List<TransferBillCallback> list = transferBillCallbackService.selectTransferBillCallbackList(param);
} for (TransferBillCallback transferBillCallback : list) {
//todo 请求其他出入库单回传接口
@Override AjaxResult otherInOutboundOrder = createOtherInOutboundOrder();
public Map<String, String> billCompletedCallBack() { if (otherInOutboundOrder.isSuccess()){
HashMap<String, String> map = new HashMap<>(); transferBillCallback.setStatus("1");
map.put("code","200"); transferBillCallback.setFinishTime(DateUtil.formatDateTime(new Date()));
return map; transferBillCallbackService.updateTransferBillCallback(transferBillCallback);
}
}
} }
@Override @Override
@@ -89,4 +93,14 @@ public class ToErpServiceImpl implements IToErpService {
} }
return AjaxResult.success(); return AjaxResult.success();
} }
@Override
public AjaxResult createWorkshopInboundOrder() {
return AjaxResult.success();
}
@Override
public AjaxResult createOtherInOutboundOrder() {
return AjaxResult.success();
}
} }

View File

@@ -5,10 +5,7 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.ruoyi.api.domain.ReMaterialParam; import com.ruoyi.api.domain.*;
import com.ruoyi.api.domain.RequestEnter;
import com.ruoyi.api.domain.RequestEnterResponse;
import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.api.service.IToErpService; import com.ruoyi.api.service.IToErpService;
import com.ruoyi.api.service.IToWmsService; import com.ruoyi.api.service.IToWmsService;
import com.ruoyi.bas.BasProduct.domain.BasProduct; import com.ruoyi.bas.BasProduct.domain.BasProduct;
@@ -135,7 +132,7 @@ public class ToWmsServiceImpl implements IToWmsService {
BasProduct basProduct = basProducts.get(0); BasProduct basProduct = basProducts.get(0);
//根据包装方式 主要包装方式 描述 长 宽 高 包装材积 //todo 根据包装方式 主要包装方式 描述 长 宽 高 包装材积
int size = getSize(basProduct); int size = getSize(basProduct);
//超大托盘不处理 直接返回 //超大托盘不处理 直接返回
@@ -152,6 +149,8 @@ public class ToWmsServiceImpl implements IToWmsService {
String inOrOutType = null; String inOrOutType = null;
String inStockId = null; String inStockId = null;
String inStockDetailId = null; String inStockDetailId = null;
//创建作业标准
boolean flag = false;
if ("1".equals(requestEnter.getFloor())) { if ("1".equals(requestEnter.getFloor())) {
//一楼入库 其它入库 和 退料入库 存在单据,需要修改单据数量 //一楼入库 其它入库 和 退料入库 存在单据,需要修改单据数量
InStockin inStockinParam = new InStockin(); InStockin inStockinParam = new InStockin();
@@ -179,100 +178,95 @@ public class ToWmsServiceImpl implements IToWmsService {
inStockinDetail.setScanNum(Convert.toStr(Convert.toBigDecimal(inStockinDetail.getScanNum()).add(Convert.toBigDecimal(1)))); inStockinDetail.setScanNum(Convert.toStr(Convert.toBigDecimal(inStockinDetail.getScanNum()).add(Convert.toBigDecimal(1))));
inStockinDetailService.updateInStockinDetail(inStockinDetail); inStockinDetailService.updateInStockinDetail(inStockinDetail);
} else { flag = true;
} else if ("2".equals(requestEnter.getFloor())){
inOrOutType = "1"; inOrOutType = "1";
} //todo 创建工艺入库单
AjaxResult workshopInboundOrder = toErpService.createWorkshopInboundOrder();
if (workshopInboundOrder.isSuccess()){
//生成作业 flag = true;
MydoJob mydoJob = new MydoJob();
mydoJob.setStatus("1");
mydoJob.setInOrOut(inOrOutType);
mydoJob.setExecutionPhase("1");
mydoJob.setTrayCode(basJobIdService.getJobId("TP"));
mydoJob.setWarehouseId("01");
mydoJob.setRoadwayId(getRoadway(size));
mydoJob.setLineId(erpBill);
BasRoadway basRoadway = basRoadwayService.selectBasRoadwayById(mydoJob.getRoadwayId());
if ("1".equals(requestEnter.getFloor())) {
if ("Y".equals(basRoadway.getInLocked())) {
return new AjaxResult(6, "巷道已锁");
}
} else {
if ("Y".equals(basRoadway.getInLocked2())) {
return new AjaxResult(6, "巷道已锁");
} }
} }
//根据巷道查找货位 if (flag){
BasCargoSpace basCargoSpaceParam = new BasCargoSpace(); //生成作业
basCargoSpaceParam.setWarehouseId(mydoJob.getWarehouseId()); MydoJob mydoJob = new MydoJob();
basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId()); mydoJob.setStatus("1");
BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam); mydoJob.setInOrOut(inOrOutType);
if (ObjUtil.isNull(basCargoSpace)) { mydoJob.setExecutionPhase("1");
return new AjaxResult(5, "没有货位"); mydoJob.setTrayCode(basJobIdService.getJobId("TP"));
} mydoJob.setWarehouseId("01");
mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId()); mydoJob.setRoadwayId(getRoadway(size));
mydoJob.setEntranceId(requestEnter.getEntranceId()); mydoJob.setLineId(erpBill);
mydoJobService.insertMydoJob(mydoJob); BasRoadway basRoadway = basRoadwayService.selectBasRoadwayById(mydoJob.getRoadwayId());
if ("1".equals(requestEnter.getFloor())) {
//生成子作业 if ("Y".equals(basRoadway.getInLocked())) {
MydoJobDetail mydoJobDetail = new MydoJobDetail(); return new AjaxResult(6, "巷道已锁");
mydoJobDetail.setJobDetailId(mydoJob.getJobId() + "-1"); }
mydoJobDetail.setJobId(mydoJob.getJobId()); } else {
mydoJobDetail.setCreateTime(new Date()); if ("Y".equals(basRoadway.getInLocked2())) {
mydoJobDetail.setProductGuid(basProduct.getProductGuid()); return new AjaxResult(6, "巷道已锁");
mydoJobDetail.setProductId(basProduct.getProductId()); }
mydoJobDetail.setInQuantity("1");
mydoJobDetail.setSpare1(xh);
mydoJobDetail.setSpare2(nw);
mydoJobDetail.setSpare3(color);
mydoJobDetail.setSpare4(xlh);
mydoJobDetail.setSpare5(v);
mydoJobDetail.setSpare6(hz);
mydoJobDetail.setSpare7(ph);
mydoJobDetail.setSpare8(gw);
mydoJobDetail.setSpare9(fx);
mydoJobDetail.setUnit(jx);
mydoJobDetail.setSpec(basProduct.getSpec());
mydoJobDetail.setInOrOutId(inStockId);
mydoJobDetail.setInOrOutDId(inStockDetailId);
mydoJobDetail.setStockinId(inStockId);
mydoJobDetailService.insertMydoJobDetail(mydoJobDetail);
//修改货位状态
basCargoSpace.setStatus("3");
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
//type=1是手持机调用
if (!"1".equals(requestEnter.getType())) {
mydoJob.setStatus("3");
mydoJobService.updateMydoJob(mydoJob);
}
if ("1".equals(mydoJob.getInOrOut())) {
//生成调拨单
Map<String, String> saveTransferBill = toErpService.saveTransferBill();
if (!"200".equals(saveTransferBill.get("code"))) {
return AjaxResult.error("生成调拨单失败");
} }
log.info("生成调拨单{}", saveTransferBill);
//存入调拨单数据 已生成
TransferBillCallback transferBillCallback = new TransferBillCallback();
transferBillCallback.setJobId(mydoJob.getJobId());
transferBillCallback.setErpBill(erpBill);
transferBillCallback.setType("1");
transferBillCallback.setStatus("0");
transferBillCallbackService.insertTransferBillCallback(transferBillCallback);
}
//修改作业状态为正执行
result.put("jobId", mydoJob.getJobId());
result.put("taskNo", mydoJob.getTaskNo());
result.put("cargoSpaceId", mydoJob.getCargoSpaceId());
result.put("roadwayId", mydoJob.getRoadwayId());
result.put("entranceId", mydoJob.getEntranceId());
result.put("inOrOut", mydoJob.getInOrOut());
return AjaxResult.success(result); //根据巷道查找货位
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
basCargoSpaceParam.setWarehouseId(mydoJob.getWarehouseId());
basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId());
BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam);
if (ObjUtil.isNull(basCargoSpace)) {
return new AjaxResult(5, "没有货位");
}
mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId());
mydoJob.setEntranceId(requestEnter.getEntranceId());
mydoJob.setClassId(requestEnter.getFloor());
mydoJobService.insertMydoJob(mydoJob);
//生成子作业
MydoJobDetail mydoJobDetail = new MydoJobDetail();
mydoJobDetail.setJobDetailId(mydoJob.getJobId() + "-1");
mydoJobDetail.setJobId(mydoJob.getJobId());
mydoJobDetail.setCreateTime(new Date());
mydoJobDetail.setProductGuid(basProduct.getProductGuid());
mydoJobDetail.setProductId(basProduct.getProductId());
mydoJobDetail.setInQuantity("1");
mydoJobDetail.setSpare1(xh);
mydoJobDetail.setSpare2(nw);
mydoJobDetail.setSpare3(color);
mydoJobDetail.setSpare4(xlh);
mydoJobDetail.setSpare5(v);
mydoJobDetail.setSpare6(hz);
mydoJobDetail.setSpare7(ph);
mydoJobDetail.setSpare8(gw);
mydoJobDetail.setSpare9(fx);
mydoJobDetail.setUnit(jx);
mydoJobDetail.setSpec(basProduct.getSpec());
mydoJobDetail.setInOrOutId(inStockId);
mydoJobDetail.setInOrOutDId(inStockDetailId);
mydoJobDetail.setStockinId(inStockId);
mydoJobDetailService.insertMydoJobDetail(mydoJobDetail);
//修改货位状态
basCargoSpace.setStatus("3");
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
//type=1是手持机调用
if (!"1".equals(requestEnter.getType())) {
mydoJob.setStatus("3");
mydoJobService.updateMydoJob(mydoJob);
}
//修改作业状态为正执行
result.put("jobId", mydoJob.getJobId());
result.put("taskNo", mydoJob.getTaskNo());
result.put("cargoSpaceId", mydoJob.getCargoSpaceId());
result.put("roadwayId", mydoJob.getRoadwayId());
result.put("entranceId", mydoJob.getEntranceId());
result.put("inOrOut", mydoJob.getInOrOut());
return AjaxResult.success(result);
}else {
return new AjaxResult(7,"生成工艺单失败");
}
} }
private String getRoadway(int size) { private String getRoadway(int size) {
@@ -284,7 +278,7 @@ public class ToWmsServiceImpl implements IToWmsService {
} }
/** /**
* todo 根据包装方式 主要包装方式 描述 长 宽 高 包装材积获取大小 * 根据包装方式 主要包装方式 描述 长 宽 高 包装材积获取大小
*/ */
private int getSize(BasProduct basProduct) { private int getSize(BasProduct basProduct) {
String remark = basProduct.getRemark(); String remark = basProduct.getRemark();
@@ -376,7 +370,7 @@ public class ToWmsServiceImpl implements IToWmsService {
default: default:
log.error("作业类型错误"); log.error("作业类型错误");
return AjaxResult.error(MessageUtils.message("error.message12")); return AjaxResult.error("作业类型错误");
} }
return AjaxResult.success(); return AjaxResult.success();
} }
@@ -503,5 +497,58 @@ public class ToWmsServiceImpl implements IToWmsService {
return AjaxResult.success(result); return AjaxResult.success(result);
} }
@Override
public AjaxResult receiveProduct(ErpProduct erpProduct) {
BasProduct basProduct = getBasProductByErpProduct(erpProduct);
BasProduct oldProduct = basProductService.selectBasProductByProductGuid(basProduct.getProductGuid());
if (ObjUtil.isNull(oldProduct)){
basProductService.insertBasProduct(basProduct);
return AjaxResult.success();
}
return AjaxResult.error(basProduct.getProductGuid()+"物料已存在");
}
/**
* 获取物料信息
* @param erpProduct
* @return
*/
private BasProduct getBasProductByErpProduct(ErpProduct erpProduct) {
BasProduct basProduct = new BasProduct();
basProduct.setProductGuid(erpProduct.getSys_MainId());
basProduct.setProductId(erpProduct.getSys_MainId());
basProduct.setParentId(erpProduct.getITEM_CODE());
basProduct.setProductName(erpProduct.getITEM_NAME());
basProduct.setSpec(erpProduct.getITEM_SPECIFICATION());
basProduct.setSpare36(erpProduct.getLENTH());
basProduct.setSpare37(erpProduct.getWIDTH());
basProduct.setSpare38(erpProduct.getHEIGTH());
return basProduct;
}
@Override
public AjaxResult updateProduct(ErpProduct erpProduct) {
BasProduct basProduct = getBasProductByErpProduct(erpProduct);
BasProduct oldProduct = basProductService.selectBasProductByProductGuid(basProduct.getProductGuid());
if (ObjUtil.isNotNull(oldProduct)){
basProductService.updateBasProduct(basProduct);
return AjaxResult.success();
}
return AjaxResult.error(basProduct.getProductGuid()+"物料不存在");
}
@Override
public AjaxResult InvalidProduct(ErpProduct erpProduct) {
BasProduct oldProduct = basProductService.selectBasProductByProductGuid(erpProduct.getSys_MainId());
if (ObjUtil.isNotNull(oldProduct)) {
BasProduct basProduct = new BasProduct();
basProduct.setProductGuid(oldProduct.getProductGuid());
basProduct.setSpare21(oldProduct.getProductId());
basProductService.updateBasProduct(oldProduct);
return AjaxResult.success();
}
return AjaxResult.error(erpProduct.getSys_MainId()+"物料不存在");
}
} }

View File

@@ -342,19 +342,13 @@ public class MydoJobServiceImpl implements IMydoJobService {
// 插入任务历史表 删除任务 // 插入任务历史表 删除任务
insertHistory(mydoJob.getJobId()); insertHistory(mydoJob.getJobId());
//修改回传单据表状态 //其他出入库单据回传
if ("1".equals(mydoJob.getInOrOut())){ TransferBillCallback transferBillCallback = new TransferBillCallback();
//调拨单 transferBillCallback.setJobId(mydoJob.getJobId());
TransferBillCallback transferBillCallbackParam = new TransferBillCallback(); transferBillCallback.setErpBill(mydoJob.getLineId());
transferBillCallbackParam.setJobId(mydoJob.getJobId()); transferBillCallback.setType("1");
List<TransferBillCallback> transferBillCallbacks = transferBillCallbackService.selectTransferBillCallbackList(transferBillCallbackParam); transferBillCallback.setStatus("0");
if (CollUtil.isNotEmpty(transferBillCallbacks)){ transferBillCallbackService.insertTransferBillCallback(transferBillCallback);
for (TransferBillCallback transferBillCallback : transferBillCallbacks) {
transferBillCallback.setStatus("2");
transferBillCallbackService.updateTransferBillCallback(transferBillCallback);
}
}
}
return AjaxResult.success(); return AjaxResult.success();
} else { } else {
return AjaxResult.warn("不存在子作业"); return AjaxResult.warn("不存在子作业");