From d21444dac4c6f839a9eab4ed86dd2b084a73331c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E8=BF=AA?= <2596750866@qq.com> Date: Fri, 23 Aug 2024 16:07:17 +0800 Subject: [PATCH 1/8] =?UTF-8?q?[feat]=20=E5=93=81=E8=B4=A8=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E9=80=80=E6=8D=A2=E8=B4=A7=E5=8D=95=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=80=80=E6=8D=A2=E8=B4=A7=E5=8D=95=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=EF=BC=8C=E8=B0=83=E6=95=B4=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E5=88=97=E5=AD=97=E6=AE=B5=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E5=8D=95=E5=8F=B7=E5=88=97=EF=BC=8C=E5=8E=BB=E9=99=A4?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=8C=89=E9=92=AE=EF=BC=9B=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=96=B0=E5=A2=9E=E9=80=80=E8=BF=98=E8=B4=A7=E5=8D=95?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E8=B7=B3=E8=BD=AC=E6=96=B9=E6=B3=95=EF=BC=9B?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E9=80=80=E6=8D=A2=E8=B4=A7=E7=89=A9?= =?UTF-8?q?=E6=96=99=E9=80=89=E6=8B=A9=E9=A1=B5=E9=9D=A2=EF=BC=8C=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=88=97=E5=90=8D=E5=AD=97=E6=AE=B5=EF=BC=8C=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AD=97=E5=85=B8=E7=B1=BB=E5=9E=8B=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=87=E7=AD=BE=E6=9F=A5=E8=AF=A2=E8=AF=AD?= =?UTF-8?q?=E5=8F=A5=EF=BC=9B=20=E4=BF=AE=E6=94=B9=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=80=80=E6=8D=A2=E8=B4=A7=E5=8D=95=E9=A1=B5=E9=9D=A2=EF=BC=8C?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=A1=A8=E6=A0=BC=E5=88=97=E7=BB=93=E6=9E=84?= =?UTF-8?q?=EF=BC=8C=E8=A1=A5=E5=85=A8=E5=AD=97=E6=AE=B5=EF=BC=9B=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=93=81=E8=B4=A8=E6=8A=A5=E5=91=8A=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E6=96=B9=E6=B3=95=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E5=87=BD=E6=95=B0=E5=AE=9A=E4=B9=89=EF=BC=9B=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=A4=84=E7=90=86=E5=93=81=E8=B4=A8=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E5=AD=90=E9=A1=B5=E9=9D=A2=E6=95=B0=E6=8D=AE=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E5=87=BD=E6=95=B0=EF=BC=9B=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=8C=89=E6=96=99=E5=8F=B7=E6=9F=A5=E6=89=BE=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E6=95=B0=E6=8D=AE=E6=96=B9=E6=B3=95=EF=BC=9B?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E9=80=BB=E8=BE=91=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E7=9A=84=E4=B8=80=E8=A1=8C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=8C=E5=88=A0=E9=99=A4=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=90=8C=E6=97=B6=E5=88=A0=E9=99=A4=E8=AF=A5?= =?UTF-8?q?=E6=96=99=E5=8F=B7=E5=AF=B9=E5=BA=94session=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=EF=BC=9B=20=E4=BF=AE=E6=94=B9=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=80=80=E6=8D=A2=E8=B4=A7=E9=A1=B5=E9=9D=A2=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E6=96=B9=E6=B3=95=EF=BC=8C=E5=BE=AA=E7=8E=AF=E5=AD=90?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=95=B0=E6=8D=AE=E9=99=84=E5=8A=A0=E5=88=B0?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E4=BF=A1=E6=81=AF=E4=B8=8A=EF=BC=9B=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=A5=E5=BA=93=E5=90=8E=E9=80=80=E6=8D=A2?= =?UTF-8?q?=E8=B4=A7=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2=EF=BC=8C=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E8=A1=A8=E6=A0=BC=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84?= =?UTF-8?q?=EF=BC=9B=20=E4=BF=AE=E6=94=B9=E6=B7=BB=E5=8A=A0=E5=93=81?= =?UTF-8?q?=E8=B4=A8=E6=8A=A5=E5=91=8A=E9=A1=B5=E9=9D=A2=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=8C=E8=AF=BB=E5=8F=96session=E4=B8=AD?= =?UTF-8?q?=E7=89=B9=E5=AE=9A=E6=96=99=E5=8F=B7key=E5=80=BC=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E9=A1=B5=E9=9D=A2=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../quality/refundsExchanges/add.html | 125 ++++++++++++++++-- .../refundsExchanges/materialSelect.html | 24 +++- .../refundsExchanges/qualityOrderReport.html | 60 ++++++--- .../refundsExchanges/refundsExchanges.html | 51 +++---- .../returnAfterStorageDetail.html | 44 +++++- 5 files changed, 239 insertions(+), 65 deletions(-) diff --git a/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/add.html b/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/add.html index 5cceb476..329cebf5 100644 --- a/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/add.html +++ b/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/add.html @@ -46,8 +46,9 @@ diff --git a/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/materialSelect.html b/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/materialSelect.html index f6fa0d67..b752dc7a 100644 --- a/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/materialSelect.html +++ b/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/materialSelect.html @@ -16,6 +16,11 @@ var prefix = ctx + "quality/refundsExchanges"; // 从后端拿到传入的makeNo var makeNo = /*[[${makeNo}]]*/ ''; + var processMethodDatas = [[${@dict.getType('processMethod')}]]; + var sysUnitClassDatas = [[${@dict.getType('sysUnitClassDatas')}]]; + var warehouseDeptDatas = [[${@dict.getType('warehouseDept')}]]; + var materialTypeDatas = [[${@category.getChildByCode('materialType')}]]; + $(function() { var options = { id: 'bootstrap-materialSelect-table', @@ -38,6 +43,10 @@ { title: '图片', field: 'materialPhotourl', + formatter: function(value, row, index) { + return $.table.imageView(value); + } + }, { title: '物料名称', @@ -46,18 +55,27 @@ { title: '类型', field: 'materialType', + formatter: function(value, row, index) { + return $.table.selectCategoryLabel(materialTypeDatas, value); + } }, { title: '描述', - field: 'materialDescribe', + field: 'describe', }, { title: '品牌', - field: 'materialBrand', + field: 'brand', }, { title: '单位', - field: 'materialUnit', + field: 'unit', + }, + { title: '加工方式', + field: 'processMethod', + formatter: function(value, row, index) { + return $.table.selectDictLabel(processMethodDatas, value); + } }, ] }; diff --git a/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/qualityOrderReport.html b/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/qualityOrderReport.html index b789d32e..1bb31d97 100644 --- a/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/qualityOrderReport.html +++ b/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/qualityOrderReport.html @@ -7,7 +7,7 @@
- +
@@ -41,7 +41,7 @@
- +
@@ -52,7 +52,7 @@ \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/afterQualityReportDetail.html b/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/afterQualityReportDetail.html index 19d46a0f..e517000a 100644 --- a/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/afterQualityReportDetail.html +++ b/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/afterQualityReportDetail.html @@ -89,9 +89,7 @@ showSearch:false, singleSelect:true, queryParams:queryParams, - columns: [{ - checkbox: false - }, + columns: [ { title: '品质报告单id', field: 'qualityOrderReportId', @@ -100,6 +98,7 @@ { title: '不良分类', field: 'processBadClassification', + align: 'center', formatter: function(value, row, index) { return $.table.selectDictLabel(processBadClassificationDatas, value); } @@ -108,6 +107,7 @@ { title: '不良等级', field: 'processBadGrade', + align: 'center', formatter: function(value, row, index) { return $.table.selectDictLabel(processBadGradeDatas, value); } @@ -115,10 +115,17 @@ { title: '数量', field: 'processBadNum', + align: 'center', }, { title: '报告', field: 'unqualifiedReportUrl', + align: 'center', + formatter: function(value, row, index) { + var actions = []; + actions.push('报告 '); + return actions.join(''); + } }, ] }; From 1d5f8803e6ba76928a71ea0c85ca26f7dd846b50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E8=BF=AA?= <2596750866@qq.com> Date: Fri, 23 Aug 2024 16:20:38 +0800 Subject: [PATCH 3/8] =?UTF-8?q?[feat]=20=E5=93=81=E8=B4=A8=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E9=80=80=E6=8D=A2=E8=B4=A7=E5=8D=95=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=96=B0=E5=A2=9E=E9=80=80=E6=8D=A2=E8=B4=A7controlle?= =?UTF-8?q?r=E6=8E=A5=E5=8F=A3=EF=BC=9B=20=E4=BF=AE=E6=94=B9=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=93=81=E8=B4=A8=E7=AE=A1=E7=90=86=E9=80=80=E6=8D=A2?= =?UTF-8?q?=E8=B4=A7=E5=8D=95service=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E5=A4=84=E7=90=86=E5=89=8D=E7=AB=AF=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8F=92=E5=85=A5=E6=95=B0=E6=8D=AE=E5=BA=93=EF=BC=9B=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=9F=E6=88=90=E9=80=80=E6=8D=A2=E8=B4=A7?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=E5=AF=B9=E8=B1=A1service=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=92=8C=E7=94=9F=E6=88=90=E9=80=80=E6=8D=A2=E8=B4=A7?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=E8=AF=A6=E6=83=85=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?service=E6=8E=A5=E5=8F=A3=EF=BC=9B=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E5=85=A5=E5=BA=93=E5=90=8E=E9=80=80=E8=B4=A7?= =?UTF-8?q?-=E9=80=89=E6=8B=A9=E4=BE=9B=E5=BA=94=E5=95=86service=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E6=9B=B4=E6=96=B0=E4=BE=9B=E5=BA=94=E5=95=86?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=90=8C=E6=97=B6=E6=9B=B4=E6=96=B0=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E5=8D=95=E4=BE=9B=E5=BA=94=E5=95=86=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=EF=BC=9B=20=E4=BF=AE=E6=94=B9=E4=BF=9D=E5=AD=98=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E5=89=8D=E9=80=80=E8=B4=A7-=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E6=94=B6=E8=B4=A7service=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E9=80=80=E6=8D=A2=E8=B4=A7=E8=AF=A6=E6=83=85=E6=94=B6?= =?UTF-8?q?=E8=B4=A7=E7=8A=B6=E6=80=81=E8=AE=BE=E7=BD=AE=E9=80=80=E6=8D=A2?= =?UTF-8?q?=E8=B4=A7=E5=8D=95=E6=94=B6=E8=B4=A7=E7=8A=B6=E6=80=81=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QualityRefundsExchangesController.java | 6 +- .../QualityRefundsExchangesServiceImpl.java | 193 +++++++++++++++--- 2 files changed, 165 insertions(+), 34 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualityRefundsExchangesController.java b/ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualityRefundsExchangesController.java index 770b6054..b47cccbf 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualityRefundsExchangesController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/quality/controller/QualityRefundsExchangesController.java @@ -90,10 +90,10 @@ public class QualityRefundsExchangesController extends BaseController /** * 新增品质管理退换货单 */ - @GetMapping("/add/{refundsExchangesCode}") - public String add(@PathVariable("refundsExchangesCode") String refundsExchangesCode,ModelMap mmap) + @GetMapping("/add") + public String add(ModelMap mmap) { - mmap.put("refundsExchangesCode", refundsExchangesCode); +// mmap.put("refundsExchangesCode", refundsExchangesCode); return prefix + "/add"; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityRefundsExchangesServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityRefundsExchangesServiceImpl.java index 7a2baa4c..ccdd9f66 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityRefundsExchangesServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/quality/service/impl/QualityRefundsExchangesServiceImpl.java @@ -2,15 +2,24 @@ package com.ruoyi.quality.service.impl; import java.text.DecimalFormat; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.List; +import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.quality.domain.QualityRefundsExchangesDetail; +import com.ruoyi.quality.domain.QualityRefundsExchangesUnqualified; import com.ruoyi.quality.mapper.QualityRefundsExchangesDetailMapper; +import com.ruoyi.quality.mapper.QualityRefundsExchangesUnqualifiedMapper; +import com.ruoyi.storehouse.domain.WarehousingInInfo; +import com.ruoyi.warehouse.domain.WarehouseStorageOrder; +import com.ruoyi.warehouse.domain.WarehouseStorageOrderDetail; +import com.ruoyi.warehouse.mapper.WarehouseStorageOrderDetailMapper; +import com.ruoyi.warehouse.mapper.WarehouseStorageOrderMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -36,6 +45,21 @@ public class QualityRefundsExchangesServiceImpl implements IQualityRefundsExchan @Autowired private QualityRefundsExchangesDetailMapper refundsExchangesDetailMapper; + @Autowired + private QualityRefundsExchangesUnqualifiedMapper unqualifiedMapper; + + @Autowired + private WarehouseStorageOrderMapper warehouseStorageOrderMapper; + + @Autowired + private WarehouseStorageOrderDetailMapper warehouseStorageOrderDetailMapper; + + @Autowired + private WarehouseStorageOrderDetailMapper storageOrderDetailMapper; + + @Autowired + private RedisCache redisCache; + /** * 查询品质管理退换货单 * @@ -70,36 +94,111 @@ public class QualityRefundsExchangesServiceImpl implements IQualityRefundsExchan public int insertQualityRefundsExchanges(QualityRefundsExchanges qualityRefundsExchanges) { - String refundsExchangesCode = qualityRefundsExchanges.getRefundsExchangesCode(); + String refundsExchangesCode = redisCache.generateBillNo("THH"); + qualityRefundsExchanges.setRefundsExchangesCode(refundsExchangesCode); - if (StringUtils.isEmpty(refundsExchangesCode)){ - log.warn("退换货单号为空:{}",refundsExchangesCode); - } String loginName = ShiroUtils.getLoginName(); + int exchangeSum = 0; List refundsExchangesDetails = qualityRefundsExchanges.getRefundsExchangesDetails(); if (StringUtils.isEmpty(refundsExchangesDetails)){ - log.warn("物料数据为空:{}",qualityRefundsExchanges.getRefundsExchangesDetails()); + log.warn("物料数据为空:{}",qualityRefundsExchanges.getRefundsExchangesCode()); } for (QualityRefundsExchangesDetail tempDetail : refundsExchangesDetails) { - QualityRefundsExchangesDetail refundsExchangesDetail = new QualityRefundsExchangesDetail(); - refundsExchangesDetail.setRefundsExchangesCode(refundsExchangesCode); - refundsExchangesDetail.setDeliveryInspectionTime(qualityRefundsExchanges.getDeliveryInspectionTime()); - refundsExchangesDetail.setQualityRemark(qualityRefundsExchanges.getQualityRemark()); - refundsExchangesDetail.setMaterialNo(tempDetail.getMaterialNo()); - refundsExchangesDetail.setMaterialName(tempDetail.getMaterialName()); - refundsExchangesDetail.setMaterialBrand(tempDetail.getMaterialBrand()); - refundsExchangesDetail.setMaterialDescribe(tempDetail.getMaterialDescribe()); - refundsExchangesDetail.setMaterialPhotourl(tempDetail.getMaterialPhotourl()); - refundsExchangesDetail.setMaterialType(tempDetail.getMaterialType()); - refundsExchangesDetail.setMaterialProcessMethod(tempDetail.getMaterialProcessMethod()); - refundsExchangesDetail.setMaterialUnit(tempDetail.getMaterialUnit()); - refundsExchangesDetail.setCreateBy(loginName); - refundsExchangesDetail.setCreateTime(new Date()); - refundsExchangesDetailMapper.insertQualityRefundsExchangesDetail(refundsExchangesDetail); + tempDetail.setRefundsExchangesCode(refundsExchangesCode); + tempDetail.setDeliveryInspectionTime(qualityRefundsExchanges.getDeliveryInspectionTime()); + tempDetail.setQualityRemark(qualityRefundsExchanges.getQualityRemark()); + tempDetail.setQualityUnqualifiedNum(tempDetail.getRefundsExchangesNum()); + + exchangeSum += tempDetail.getRefundsExchangesNum(); + tempDetail.setCreateBy(loginName); + tempDetail.setCreateTime(DateUtils.getNowDate()); + refundsExchangesDetailMapper.insertQualityRefundsExchangesDetail(tempDetail); + List unqualifiedList = tempDetail.getRefundsExchangesUnqualifieds(); + if(StringUtils.isEmpty(unqualifiedList)){ + log.warn("不合格分类数据为空:{}",tempDetail.getRefundsExchangesCode()); + }else{ + for (QualityRefundsExchangesUnqualified unqualified: unqualifiedList) { + unqualified.setRefundsExchangesCode(refundsExchangesCode); + unqualified.setMaterialNo(tempDetail.getMaterialNo()); + unqualified.setMaterialName(tempDetail.getMaterialName()); + unqualified.setCreateBy(loginName); + unqualified.setCreateTime(DateUtils.getNowDate()); + unqualifiedMapper.insertQualityRefundsExchangesUnqualified(unqualified); + } + } } + qualityRefundsExchanges.setMaterialTotal(refundsExchangesDetails.size()); + qualityRefundsExchanges.setNumTotal(exchangeSum); + qualityRefundsExchanges.setCreateBy(loginName); + qualityRefundsExchanges.setCreateTime(DateUtils.getNowDate()); + qualityRefundsExchanges.setQualityReturnNode("1"); + qualityRefundsExchanges.setRefundsExchangesStatus("0"); + + +// 生成入库单 + WarehouseStorageOrder warehouseStorageOrder = generateWarehouseStorageOrder(qualityRefundsExchanges); + warehouseStorageOrder.setWarehouseStorageCode(redisCache.generateBillNo("RK")); + warehouseStorageOrderMapper.insertWarehouseStorageOrder(warehouseStorageOrder); + List warehouseStorageOrderDetails = createWarehouseStorageDetail(qualityRefundsExchanges,warehouseStorageOrder.getWarehouseStorageCode()); + warehouseStorageOrderMapper.batchWarehouseStorageOrderDetail(warehouseStorageOrderDetails); + + qualityRefundsExchanges.setQualityWarehouseStatus("0"); + qualityRefundsExchanges.setInStorageCode(warehouseStorageOrder.getWarehouseStorageCode()); + qualityRefundsExchangesMapper.insertQualityRefundsExchanges(qualityRefundsExchanges); return 1; } - +// 生成退换货入库单对象 + public WarehouseStorageOrder generateWarehouseStorageOrder(QualityRefundsExchanges qualityRefundsExchanges){ + WarehouseStorageOrder warehouseStorageOrder = new WarehouseStorageOrder(); + warehouseStorageOrder.setRelatedOrderCode(qualityRefundsExchanges.getRefundsExchangesCode()); + warehouseStorageOrder.setWarehouseStorageStatus("2"); + warehouseStorageOrder.setWarehouseStorageType("3"); + warehouseStorageOrder.setWarehouseOrderType("2"); + warehouseStorageOrder.setWarehouseDeptType("0"); + warehouseStorageOrder.setWarehouseQualityStatus("2"); + warehouseStorageOrder.setActualArrivedNum(qualityRefundsExchanges.getNumTotal()); + warehouseStorageOrder.setNotifyArrivedNum(qualityRefundsExchanges.getNumTotal()); + warehouseStorageOrder.setStorageNum(qualityRefundsExchanges.getNumTotal()); + warehouseStorageOrder.setQualityQualifiedNum(0); + warehouseStorageOrder.setQualityUnqualifiedNum(qualityRefundsExchanges.getNumTotal()); + warehouseStorageOrder.setDeliveryInspectionTime(qualityRefundsExchanges.getDeliveryInspectionTime()); + warehouseStorageOrder.setQualityTime(qualityRefundsExchanges.getDeliveryInspectionTime()); + warehouseStorageOrder.setCreateBy(ShiroUtils.getLoginName()); + warehouseStorageOrder.setCreateTime(DateUtils.getNowDate()); + return warehouseStorageOrder; + } +// 生成退换货入库单详情对象 + public List createWarehouseStorageDetail(QualityRefundsExchanges qualityRefundsExchanges,String warehouseStorageCode){ + List detailList = new ArrayList<>(); + List exchangesDetails = qualityRefundsExchanges.getRefundsExchangesDetails(); + if(StringUtils.isEmpty(exchangesDetails)){ + log.warn("退换货详情物料数据为空:{}",qualityRefundsExchanges.getRefundsExchangesCode()); + }else { + for (QualityRefundsExchangesDetail exchangeDetail:exchangesDetails) { + WarehouseStorageOrderDetail warehouseStorageOrderDetail = new WarehouseStorageOrderDetail(); + warehouseStorageOrderDetail.setWarehouseStorageCode(warehouseStorageCode); + warehouseStorageOrderDetail.setRelatedOrderCode(qualityRefundsExchanges.getRefundsExchangesCode()); + warehouseStorageOrderDetail.setWarehouseStorageStatus("2"); + warehouseStorageOrderDetail.setWarehouseStorageType("3"); + warehouseStorageOrderDetail.setWarehouseOrderType("2"); + warehouseStorageOrderDetail.setWarehouseDeptType("0"); + warehouseStorageOrderDetail.setMaterialNo(exchangeDetail.getMaterialNo()); + warehouseStorageOrderDetail.setMaterialName(exchangeDetail.getMaterialName()); + warehouseStorageOrderDetail.setMaterialType(exchangeDetail.getMaterialType()); + warehouseStorageOrderDetail.setMaterialPhotourl(exchangeDetail.getMaterialPhotourl()); + warehouseStorageOrderDetail.setMaterialBrand(exchangeDetail.getMaterialBrand()); + warehouseStorageOrderDetail.setMaterialUnit(exchangeDetail.getMaterialUnit()); + warehouseStorageOrderDetail.setMaterialDescribe(exchangeDetail.getMaterialDescribe()); + warehouseStorageOrderDetail.setMaterialProcessMethod(exchangeDetail.getMaterialProcessMethod()); + warehouseStorageOrderDetail.setMaterialDeptType("0"); + warehouseStorageOrderDetail.setRefundsExchangesNum(exchangeDetail.getRefundsExchangesNum()); + warehouseStorageOrderDetail.setCreateBy(ShiroUtils.getLoginName()); + warehouseStorageOrderDetail.setCreateTime(DateUtils.getNowDate()); + detailList.add(warehouseStorageOrderDetail); + } + } + return detailList; + } /** * 修改品质管理退换货单 * @@ -192,24 +291,40 @@ public class QualityRefundsExchangesServiceImpl implements IQualityRefundsExchan if (StringUtils.isEmpty(refundsExchangesDetails)){ log.warn("退款换货单[{}]无关联的物料详情信息", qualityRefundsExchanges.getRefundsExchangesCode()); } - + List warehouseStorageOrderDetailList = warehouseStorageOrderDetailMapper.selectStorageOrderDetailListByCode(qualityRefundsExchanges.getInStorageCode()); + if (StringUtils.isEmpty(warehouseStorageOrderDetailList)){ + log.warn("退款换货单[{}]无关联的入库单详情信息", qualityRefundsExchanges.getRefundsExchangesCode()); + } int updateRows = 0; for (QualityRefundsExchangesDetail refundsExchangesDetail : refundsExchangesDetails) { - refundsExchangesDetail.setRefundsExchangesCode(qualityRefundsExchanges.getRefundsExchangesCode()); - refundsExchangesDetail.setDeliveryInspectionTime(qualityRefundsExchanges.getDeliveryInspectionTime()); - refundsExchangesDetail.setQualityRemark(qualityRefundsExchanges.getQualityRemark()); + refundsExchangesDetail.setUpdateBy(loginName); - refundsExchangesDetail.setUpdateTime(new Date()); + refundsExchangesDetail.setUpdateTime(DateUtils.getNowDate()); + for (WarehouseStorageOrderDetail storageOrderDetail:warehouseStorageOrderDetailList) { + if(storageOrderDetail.getMaterialNo().equals(refundsExchangesDetail.getMaterialNo())){ + storageOrderDetail.setSupplierCode(refundsExchangesDetail.getSupplierCode()); + storageOrderDetail.setSupplierName(refundsExchangesDetail.getSupplierName()); + storageOrderDetail.setSupplierAddress(refundsExchangesDetail.getSupplierAddress()); + storageOrderDetail.setCustomerContact(refundsExchangesDetail.getCustomerContact()); + storageOrderDetail.setContactNumber(refundsExchangesDetail.getContactNumber()); + storageOrderDetail.setUpdateBy(loginName); + storageOrderDetail.setUpdateTime(DateUtils.getNowDate()); + warehouseStorageOrderDetailMapper.updateWarehouseStorageOrderDetail(storageOrderDetail); + } + } //更新数据库记录 updateRows += refundsExchangesDetailMapper.updateQualityRefundsExchangesDetail(refundsExchangesDetail); - } + qualityRefundsExchanges.setQualityPurchaseStatus("1"); + qualityRefundsExchanges.setUpdateBy(loginName); + qualityRefundsExchanges.setUpdateTime(DateUtils.getNowDate()); + qualityRefundsExchangesMapper.updateQualityRefundsExchanges(qualityRefundsExchanges); return updateRows; } /** - * 保存入库前退货-确认供应商 + * 保存入库前退货-确认收货 */ @Override public int updateBeforeConfirmDelivery(QualityRefundsExchanges qualityRefundsExchanges) { @@ -224,12 +339,28 @@ public class QualityRefundsExchangesServiceImpl implements IQualityRefundsExchan for (QualityRefundsExchangesDetail refundsExchangesDetail : refundsExchangesDetails) { refundsExchangesDetail.setRefundsExchangesCode(qualityRefundsExchanges.getRefundsExchangesCode()); refundsExchangesDetail.setUpdateBy(loginName); - refundsExchangesDetail.setUpdateTime(new Date()); - + refundsExchangesDetail.setUpdateTime(DateUtils.getNowDate()); + int purchaseStatus = Integer.parseInt(refundsExchangesDetail.getQualityDeliveryStatus()); + refundsExchangesDetail.setQualityPurchaseStatus(String.valueOf((purchaseStatus+2))); //更新数据库记录 updateRows += refundsExchangesDetailMapper.updateQualityRefundsExchangesDetail(refundsExchangesDetail); - } + boolean allStatusZero = refundsExchangesDetails.stream() + .allMatch(detail -> "0".equals(detail.getQualityDeliveryStatus())); + boolean hasStatusOne = refundsExchangesDetails.stream() + .anyMatch(detail -> "1".equals(detail.getQualityDeliveryStatus())); + boolean allStatusTwo = refundsExchangesDetails.stream() + .allMatch(detail -> "2".equals(detail.getQualityDeliveryStatus())); + if(allStatusZero){ + qualityRefundsExchanges.setQualityPurchaseStatus("2"); + }else if(hasStatusOne){ + qualityRefundsExchanges.setQualityPurchaseStatus("3"); + }else if(allStatusTwo){ + qualityRefundsExchanges.setQualityPurchaseStatus("4"); + } + qualityRefundsExchanges.setUpdateBy(loginName); + qualityRefundsExchanges.setUpdateTime(DateUtils.getNowDate()); + qualityRefundsExchangesMapper.updateQualityRefundsExchanges(qualityRefundsExchanges); return updateRows; } From 7cf0b7b23e17e4b1b839675c8fad960742698bff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E8=BF=AA?= <2596750866@qq.com> Date: Fri, 23 Aug 2024 16:21:51 +0800 Subject: [PATCH 4/8] =?UTF-8?q?[feat]=20=E4=BB=93=E5=BA=93=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E5=85=A5=E5=BA=93=E5=8D=95=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=85=A5=E5=BA=93-=E9=80=80=E6=8D=A2=E8=B4=A7=E5=8D=95=20?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=89=A9=E6=96=99=E8=AF=A6=E6=83=85=E5=88=97?= =?UTF-8?q?=E8=A1=A8controller=E6=8E=A5=E5=8F=A3=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../warehouse/controller/WarehouseStorageOrderController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java index 2614d158..f01919f8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseStorageOrderController.java @@ -659,7 +659,7 @@ public class WarehouseStorageOrderController extends BaseController @RequestMapping("/storageRefundsExchangesDetailList") public Map> storageRefundsExchangesDetail(String warehouseStorageCode){ List allDetails = storageOrderDetailService.selectStorageOrderDetailListByCode(warehouseStorageCode); - Map> groupedDetails = allDetails.stream().collect(Collectors.groupingBy(WarehouseStorageOrderDetail::getCustomerId)); + Map> groupedDetails = allDetails.stream().collect(Collectors.groupingBy(WarehouseStorageOrderDetail::getSupplierCode)); return groupedDetails; } } From 29963949d28b6859c3618a363ab0d62e2fd50a1c Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Fri, 23 Aug 2024 17:56:20 +0800 Subject: [PATCH 5/8] =?UTF-8?q?[feat]=20=E9=80=80=E6=8D=A2=E8=B4=A7=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=85=A5=E5=BA=93=E5=89=8D=E9=80=80=E8=B4=A7?= =?UTF-8?q?=E5=93=81=E8=B4=A8=E5=8D=95=E6=8A=A5=E5=91=8A=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../beforeQualityReportDetail.html | 307 ++++++++++++++++++ 1 file changed, 307 insertions(+) create mode 100644 ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/beforeQualityReportDetail.html diff --git a/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/beforeQualityReportDetail.html b/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/beforeQualityReportDetail.html new file mode 100644 index 00000000..4a5339d1 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/beforeQualityReportDetail.html @@ -0,0 +1,307 @@ + + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+ +
+

合格数

+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+ +
+
+
+ 不合格数 + + 添加 + +
+
+
+
+
+
+
+
+ +
+ + +
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+
+ + + + + + \ No newline at end of file From a2c39699fa173ba01ebd4fd60262d1575b2c5192 Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Fri, 23 Aug 2024 19:34:38 +0800 Subject: [PATCH 6/8] =?UTF-8?q?[feat]=20=E9=87=87=E8=B4=AD=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=20=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=BC=95=E5=85=A5fileinput=E6=8F=92=E4=BB=B6=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E5=AF=BC=E5=85=A5=E5=90=88=E5=90=8C?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E5=92=8C=E6=A8=A1=E6=80=81=E6=A1=86=E5=92=8C?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84js=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/purchaseOrder/purchaseOrder.html | 118 +++++++++++++++++- 1 file changed, 113 insertions(+), 5 deletions(-) diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/purchaseOrder.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/purchaseOrder.html index 927e1e25..64d7ec64 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/purchaseOrder.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseOrder/purchaseOrder.html @@ -4,6 +4,7 @@ + @@ -74,10 +75,13 @@
+
+ + + + + + + \ No newline at end of file From 6029243df39f67f2883a6bd5f94ebe9a1c430119 Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Fri, 23 Aug 2024 19:37:47 +0800 Subject: [PATCH 7/8] =?UTF-8?q?[fix]=20=E9=94=80=E5=94=AE=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E4=BF=AE=E6=94=B9=E5=85=B6=E4=BB=96=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E7=9A=84=E5=90=8E=E7=AB=AF=E6=8E=A5=E5=8F=A3=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=96=B9=E6=B3=95=EF=BC=8C=E4=BF=AE=E5=A4=8D=E6=9F=A5?= =?UTF-8?q?=E4=B8=8D=E5=88=B0=E5=85=B6=E4=BB=96=E5=9C=B0=E5=9D=80=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/mapper/system/SysShippingAddressMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/resources/mapper/system/SysShippingAddressMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/SysShippingAddressMapper.xml index c38a226b..75790a1e 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/SysShippingAddressMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/SysShippingAddressMapper.xml @@ -27,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + +
- +
- +
@@ -138,6 +141,70 @@ $.operate.saveJson(prefix + "/salesDeliverGoods", jsonData); } + + + loadCustomerDelivery(); + //获取已经选择客户Id相关的生产单号 + function loadCustomerDelivery() { + const url = ctx + 'system/customer/shippingList'; + const data = { + enterpriseCode: sysSalesOrder.enterpriseCode, + }; + + // 使用 $.ajax 发送请求 + $.ajax({ + type: 'POST', + url: url, + dataType: 'json', + data: data, + success: function(response) { + console.log("response:", response); + + if (response.code === 0 && Array.isArray(response.rows) && response.rows.length > 0) { + const selectElement = $('#customerDelivery'); + selectElement.empty(); + + // 存储每个客户名称对应的信息 + const customerDataMap = {}; + + // 遍历返回的数据,添加为下拉框的选项并存储数据 + $.each(response.rows, function(index, item) { + const customerName = item.customerName; + customerDataMap[customerName] = item; // 存储数据 + + // 添加选项到下拉框 + selectElement.append($('