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 @@
- -
- -
-
-
- -
- -
-
-
- +
-
- +
+
- -
-
-
- -
- -
-
-
- -
- +
+ + +
-
- +
+
- +
-
- +
+
- +
+
- +
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- +
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
-
- - +
+ + %
+
- +
@@ -175,22 +102,76 @@
-
+
+ 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 @@ + + + + + + +
+
+
+ +
+ +
+ +
+
+
+
+
+
+
+
+ + + + \ No newline at end of file