diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AftersalesOutOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AftersalesOutOrderController.java index 2394d827..3c5ac6d0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AftersalesOutOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AftersalesOutOrderController.java @@ -229,12 +229,14 @@ public class AftersalesOutOrderController extends BaseController @RequestParam("salesOrderCode") String salesOrderCode, @RequestParam("makeNo") String makeNo, @RequestParam("relatedOrderCode") String relatedOrderCode, + @RequestParam("outOrderCode") String outOrderCode, ModelMap mmap) { AftersalesOutOrderDetail aftersalesOutOrderDetail = aftersalesOutOrderDetailService.selectAftersalesOutOrderDetailById(outOrderDetailId); mmap.put("salesOrderCode",salesOrderCode); mmap.put("makeNo",makeNo); mmap.put("relatedOrderCode",relatedOrderCode); + mmap.put("outOrderCode",outOrderCode); mmap.put("aftersalesOutOrderDetail", aftersalesOutOrderDetail); return prefix + "/addShippingDevicesOne"; } @@ -272,17 +274,17 @@ public class AftersalesOutOrderController extends BaseController -// -// /** -// * 修改保存售后第一次维护设备 添加出货设备信息 -// */ -// @ResponseBody -// @PostMapping("/addShippingDevicesOne") -// public AjaxResult addShippingDevicesOneSave(@RequestBody WarehouseOutOrderDetail warehouseOutOrderDetail) -// { -// -// return toAjax(outOrderDetailService.addShippingDevicesOne(warehouseOutOrderDetail)); -// } + + /** + * 修改保存售后第一次维护设备 添加出货设备信息 + */ + @ResponseBody + @PostMapping("/addShippingDevicesOne") + public AjaxResult addShippingDevicesOneSave(@RequestBody AftersalesOutOrder aftersalesOutOrder) + { + + return toAjax(aftersalesOutOrderService.addShippingDevicesOne(aftersalesOutOrder)); + } // // // diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AftersalesOutOrder.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AftersalesOutOrder.java index 92adf0ca..3ed85986 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AftersalesOutOrder.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AftersalesOutOrder.java @@ -1,7 +1,10 @@ package com.ruoyi.aftersales.domain; import java.util.Date; +import java.util.List; + import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.aftersales.domain.vo.SelectShippingDeviceVO; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -132,6 +135,12 @@ public class AftersalesOutOrder extends BaseEntity @Excel(name = "收货电话") private String deliveryNumber; + + + /** 添加出货设备列表*/ + + private List selectShippingDeviceVOList; + public void setOutOrderId(Long outOrderId) { this.outOrderId = outOrderId; @@ -421,6 +430,14 @@ public class AftersalesOutOrder extends BaseEntity return deliveryNumber; } + public List getSelectShippingDeviceVOList() { + return selectShippingDeviceVOList; + } + + public void setSelectShippingDeviceVOList(List selectShippingDeviceVOList) { + this.selectShippingDeviceVOList = selectShippingDeviceVOList; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -461,6 +478,7 @@ public class AftersalesOutOrder extends BaseEntity .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) + .append("selectShippingDeviceVOList",getSelectShippingDeviceVOList()) .toString(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/vo/SelectShippingDeviceVO.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/vo/SelectShippingDeviceVO.java index 06eeee72..2faee83a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/vo/SelectShippingDeviceVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/vo/SelectShippingDeviceVO.java @@ -43,5 +43,7 @@ public class SelectShippingDeviceVO { /** 二次维修后部件质保时间 */ private Date componentGuaranteeDate; + /** 是否添加出货设备(0代表是 1代表否)*/ + private String addShippingDeviceFlag; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAftersalesOutOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAftersalesOutOrderService.java index 633e2c53..f353f8e8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAftersalesOutOrderService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAftersalesOutOrderService.java @@ -106,4 +106,10 @@ public interface IAftersalesOutOrderService * 售后第一次维护设备,添加出货设备信息,展示其他销售订单的出货设备信息 * */ List getOtherSalesOrderShippingDevices(AftersalesOutOrder aftersalesOutOrder); + + /** + * 售后第一次维护设备,添加出货设备信息 + * */ + int addShippingDevicesOne(AftersalesOutOrder aftersalesOutOrder); + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AftersalesOutOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AftersalesOutOrderServiceImpl.java index 6212f372..7120e650 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AftersalesOutOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AftersalesOutOrderServiceImpl.java @@ -11,6 +11,7 @@ import com.ruoyi.aftersales.domain.AftersalesOutOrderDetail; import com.ruoyi.aftersales.domain.vo.SelectShippingDeviceVO; import com.ruoyi.aftersales.mapper.AfterSalesShippingDeviceMapper; import com.ruoyi.aftersales.mapper.AftersalesOutOrderDetailMapper; +import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; @@ -149,7 +150,44 @@ public class AftersalesOutOrderServiceImpl implements IAftersalesOutOrderService */ @Override public int updateMaintenanceEquipmentOne(AftersalesOutOrder aftersalesOutOrder) { - return 0; + + String outOrderCode = aftersalesOutOrder.getOutOrderCode(); + int updateResult = 0; + List selectShippingDeviceVOList = aftersalesOutOrder.getSelectShippingDeviceVOList(); + for (SelectShippingDeviceVO selectShippingDeviceVO : selectShippingDeviceVOList) { + AfterSalesShippingDevice afterSalesShippingDevice = new AfterSalesShippingDevice(); + afterSalesShippingDevice.setShippingDeviceId(selectShippingDeviceVO.getShippingDeviceId()); + afterSalesShippingDevice.setAddShippingDeviceFlag("0"); + afterSalesShippingDevice.setOutOrderCode(outOrderCode); + updateResult = afterSalesShippingDeviceMapper.updateAfterSalesShippingDevice(afterSalesShippingDevice); + if (updateResult <= 0){ + throw new BusinessException("更新出货设备信息失败"); + } + } + + return updateResult; + } + + /** + * 售后第一次维护设备,添加出货设备信息 + * */ + @Override + public int addShippingDevicesOne(AftersalesOutOrder aftersalesOutOrder) { + String outOrderCode = aftersalesOutOrder.getOutOrderCode(); + int updateResult = 0; + List selectShippingDeviceVOList = aftersalesOutOrder.getSelectShippingDeviceVOList(); + for (SelectShippingDeviceVO selectShippingDeviceVO : selectShippingDeviceVOList) { + AfterSalesShippingDevice afterSalesShippingDevice = new AfterSalesShippingDevice(); + afterSalesShippingDevice.setShippingDeviceId(selectShippingDeviceVO.getShippingDeviceId()); + afterSalesShippingDevice.setAddShippingDeviceFlag("0"); + afterSalesShippingDevice.setOutOrderCode(outOrderCode); + updateResult = afterSalesShippingDeviceMapper.updateAfterSalesShippingDevice(afterSalesShippingDevice); + if (updateResult <= 0){ + throw new BusinessException("更新出货设备信息失败"); + } + } + + return updateResult; } /** @@ -214,18 +252,25 @@ public class AftersalesOutOrderServiceImpl implements IAftersalesOutOrderService public List getOtherSalesOrderShippingDevices(AftersalesOutOrder aftersalesOutOrder) { List selectShippingDeviceVOS = new ArrayList<>(); - + String outOrderCode = aftersalesOutOrder.getOutOrderCode(); List thisSalesOrderShippingDevices = this.getThisSalesOrderShippingDevices(aftersalesOutOrder); - //查找到当前销售订单的出货设备id集合 - List collectShippingDeviceId = thisSalesOrderShippingDevices.stream().map(SelectShippingDeviceVO::getShippingDeviceId).collect(Collectors.toList()); + // 查找到当前销售订单的出货设备ID集合 + List currentShippingDeviceIds = thisSalesOrderShippingDevices.stream() + .map(SelectShippingDeviceVO::getShippingDeviceId) + .collect(Collectors.toList()); //查找到所有出货设备id集合 List afterSalesShippingDevices = afterSalesShippingDeviceMapper.selectAllShippingDevices(); - List allShippingDeviceIds = afterSalesShippingDevices.stream().map(AfterSalesShippingDevice::getShippingDeviceId).collect(Collectors.toList()); - //筛选出所有出货设备id集合中,不在当前销售订单的出货设备id集合中的数据 - List otherShippingDeviceIds = allShippingDeviceIds.stream().filter(item -> !collectShippingDeviceId.contains(item)).collect(Collectors.toList()); - List list = afterSalesShippingDeviceMapper.selectBatchShippingDeviceById(otherShippingDeviceIds); + + //保留是否添加出货设备等于1的,以及等于0且出库单号等于本单据的 + List filteredDevices = afterSalesShippingDevices.stream().filter(device -> "1".equals(device.getAddShippingDeviceFlag()) + || "0".equals(device.getAddShippingDeviceFlag()) && outOrderCode.equals(device.getOutOrderCode())).collect(Collectors.toList()); + + // 筛选出不在当前销售订单中的数据 + List otherDevices = filteredDevices.stream() + .filter(device -> !currentShippingDeviceIds.contains(device.getShippingDeviceId())) + .collect(Collectors.toList()); //转换成vo类 - this.convertToDeviceVOs(list, selectShippingDeviceVOS); + this.convertToDeviceVOs(otherDevices, selectShippingDeviceVOS); return selectShippingDeviceVOS; } @@ -238,7 +283,10 @@ public class AftersalesOutOrderServiceImpl implements IAftersalesOutOrderService selectShippingDeviceVO.setDeviceModelCode(device.getDeviceModelCode()); selectShippingDeviceVO.setDeviceRunningNumber(device.getDeviceRunningNumber()); selectShippingDeviceVO.setMakePhotoUrl(device.getMakePhotourl()); + selectShippingDeviceVO.setAddShippingDeviceFlag(device.getAddShippingDeviceFlag()); selectShippingDeviceVOS.add(selectShippingDeviceVO); } } + + } diff --git a/ruoyi-admin/src/main/resources/templates/aftersales/aftersalesOutOrder/addShippingDevicesOne.html b/ruoyi-admin/src/main/resources/templates/aftersales/aftersalesOutOrder/addShippingDevicesOne.html index 659db9f9..71b37b7c 100644 --- a/ruoyi-admin/src/main/resources/templates/aftersales/aftersalesOutOrder/addShippingDevicesOne.html +++ b/ruoyi-admin/src/main/resources/templates/aftersales/aftersalesOutOrder/addShippingDevicesOne.html @@ -109,6 +109,7 @@ var salesOrderCode = [[${salesOrderCode}]]; var makeNo = [[${makeNo}]]; var relatedOrderCode = [[${relatedOrderCode}]]; + var outOrderCode = [[${outOrderCode}]]; $("#form-addShippingDevicesOne-edit").validate({ focusCleanup: true @@ -126,23 +127,34 @@ // 获取bootstrap-table的数据,这里假设你使用bootstrap-table的API获取所有数据 // var table = $('#table-shippingDevices').bootstrapTable('getData'); //获取选中复选框行的数据 - const selectedRows = $("#table-shippingDevices").bootstrapTable('getSelections'); + const selectedThisRows = $("#thisSalesOrderShippingDevice-table").bootstrapTable('getSelections'); + const selectedOtherRows = $("#otherSalesOrderShippingDevice-table").bootstrapTable('getSelections'); + + // 将 outOrderCode 添加到 shippingDevicesData 对象中 + shippingDevicesData.outOrderCode = outOrderCode; + // 检查表格数据是否为空 - if (selectedRows.length===0){ - $.modal.alertWarning("请至少选择一条出货设备信息后再保存!"); + if (selectedThisRows.length + selectedOtherRows.length === 0) { + $.modal.alertWarning("请至少选择一条出货设备后再保存!"); return; } - // 将表数据转换成与complaintNoticeData格式一致的数组 - var equipDetailDataList = selectedRows.map(function(item) { - // 根据实际字段名调整 - return { + // 将表数据转换成一致的数组 + const equipDetailDataList = [ + ...selectedThisRows.map(item => ({ + "shippingDeviceId": item.shippingDeviceId, + "deviceModelCode": item.deviceModelCode, + "deviceRunningNumber": item.deviceRunningNumber, + "makePhotoUrl": item.makePhotoUrl + // ...其他字段 + })), + ...selectedOtherRows.map(item => ({ "shippingDeviceId": item.shippingDeviceId, "deviceModelCode": item.deviceModelCode, "deviceRunningNumber": item.deviceRunningNumber, "makePhotoUrl": item.makePhotoUrl // ...其他字段 - }; - }); + })) + ]; // 合并表单数据和表格数据 const combinedData = Object.assign({}, shippingDevicesData, { selectShippingDeviceVOList: equipDetailDataList }); @@ -166,69 +178,6 @@ minView: "month", autoclose: true }); - // - // /*物料信息列表*/ - // $(function() { - // // 物料信息 - // $('#table-material').bootstrapTable('destroy'); - // var materialOptions = { - // id:"table-material", - // url: prefix + "/addShippingDevicesMaterial", - // modalName: "物料信息", - // showColumns: false, - // pagination: false, - // showToggle: false, - // showRefresh:false, - // showSearch:false, - // queryParams:queryParams, - // columns: [{ - // checkbox: true - // }, - // { title:'销售订单号', - // field:'quoteId', - // visible: false - // }, - // { - // title: '料号', - // field: 'materialCode', - // }, - // { - // title: '图片', - // field: 'photoUrl', - // }, - // { - // title: '物料名称', - // field: 'materialName', - // }, - // { - // title: '物料类型', - // field: 'materialType', - // }, - // { - // title: '单位', - // field: 'materialUnit', - // }, - // { - // title: '品牌', - // field: 'brand', - // }, - // { - // title: '描述', - // field: 'describe', - // }, - // ] - // }; - // $.table.init(materialOptions); - // - // }) - // function queryParams(params) { - // var curParams = { - // // 传递参数查询参数 - // quoteId: selectMaterialsVO.quoteId, - // materialCode: selectMaterialsVO.materialCode, - // }; - // return curParams; - // } //销售订单的出货设备 $(function(){ @@ -243,8 +192,15 @@ showColumns: false, queryParams:thisQueryParams, sidePagination: "client", - columns: [{ - checkbox: true + columns: [ { + checkbox : true, + formatter: function(value, row, index) { + if(row.addShippingDeviceFlag === "0"){//如果已经操作禁止选择 + return { disabled : true,} + }else{ + return { disabled : false,} + } + } }, { field: 'equipmentIndex', @@ -275,6 +231,12 @@ align: 'center', title: '生产图片', }, + { + field: 'addShippingDeviceFlag', + align: 'center', + title: '是否添加出货设备', + visible: false + }, ] }; @@ -288,7 +250,8 @@ materialNo: aftersalesOutOrderDetail.materialNo, salesOrderCode:salesOrderCode, makeNo:makeNo, - relatedOrderCode:relatedOrderCode + relatedOrderCode:relatedOrderCode, + outOrderCode:outOrderCode }; return curParams; } @@ -299,9 +262,7 @@ - //其他销售订单的出货设备 - $(function(){ - + $(function () { var options = { id: "otherSalesOrderShippingDevice-table", url: prefix + "/getOtherSalesOrderShippingDevices", @@ -310,46 +271,53 @@ showRefresh: false, showToggle: false, showColumns: false, - queryParams:otherQueryParams, + queryParams: otherQueryParams, sidePagination: "client", - columns: [{ - checkbox: true - }, + columns: [ { - field: 'equipmentIndex', - align: 'center', - title: "序号", - formatter: function (value, row, index) { - // 使用bootstrap-table的内置序号生成 - return index + 1; + checkbox : true, + formatter: function(value, row, index) { + if(row.addShippingDeviceFlag === "0"){//如果已经操作禁止选择 + return { disabled : true,} + }else{ + return { disabled : false,} + } } }, { - field: 'shippingDeviceId', - align: 'center', - title: '出货设备id', - }, - { - field: 'deviceModelCode', - align: 'center', - title: '设备型号', - }, - { - field: 'deviceRunningNumber', - align: 'center', - title: '追踪码', - }, - { - field: 'makePhotoUrl', - align: 'center', - title: '生产图片', - }, - - ] + field: 'equipmentIndex', + align: 'center', + title: "序号", + formatter: function (value, row, index) { + // 使用bootstrap-table的内置序号生成 + return index + 1; + } + }, { + field: 'shippingDeviceId', + align: 'center', + title: '出货设备id', + }, { + field: 'deviceModelCode', + align: 'center', + title: '设备型号', + }, { + field: 'deviceRunningNumber', + align: 'center', + title: '追踪码', + }, { + field: 'makePhotoUrl', + align: 'center', + title: '生产图片', + }, { + field: 'addShippingDeviceFlag', + align: 'center', + title: '是否添加出货设备', + visible: false + }] }; - $.table.init(options); - }) + $.table.init(options); + }); function otherQueryParams(params) { var curParams = { @@ -357,7 +325,8 @@ materialNo: aftersalesOutOrderDetail.materialNo, salesOrderCode:salesOrderCode, makeNo:makeNo, - relatedOrderCode:relatedOrderCode + relatedOrderCode:relatedOrderCode, + outOrderCode:outOrderCode }; return curParams; } diff --git a/ruoyi-admin/src/main/resources/templates/aftersales/aftersalesOutOrder/maintenanceEquipmentOne.html b/ruoyi-admin/src/main/resources/templates/aftersales/aftersalesOutOrder/maintenanceEquipmentOne.html index 6966c957..2ca72924 100644 --- a/ruoyi-admin/src/main/resources/templates/aftersales/aftersalesOutOrder/maintenanceEquipmentOne.html +++ b/ruoyi-admin/src/main/resources/templates/aftersales/aftersalesOutOrder/maintenanceEquipmentOne.html @@ -450,12 +450,14 @@ function addShippingDevicesOne(outOrderDetailId) { var salesOrderCode = [[${aftersalesOutOrder.salesOrderCode}]]; var relatedOrderCode = [[${aftersalesOutOrder.relatedOrderCode}]]; + var outOrderCode = [[${aftersalesOutOrder.outOrderCode}]]; var makeNo = [[${aftersalesOutOrder.makeNo}]]; var queryParams = new URLSearchParams(); queryParams.append('outOrderDetailId', outOrderDetailId); queryParams.append('salesOrderCode', encodeURIComponent(salesOrderCode)); queryParams.append('makeNo',encodeURIComponent(makeNo)); queryParams.append('relatedOrderCode',encodeURIComponent(relatedOrderCode)); + queryParams.append('outOrderCode',encodeURIComponent(outOrderCode)); var url = prefix + '/addShippingDevicesOne?' + queryParams.toString(); $.modal.open("添加出货设备", url); }