From 626f8ddd7f34f883048c9f43cdb37550ef7a7d86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E8=BF=AA?= <2596750866@qq.com> Date: Thu, 19 Sep 2024 09:07:55 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E5=B7=A5=E7=A8=8B=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E7=89=A9=E6=96=99=E4=BF=A1=E6=81=AF=20=E4=BF=AE=E6=94=B9erp?= =?UTF-8?q?=E7=89=A9=E6=96=99=E5=AE=9E=E4=BD=93=E7=B1=BB=EF=BC=8C=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=A7=94=E5=A4=96=E5=B7=A5=E5=BA=8F=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=EF=BC=9B=20=E4=BF=AE=E6=94=B9=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0erp=E7=89=A9=E6=96=99=E9=A1=B5=E9=9D=A2=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=A7=94=E5=A4=96=E5=B7=A5=E5=BA=8F=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=E5=8F=8A=E7=9B=B8=E5=85=B3=E9=80=89=E6=8B=A9=E5=8E=BB?= =?UTF-8?q?=E9=87=8D=E5=9B=9E=E8=B0=83=E6=96=B9=E6=B3=95=EF=BC=9B=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B5=E9=9D=A2=E6=8F=90=E4=BA=A4=E5=87=BD?= =?UTF-8?q?=E6=95=B0=EF=BC=8C=E6=8B=BC=E6=8E=A5=E4=B8=BA=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=E5=8F=91=E9=80=81=E5=90=8E=E5=8F=B0=EF=BC=9B=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=BC=96=E8=BE=91erp=E7=89=A9=E6=96=99=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E8=A1=A5=E5=85=A8=E5=BF=85=E5=A1=AB=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=A7=94=E5=A4=96=E5=B7=A5?= =?UTF-8?q?=E5=BA=8F=E8=A1=A8=E6=A0=BC=E5=AE=9A=E4=B9=89=E5=8F=8A=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E9=80=89=E6=8B=A9=E9=A1=B5=E9=9D=A2=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E3=80=81=E5=8E=BB=E9=87=8D=E5=9B=9E=E8=B0=83=E3=80=81=E6=8F=92?= =?UTF-8?q?=E5=85=A5=E5=92=8C=E5=88=A0=E9=99=A4=E6=96=B9=E6=B3=95=EF=BC=9B?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E9=A1=B5=E9=9D=A2=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E5=87=BD=E6=95=B0=EF=BC=8C=E6=8B=BC=E6=8E=A5=E4=B8=BB=E5=AD=90?= =?UTF-8?q?=E8=A1=A8=E4=BF=A1=E6=81=AF=E5=8F=91=E9=80=81=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=EF=BC=9B=20=E4=BF=AE=E6=94=B9erp=E7=89=A9=E6=96=99=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E9=A1=B5=E9=9D=A2=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=B7=A5=E6=96=B9=E6=B3=95=E4=B8=BA=E5=A7=94=E5=A4=96=E5=8A=A0?= =?UTF-8?q?=E5=B7=A5=E6=97=B6=E5=A7=94=E5=A4=96=E5=B7=A5=E5=BA=8F=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=E7=9A=84=E6=98=BE=E7=A4=BA=EF=BC=9B=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9erp=E7=89=A9=E6=96=99controller=EF=BC=8C=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=8C=89=E6=96=99=E5=8F=B7=E6=9F=A5=E8=AF=A2=E5=A7=94?= =?UTF-8?q?=E5=A4=96=E7=89=A9=E6=96=99=E5=B7=A5=E5=BA=8F=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=9B=20=E4=BF=AE=E6=94=B9erp=E7=89=A9?= =?UTF-8?q?=E6=96=99=E6=96=B0=E5=A2=9E=E5=92=8C=E7=BC=96=E8=BE=91service?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=85=B3=E4=BA=8E?= =?UTF-8?q?=E5=A7=94=E5=A4=96=E5=8A=A0=E5=B7=A5=E4=B8=8B=E5=A7=94=E5=A4=96?= =?UTF-8?q?=E5=B7=A5=E5=BA=8F=E7=9A=84=E4=BF=9D=E5=AD=98=EF=BC=9B=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AEerp=E7=89=A9=E6=96=99?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=A7=94=E5=A4=96=E7=89=A9=E6=96=99service?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/controller/ErpMaterialController.java | 26 +- .../com/ruoyi/erp/domain/ErpMaterial.java | 12 + .../service/impl/ErpMaterialServiceImpl.java | 56 ++++- .../resources/templates/erp/material/add.html | 174 ++++++++++++-- .../templates/erp/material/detail.html | 63 ++++- .../templates/erp/material/edit.html | 225 ++++++++++++++++-- 6 files changed, 502 insertions(+), 54 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpMaterialController.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpMaterialController.java index ea7f4d8e..99738c8c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpMaterialController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpMaterialController.java @@ -9,6 +9,7 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.erp.domain.ErpBom; import com.ruoyi.erp.domain.ErpMaterial; import com.ruoyi.erp.domain.ErpMaterialVo; import com.ruoyi.erp.domain.vo.ErpMaterialPurchaseHistoryVo; @@ -16,10 +17,8 @@ import com.ruoyi.erp.domain.vo.ErpMaterialSalesHistoryVo; import com.ruoyi.erp.mapper.ErpMaterialMapper; import com.ruoyi.erp.service.IErpMaterialService; import com.ruoyi.process.general.service.IProcessService; -import com.ruoyi.system.domain.SysCustomer; -import com.ruoyi.system.domain.SysCustomerOper; -import com.ruoyi.system.domain.SysErpMaterialSysTechnicalTeam; -import com.ruoyi.system.domain.SysPost; +import com.ruoyi.system.domain.*; +import com.ruoyi.system.mapper.OutsourceMaterialMapper; import com.ruoyi.system.service.*; import com.ruoyi.warehouse.controller.WarehouseInventoryInquiryController; import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryService; @@ -73,6 +72,10 @@ public class ErpMaterialController extends BaseController @Autowired private ErpMaterialMapper erpMaterialMapper; + + @Autowired + private OutsourceMaterialMapper outsourceMaterialMapper; + @Autowired private ISysUserService sysUserService; @@ -162,7 +165,7 @@ public class ErpMaterialController extends BaseController @Log(title = "物料信息", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody - public AjaxResult addSave(ErpMaterial erpMaterial) + public AjaxResult addSave(@RequestBody ErpMaterial erpMaterial) { SysUser sysUser = ShiroUtils.getSysUser(); List sysPostsList = sysPostService.selectPostsByUserId(sysUser.getUserId()); @@ -301,7 +304,7 @@ public class ErpMaterialController extends BaseController @Log(title = "物料信息", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody - public AjaxResult editSave(ErpMaterial erpMaterial) + public AjaxResult editSave(@RequestBody ErpMaterial erpMaterial) { SysUser sysUser = ShiroUtils.getSysUser(); List sysPostsList = sysPostService.selectPostsByUserId(sysUser.getUserId()); @@ -537,4 +540,15 @@ public class ErpMaterialController extends BaseController return getDataTable(list); } + /** + * 查询bom一阶列表 + */ + @PostMapping("/processList") + @ResponseBody + public TableDataInfo oneLevelList(OutsourceMaterial outsourceMaterial) + { + startPage(); + List list = outsourceMaterialMapper.selectOutsourceMaterialList(outsourceMaterial); + return getDataTable(list); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpMaterial.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpMaterial.java index d549db64..9c23a9d1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpMaterial.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/domain/ErpMaterial.java @@ -2,6 +2,7 @@ package com.ruoyi.erp.domain; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import com.ruoyi.system.domain.OutsourceProcess; import com.ruoyi.system.domain.SysTechnicalTeam; import org.apache.commons.lang.builder.ToStringBuilder; @@ -132,6 +133,9 @@ public class ErpMaterial extends BaseEntity } private List technicalTeams; + + private List processList; + public void setId(Long id) { this.id = id; @@ -436,6 +440,14 @@ public class ErpMaterial extends BaseEntity this.bomId = bomId; } + public List getProcessList() { + return processList; + } + + public void setProcessList(List processList) { + this.processList = processList; + } + @Override public String toString() { return new ToStringBuilder(this) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpMaterialServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpMaterialServiceImpl.java index d6907ad7..dcc0f1fd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpMaterialServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpMaterialServiceImpl.java @@ -5,6 +5,7 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.PageDomain; import com.ruoyi.common.core.page.TableSupport; import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.service.ICommonService; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; @@ -24,6 +25,7 @@ import com.ruoyi.purchase.mapper.PurchaseOrderMapper; import com.ruoyi.purchase.mapper.PurchasePlanChildMapper; import com.ruoyi.system.domain.*; import com.ruoyi.system.domain.Vo.ExportCustomerQuoteChildVo; +import com.ruoyi.system.mapper.OutsourceMaterialMapper; import com.ruoyi.system.mapper.SysSalesOrderChildMapper; import com.ruoyi.system.mapper.SysSalesOrderMapper; import com.ruoyi.system.mapper.SysUserMapper; @@ -101,6 +103,9 @@ public class ErpMaterialServiceImpl implements IErpMaterialService @Autowired private ISysCustomerOperService sysCustomerOperService; + @Autowired + private OutsourceMaterialMapper outsourceMaterialMapper; + private final static String RMB = "1"; //RMB /** @@ -247,9 +252,36 @@ public class ErpMaterialServiceImpl implements IErpMaterialService List fileIdList = Arrays.asList(fileIdStr.split(";")); attachFileService.updateAttachIdByIdList(attachId,fileIdList); } + if(erpMaterial.getProcessMethod().equals("2")){ + OutsourceMaterial outsourceMaterial = createOutsourceMaterial(erpMaterial); + List processes = erpMaterial.getProcessList(); + if(processes.size()<=0){ + throw new BusinessException("委外物料工序列表为空!"); + } + int insertResult = 0; + for (OutsourceProcess process: processes) { + outsourceMaterial.setOutsourceProcessNo(process.getOutsourceProcessNo()); + outsourceMaterial.setOutsourceProcessName(process.getOutsourceProcessName()); + insertResult += outsourceMaterialMapper.insertOutsourceMaterial(outsourceMaterial); + } + if(insertResult<=0){ + throw new BusinessException("插入委外物料信息失败!"); + } + } return result; } - +// 根据物料信息生成委外物料对象 + public OutsourceMaterial createOutsourceMaterial(ErpMaterial erpMaterial){ + OutsourceMaterial outMaterial = new OutsourceMaterial(); + outMaterial.setMaterialNo(erpMaterial.getMaterialNo()); + outMaterial.setMaterialName(erpMaterial.getMaterialName()); + outMaterial.setMaterialType(erpMaterial.getMaterialType()); + outMaterial.setProcessMethod(erpMaterial.getProcessMethod()); + outMaterial.setUnit(erpMaterial.getUnit()); + outMaterial.setBrand(erpMaterial.getBrand()); + outMaterial.setDescription(erpMaterial.getDescribe()); + return outMaterial; + } /** * 修改物料信息 * @@ -283,7 +315,25 @@ public class ErpMaterialServiceImpl implements IErpMaterialService } attachFileService.updateAttachIdByIdList(photoAttachId, fileIdList); } - return erpMaterialMapper.updateErpMaterial(erpMaterial); + int updateResult = erpMaterialMapper.updateErpMaterial(erpMaterial); + if(erpMaterial.getProcessMethod().equals("2")){ + List processes = erpMaterial.getProcessList(); + if(processes.size()<=0){ + throw new BusinessException("委外物料工序列表为空!"); + } + outsourceMaterialMapper.deleteOutsourceMaterialByNo(erpMaterial.getMaterialNo()); + OutsourceMaterial outsourceMaterial = createOutsourceMaterial(erpMaterial); + int insertResult = 0; + for (OutsourceProcess process: processes) { + outsourceMaterial.setOutsourceProcessNo(process.getOutsourceProcessNo()); + outsourceMaterial.setOutsourceProcessName(process.getOutsourceProcessName()); + insertResult += outsourceMaterialMapper.insertOutsourceMaterial(outsourceMaterial); + } + if(insertResult<=0){ + throw new BusinessException("插入委外物料信息失败!"); + } + } + return updateResult; } /** @@ -362,6 +412,8 @@ public class ErpMaterialServiceImpl implements IErpMaterialService erpMaterial.setApplyTime(DateUtils.getNowDate()); if(erpMaterial.getId() == null){ insertErpMaterial(erpMaterial); + }else{ + updateErpMaterial(erpMaterial); } // 启动流程 String applyTitle = user.getUserName()+"发起了物料信息提交审批-"+DateUtils.dateTimeNow(); diff --git a/ruoyi-admin/src/main/resources/templates/erp/material/add.html b/ruoyi-admin/src/main/resources/templates/erp/material/add.html index f0527646..713bbd0a 100644 --- a/ruoyi-admin/src/main/resources/templates/erp/material/add.html +++ b/ruoyi-admin/src/main/resources/templates/erp/material/add.html @@ -37,13 +37,6 @@ -
- - -
-
@@ -81,8 +74,11 @@
- -
+ +
+
+ +
+
+ + +
+
+
+
+
+
@@ -172,9 +179,53 @@ var loginName = [[${@permission.getPrincipalProperty('loginName')}]]; //获取工程员 $(function(){ + var options = { + id: "bootstrap-table-process", + pagination: false, + showSearch: false, + showRefresh: false, + showToggle: false, + showColumns: false, + striped: false, + sidePagination: "client", + columns: [ + { + field: 'outsourceProcessId', + align: 'center', + title: '委外工序主键', + visible: false, + }, + { + field: 'outsourceProcessCode', + align: 'center', + title: '委外工序ID', + visible: false, + }, + { + field: 'outsourceProcessNo', + align: 'center', + title: '委外工序编号', + }, + { + field: 'outsourceProcessName', + align: 'center', + title: '委外工序名称', + }, + { + title: '操作', + align: 'center', + formatter: function (value, row, index) { + var actions = []; + actions.push('删除 '); + return actions.join(''); + } + }] + }; + $.table.init(options); $("#businessMembers_add").val(loginName); engineer(); - $("#add-weiwai").hide(); + $("#add-process-text").hide(); + $("#add-process").hide(); }) function engineer(){ @@ -253,22 +304,107 @@ $("#selectWarehouseDept").removeAttr("disabled"); var materialType = $('#selectMaterialType').select2('val'); $('#materialType').val(materialType); - $.operate.save(prefix + "/add", $('#form-material-add').serialize()); + // console.log($('#form-material-add').serialize()); + // 获取表单数据 + const erpMaterialData = $("#form-material-add").serializeArray().reduce((obj, item) => { + obj[item.name] = item.value; + return obj; + }, {}); + var erpMaterial = { + materialNo: erpMaterialData.materialNo, + materialName: erpMaterialData.materialName, + materialType: erpMaterialData.materialType, + processMethod: erpMaterialData.processMethod, + unit: erpMaterialData.unit, + brand: erpMaterialData.brand, + describe: erpMaterialData.describe, + warehouseDept: erpMaterialData.warehouseDept, + businessMembers: erpMaterialData.businessMembers, + fileIdStr: erpMaterialData.fileIdStr, + processList:[] + } + if(erpMaterialData.processMethod === "2"){ + var processDatas = $("#bootstrap-table-process").bootstrapTable('getData'); + if(processDatas.length === 0){ + $.modal.alertWarning("请至少添加一条委外工序再保存!"); + return; + }else{ + for(var i = 0; i' + - '删除' + - ''; - $(".bootstrap-table-sub-2").append(html); + // var html = '' + + // '' + + // '删除' + + // ''; + // $(".bootstrap-table-sub-2").append(html); + var url = "/system/outsource_quote/processadd"; + var options = { + title: '选择委外工序', + height: "500", + url: url, + callBack: doSubmit + }; + $.modal.openOptions(options); + } + // 插入工序信息 + function insertTable(rowData) { + var newRow = { + outsourceProcessNo: rowData.outsourceProcessNo, + // outsourceProcessCode: rowData.outsourceProcessCode, + outsourceProcessName: rowData.outsourceProcessName, + }; + // 将新行追加到表格末尾 + $("#bootstrap-table-process").bootstrapTable('append', newRow); + } + /* 选择委外工序回调 */ + function doSubmit(index, layero){ + // // 这里取到的是多行的 + var rowData = layero.find("iframe")[0].contentWindow.getSelections(); + //判断是否重复 + var data = $("#bootstrap-table-process").bootstrapTable('getData'); + var rows = data.length; + if(rows>0){ + for(var i=0;i
+ +
+
@@ -96,6 +99,14 @@
+
+ +
+
+
+
+
+
@@ -129,7 +140,7 @@