diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteController.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteController.java index 7c6f5c0d..7189ded2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteController.java @@ -1,7 +1,9 @@ package com.ruoyi.purchase.controller; +import java.math.BigDecimal; import java.util.HashMap; import java.util.List; +import java.util.stream.Collectors; import com.alibaba.fastjson.JSON; import com.ruoyi.ck.utils.Result; @@ -10,7 +12,10 @@ import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.purchase.domain.PurchaseQuoteChild; +import com.ruoyi.purchase.domain.PurchaseQuoteHistory; import com.ruoyi.purchase.domain.Vo.PurchaseQuoteVo; +import com.ruoyi.purchase.service.IPurchaseQuoteHistoryService; +import com.ruoyi.system.domain.SysCustomerQuoteHistory; import com.ruoyi.system.domain.SysSalesOrderChild; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; @@ -51,6 +56,10 @@ public class PurchaseQuoteController extends BaseController @Autowired private IPurchaseQuoteService purchaseQuoteService; + + @Autowired + private IPurchaseQuoteHistoryService purchaseQuoteHistoryService; + @Autowired private ISysRoleService roleService; @@ -243,6 +252,7 @@ public class PurchaseQuoteController extends BaseController if(!approvedFlag){ // 审核状态-审核拒绝 purchaseQuoteVo.setAuditStatus("2"); + purchaseQuoteHistoryService.updatePurchaseQuoteHistoryByPurchaseQuote(purchaseQuoteVo); } // 如果任务已结束更新业务表状态 boolean processIsFinish = processService.judgeProcessIsFinish(instanceId); @@ -253,6 +263,7 @@ public class PurchaseQuoteController extends BaseController if("submit".equals(instanceType)){ // 使用状态-是 purchaseQuoteVo.setUseStatus("1"); + purchaseQuoteHistoryService.updatePurchaseQuoteHistoryByPurchaseQuote(purchaseQuoteVo); } // 作废 else if("cancel".equals(instanceType)){ @@ -310,4 +321,58 @@ public class PurchaseQuoteController extends BaseController purchaseQuoteService.restorePurchaseQuoteById(id); return AjaxResult.success(); } + + + + + + /** + * 打开采购报价历史弹窗 + * */ + @GetMapping("/recentQuotationHistory") + public String history(@RequestParam("materialCode") String materialCode , + @RequestParam("supplierQuoteCode") String supplierQuoteCode, + ModelMap mmap) + { + + mmap.put("materialCode", materialCode); + mmap.put("supplierQuoteCode", supplierQuoteCode); + return prefix + "/recentQuotationHistory"; + } + + /** + * 查询客户报价历史列表 + * */ + @PostMapping("/recentQuotationHistoryList") + @ResponseBody + public TableDataInfo recentQuotationHistoryList(PurchaseQuoteHistory purchaseQuoteHistory) + { + startPage(); + List list = purchaseQuoteHistoryService.selectPurchaseQuoteHistoryList(purchaseQuoteHistory); + return getDataTable(list); + } + + + + + /** + * 查询最新报价历史数据 + * */ + @GetMapping("/queryLatestRecentQuotation") + @ResponseBody + public AjaxResult recentQuotationHistoryData(@RequestParam("materialNo") String materialNo, @RequestParam("supplierQuoteCode") String supplierQuoteCode) + { + PurchaseQuoteHistory purchaseQuoteHistory = new PurchaseQuoteHistory(); + purchaseQuoteHistory.setMaterialCode(materialNo); + purchaseQuoteHistory.setSupplierCode(supplierQuoteCode); + List purchaseQuoteHistories = purchaseQuoteHistoryService.selectPurchaseQuoteHistoryList(purchaseQuoteHistory); + List filterPurchaseQuoteHistories = purchaseQuoteHistories.stream().filter(item -> "1".equals(item.getIsLatest())).collect(Collectors.toList()); + if (filterPurchaseQuoteHistories.size() == 0) + { + PurchaseQuoteHistory temp = new PurchaseQuoteHistory(); + temp.setMaterialRmb(BigDecimal.ZERO); + return AjaxResult.success(temp); + } + return AjaxResult.success(filterPurchaseQuoteHistories.get(0)); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteHistoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteHistoryController.java index b53fa846..9ed1a4c4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteHistoryController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteHistoryController.java @@ -1,15 +1,13 @@ package com.ruoyi.purchase.controller; import java.util.List; + +import com.ruoyi.system.domain.SysCustomerQuoteHistory; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.purchase.domain.PurchaseQuoteHistory; @@ -26,10 +24,10 @@ import com.ruoyi.common.core.page.TableDataInfo; * @date 2024-08-28 */ @Controller -@RequestMapping("/purchaseQuoteHistory/purchaseQuoteHistory") +@RequestMapping("/purchase/purchaseQuoteHistory") public class PurchaseQuoteHistoryController extends BaseController { - private String prefix = "purchaseQuoteHistory/purchaseQuoteHistory"; + private String prefix = "purchase/purchaseQuoteHistory"; @Autowired private IPurchaseQuoteHistoryService purchaseQuoteHistoryService; @@ -147,5 +145,4 @@ public class PurchaseQuoteHistoryController extends BaseController return toAjax(purchaseQuoteHistoryService.restorePurchaseQuoteHistoryById(id)); } - } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseQuoteHistory.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseQuoteHistory.java index 8f9ed37a..61c94da5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseQuoteHistory.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseQuoteHistory.java @@ -72,12 +72,12 @@ public class PurchaseQuoteHistory extends BaseEntity @Excel(name = "物料的对外报价") private Long materialSole; - /** 物料的不含税单价(RMB) */ - @Excel(name = "物料的不含税单价(RMB)") - private BigDecimal materialRmb; - /** 物料的含税单价(RMB) */ @Excel(name = "物料的含税单价(RMB)") + private BigDecimal materialRmb; + + /** 物料的不含税单价(RMB) */ + @Excel(name = "物料的不含税单价(RMB)") private BigDecimal materialNormb; /** 供应商编号 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/Vo/PurchaseQuoteVo.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/Vo/PurchaseQuoteVo.java index 3468c5cd..153d9b1f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/Vo/PurchaseQuoteVo.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/Vo/PurchaseQuoteVo.java @@ -19,6 +19,11 @@ public class PurchaseQuoteVo extends PurchaseQuote { private String taskId; /** 任务名称 */ private String taskName; + + + // 当前状态 + private String taskStatus; + /** 办理时间 */ private Date doneTime; /** 创建人 */ @@ -96,6 +101,13 @@ public class PurchaseQuoteVo extends PurchaseQuote { this.instanceTypeName = instanceTypeName; } + public String getTaskStatus() { + return taskStatus; + } + + public void setTaskStatus(String taskStatus) { + this.taskStatus = taskStatus; + } @Override public String toString() { @@ -103,6 +115,7 @@ public class PurchaseQuoteVo extends PurchaseQuote { "applyUserName='" + applyUserName + '\'' + ", taskId='" + taskId + '\'' + ", taskName='" + taskName + '\'' + + ", taskStatus='" + taskStatus + '\'' + ", doneTime=" + doneTime + ", createUserName='" + createUserName + '\'' + ", suspendState='" + suspendState + '\'' + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteChildMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteChildMapper.java index 85e76154..7cb27f49 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteChildMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteChildMapper.java @@ -94,4 +94,9 @@ public interface PurchaseQuoteChildMapper * 通过供应商编码查找所有采购报价子表集合 * */ List selectQuoteChildBySupplierCode(String supplierCode); + + /** + * 通过采购报价编码查找所有采购报价子表集合 + * */ + List selectQuoteChildByPurchaseQuoteCode(String purchaseQuoteCode); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteHistoryMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteHistoryMapper.java index 8ed977fe..8bd8989f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteHistoryMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteHistoryMapper.java @@ -89,4 +89,9 @@ public interface PurchaseQuoteHistoryMapper * @return 结果 */ public int restorePurchaseQuoteHistoryById(Long purchaseQuoteChildId); + + /** + * 通过供应商编号和物料编号更新采购报价历史数据 + * */ + public int updatePurchaseQuoteHistoryByCode(PurchaseQuoteHistory purchaseQuoteHistory); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteHistoryService.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteHistoryService.java index a5b97438..57a9cb7e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteHistoryService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteHistoryService.java @@ -4,6 +4,7 @@ import java.util.List; import com.ruoyi.purchase.domain.PurchaseQuote; import com.ruoyi.purchase.domain.PurchaseQuoteHistory; +import com.ruoyi.purchase.domain.Vo.PurchaseQuoteVo; /** * 采购物料历史报价信息Service接口 @@ -80,4 +81,10 @@ public interface IPurchaseQuoteHistoryService * * */ int generatePurchaseQuoteHistory(PurchaseQuote purchaseQuote); + + /** + * 采购报价更新的时候更新采购报价历史数据 + * + * */ + void updatePurchaseQuoteHistoryByPurchaseQuote(PurchaseQuoteVo purchaseQuoteVo); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteHistoryServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteHistoryServiceImpl.java index e6580f16..eb478b9d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteHistoryServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteHistoryServiceImpl.java @@ -1,17 +1,24 @@ package com.ruoyi.purchase.service.impl; import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.Objects; + +import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.purchase.domain.PurchaseQuote; import com.ruoyi.purchase.domain.PurchaseQuoteChild; +import com.ruoyi.purchase.domain.Vo.PurchaseQuoteVo; +import com.ruoyi.purchase.mapper.PurchaseQuoteChildMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.purchase.mapper.PurchaseQuoteHistoryMapper; import com.ruoyi.purchase.domain.PurchaseQuoteHistory; import com.ruoyi.purchase.service.IPurchaseQuoteHistoryService; import com.ruoyi.common.core.text.Convert; +import org.springframework.transaction.annotation.Transactional; /** * 采购物料历史报价信息Service业务层处理 @@ -25,6 +32,9 @@ public class PurchaseQuoteHistoryServiceImpl implements IPurchaseQuoteHistorySer @Autowired private PurchaseQuoteHistoryMapper purchaseQuoteHistoryMapper; + @Autowired + private PurchaseQuoteChildMapper purchaseQuoteChildMapper; + /** * 查询采购物料历史报价信息 * @@ -46,7 +56,21 @@ public class PurchaseQuoteHistoryServiceImpl implements IPurchaseQuoteHistorySer @Override public List selectPurchaseQuoteHistoryList(PurchaseQuoteHistory purchaseQuoteHistory) { + //最新的报价 + PurchaseQuoteHistory latestQuoteHistory = purchaseQuoteHistoryMapper.findLatestPurchaseQuoteHistory(purchaseQuoteHistory); + if (latestQuoteHistory != null){ + List purchaseQuoteHistories = purchaseQuoteHistoryMapper.selectPurchaseQuoteHistoryList(purchaseQuoteHistory); + purchaseQuoteHistories.forEach(item -> { + if (Objects.equals(item.getPurchaseQuoteChildId(), latestQuoteHistory.getPurchaseQuoteChildId())) { + item.setIsLatest("1"); + } else { + item.setIsLatest("0"); + } + }); + return purchaseQuoteHistories; + } return purchaseQuoteHistoryMapper.selectPurchaseQuoteHistoryList(purchaseQuoteHistory); + } /** @@ -162,4 +186,42 @@ public class PurchaseQuoteHistoryServiceImpl implements IPurchaseQuoteHistorySer } return purchaseQuoteHistoryMapper.insertBatchPurchaseQuoteHistory(purchaseQuoteHistoryChildren); } + + + + + /** + * 根据采购报价信息更新采购报价最新报价记录 + * @param purchaseQuoteVo + */ + @Override + public void updatePurchaseQuoteHistoryByPurchaseQuote(PurchaseQuoteVo purchaseQuoteVo) { + + String loginName = ShiroUtils.getLoginName(); + String supplierCode = purchaseQuoteVo.getSupplierQuoteCode(); + String auditStatus = purchaseQuoteVo.getAuditStatus(); + String purchaseQuoteCode = purchaseQuoteVo.getPurchaseQuoteCode(); + // 获取所有的子项 + List purchaseQuoteChildList= purchaseQuoteChildMapper.selectQuoteChildByPurchaseQuoteCode(purchaseQuoteCode); + for (PurchaseQuoteChild purchaseQuoteChild : purchaseQuoteChildList) { + PurchaseQuoteHistory purchaseQuoteHistory = new PurchaseQuoteHistory(); + + // 设置审核状态 + purchaseQuoteHistory.setAuditStatus(auditStatus.equals("1") ? "1" : "2"); + purchaseQuoteHistory.setSupplierCode(supplierCode); + // 设置其他字段 + purchaseQuoteHistory.setMaterialCode(purchaseQuoteChild.getMaterialCode()); + purchaseQuoteHistory.setUpdateBy(loginName); + purchaseQuoteHistory.setUpdateTime(new Date()); + // 更新报价历史记录 + int result = purchaseQuoteHistoryMapper.updatePurchaseQuoteHistoryByCode(purchaseQuoteHistory); + if (result <= 0){ + throw new BusinessException("更新采购报价历史数据失败"); + } + } + } + + + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteServiceImpl.java index f0711d4d..05b0836a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteServiceImpl.java @@ -148,6 +148,12 @@ public class PurchaseQuoteServiceImpl implements IPurchaseQuoteService } else { purchaseQuoteVo.setTaskName("未启动"); } + purchaseQuoteVo.setTaskStatus(purchaseQuoteVo.getTaskName()); + if(purchaseQuoteVo.getAuditStatus()!=null && purchaseQuoteVo.getAuditStatus().equals("1")){ + purchaseQuoteVo.setTaskStatus("审核通过"); + }else if(purchaseQuoteVo.getAuditStatus()!=null && purchaseQuoteVo.getAuditStatus().equals("2")){ + purchaseQuoteVo.setTaskStatus("审核拒绝"); + } returnList.add(purchaseQuoteVo); } returnList.setTotal(CollectionUtils.isEmpty(list) ? 0 : list.getTotal()); @@ -397,9 +403,7 @@ public class PurchaseQuoteServiceImpl implements IPurchaseQuoteService SysUser user = ShiroUtils.getSysUser(); purchaseQuote.setApplyUser(user.getLoginName()); purchaseQuote.setApplyTime(DateUtils.getNowDate()); - if(purchaseQuote.getPurchaseQuoteId()==null){ - insertPurchaseQuote(purchaseQuote); - } + insertPurchaseQuote(purchaseQuote); // 启动流程 String applyTitle = user.getUserName()+"发起了客户信息提交审批-"+DateUtils.dateTimeNow(); String instanceType = "submit"; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysCustomerQuoteController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysCustomerQuoteController.java index 1414bcba..e567c59a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysCustomerQuoteController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysCustomerQuoteController.java @@ -477,7 +477,7 @@ public class SysCustomerQuoteController extends BaseController sysCustomerQuoteHistory.setMaterialCode(materialNo); sysCustomerQuoteHistory.setCustomerCode(customerCode); List sysCustomerQuoteHistories = quoteHistoryService.selectSysCustomerQuoteHistoryList(sysCustomerQuoteHistory); - List filterCustomerQuoteHistories = sysCustomerQuoteHistories.stream().filter(item -> item.getIsLatest().equals("1")).collect(Collectors.toList()); + List filterCustomerQuoteHistories = sysCustomerQuoteHistories.stream().filter(item -> "1".equals(item.getIsLatest())).collect(Collectors.toList()); if (filterCustomerQuoteHistories.size() == 0) { SysCustomerQuoteHistory temp = new SysCustomerQuoteHistory(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerQuoteHistoryServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerQuoteHistoryServiceImpl.java index 86efdfea..c29bab9c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerQuoteHistoryServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerQuoteHistoryServiceImpl.java @@ -56,15 +56,19 @@ public class SysCustomerQuoteHistoryServiceImpl implements ISysCustomerQuoteHist //最新的报价 SysCustomerQuoteHistory latestQuoteHistory = sysCustomerQuoteHistoryMapper.findLatestQuoteHistory(sysCustomerQuoteHistory); List sysCustomerQuoteHistories = sysCustomerQuoteHistoryMapper.selectSysCustomerQuoteHistoryList(sysCustomerQuoteHistory); - sysCustomerQuoteHistories.forEach(customerQuoteHistory -> { - if (Objects.equals(customerQuoteHistory.getQuoteHistoryId(), latestQuoteHistory.getQuoteHistoryId())) { - customerQuoteHistory.setIsLatest("1"); - } else { - customerQuoteHistory.setIsLatest("0"); - } - }); - - return sysCustomerQuoteHistories; + if (latestQuoteHistory != null){ + sysCustomerQuoteHistories.forEach(customerQuoteHistory -> { + if (Objects.equals(customerQuoteHistory.getQuoteHistoryId(), latestQuoteHistory.getQuoteHistoryId())) { + customerQuoteHistory.setIsLatest("1"); + } else { + customerQuoteHistory.setIsLatest("0"); + } + }); + + return sysCustomerQuoteHistories; + } + return sysCustomerQuoteHistoryMapper.selectSysCustomerQuoteHistoryList(sysCustomerQuoteHistory); + } /** diff --git a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml index 814e8523..9297bcc3 100644 --- a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml @@ -90,6 +90,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where supplier_code = #{supplierCode} + + insert into purchase_quote_child diff --git a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteHistoryMapper.xml b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteHistoryMapper.xml index 70be7175..2ec801eb 100644 --- a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteHistoryMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteHistoryMapper.xml @@ -30,12 +30,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - select purchase_quote_child_id, purchase_quote_code, material_id, material_code, material_name, material_type, processMethod, brand, photoUrl, describe, tax_rate, usd_rate, material_num, material_sole, material_rmb, material_noRmb, supplier_code, supplier_name, create_by, create_time, update_by, update_time, remark, use_status, audit_status, is_latest,del_flag from purchase_quote_history + select purchase_quote_child_id, purchase_quote_code, material_id, material_code, material_name, material_sole, material_rmb, material_noRmb, supplier_code, supplier_name, create_by, create_time, update_by, update_time, remark, use_status, audit_status, is_latest,del_flag from purchase_quote_history - where purchase_quote_code = #{purchaseQuoteCode} and material_code = #{materialCode} and audit_status = '1' + where supplier_code = #{supplierCode} and material_code = #{materialCode} and audit_status = '1' order by update_time desc limit 1 diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/add.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/add.html index 7243b07f..76e67e96 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/add.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/add.html @@ -27,15 +27,17 @@
- +
+
+
@@ -159,6 +161,16 @@ } }, {title: '最新报价',field: 'materialSole',align: 'center',}, + + { title: '最新报价历史',align: 'center', + + formatter: function (value, row, index) { + var actions = []; + actions.push('最新报价历史 '); + return actions.join(''); + } + }, + {title: '物料的数量', field: 'materialNum',align: 'center',editable: true,visible: false}, {title: '物料的不含税单价(RMB)',field: 'materialNoRmb',align: 'center', editable:{ @@ -189,7 +201,6 @@ {title: '录入时间',field: 'createTime',align: 'center',visible: false }, {title: '更新人',field: 'updateBy',align: 'center',visible: false}, {title: '上次更新时间',field: 'updateTime',align: 'center',visible: false}, - {title: '备注',field: 'remark',align: 'center'}, {title: '操作', align: 'center', formatter: function (value, row, index) { var actions = []; @@ -234,48 +245,94 @@ }); getPurchaseQuoteCode(); }); - function doSubmit(index, layero,uniqueId){ + + + + + function doSubmit(index, layero, uniqueId) { var iframeWin = window[layero.find('iframe')[0]['name']]; - var rowData = iframeWin.$('#bootstrap-select-table').bootstrapTable('getSelections'); - var rows = $("#bootstrap-sub-table-1").bootstrapTable('getData').length; - for(var j=0;i { + // 检查是否已经存在相同的料号 + if (materialCodesSet.has(rowData.materialNo) || newMaterialCodesSet.has(rowData.materialNo)) { + $.modal.alertError("不能选择已添加过的相同料号 " + rowData.materialNo); + return Promise.reject("Duplicate material number: " + rowData.materialNo); + } + + // 标记即将插入的物料号 + newMaterialCodesSet.add(rowData.materialNo); + + return queryRecentQuotation(rowData.materialNo) + .then(function(quotationData) { + return { + materialId:rowData.id, + materialCode: rowData.materialNo, + materialName: rowData.materialName, + materialType: rowData.materialType, + describe: rowData.describe, + brand: rowData.brand, + unit: rowData.unit, + processMethod: rowData.processMethod, + materialSole: quotationData.data.materialRmb || '', + photoUrl: rowData.photoUrl, + materialNum: 1, + materialRmb: "", + materialNoRmb: "", + materialNoRmbSum: "", + materialRmbSum: "", + remark: "" + }; + }); + }); + + // 使用 Promise.all 来等待所有请求完成,并将结果直接存入 newRows + Promise.all(promises) + .then(function(newRows) { + // 批量插入新行 + newRows.forEach(function(row) { + $("#bootstrap-sub-table-purchaseQuoteChild").bootstrapTable('insertRow', { index: 1, row: row }); + }); + + layer.close(index); }) - } - layer.close(index); + .catch(function(error) { + console.error('Some requests failed:', error); + layer.close(index); + }); } + + + + function insertRow() { + + if ($("#selectSupplierQuoteCode").val() == null || $("#selectSupplierQuoteCode").val() == '') { + $.modal.alertWarning("请先选择供应商ID"); + return; + } + if ($("#taxRate").val() == null || $("#taxRate").val() == '') { + $.modal.alertWarning("请先填写税率"); + return; + } + + var url = ctx + "erp/material/select"; var options = { title: '选择料号', @@ -378,6 +435,41 @@ values: materialCode }) } + + + //最新报价历史 + function recentQuotationHistory(materialCode){ + var supplierQuoteCode = $("#selectSupplierQuoteCode").val(); + var queryParams = new URLSearchParams(); + queryParams.append("materialCode", materialCode); + queryParams.append("supplierQuoteCode", encodeURIComponent(supplierQuoteCode)); + var url = ctx +'purchase/purchaseQuote/recentQuotationHistory?'+queryParams.toString(); + + $.modal.open("最新报价历史", url); + } + + + + // 查找最新的报价数据 + function queryRecentQuotation(materialNo) { + return new Promise((resolve, reject) => { + // 使用AJAX请求从服务器获取最近的报价信息 + $.ajax({ + url: prefix + '/queryLatestRecentQuotation', + type: 'GET', + data: { materialNo: materialNo, supplierQuoteCode: $("#selectSupplierQuoteCode").val() }, + success: function (data) { + resolve(data); // 成功时解析数据 + }, + error: function (jqXHR, textStatus, errorThrown) { + reject(new Error('查找最新报价数据失败')); // 失败时抛出错误 + } + }); + }); + } + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/detail.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/detail.html index 96ab42e8..85ce9568 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/detail.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/detail.html @@ -20,26 +20,26 @@
- +
- +
- +
- +
@@ -68,18 +68,13 @@
- + %
-
-
- 选择报价信息 -
-
@@ -208,14 +203,21 @@ } }, {title:'最新报价',field: 'materialSole',align: 'center',}, + { title: '最新报价历史',align: 'center', + + formatter: function (value, row, index) { + var actions = []; + actions.push('最新报价历史 '); + return actions.join(''); + } + }, {title: '物料的数量', field: 'materialNum',align: 'center',editable: true,visible: false}, - {title: '物料的不含税单价(RMB)',field: 'materialNoRmb',align: 'center',editable: true,}, - {title: '物料的含税单价(RMB)',field: 'materialRmb',align: 'center',editable: true,}, + {title: '物料的不含税单价(RMB)',field: 'materialNoRmb',align: 'center',}, + {title: '物料的含税单价(RMB)',field: 'materialRmb',align: 'center',}, {title: '录入人',field: 'createBy',align: 'center',visible: false}, {title: '录入时间',field: 'createTime',align: 'center',visible: false }, {title: '更新人',field: 'updateBy',align: 'center',visible: false}, {title: '上次更新时间',field: 'updateTime',align: 'center',visible: false}, - {title: '备注',field: 'remark',align: 'center'}, ], }; $.table.init(options); @@ -269,6 +271,18 @@ minView: "month", autoclose: true }); + + + //最新报价历史 + function recentQuotationHistory(materialCode){ + var supplierQuoteCode = $("#supplierQuoteCode").val(); + var queryParams = new URLSearchParams(); + queryParams.append("materialCode", materialCode); + queryParams.append("supplierQuoteCode", encodeURIComponent(supplierQuoteCode)); + var url = ctx +'purchase/purchaseQuote/recentQuotationHistory?'+queryParams.toString(); + + $.modal.open("最新报价历史", url); + } \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/edit.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/edit.html index 7ff73315..cd658d06 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/edit.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/edit.html @@ -240,7 +240,6 @@ {title: '录入时间',field: 'createTime',align: 'center',visible: false }, {title: '更新人',field: 'updateBy',align: 'center',visible: false}, {title: '上次更新时间',field: 'updateTime',align: 'center',visible: false}, - {title: '备注',field: 'remark',align: 'center'}, {title: '操作', align: 'center', formatter: function (value, row, index) { var actions = []; diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/purchaseQuote.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/purchaseQuote.html index 71a93b81..dd12d6ef 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/purchaseQuote.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/purchaseQuote.html @@ -109,7 +109,7 @@ columns: [ {checkbox: true}, {title: '采购报价索引id',field: 'purchaseQuoteId',visible: false}, - {title: '审核状态',field: 'auditStatus', + {title: '审核状态',field: 'auditStatus',visible: false, formatter: function (value, row, index) {return $.table.selectDictLabel(auditStatusDatas, value);} }, {title: '流程实例ID',field: 'instanceId',visible: false}, @@ -118,29 +118,39 @@ {title: '流程恢复实例ID',field: 'restoreInstanceId', visible: false}, { title: '流程实例类型', field: 'instanceTypeName',visible: false}, {title: '申请人ID',field: 'applyUser', visible: false}, - { - field: 'applyUserName', - title: '申请人', - formatter: function(value, row, index) { - return '' + (value ? value : "-") + ''; - } - }, - {field: 'applyTime',title: '申请时间' - }, {title: '当前任务ID',field: 'taskId',visible: false}, { title: '待办用户ID',field: 'todoUserId', visible: false}, - { title: '当前任务名称',field: 'taskName', + { title: '当前任务名称',field: 'taskName', visible: false, align: 'center', formatter: function(value, row, index) { return '' + value + ''; } }, - {title: '采购员',field: 'purchaseBuyer',}, + {title: '当前状态',field: 'taskStatus', + formatter: function(value, row, index) { + if(row.auditStatus!="1"&&value != "未启动"){ + return '' + value + ''; + } + if(value === "未启动"){ + return '' + value + ''; + } + return '' + value + '';} + }, {title: '采购报价单号',field: 'purchaseQuoteCode',}, {title: '供应商ID',field: 'supplierQuoteCode',}, {title: '供应商名称',field: 'supplierName',}, {title: '物料合计',field: 'materialAmount',}, {title: '定价时间',field: 'pricingDate',}, + {field: 'applyTime',title: '申请时间' + }, + { + field: 'applyUserName', + title: '申请人', + formatter: function(value, row, index) { + return '' + (value ? value : "-") + ''; + } + }, + {title: '采购员',field: 'purchaseBuyer',}, {title: '录入时间',field: 'createTime',}, {title: '更新人',field: 'updateBy',}, {title: '上次更新时间',field: 'updateTime',}, diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/recentQuotationHistory.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/recentQuotationHistory.html new file mode 100644 index 00000000..053becd8 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/recentQuotationHistory.html @@ -0,0 +1,74 @@ + + + + + + +
+
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskCgjlVerify.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskCgjlVerify.html index 55f67dbf..b8e0c88d 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskCgjlVerify.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskCgjlVerify.html @@ -46,26 +46,26 @@
- +
- +
- +
- +
@@ -94,7 +94,7 @@
- + %
@@ -118,11 +118,6 @@
-
-
- 选择报价信息 -
-
@@ -251,14 +246,21 @@ } }, {title:'最新报价',field: 'materialSole',align: 'center',}, - {title: '物料的数量', field: 'materialNum',align: 'center',editable: true,visible: false}, + { title: '最新报价历史',align: 'center', + + formatter: function (value, row, index) { + var actions = []; + actions.push('最新报价历史 '); + return actions.join(''); + } + }, + {title: '物料的数量', field: 'materialNum',align: 'center',visible: false}, {title: '物料的不含税单价(RMB)',field: 'materialNoRmb',align: 'center',}, {title: '物料的含税单价(RMB)',field: 'materialRmb',align: 'center',}, {title: '录入人',field: 'createBy',align: 'center',visible: false}, {title: '录入时间',field: 'createTime',align: 'center',visible: false }, {title: '更新人',field: 'updateBy',align: 'center',visible: false}, {title: '上次更新时间',field: 'updateTime',align: 'center',visible: false}, - {title: '备注',field: 'remark',align: 'center'}, ], }; $.table.init(options); @@ -323,6 +325,18 @@ minView: "month", autoclose: true }); + + //最新报价历史 + function recentQuotationHistory(materialCode){ + var supplierQuoteCode = $("#supplierQuoteCode").val(); + var queryParams = new URLSearchParams(); + queryParams.append("materialCode", materialCode); + queryParams.append("supplierQuoteCode", encodeURIComponent(supplierQuoteCode)); + var url = ctx +'purchase/purchaseQuote/recentQuotationHistory?'+queryParams.toString(); + + $.modal.open("最新报价历史", url); + } + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskFzjlVerify.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskFzjlVerify.html index d75393dd..70a39820 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskFzjlVerify.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskFzjlVerify.html @@ -46,26 +46,26 @@
- +
- +
- +
- +
@@ -94,7 +94,7 @@
- + %
@@ -118,11 +118,6 @@
-
-
- 选择报价信息 -
-
@@ -251,14 +246,23 @@ } }, {title:'最新报价',field: 'materialSole',align: 'center',}, - {title: '物料的数量', field: 'materialNum',align: 'center',editable: true,visible: false}, + { title: '最新报价历史',align: 'center', + + formatter: function (value, row, index) { + var actions = []; + actions.push('最新报价历史 '); + return actions.join(''); + } + }, + + + {title: '物料的数量', field: 'materialNum',align: 'center',visible: false}, {title: '物料的不含税单价(RMB)',field: 'materialNoRmb',align: 'center'}, {title: '物料的含税单价(RMB)',field: 'materialRmb',align: 'center'}, {title: '录入人',field: 'createBy',align: 'center',visible: false}, {title: '录入时间',field: 'createTime',align: 'center',visible: false }, {title: '更新人',field: 'updateBy',align: 'center',visible: false}, {title: '上次更新时间',field: 'updateTime',align: 'center',visible: false}, - {title: '备注',field: 'remark',align: 'center'}, ], }; $.table.init(options); @@ -330,6 +334,18 @@ minView: "month", autoclose: true }); + + //最新报价历史 + function recentQuotationHistory(materialCode){ + var supplierQuoteCode = $("#supplierQuoteCode").val(); + var queryParams = new URLSearchParams(); + queryParams.append("materialCode", materialCode); + queryParams.append("supplierQuoteCode", encodeURIComponent(supplierQuoteCode)); + var url = ctx +'purchase/purchaseQuote/recentQuotationHistory?'+queryParams.toString(); + + $.modal.open("最新报价历史", url); + } + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskModifyApply.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskModifyApply.html index 0740a9a4..298829ef 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskModifyApply.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskModifyApply.html @@ -257,7 +257,6 @@ {title: '录入时间',field: 'createTime',align: 'center',visible: false }, {title: '更新人',field: 'updateBy',align: 'center',visible: false}, {title: '上次更新时间',field: 'updateTime',align: 'center',visible: false}, - {title: '备注',field: 'remark',align: 'center'}, {title: '操作', align: 'center', formatter: function (value, row, index) { var actions = []; diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuoteHistory/add.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuoteHistory/add.html index c2b16bd3..210e5c65 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuoteHistory/add.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuoteHistory/add.html @@ -147,7 +147,7 @@