From bb6b2328c961f6229305b4da599e850a33a193de Mon Sep 17 00:00:00 2001
From: liuxiaoxu <1793812695@qq.com>
Date: Mon, 5 Aug 2024 19:19:27 +0800
Subject: [PATCH] =?UTF-8?q?[fix]=20=E9=94=80=E5=94=AE=E7=AE=A1=E7=90=86=20?=
=?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=94=80=E5=94=AE=E4=BC=B0=E4=BB=B7=E7=9A=84?=
=?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A1=B5=E9=9D=A2=20=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?=E9=94=80=E5=94=AE=E4=BC=B0=E4=BB=B7=E7=9A=84=E7=89=A9=E6=96=99?=
=?UTF-8?q?=E9=80=89=E6=8B=A9=E9=A1=B5=E9=9D=A2=20=E9=94=80=E5=94=AE?=
=?UTF-8?q?=E4=BC=B0=E4=BB=B7=E5=AE=9E=E4=BD=93=E7=B1=BB=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?=20=E6=96=B0=E5=A2=9E=E4=BC=B0=E4=BB=B7=E8=AF=A6=E6=83=85?=
=?UTF-8?q?=E9=9B=86=E5=90=88=20=E6=96=B0=E5=A2=9E=20=E5=8A=A0=E8=BD=BD?=
=?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=94=80=E5=94=AE=E4=BC=B0=E4=BB=B7=20?=
=?UTF-8?q?=E7=89=A9=E6=96=99=E9=80=89=E6=8B=A9=E5=BC=B9=E7=AA=97=20?=
=?UTF-8?q?=E5=90=8E=E7=AB=AF=E6=8E=A5=E5=8F=A3=20=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?=E9=94=80=E5=94=AE=E4=BC=B0=E4=BB=B7=20=E7=89=A9=E6=96=99?=
=?UTF-8?q?=E9=80=89=E6=8B=A9=20=E5=90=8E=E7=AB=AF=E6=8E=A5=E5=8F=A3=20?=
=?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E6=89=B9=E9=87=8F=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?=E9=94=80=E5=94=AE=E4=BC=B0=E4=BB=B7=E8=AF=A6=E6=83=85=E5=90=8E?=
=?UTF-8?q?=E7=AB=AF=E6=8E=A5=E5=8F=A3=20=E6=96=B0=E5=A2=9E=20=E6=89=B9?=
=?UTF-8?q?=E9=87=8F=E6=96=B0=E5=A2=9E=E9=94=80=E5=94=AE=E4=BC=B0=E4=BB=B7?=
=?UTF-8?q?=E5=90=8E=E7=AB=AF=E6=8E=A5=E5=8F=A3=20=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=94=80=E5=94=AE=E4=BC=B0=E4=BB=B7=E5=90=8E?=
=?UTF-8?q?=E7=AB=AF=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=8A=A0=E4=B8=8A=E5=AF=B9?=
=?UTF-8?q?=E9=94=80=E5=94=AE=E4=BC=B0=E4=BB=B7=E8=AF=A6=E6=83=85=E8=A1=A8?=
=?UTF-8?q?=E7=9A=84=E5=A4=84=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/SalesEstimateController.java | 47 +-
.../com/ruoyi/sales/domain/SalesEstimate.java | 17 +
.../mapper/SalesEstimateDetailMapper.java | 9 +
.../sales/mapper/SalesEstimateMapper.java | 8 +
.../impl/SalesEstimateServiceImpl.java | 30 +-
.../sales/SalesEstimateDetailMapper.xml | 81 ++++
.../mapper/sales/SalesEstimateMapper.xml | 52 +++
.../templates/sales/estimate/add.html | 412 +++++++++++++-----
.../estimate/estimateMaterialSelect.html | 102 +++++
9 files changed, 650 insertions(+), 108 deletions(-)
create mode 100644 ruoyi-admin/src/main/resources/templates/sales/estimate/estimateMaterialSelect.html
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/sales/controller/SalesEstimateController.java b/ruoyi-admin/src/main/java/com/ruoyi/sales/controller/SalesEstimateController.java
index 0fa5357c..5b23a1a3 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/sales/controller/SalesEstimateController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/sales/controller/SalesEstimateController.java
@@ -1,15 +1,16 @@
package com.ruoyi.sales.controller;
import java.util.List;
+
+import com.ruoyi.erp.domain.ErpMaterialVo;
+import com.ruoyi.erp.service.IErpMaterialService;
+import com.ruoyi.system.domain.SysMakeOrder;
+import com.ruoyi.system.domain.SysSalesOrderChild;
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.sales.domain.SalesEstimate;
@@ -34,6 +35,9 @@ public class SalesEstimateController extends BaseController
@Autowired
private ISalesEstimateService salesEstimateService;
+ @Autowired
+ private IErpMaterialService materialService;
+
@RequiresPermissions("sales:estimate:view")
@GetMapping()
public String estimate()
@@ -69,7 +73,7 @@ public class SalesEstimateController extends BaseController
}
/**
- * 新增销售估价
+ * 新增销售估价-业务
*/
@GetMapping("/add")
public String add()
@@ -78,17 +82,44 @@ public class SalesEstimateController extends BaseController
}
/**
- * 新增保存销售估价
+ * 新增保存销售估价-业务
*/
@RequiresPermissions("sales:estimate:add")
@Log(title = "销售估价", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
- public AjaxResult addSave(SalesEstimate salesEstimate)
+ public AjaxResult addSave(@RequestBody SalesEstimate salesEstimate)
{
return toAjax(salesEstimateService.insertSalesEstimate(salesEstimate));
}
+
+
+
+
+ /**
+ * 加载新增销售估价 物料选择弹窗
+ */
+ @GetMapping("/estimateMaterialSelect")
+ public String estimateMaterialSelect()
+ {
+ return prefix + "/estimateMaterialSelect";
+ }
+
+ /**
+ * 新增销售估价 物料选择
+ */
+ @ResponseBody
+ @PostMapping("/getEstimateMaterialList")
+ public TableDataInfo getEstimateMaterialList( )
+ {
+ startPage();
+ List erpMaterialVos = materialService.selectAllErpMaterialList();
+ return getDataTable(erpMaterialVos);
+ }
+
+
+
/**
* 修改销售估价
*/
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/sales/domain/SalesEstimate.java b/ruoyi-admin/src/main/java/com/ruoyi/sales/domain/SalesEstimate.java
index 73bc0b6d..6a8cbb63 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/sales/domain/SalesEstimate.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/sales/domain/SalesEstimate.java
@@ -2,6 +2,8 @@ package com.ruoyi.sales.domain;
import java.math.BigDecimal;
import java.util.Date;
+import java.util.List;
+
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@@ -88,8 +90,14 @@ public class SalesEstimate extends BaseEntity
private BigDecimal allNoTaxDollar;
/** 定价日期 */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "定价日期")
private Date pricingDate;
+
+ /** 销售估价详情集合 */
+ private List salesEstimateDetailList;
+
public void setSalesEstimateId(Long salesEstimateId)
{
this.salesEstimateId = salesEstimateId;
@@ -271,6 +279,14 @@ public class SalesEstimate extends BaseEntity
return pricingDate;
}
+ public List getSalesEstimateDetailList() {
+ return salesEstimateDetailList;
+ }
+
+ public void setSalesEstimateDetailList(List salesEstimateDetailList) {
+ this.salesEstimateDetailList = salesEstimateDetailList;
+ }
+
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@@ -299,6 +315,7 @@ public class SalesEstimate extends BaseEntity
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
+ .append("salesEstimateDetailList", getSalesEstimateDetailList())
.toString();
}
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/sales/mapper/SalesEstimateDetailMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/sales/mapper/SalesEstimateDetailMapper.java
index b29eb549..eff18992 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/sales/mapper/SalesEstimateDetailMapper.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/sales/mapper/SalesEstimateDetailMapper.java
@@ -35,6 +35,15 @@ public interface SalesEstimateDetailMapper
*/
public int insertSalesEstimateDetail(SalesEstimateDetail salesEstimateDetail);
+
+ /**
+ * 批量新增销售估价详情
+ *
+ * @param salesEstimateDetails 销售估价详情集合
+ * @return 结果
+ */
+ public int batchInsertSalesEstimateDetails(List salesEstimateDetails);
+
/**
* 修改销售估价详情
*
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/sales/mapper/SalesEstimateMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/sales/mapper/SalesEstimateMapper.java
index 3bf08e41..a4ed51c0 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/sales/mapper/SalesEstimateMapper.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/sales/mapper/SalesEstimateMapper.java
@@ -35,6 +35,14 @@ public interface SalesEstimateMapper
*/
public int insertSalesEstimate(SalesEstimate salesEstimate);
+ /**
+ * 批量新增销售估价
+ *
+ * @param salesEstimates 销售估价集合
+ * @return 结果
+ */
+ public int batchInsertSalesEstimates(List salesEstimates);
+
/**
* 修改销售估价
*
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateServiceImpl.java
index 16aeb563..16aeeb71 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateServiceImpl.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateServiceImpl.java
@@ -1,8 +1,13 @@
package com.ruoyi.sales.service.impl;
+import java.util.Date;
import java.util.List;
+
+import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils;
+import com.ruoyi.sales.domain.SalesEstimateDetail;
+import com.ruoyi.sales.mapper.SalesEstimateDetailMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.sales.mapper.SalesEstimateMapper;
@@ -22,6 +27,12 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService
@Autowired
private SalesEstimateMapper salesEstimateMapper;
+ @Autowired
+ private SalesEstimateDetailMapper salesEstimateDetailMapper;
+
+ @Autowired
+ private RedisCache redisCache;
+
/**
* 查询销售估价
*
@@ -56,8 +67,25 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService
public int insertSalesEstimate(SalesEstimate salesEstimate)
{
String loginName = ShiroUtils.getLoginName();
+
+ String salesEstimateCode = redisCache.generateBillNo("GJ");
salesEstimate.setCreateBy(loginName);
- salesEstimate.setCreateTime(DateUtils.getNowDate());
+ salesEstimate.setCreateTime(new Date());
+ salesEstimate.setSalesEstimateCode(salesEstimateCode);
+
+
+ List salesEstimateDetailList = salesEstimate.getSalesEstimateDetailList();
+ if (salesEstimateDetailList != null && salesEstimateDetailList.size() > 0) {
+ for (SalesEstimateDetail salesEstimateDetail : salesEstimateDetailList) {
+ salesEstimateDetail.setSalesEstimateCode(salesEstimateCode);
+
+ salesEstimateDetail.setCreateBy(loginName);
+ salesEstimateDetail.setCreateTime(new Date());
+ }
+ salesEstimateDetailMapper.batchInsertSalesEstimateDetails(salesEstimateDetailList);
+ }
+
+
return salesEstimateMapper.insertSalesEstimate(salesEstimate);
}
diff --git a/ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateDetailMapper.xml
index b1293893..8eaf5c6f 100644
--- a/ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateDetailMapper.xml
+++ b/ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateDetailMapper.xml
@@ -139,6 +139,87 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+
+
+ INSERT INTO sales_estimate_detail
+ (
+ sales_estimate_code,
+ material_gear_position,
+ usd_rate,
+ profit_rate,
+ material_no,
+ material_name,
+ material_type,
+ material_photo_url,
+ material_unit,
+ material_brand,
+ material_describe,
+ material_process_method,
+ material_num,
+ no_tax_rmb,
+ tax_rmb,
+ all_no_tax_rmb,
+ all_tax_rmb,
+ tax_dollar,
+ no_tax_dollar,
+ all_tax_dollar,
+ all_no_tax_dollar,
+ no_tax_shipping_costs,
+ no_tax_service_costs,
+ no_tax_develop_costs,
+ no_tax_labor_costs,
+ no_tax_promotional_costs,
+ no_tax_business_costs,
+ no_tax_manages_costs,
+ no_tax_material_costs,
+ no_tax_operating_costs,
+ tax_operating_costs,
+ create_by,
+ create_time
+ )
+ VALUES
+
+ #{item.salesEstimateCode},
+ #{item.materialGearPosition},
+ #{item.usdRate},
+ #{item.profitRate},
+ #{item.materialNo},
+ #{item.materialName},
+ #{item.materialType},
+ #{item.materialPhotoUrl},
+ #{item.materialUnit},
+ #{item.materialBrand},
+ #{item.materialDescribe},
+ #{item.materialProcessMethod},
+ #{item.materialNum},
+ #{item.noTaxRmb},
+ #{item.taxRmb},
+ #{item.allNoTaxRmb},
+ #{item.allTaxRmb},
+ #{item.taxDollar},
+ #{item.noTaxDollar},
+ #{item.allTaxDollar},
+ #{item.allNoTaxDollar},
+ #{item.noTaxShippingCosts},
+ #{item.noTaxServiceCosts},
+ #{item.noTaxDevelopCosts},
+ #{item.noTaxLaborCosts},
+ #{item.noTaxPromotionalCosts},
+ #{item.noTaxBusinessCosts},
+ #{item.noTaxManagesCosts},
+ #{item.noTaxMaterialCosts},
+ #{item.noTaxOperatingCosts},
+ #{item.taxOperatingCosts},
+ #{item.createBy},
+ #{item.createTime}
+
+
+
+
+
+
+
update sales_estimate_detail
diff --git a/ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateMapper.xml b/ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateMapper.xml
index a5b0e8f6..a2d791f3 100644
--- a/ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateMapper.xml
+++ b/ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateMapper.xml
@@ -109,6 +109,58 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+ INSERT INTO sales_estimate
+ (
+ sales_estimate_code,
+ business_members,
+ estimate_status,
+ enterprise_code,
+ enterprise_name,
+ material_sum,
+ enterprise_sum,
+ common_currency,
+ usd_rate,
+ no_tax_rmb,
+ tax_rmb,
+ all_no_tax_rmb,
+ all_tax_rmb,
+ tax_dollar,
+ no_tax_dollar,
+ all_tax_dollar,
+ all_no_tax_dollar,
+ pricing_date,
+ create_by,
+ create_time,
+ remark
+ )
+ VALUES
+
+ #{item.salesEstimateCode},
+ #{item.businessMembers},
+ #{item.estimateStatus},
+ #{item.enterpriseCode},
+ #{item.enterpriseName},
+ #{item.materialSum},
+ #{item.enterpriseSum},
+ #{item.commonCurrency},
+ #{item.usdRate},
+ #{item.noTaxRmb},
+ #{item.taxRmb},
+ #{item.allNoTaxRmb},
+ #{item.allTaxRmb},
+ #{item.taxDollar},
+ #{item.noTaxDollar},
+ #{item.allTaxDollar},
+ #{item.allNoTaxDollar},
+ #{item.pricingDate},
+ #{item.createBy},
+ #{item.createTime},
+ #{item.remark}
+
+
+
+
update sales_estimate
diff --git a/ruoyi-admin/src/main/resources/templates/sales/estimate/add.html b/ruoyi-admin/src/main/resources/templates/sales/estimate/add.html
index 49490bf7..bd174b3f 100644
--- a/ruoyi-admin/src/main/resources/templates/sales/estimate/add.html
+++ b/ruoyi-admin/src/main/resources/templates/sales/estimate/add.html
@@ -8,128 +8,55 @@
+
+
+
+
diff --git a/ruoyi-admin/src/main/resources/templates/sales/estimate/estimateMaterialSelect.html b/ruoyi-admin/src/main/resources/templates/sales/estimate/estimateMaterialSelect.html
new file mode 100644
index 00000000..1074978f
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/templates/sales/estimate/estimateMaterialSelect.html
@@ -0,0 +1,102 @@
+
+
+