From 6e7d8f879b4373c8f1fc77f17c090308e0fe49e5 Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Tue, 7 May 2024 17:18:12 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=E5=94=AE=E5=90=8E=E7=AE=A1=E7=90=86:=20?= =?UTF-8?q?=E5=94=AE=E5=90=8E=E5=AE=A2=E8=AF=89=E9=80=9A=E7=9F=A5=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=94=AE=E5=90=8E=E9=80=9A=E7=9F=A5=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E9=A1=B5=E9=9D=A2=20=E4=BF=AE=E5=A4=8D=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E7=BC=96=E8=BE=91=E5=AE=A2=E8=AF=89=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C=E5=AE=A2=E6=88=B7=E7=BC=96?= =?UTF-8?q?=E5=8F=B7=E4=B8=8D=E8=83=BD=E6=AD=A3=E5=B8=B8=E5=9B=9E=E6=98=BE?= =?UTF-8?q?=20=E4=BF=AE=E5=A4=8D=E7=82=B9=E5=87=BB=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=AE=A2=E8=AF=89=E9=80=9A=E7=9F=A5=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=EF=BC=8C=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95=E5=8F=B7=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E6=AD=A3=E5=B8=B8=E5=9B=9E=E6=98=BE=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=AE=A2=E8=AF=89=E9=80=9A=E7=9F=A5=E5=8D=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=9F=A5=E8=AF=A2=E6=95=B0=E6=8D=AE=E4=B8=BAaftersale?= =?UTF-8?q?s=5Fcomplaint=5Fnotice=E8=A1=A8=E4=B8=AD=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=20=E4=BF=AE=E6=94=B9=E7=BC=96=E8=BE=91=E5=AE=A2?= =?UTF-8?q?=E8=AF=89=E9=80=9A=E7=9F=A5=E5=8D=95=E7=9B=B8=E5=85=B3=E7=89=A9?= =?UTF-8?q?=E6=96=99=E6=95=B0=E6=8D=AE=E4=B8=BAaftersales=5Fcomplaint=5Fno?= =?UTF-8?q?tice=5Fdetail=E8=A1=A8=E4=B8=AD=E7=9A=84=E6=95=B0=E6=8D=AE=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AF=AD=E5=8F=A5=E6=A0=B9=E6=8D=AEaftersale?= =?UTF-8?q?s=5Fcomplaint=5Fcode=E6=9F=A5=E8=AF=A2aftersales=5Fcomplaint=5F?= =?UTF-8?q?notice=5Fdetail=E8=A1=A8=E4=B8=AD=E7=9A=84=E6=95=B0=E6=8D=AE=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AF=AD=E5=8F=A5=E6=A0=B9=E6=8D=AEaftersale?= =?UTF-8?q?s=5Fcomplaint=5Fcode=E5=88=A0=E9=99=A4aftersales=5Fcomplaint=5F?= =?UTF-8?q?notice=5Fdetail=E8=A1=A8=E4=B8=AD=E7=9A=84=E6=95=B0=E6=8D=AE=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8E=9F=E6=9D=A5=E7=9A=84=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AftersalesComplaintNoticeController.java | 21 +- .../AftersalesComplaintNoticeDetail.java | 14 + ...AftersalesComplaintNoticeDetailMapper.java | 15 + ...ftersalesComplaintNoticeDetailService.java | 7 + .../IAftersalesComplaintNoticeService.java | 1 + ...salesComplaintNoticeDetailServiceImpl.java | 128 +++++- .../AftersalesComplaintNoticeServiceImpl.java | 1 + .../AftersalesComplaintNoticeDetailMapper.xml | 24 +- .../AftersalesComplaintNoticeMapper.xml | 2 +- .../aftersales/complaintNotice/add.html | 24 +- .../complaintNotice/complaintNotice.html | 19 +- .../aftersales/complaintNotice/edit.html | 381 +++++++++++++++--- 12 files changed, 544 insertions(+), 93 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AftersalesComplaintNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AftersalesComplaintNoticeController.java index b612781e..83ed581e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AftersalesComplaintNoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/controller/AftersalesComplaintNoticeController.java @@ -1,10 +1,12 @@ package com.ruoyi.aftersales.controller; +import java.util.Collections; import java.util.List; import com.ruoyi.aftersales.domain.AftersalesComplaintNoticeDetail; import com.ruoyi.aftersales.domain.vo.AftersalesMaterialVO; import com.ruoyi.aftersales.service.IAftersalesComplaintNoticeDetailService; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.manufacture.domain.MaterialRequisitionDetail; import com.ruoyi.system.domain.SysCustomer; import com.ruoyi.system.domain.SysMakeOrder; @@ -54,10 +56,10 @@ public class AftersalesComplaintNoticeController extends BaseController @RequiresPermissions("aftersales:complaintNotice:list") @PostMapping("/list") @ResponseBody - public TableDataInfo list(AftersalesComplaintNoticeDetail complaintNoticeDetail) + public TableDataInfo list(AftersalesComplaintNotice complaintNotice) { startPage(); - List list = complaintNoticeDetailService.selectAftersalesComplaintNoticeDetailList(complaintNoticeDetail); + List list = aftersalesComplaintNoticeService.selectAftersalesComplaintNoticeList(complaintNotice); return getDataTable(list); } @@ -114,9 +116,9 @@ public class AftersalesComplaintNoticeController extends BaseController @Log(title = "售后客诉通知单", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody - public AjaxResult editSave(AftersalesComplaintNotice aftersalesComplaintNotice) + public AjaxResult editSave(@RequestBody AftersalesComplaintNoticeDetail aftersalesComplaintNoticeDetail) { - return toAjax(aftersalesComplaintNoticeService.updateAftersalesComplaintNotice(aftersalesComplaintNotice)); + return toAjax(complaintNoticeDetailService.updateAftersalesComplaintNoticeDetail(aftersalesComplaintNoticeDetail)); } /** @@ -163,4 +165,15 @@ public class AftersalesComplaintNoticeController extends BaseController return getDataTable(list); } + /** + * 编辑操作的时候查询数据库中已有的物料信息 + * */ + @ResponseBody + @PostMapping("/getMaterialListByNoticeCode") + public TableDataInfo getMaterialListByNoticeCode(AftersalesComplaintNoticeDetail complaintNoticeDetail){ + startPage(); + List list = complaintNoticeDetailService.selectMaterialListByNoticeCode(complaintNoticeDetail.getComplaintNoticeCode()); + return getDataTable(list); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AftersalesComplaintNoticeDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AftersalesComplaintNoticeDetail.java index 9a08f579..add39e05 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AftersalesComplaintNoticeDetail.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/domain/AftersalesComplaintNoticeDetail.java @@ -1,10 +1,13 @@ package com.ruoyi.aftersales.domain; +import com.ruoyi.aftersales.domain.vo.AftersalesMaterialVO; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import java.util.List; + /** * 售后客诉通知单详情对象 aftersales_complaint_notice_detail * @@ -106,6 +109,8 @@ public class AftersalesComplaintNoticeDetail extends BaseEntity /** 数量合计 */ private String enterpriseSum; + /** 客诉通知相关物料数据 */ + private List aftersalesMaterialVOs; public void setComplaintNoticeDetailId(Long complaintNoticeDetailId) { this.complaintNoticeDetailId = complaintNoticeDetailId; @@ -341,6 +346,14 @@ public class AftersalesComplaintNoticeDetail extends BaseEntity return enterpriseSum; } + public List getAftersalesMaterialVOs() { + return aftersalesMaterialVOs; + } + + public void setAftersalesMaterialVOs(List aftersalesMaterialVOs) { + this.aftersalesMaterialVOs = aftersalesMaterialVOs; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -375,6 +388,7 @@ public class AftersalesComplaintNoticeDetail extends BaseEntity .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) + .append("aftersalesMaterialVOs",getAftersalesMaterialVOs()) .toString(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/mapper/AftersalesComplaintNoticeDetailMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/mapper/AftersalesComplaintNoticeDetailMapper.java index 3e71cfde..f7f49b00 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/mapper/AftersalesComplaintNoticeDetailMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/mapper/AftersalesComplaintNoticeDetailMapper.java @@ -64,6 +64,15 @@ public interface AftersalesComplaintNoticeDetailMapper */ public int deleteAftersalesComplaintNoticeDetailByIds(String[] complaintNoticeDetailIds); + + /** + * 删除售后客诉通知单详情 + * + * @param complaintNoticeCode 售后客诉通知单号 + * @return 结果 + */ + public int deleteAftersalesComplaintNoticeDetailByCode(String complaintNoticeCode); + /** * 作废售后客诉通知单详情 * @@ -85,4 +94,10 @@ public interface AftersalesComplaintNoticeDetailMapper * @return 最大序号 */ String maxRoundCode(@Param("code") String code); + + /** + * 查找与客诉通知单号有关的物料信息 + * @param complainNoticeCode + * */ + List selectMaterialListByNoticeCode(String complainNoticeCode); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAftersalesComplaintNoticeDetailService.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAftersalesComplaintNoticeDetailService.java index 5bf79d7d..a02ad391 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAftersalesComplaintNoticeDetailService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAftersalesComplaintNoticeDetailService.java @@ -2,6 +2,7 @@ package com.ruoyi.aftersales.service; import java.util.List; import com.ruoyi.aftersales.domain.AftersalesComplaintNoticeDetail; +import com.ruoyi.aftersales.domain.vo.AftersalesMaterialVO; /** * 售后客诉通知单详情Service接口 @@ -72,4 +73,10 @@ public interface IAftersalesComplaintNoticeDetailService * @return */ int restoreAftersalesComplaintNoticeDetailById(Long complaintNoticeDetailId); + + /** + * 查找与客诉通知单号有关的物料信息 + * @param complainNoticeCode + * */ + List selectMaterialListByNoticeCode(String complainNoticeCode); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAftersalesComplaintNoticeService.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAftersalesComplaintNoticeService.java index 9a162487..8aa7c7ed 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAftersalesComplaintNoticeService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/IAftersalesComplaintNoticeService.java @@ -89,4 +89,5 @@ public interface IAftersalesComplaintNoticeService * @param makeNo * */ List selectMaterialInfoByMakeNo(String makeNo); + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AftersalesComplaintNoticeDetailServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AftersalesComplaintNoticeDetailServiceImpl.java index 518a97be..364fc969 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AftersalesComplaintNoticeDetailServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AftersalesComplaintNoticeDetailServiceImpl.java @@ -2,11 +2,18 @@ package com.ruoyi.aftersales.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.aftersales.domain.AftersalesComplaintNotice; +import com.ruoyi.aftersales.domain.vo.AftersalesMaterialVO; +import com.ruoyi.aftersales.mapper.AftersalesComplaintNoticeMapper; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.domain.SysMakeorderBom; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.aftersales.mapper.AftersalesComplaintNoticeDetailMapper; @@ -21,12 +28,16 @@ import org.springframework.transaction.annotation.Transactional; * @author 刘晓旭 * @date 2024-04-25 */ +@Slf4j @Service public class AftersalesComplaintNoticeDetailServiceImpl implements IAftersalesComplaintNoticeDetailService { @Autowired private AftersalesComplaintNoticeDetailMapper aftersalesComplaintNoticeDetailMapper; + @Autowired + private AftersalesComplaintNoticeMapper complaintNoticeMapper; + /** * 查询售后客诉通知单详情 * @@ -61,7 +72,7 @@ public class AftersalesComplaintNoticeDetailServiceImpl implements IAftersalesCo @Override public int insertAftersalesComplaintNoticeDetail(AftersalesComplaintNoticeDetail complaintNoticeDetail) { - + AftersalesComplaintNotice complaintNotice = new AftersalesComplaintNotice(); SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); String code = "KS"+df.format(new Date()); //模糊查询当前最大的编码 @@ -79,7 +90,36 @@ public class AftersalesComplaintNoticeDetailServiceImpl implements IAftersalesCo String loginName = ShiroUtils.getLoginName(); complaintNoticeDetail.setCreateBy(loginName); complaintNoticeDetail.setCreateTime(DateUtils.getNowDate()); - return aftersalesComplaintNoticeDetailMapper.insertAftersalesComplaintNoticeDetail(complaintNoticeDetail); + + //保存信息到AftersalesComplaintNotice数据表中 + complaintNotice.setComplaintNoticeCode(newCode); + complaintNotice.setCreateBy(loginName); + complaintNotice.setCreateTime(new Date()); + complaintNotice.setMakeNo(complaintNoticeDetail.getMakeNo()); + complaintNotice.setCustomerId(complaintNoticeDetail.getCustomerId()); + complaintNotice.setCustomerName(complaintNoticeDetail.getCustomerName()); + complaintNotice.setEmergencyDegree(complaintNoticeDetail.getEmergencyDegree()); + complaintNoticeMapper.insertAftersalesComplaintNotice(complaintNotice); + + List aftersalesMaterialVOs = complaintNoticeDetail.getAftersalesMaterialVOs(); + if (StringUtils.isEmpty(aftersalesMaterialVOs)){ + return aftersalesComplaintNoticeDetailMapper.insertAftersalesComplaintNoticeDetail(complaintNoticeDetail); + } + for (AftersalesMaterialVO aftersalesMaterialVO : aftersalesMaterialVOs) { + complaintNoticeDetail.setMaterialType(aftersalesMaterialVO.getMaterialType()); + complaintNoticeDetail.setMaterialUnit(aftersalesMaterialVO.getMaterialUnit()); + complaintNoticeDetail.setMaterialProcessMethod(aftersalesMaterialVO.getMaterialProcessMethod()); + complaintNoticeDetail.setMaterialName(aftersalesMaterialVO.getMaterialName()); + complaintNoticeDetail.setMaterialDescribe(aftersalesMaterialVO.getMaterialDescribe()); + complaintNoticeDetail.setMaterialNo(aftersalesMaterialVO.getMaterialNo()); + complaintNoticeDetail.setMaterialPhotourl(aftersalesMaterialVO.getMaterialPhotourl()); + complaintNoticeDetail.setMaterialBrand(aftersalesMaterialVO.getMaterialBrand()); + complaintNoticeDetail.setComplaintProblem(aftersalesMaterialVO.getComplaintProblem()); + complaintNoticeDetail.setSnCode(aftersalesMaterialVO.getSnCode()); + complaintNoticeDetail.setAdverseReportUrl(aftersalesMaterialVO.getAdverseReportUrl()); + aftersalesComplaintNoticeDetailMapper.insertAftersalesComplaintNoticeDetail(complaintNoticeDetail); + } + return 1; } /** @@ -88,13 +128,58 @@ public class AftersalesComplaintNoticeDetailServiceImpl implements IAftersalesCo * @param aftersalesComplaintNoticeDetail 售后客诉通知单详情 * @return 结果 */ + @Transactional @Override public int updateAftersalesComplaintNoticeDetail(AftersalesComplaintNoticeDetail aftersalesComplaintNoticeDetail) { + AftersalesComplaintNotice aftersalesComplaintNotice = new AftersalesComplaintNotice(); String loginName = ShiroUtils.getLoginName(); - aftersalesComplaintNoticeDetail.setUpdateBy(loginName); - aftersalesComplaintNoticeDetail.setUpdateTime(DateUtils.getNowDate()); - return aftersalesComplaintNoticeDetailMapper.updateAftersalesComplaintNoticeDetail(aftersalesComplaintNoticeDetail); + //更新主表内容 + aftersalesComplaintNotice.setComplaintNoticeCode(aftersalesComplaintNoticeDetail.getComplaintNoticeCode()); + aftersalesComplaintNotice.setUpdateBy(loginName); + aftersalesComplaintNotice.setUpdateTime(new Date()); + aftersalesComplaintNotice.setMakeNo(aftersalesComplaintNoticeDetail.getMakeNo()); + aftersalesComplaintNotice.setEmergencyDegree(aftersalesComplaintNoticeDetail.getEmergencyDegree()); + aftersalesComplaintNotice.setRemark(aftersalesComplaintNoticeDetail.getRemark()); + aftersalesComplaintNotice.setCustomerName(aftersalesComplaintNoticeDetail.getCustomerName()); + aftersalesComplaintNotice.setCustomerId(aftersalesComplaintNoticeDetail.getCustomerId()); + complaintNoticeMapper.updateAftersalesComplaintNotice(aftersalesComplaintNotice); + String complaintNoticeCode = aftersalesComplaintNoticeDetail.getComplaintNoticeCode(); + List aftersalesMaterialVOs = aftersalesComplaintNoticeDetail.getAftersalesMaterialVOs(); + //如果前面相关物料信息为空 + if (StringUtils.isEmpty(aftersalesMaterialVOs)){ + //删除子表中的数据 + int result = aftersalesComplaintNoticeDetailMapper.deleteAftersalesComplaintNoticeDetailByCode(complaintNoticeCode); + return result; + } + //如果有物料信息 + int result = aftersalesComplaintNoticeDetailMapper.deleteAftersalesComplaintNoticeDetailByCode(complaintNoticeCode); + for (AftersalesMaterialVO aftersalesMaterialVO : aftersalesMaterialVOs) { + AftersalesComplaintNoticeDetail complaintNoticeDetail = new AftersalesComplaintNoticeDetail(); + complaintNoticeDetail.setComplaintNoticeCode(complaintNoticeCode); + complaintNoticeDetail.setCreateBy(aftersalesComplaintNoticeDetail.getCreateBy()); + complaintNoticeDetail.setCreateTime(aftersalesComplaintNoticeDetail.getCreateTime()); + complaintNoticeDetail.setUpdateBy(loginName); + complaintNoticeDetail.setUpdateTime(new Date()); + complaintNoticeDetail.setCustomerId(aftersalesComplaintNoticeDetail.getCustomerId()); + complaintNoticeDetail.setCustomerName(aftersalesComplaintNoticeDetail.getCustomerName()); + complaintNoticeDetail.setEmergencyDegree(aftersalesComplaintNoticeDetail.getEmergencyDegree()); + complaintNoticeDetail.setMakeNo(aftersalesComplaintNoticeDetail.getMakeNo()); + complaintNoticeDetail.setRemark(aftersalesComplaintNoticeDetail.getRemark()); + complaintNoticeDetail.setMaterialType(aftersalesMaterialVO.getMaterialType()); + complaintNoticeDetail.setMaterialUnit(aftersalesMaterialVO.getMaterialUnit()); + complaintNoticeDetail.setMaterialProcessMethod(aftersalesMaterialVO.getMaterialProcessMethod()); + complaintNoticeDetail.setMaterialName(aftersalesMaterialVO.getMaterialName()); + complaintNoticeDetail.setMaterialDescribe(aftersalesMaterialVO.getMaterialDescribe()); + complaintNoticeDetail.setMaterialNo(aftersalesMaterialVO.getMaterialNo()); + complaintNoticeDetail.setMaterialPhotourl(aftersalesMaterialVO.getMaterialPhotourl()); + complaintNoticeDetail.setMaterialBrand(aftersalesMaterialVO.getMaterialBrand()); + complaintNoticeDetail.setComplaintProblem(aftersalesMaterialVO.getComplaintProblem()); + complaintNoticeDetail.setSnCode(aftersalesMaterialVO.getSnCode()); + complaintNoticeDetail.setAdverseReportUrl(aftersalesMaterialVO.getAdverseReportUrl()); + aftersalesComplaintNoticeDetailMapper.insertAftersalesComplaintNoticeDetail(complaintNoticeDetail); + } + return 1; } /** @@ -145,6 +230,39 @@ public class AftersalesComplaintNoticeDetailServiceImpl implements IAftersalesCo return aftersalesComplaintNoticeDetailMapper.restoreAftersalesComplaintNoticeDetailById(complaintNoticeDetailId); } + /** + * 查找与客诉通知单号有关的物料信息 + * @param complainNoticeCode + * */ + @Override + public List selectMaterialListByNoticeCode(String complainNoticeCode) { + ArrayList aftersalesMaterialVOs = new ArrayList<>(); + List complaintNoticeDetails=aftersalesComplaintNoticeDetailMapper.selectMaterialListByNoticeCode(complainNoticeCode); + + if (StringUtils.isEmpty(complaintNoticeDetails)){ + // 记录日志 + log.warn("未查找到与客诉通知单号关联的物料相关数据, 客诉通知号: {}", complainNoticeCode); + + } + for (AftersalesComplaintNoticeDetail complaintNoticeDetail : complaintNoticeDetails) { + AftersalesMaterialVO aftersalesMaterialVO = new AftersalesMaterialVO(); + aftersalesMaterialVO.setMaterialNo(complaintNoticeDetail.getMaterialNo()); + aftersalesMaterialVO.setMaterialBrand(complaintNoticeDetail.getMaterialBrand()); + aftersalesMaterialVO.setMaterialDescribe(complaintNoticeDetail.getMaterialDescribe()); + aftersalesMaterialVO.setMaterialName(complaintNoticeDetail.getMaterialName()); + aftersalesMaterialVO.setMaterialProcessMethod(complaintNoticeDetail.getMaterialProcessMethod()); + aftersalesMaterialVO.setMaterialPhotourl(complaintNoticeDetail.getMaterialPhotourl()); + aftersalesMaterialVO.setMaterialUnit(complaintNoticeDetail.getMaterialUnit()); + aftersalesMaterialVO.setMaterialType(complaintNoticeDetail.getMaterialType()); + aftersalesMaterialVO.setComplaintProblem(complaintNoticeDetail.getComplaintProblem()); + aftersalesMaterialVO.setSnCode(complaintNoticeDetail.getSnCode()); + aftersalesMaterialVO.setAdverseReportUrl(complaintNoticeDetail.getAdverseReportUrl()); + aftersalesMaterialVOs.add(aftersalesMaterialVO); + } + return aftersalesMaterialVOs; + } + + /** *客诉单号生成规则: diff --git a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AftersalesComplaintNoticeServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AftersalesComplaintNoticeServiceImpl.java index 54d689c0..ba965045 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AftersalesComplaintNoticeServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/aftersales/service/impl/AftersalesComplaintNoticeServiceImpl.java @@ -184,6 +184,7 @@ public class AftersalesComplaintNoticeServiceImpl implements IAftersalesComplain @Override public List selectMaterialInfoByMakeNo(String makeNo) { ArrayList aftersalesMaterialVOs = new ArrayList<>(); + List sysMakeorderBoms = sysMakeorderBomMapper.selectSysMakeorderBomByMakeNo(makeNo); if (StringUtils.isEmpty(sysMakeorderBoms)){ // 记录日志 diff --git a/ruoyi-admin/src/main/resources/mapper/aftersales/AftersalesComplaintNoticeDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/aftersales/AftersalesComplaintNoticeDetailMapper.xml index 232d624f..d24ea381 100644 --- a/ruoyi-admin/src/main/resources/mapper/aftersales/AftersalesComplaintNoticeDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/aftersales/AftersalesComplaintNoticeDetailMapper.xml @@ -40,6 +40,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select complaint_notice_detail_id, complaint_notice_code, make_no, user_id, delivery_goods_num, emergency_degree, complaint_problem, closing_procedures, adverse_report_url, customer_id, customer_name, device_model_code, device_model_name, sn_code, device_running_number, material_no, material_name, material_type, material_photoUrl, material_brand, material_unit, material_describe, material_process_method, shipped_goods_sum, material_sum, enterprise_sum, create_by, create_time, update_by, update_time, remark from aftersales_complaint_notice_detail + + + + - - + + + insert into aftersales_complaint_notice_detail @@ -177,6 +183,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + delete from aftersales_complaint_notice_detail where complaint_notice_code = #{complaintNoticeCode} + + update aftersales_complaint_notice_detail set del_flag = '1' where complaint_notice_detail_id = #{complaintNoticeDetailId} @@ -189,4 +200,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/aftersales/AftersalesComplaintNoticeMapper.xml b/ruoyi-admin/src/main/resources/mapper/aftersales/AftersalesComplaintNoticeMapper.xml index cdc8b5c1..85647715 100644 --- a/ruoyi-admin/src/main/resources/mapper/aftersales/AftersalesComplaintNoticeMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/aftersales/AftersalesComplaintNoticeMapper.xml @@ -115,7 +115,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_time = #{updateTime}, remark = #{remark}, - where complaint_notice_id = #{complaintNoticeId} + where complaint_notice_code = #{complaintNoticeCode} diff --git a/ruoyi-admin/src/main/resources/templates/aftersales/complaintNotice/add.html b/ruoyi-admin/src/main/resources/templates/aftersales/complaintNotice/add.html index bc0337d1..1379d6eb 100644 --- a/ruoyi-admin/src/main/resources/templates/aftersales/complaintNotice/add.html +++ b/ruoyi-admin/src/main/resources/templates/aftersales/complaintNotice/add.html @@ -74,12 +74,21 @@ // 新增提交 function submitHandler() { // 获取表单数据 - const complaintNoticeData = $("#form-complaintNotice-add").serializeArray(); - // 获取bootstrap-table的数据,这里假设你使用bootstrap-table的API获取所有数据 + const complaintNoticeData = $("#form-complaintNotice-add").serializeArray().reduce((obj, item) => { + obj[item.name] = item.value; + return obj; + }, {}); + // 获取bootstrap-table的数据,这里假设你使用bootstrap-table的API获取所有数据 var table = $('#bootstrap-table').bootstrapTable('getData'); + // 检查表格数据是否为空 + if (table.length===0){ + $.modal.alertWarning("请至少添加一条物料数据后再保存!"); + return; + } + console.log(table); // 将表数据转换成与complaintNoticeData格式一致的数组 - var materialData = table.map(function(item) { + var materialDataList = table.map(function(item) { // 根据实际字段名调整 return { "materialNo": item.materialNo, // 假设id对应materialId @@ -97,8 +106,9 @@ }; }); + const combinedData = Object.assign({}, complaintNoticeData, { aftersalesMaterialVOs: materialDataList }); // 合并表单数据和表格数据 - const combinedData = Object.assign({}, ...complaintNoticeData.map(item => ({ [item.name]: item.value })), ...materialData); + // const combinedData = Object.assign({}, ...complaintNoticeData.array(item => ({ [item.name]: item.value })), ...materialData); console.log(combinedData) // 使用 JSON.stringify() 序列化数据 const jsonData = JSON.stringify(combinedData); @@ -126,13 +136,13 @@ // 将获取到的客户名称填充到输入框 if(data.data == null){ // 如果返回的数据有问题,可以给出提示或处理 - alert('未能获取到客户名称!'); + $.modal.msgError("未能获取到客户名称!"); } $('input[name="customerName"]').val(data.data.customerName); }, error: function(jqXHR, textStatus, errorThrown) { console.error('Error:', textStatus, errorThrown); - alert('查询客户名称时发生错误!'); + $.modal.msgError("查询客户名称时发生错误!"); } }); } else { @@ -220,7 +230,7 @@ function insertRow() { var selectedMakeNo = $("#makeNo").val(); if (!selectedMakeNo) { - alert("请先选择生产单号。"); + $.modal.alertWarning("请先选择生产单号。"); return; } var encodedMakeNo = encodeURIComponent(selectedMakeNo); diff --git a/ruoyi-admin/src/main/resources/templates/aftersales/complaintNotice/complaintNotice.html b/ruoyi-admin/src/main/resources/templates/aftersales/complaintNotice/complaintNotice.html index e59dec99..c75893c1 100644 --- a/ruoyi-admin/src/main/resources/templates/aftersales/complaintNotice/complaintNotice.html +++ b/ruoyi-admin/src/main/resources/templates/aftersales/complaintNotice/complaintNotice.html @@ -92,7 +92,7 @@ checkbox: true }, { - title: '客诉通知ID', + title: '客诉通知详情ID', field: 'complaintNoticeId', visible: false }, @@ -150,18 +150,23 @@ formatter: function(value, row, index) { var actions = []; actions.push('编辑 '); - // actions.push('删除 '); - // if(row.delFlag == '0'){ - // actions.push('作废 '); - // }else{ - // actions.push('恢复 '); - // } + return actions.join(''); } }] }; $.table.init(options); }); + + /*详情*/ + // function detail(aftersalesOrderId) { + // // 在这里编写派单操作的逻辑,使用传入的aftersalesOrderId参数 + // // 示例逻辑: + // var url = ctx + 'aftersales/aftersalesOrder/detail/'+aftersalesOrderId; + // console.log(url); + // $.modal.open("上传报告",url); + // } + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/aftersales/complaintNotice/edit.html b/ruoyi-admin/src/main/resources/templates/aftersales/complaintNotice/edit.html index ed08e1bb..604773d4 100644 --- a/ruoyi-admin/src/main/resources/templates/aftersales/complaintNotice/edit.html +++ b/ruoyi-admin/src/main/resources/templates/aftersales/complaintNotice/edit.html @@ -6,27 +6,31 @@
- -
- + +
+
- +
-
- +
+
- +
-
- +
+
- +
- +
- - -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- +
-
- -
- + +
+
+
+ 选择物料 + + 选择物料 +
-
- -
- +
+
+
- +
+ + \ No newline at end of file