diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java index 7832147d..999d5df9 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java @@ -43,12 +43,6 @@ public class WmsConstants { public static final String RWA_STOCK_STOCK_TYPE_PRODUCT = "2";//半成品 - /*原材料出库记录审核状态*/ - public static final String RAW_OUTSTOCK_AUDIT_STATUS_TOAUDIT = "0";//待审核 - public static final String RAW_OUTSTOCK_AUDIT_STATUS_PASS = "1";//审核通过 - public static final String RAW_OUTSTOCK_AUDIT_STATUS_FAIL = "2";//审核不通过 - - /*出入库退库记录明细方式*/ public static final String WMS_STOCK_WAY_MANUAL = "1";//人工 public static final String WMS_STOCK_WAY_AGV = "2";//AGV @@ -133,7 +127,7 @@ public class WmsConstants { static { OPERATION_TYPE_MAP.put(WMS_WAREHOUSE_TYPE_NORMAL, WMS_OPERATION_TYPE_MANUAL); OPERATION_TYPE_MAP.put(WMS_WAREHOUSE_TYPE_AGV, WMS_OPERATION_TYPE_AUTO); - OPERATION_TYPE_MAP.put(WMS_WAREHOUSE_TYPE_WORKBIN_AGV, WMS_OPERATION_TYPE_MANUAL); + OPERATION_TYPE_MAP.put(WMS_WAREHOUSE_TYPE_WORKBIN_AGV, WMS_OPERATION_TYPE_AUTO); } public static final Map OUTSTOCK_WAY_MAP = new HashMap(); @@ -212,6 +206,10 @@ public class WmsConstants { public static final String WMS_WAREHOUSE_OUT_REQUIREMENT_APPLY_AUDIT = "1";//申请审核出库 public static final String WMS_WAREHOUSE_OUT_REQUIREMENT_DIRECT = "2";//直接出库 + public static final String WMS_WAREHOUSE_RETURN_REQUIREMENT_APPLY = "0";//申请退库 + public static final String WMS_WAREHOUSE_RETURN_REQUIREMENT_APPLY_AUDIT = "1";//申请审核退库 + + public static final String WMS_RAW_STOCK_COMPLETE_FLAY_YES = "1";//完整 public static final String WMS_RAW_STOCK_COMPLETE_FLAY_NO = "0";//拆分后的 diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java index 79aa2d3b..151b1e58 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java @@ -78,8 +78,8 @@ public class WmsApiController extends BaseController { */ @Log(title = "原材料退库记录", businessType = BusinessType.APPLY) @PostMapping(("/applyRawReturn")) - public AjaxResult applyRawReturn(@Validated @RequestBody WmsRawReturn wmsRawReturn) { - return toAjax(wmsRawReturnService.applyRawReturn(wmsRawReturn)); + public AjaxResult applyRawReturn(@Validated @RequestBody List wmsRawReturns) { + return toAjax(wmsRawReturnService.applyRawReturn(wmsRawReturns)); } } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsRawOutstockController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsRawOutstockController.java index 18b403cf..50b78e55 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsRawOutstockController.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsRawOutstockController.java @@ -127,7 +127,7 @@ public class WmsRawOutstockController extends BaseController public TableDataInfo auditList(WmsRawOutstock wmsRawOutstock) { startPage(); - wmsRawOutstock.setAuditStatus(WmsConstants.RAW_OUTSTOCK_AUDIT_STATUS_TOAUDIT); + wmsRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_TOAUDIT); List list = wmsRawOutstockService.selectWmsRawOutstockList(wmsRawOutstock); return getDataTable(list); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsScadaController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsScadaController.java index b894d99d..156fb667 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsScadaController.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsScadaController.java @@ -90,15 +90,6 @@ public class WmsScadaController extends BaseController { } - /** - * 申请退库 - */ - @Log(title = "原材料退库记录", businessType = BusinessType.APPLY) - @PostMapping(("/applyRawReturn")) - public AjaxResult applyRawReturn(@Validated @RequestBody WmsRawReturn wmsRawReturn) { - return toAjax(wmsRawReturnService.applyRawReturn(wmsRawReturn)); - } - diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsBaseWarehouse.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsBaseWarehouse.java index c3326a8e..2eefdb7b 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsBaseWarehouse.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsBaseWarehouse.java @@ -39,6 +39,12 @@ public class WmsBaseWarehouse extends BaseEntity { @Excel(name = "仓库编码") private String warehouseCode; + + /** + * agv位置编码 + */ + private String agvPositionCode; + /** * 仓库名称 */ @@ -206,6 +212,14 @@ public class WmsBaseWarehouse extends BaseEntity { return warehouseCode; } + public String getAgvPositionCode() { + return agvPositionCode; + } + + public void setAgvPositionCode(String agvPositionCode) { + this.agvPositionCode = agvPositionCode; + } + public void setWarehouseName(String warehouseName) { this.warehouseName = warehouseName; } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturn.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturn.java index b38aa597..0df9a2aa 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturn.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturn.java @@ -48,6 +48,18 @@ public class WmsRawReturn extends BaseEntity private Long materialId; + /** 物料条码 */ + @Excel(name = "物料条码") + private String materialBarcode; + + /** 批次码 */ + @Excel(name = "批次码") + private String batchCode; + + /** 目的地编码 */ + @Excel(name = "目的地编码") + private String endStationCode; + private BigDecimal planAmount; private BigDecimal returnAmount; @@ -189,6 +201,30 @@ public class WmsRawReturn extends BaseEntity this.materialId = materialId; } + public String getMaterialBarcode() { + return materialBarcode; + } + + public void setMaterialBarcode(String materialBarcode) { + this.materialBarcode = materialBarcode; + } + + public String getBatchCode() { + return batchCode; + } + + public void setBatchCode(String batchCode) { + this.batchCode = batchCode; + } + + public String getEndStationCode() { + return endStationCode; + } + + public void setEndStationCode(String endStationCode) { + this.endStationCode = endStationCode; + } + public BigDecimal getPlanAmount() { return planAmount; } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnMapper.java index c18babe2..f8c93b7d 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnMapper.java @@ -103,4 +103,13 @@ public interface WmsRawReturnMapper */ public WmsRawReturn selectOnlyWmsRawReturnByRawReturnId(Long rawReturnId); + + /** + * 批量新增原材料退库记录 + * + * @param wmsRawReturnList 原材料退库记录列表 + * @return 结果 + */ + public int batchWmsRawReturn(List wmsRawReturnList); + } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawReturnService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawReturnService.java index 000d9a6a..e89b5f7f 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawReturnService.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawReturnService.java @@ -106,8 +106,8 @@ public interface IWmsRawReturnService /** * 申请退库 * - * @param wmsRawReturn 原材料退库记录 + * @param wmsRawReturns 原材料退库记录列表 * @return 结果 */ - public int applyRawReturn(WmsRawReturn wmsRawReturn); + public int applyRawReturn(List wmsRawReturns); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java index efae35dd..9e86f0c8 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java @@ -212,14 +212,14 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { WmsRawOutstock queryRawOutstock = new WmsRawOutstock(); queryRawOutstock.setTaskCode(taskCode); - queryRawOutstock.setAuditStatus(WmsConstants.RAW_OUTSTOCK_AUDIT_STATUS_TOAUDIT); + queryRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_TOAUDIT); List wmsRawOutstocks = wmsRawOutstockMapper.selectWmsRawOutstockList(queryRawOutstock); if (wmsRawOutstocks == null || wmsRawOutstocks.isEmpty()) { throw new ServiceException("无待审核原材料出库记录"); } //审核不通过,需要有审核意见,并且需要更新库位占用数量(解除之前占用的数量)。 - if (auditStatus.equalsIgnoreCase(WmsConstants.RAW_OUTSTOCK_AUDIT_STATUS_FAIL)) { + if (auditStatus.equalsIgnoreCase(WmsConstants.WMS_AUDIT_STATUS_FAIL)) { if (StringUtils.isEmpty(auditReason)) { throw new ServiceException("请输入审核意见"); } @@ -584,19 +584,17 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { String operationType = WmsConstants.OPERATION_TYPE_MAP.get(warehouseType); WmsRawOutstock toInsertedRawOutstock = new WmsRawOutstock(); + toInsertedRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE); if (warehouseType.equals(WmsConstants.WMS_WAREHOUSE_TYPE_NORMAL)) {//如果是普通仓库,需要校验审核标识 if (outRequirement.equals(WmsConstants.WMS_WAREHOUSE_OUT_REQUIREMENT_APPLY_AUDIT)) { - toInsertedRawOutstock.setAuditStatus(WmsConstants.RAW_OUTSTOCK_AUDIT_STATUS_TOAUDIT); - toInsertedRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE); + toInsertedRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_TOAUDIT); } else { toInsertedRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS); - toInsertedRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH); } } else { toInsertedRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS); - toInsertedRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE); } toInsertedRawOutstock.setTaskCode(taskCode); @@ -630,7 +628,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { String operationType = WmsConstants.OPERATION_TYPE_MAP.get(warehouseType); if (warehouseType.equals(WmsConstants.WMS_WAREHOUSE_TYPE_NORMAL)) { if (outRequirement.equals(WmsConstants.WMS_WAREHOUSE_OUT_REQUIREMENT_APPLY_AUDIT)) { - wmsRawOutstock.setAuditStatus(WmsConstants.RAW_OUTSTOCK_AUDIT_STATUS_TOAUDIT); + wmsRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_TOAUDIT); wmsRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE); } else { wmsRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS); diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawReturnServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawReturnServiceImpl.java index bc36dca8..a98706fa 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawReturnServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawReturnServiceImpl.java @@ -335,7 +335,6 @@ public class WmsRawReturnServiceImpl implements IWmsRawReturnService { throw new ServiceException("已经退库,无需重复退库"); } - String executeStatus = ""; if (updatedReturnAmount.compareTo(planAmount) == 0) { executeStatus = WmsConstants.WMS_EXECUTE_STATUS_FINISH; @@ -459,44 +458,73 @@ public class WmsRawReturnServiceImpl implements IWmsRawReturnService { /** * 申请退库 * - * @param wmsRawReturn 原材料退库记录 + * @param wmsRawReturns 原材料退库记录列表 * @return 结果 */ @Transactional(rollbackFor = Exception.class) @Override - public int applyRawReturn(WmsRawReturn wmsRawReturn) { + public int applyRawReturn(List wmsRawReturns) { //申请退库不指定库位,申请退库的多个物料生成多条退库记录 - List rawReturnDetails = wmsRawReturn.getWmsRawReturnDetailList(); - //根据物料ID分组获取总申请数量 - Map rawReturnDetailMap = rawReturnDetails.stream() - .collect(Collectors.groupingBy(WmsRawReturnDetail::getMaterialId, HashMap::new, Collectors.reducing(BigDecimal.ZERO, WmsRawReturnDetail::getPlanAmount, BigDecimal::add))); + //根据仓库ID分组获取总申请数量 + Map> rawReturnsMap = wmsRawReturns.stream() + .collect(Collectors.groupingBy(WmsRawReturn::getWarehouseId)); - String queryQualityStatus = WmsConstants.WMS_QUALITY_STATUS_PASS; - List toUpdatedRawOutstockDetails = new ArrayList<>(); + List toInsertedRawReturns = new ArrayList<>(); Date currentDate = new Date(); String userName = SecurityUtils.getUsername(); - for (Long materialId : rawReturnDetailMap.keySet()) { - BigDecimal planAmount = rawReturnDetailMap.get(materialId); - WmsRawReturn toUpdatedWmsRawReturn = new WmsRawReturn(); - toUpdatedWmsRawReturn.setWarehouseId(wmsRawReturn.getWarehouseId()); - toUpdatedWmsRawReturn.setPlanCode(wmsRawReturn.getPlanCode()); - toUpdatedWmsRawReturn.setPlanDetailCode(wmsRawReturn.getPlanDetailCode()); - toUpdatedWmsRawReturn.setTaskType(wmsRawReturn.getTaskType()); - toUpdatedWmsRawReturn.setTaskCode(Seq.getId(Seq.rawReturnSeqType, Seq.rawReturnCode)); -// toUpdatedWmsRawReturn.setProductId(); - toUpdatedWmsRawReturn.setApplyReason(wmsRawReturn.getApplyReason()); + String taskCode = Seq.getId(Seq.rawReturnSeqType, Seq.rawReturnCode); + for (Long warehouseId : rawReturnsMap.keySet()) { + List rawReturnList = rawReturnsMap.get(warehouseId); + WmsBaseWarehouse baseWarehouse = wmsBaseWarehouseMapper.selectWmsBaseWarehouseByWarehouseId(warehouseId); + String warehouseType = baseWarehouse.getWarehouseType(); + String returnRequirement = baseWarehouse.getReturnRequirement(); + String operationType = WmsConstants.OPERATION_TYPE_MAP.get(warehouseType); + String auditStatus = ""; + if (warehouseType.equals(WmsConstants.WMS_WAREHOUSE_TYPE_NORMAL)) {//如果是普通仓库,需要校验审核标识 + if (returnRequirement.equals(WmsConstants.WMS_WAREHOUSE_RETURN_REQUIREMENT_APPLY_AUDIT)) { + auditStatus = WmsConstants.WMS_AUDIT_STATUS_TOAUDIT; + } else { + auditStatus = WmsConstants.WMS_AUDIT_STATUS_PASS; + } - toUpdatedWmsRawReturn.setMaterialId(materialId); - toUpdatedWmsRawReturn.setPlanAmount(planAmount); - //todo 审核状态默认为待审核,后续可根据系统参数判断保存是待审核还是直接审核通过 - toUpdatedWmsRawReturn.setApplyBy(userName); - toUpdatedWmsRawReturn.setApplyDate(currentDate); - toUpdatedWmsRawReturn.setAuditStatus(WmsConstants.RAW_OUTSTOCK_AUDIT_STATUS_TOAUDIT); - toUpdatedWmsRawReturn.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE); + } else { + auditStatus = WmsConstants.WMS_AUDIT_STATUS_PASS; + } -// queryRawStock.setQualityStatus(queryQualityStatus);//todo:先不过滤质检状态 - int rows = wmsRawReturnMapper.insertWmsRawReturn(toUpdatedWmsRawReturn); + for (WmsRawReturn rawReturn : rawReturnList) { + BigDecimal planAmount = rawReturn.getPlanAmount(); + if (planAmount.compareTo(BigDecimal.ZERO) <= 0) { + throw new ServiceException("数量需大于0"); + } + String materialBarcode = rawReturn.getMaterialBarcode(); + R baseBarcodeInfoR = remoteMesService.getBarcode(materialBarcode, SecurityConstants.INNER); + MesBaseBarcodeInfo baseBarcodeInfo = baseBarcodeInfoR.getData(); + if (baseBarcodeInfo == null) { + throw new ServiceException("物料编码有误"); + } + String batchFlag = baseBarcodeInfo.getBatchFlag(); + if (!batchFlag.equals(MesConstants.IS_BATCH)) { + if (planAmount.compareTo(BigDecimal.ONE) != 0) { + throw new ServiceException("非批次物料数量需等于1"); + } + } + + rawReturn.setTaskCode(taskCode); + rawReturn.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE); + rawReturn.setEndStationCode(baseWarehouse.getAgvPositionCode()); + rawReturn.setOperationType(operationType); + rawReturn.setAuditStatus(auditStatus); + rawReturn.setReturnAmount(BigDecimal.ZERO); + rawReturn.setMaterialId(baseBarcodeInfo.getMaterialId()); + rawReturn.setBatchCode(baseBarcodeInfo.getBatchCode()); + rawReturn.setApplyBy(userName); + rawReturn.setApplyDate(currentDate); + toInsertedRawReturns.add(rawReturn); + } + + wmsRawReturnMapper.batchWmsRawReturn(toInsertedRawReturns); } + return 1; } diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsBaseWarehouseMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsBaseWarehouseMapper.xml index e7e14d71..aedd86cf 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsBaseWarehouseMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsBaseWarehouseMapper.xml @@ -9,6 +9,7 @@ + @@ -75,7 +76,7 @@ - select warehouse_id, warehouse_instock_type, warehouse_type, warehouse_code, warehouse_name, warehouse_category_id, warehouse_floor, dept_id, multi_row_type, multi_side_type, batch_mix, product_mix, workbin_flag, warehouse_location, active_flag, in_requirement, out_requirement, return_requirement, auto_flag, return_flag, remark, create_by, create_time, update_by, update_time, del_flag, factory_id, data_source, schame, line_flag from wms_base_warehouse + select warehouse_id, warehouse_instock_type, warehouse_type, warehouse_code,agv_position_code, warehouse_name, warehouse_category_id, warehouse_floor, dept_id, multi_row_type, multi_side_type, batch_mix, product_mix, workbin_flag, warehouse_location, active_flag, in_requirement, out_requirement, return_requirement, auto_flag, return_flag, remark, create_by, create_time, update_by, update_time, del_flag, factory_id, data_source, schame, line_flag from wms_base_warehouse - select a.warehouse_id, a.warehouse_instock_type, a.warehouse_type, a.warehouse_code, a.warehouse_name, - a.warehouse_category_id, a.warehouse_floor, a.dept_id, a.multi_row_type, - a.multi_side_type, a.batch_mix, a.product_mix, a.workbin_flag, a.warehouse_location, - a.active_flag, a.in_requirement, a.out_requirement,a.return_requirement,a.auto_flag, - a.return_flag, a.remark, a.create_by, a.create_time, a.update_by, a.update_time, a.del_flag, - a.factory_id, a.data_source, a.schame, a.line_flag - from wms_base_warehouse a - where a.warehouse_id = #{warehouseId} + + where warehouse_id = #{warehouseId} diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnMapper.xml index 4a20e41b..52f46ad0 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnMapper.xml @@ -13,6 +13,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -61,7 +64,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select raw_return_id, task_code, warehouse_id, location_code, plan_code, plan_detail_code, product_id, operation_type, task_type, apply_reason, audit_reason, audit_status, execute_status, apply_by, apply_date, audit_by, audit_date, update_by, update_date, begin_time, end_time from wms_raw_return + select raw_return_id, task_code, warehouse_id, location_code, plan_code, plan_detail_code, product_id, material_id, plan_amount, return_amount, operation_type, task_type, apply_reason, audit_reason, audit_status, execute_status, apply_by, apply_date, audit_by, audit_date, update_by, update_date, begin_time, end_time, material_barcode, end_station_code, batch_code from wms_raw_return + + insert into wms_raw_return( raw_return_id, task_code, warehouse_id, location_code, plan_code, plan_detail_code, product_id, material_id, plan_amount, return_amount, operation_type, task_type, apply_reason, audit_reason, audit_status, execute_status, apply_by, apply_date, audit_by, audit_date, update_by, update_date, begin_time, end_time, material_barcode, end_station_code, batch_code) values + + ( #{item.rawReturnId}, #{item.taskCode}, #{item.warehouseId}, #{item.locationCode}, #{item.planCode}, #{item.planDetailCode}, #{item.productId}, #{item.materialId}, #{item.planAmount}, #{item.returnAmount}, #{item.operationType}, #{item.taskType}, #{item.applyReason}, #{item.auditReason}, #{item.auditStatus}, #{item.executeStatus}, #{item.applyBy}, #{item.applyDate}, #{item.auditBy}, #{item.auditDate}, #{item.updateBy}, #{item.updateDate}, #{item.beginTime}, #{item.endTime}, #{item.materialBarcode}, #{item.endStationCode}, #{item.batchCode}) + + +