From 49e5c8e6c349a20a03317f7fd81fbd53e0950c82 Mon Sep 17 00:00:00 2001 From: yuejiayang <146344614+YangLei105@users.noreply.github.com> Date: Wed, 25 Sep 2024 18:50:24 +0800 Subject: [PATCH] =?UTF-8?q?2024.9.25=20=E8=AF=A2=E4=BB=B7=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20-=20=E8=AF=A2=E4=BB=B7=E7=94=B3=E8=AF=B7=EF=BC=88?= =?UTF-8?q?=E6=96=B0=EF=BC=89=20=20=E7=AC=AC=E4=B8=80=E7=89=88=20=E8=AF=A2?= =?UTF-8?q?=E4=BB=B7=E7=AE=A1=E7=90=86=20-=20=E8=AF=A2=E4=BB=B7=E6=98=8E?= =?UTF-8?q?=E7=BB=86=20=E7=AC=AC=E4=B8=80=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inquiry/controller/InquiryController.java | 112 ++++++++++++++ .../inquiry/data/InquiryApplicationData.java | 101 ++++++++++++ .../inquiry/data/InquiryDetailData.java | 132 ++++++++++++++++ .../inquiry/data/InquiryDetailItemData.java | 86 +++++++++++ .../mapper/InquiryApplicationMapper.java | 24 +++ .../mapper/InquiryDetailItemMapper.java | 26 ++++ .../inquiry/mapper/InquiryDetailMapper.java | 45 ++++++ .../service/InquiryApplicationService.java | 21 +++ .../service/InquiryDetailItemService.java | 18 +++ .../inquiry/service/InquiryDetailService.java | 27 ++++ .../impl/InquiryApplicationServiceImpl.java | 99 ++++++++++++ .../impl/InquiryDetailItemServiceImpl.java | 47 ++++++ .../impl/InquiryDetailServiceImpl.java | 146 ++++++++++++++++++ .../inquiry/InquiryApplicationMapper.xml | 57 +++++++ .../inquiry/InquiryDetailItemMapper.xml | 34 ++++ .../mapper/inquiry/InquiryDetailMapper.xml | 91 +++++++++++ 16 files changed, 1066 insertions(+) create mode 100644 src/main/java/com/xujie/sys/modules/inquiry/controller/InquiryController.java create mode 100644 src/main/java/com/xujie/sys/modules/inquiry/data/InquiryApplicationData.java create mode 100644 src/main/java/com/xujie/sys/modules/inquiry/data/InquiryDetailData.java create mode 100644 src/main/java/com/xujie/sys/modules/inquiry/data/InquiryDetailItemData.java create mode 100644 src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryApplicationMapper.java create mode 100644 src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryDetailItemMapper.java create mode 100644 src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryDetailMapper.java create mode 100644 src/main/java/com/xujie/sys/modules/inquiry/service/InquiryApplicationService.java create mode 100644 src/main/java/com/xujie/sys/modules/inquiry/service/InquiryDetailItemService.java create mode 100644 src/main/java/com/xujie/sys/modules/inquiry/service/InquiryDetailService.java create mode 100644 src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryApplicationServiceImpl.java create mode 100644 src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryDetailItemServiceImpl.java create mode 100644 src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryDetailServiceImpl.java create mode 100644 src/main/resources/mapper/inquiry/InquiryApplicationMapper.xml create mode 100644 src/main/resources/mapper/inquiry/InquiryDetailItemMapper.xml create mode 100644 src/main/resources/mapper/inquiry/InquiryDetailMapper.xml diff --git a/src/main/java/com/xujie/sys/modules/inquiry/controller/InquiryController.java b/src/main/java/com/xujie/sys/modules/inquiry/controller/InquiryController.java new file mode 100644 index 00000000..27bfc20a --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/inquiry/controller/InquiryController.java @@ -0,0 +1,112 @@ +package com.xujie.sys.modules.inquiry.controller; + +import com.xujie.sys.common.utils.PageUtils; +import com.xujie.sys.common.utils.R; +import com.xujie.sys.modules.inquiry.data.InquiryApplicationData; +import com.xujie.sys.modules.inquiry.data.InquiryDetailData; +import com.xujie.sys.modules.inquiry.data.InquiryDetailItemData; +import com.xujie.sys.modules.inquiry.service.InquiryApplicationService; +import com.xujie.sys.modules.inquiry.service.InquiryDetailItemService; +import com.xujie.sys.modules.inquiry.service.InquiryDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @description: + * @author: jiayang_yue + * @date: 2024/9/22 16:02 + * @param: + * @return: + */ +@RestController +@RequestMapping("/inquiry") +public class InquiryController { + + @Autowired + private InquiryApplicationService inquiryApplicationService; + + @Autowired + private InquiryDetailService inquiryDetailService; + + @Autowired + private InquiryDetailItemService inquiryDetailItemService; + + @PostMapping("/inquiryApplication/searchInquiryApplicationInfo") + @ResponseBody + public R searchInquiryApplicationInfo(@RequestBody InquiryApplicationData data){ + PageUtils page = inquiryApplicationService.searchInquiryApplicationInfo(data); + return R.ok().put("page", page); + } + + @PostMapping("/inquiryApplication/addInquiryApplicationInfo") + @ResponseBody + public R addInquiryApplicationInfo(@RequestBody InquiryApplicationData data){ + inquiryApplicationService.addInquiryApplicationInfo(data); + return R.ok(); + } + + @PostMapping("/inquiryApplication/updateInquiryApplicationInfo") + @ResponseBody + public R updateInquiryApplicationInfo(@RequestBody InquiryApplicationData data){ + inquiryApplicationService.updateInquiryApplicationInfo(data); + return R.ok(); + } + + @PostMapping("/inquiryApplication/deleteInquiryApplicationInfo") + @ResponseBody + public R deleteInquiryApplicationInfo(@RequestBody InquiryApplicationData data){ + inquiryApplicationService.deleteInquiryApplicationInfo(data); + return R.ok(); + } + + @PostMapping("/inquiryDetail/searchInquiryDetailInfo") + @ResponseBody + public R searchInquiryDetailInfo(@RequestBody InquiryDetailData data){ + PageUtils page = inquiryDetailService.searchInquiryDetailInfo(data); + return R.ok().put("page", page); + } + + @PostMapping("/inquiryDetail/searchInquiryDetailHeaderInfo") + @ResponseBody + public R searchInquiryDetailHeaderInfo(@RequestBody InquiryDetailData data){ + PageUtils page = inquiryDetailService.searchInquiryDetailHeaderInfo(data); + return R.ok().put("page", page); + } + + @PostMapping("/inquiryDetail/addInquiryDetailInfo") + @ResponseBody + public R addInquiryDetailInfo(@RequestBody InquiryDetailData data){ + inquiryDetailService.addInquiryDetailInfo(data); + return R.ok(); + } + + @PostMapping("/inquiryDetail/updateInquiryDetailInfo") + @ResponseBody + public R updateInquiryDetailInfo(@RequestBody InquiryDetailData data){ + inquiryDetailService.updateInquiryDetailInfo(data); + return R.ok(); + } + + @PostMapping("/inquiryDetail/deleteInquiryDetailInfo") + @ResponseBody + public R deleteInquiryDetailInfo(@RequestBody InquiryDetailData data){ + inquiryDetailService.deleteInquiryDetailInfo(data); + return R.ok(); + } + + @PostMapping("/inquiryDetailItem/getItemListByInquiryPartAndCodeNo") + @ResponseBody + public R getItemListByInquiryPartAndCodeNo(@RequestBody InquiryDetailItemData data){ + List rows = inquiryDetailItemService.getItemListByInquiryPartAndCodeNo(data); + return R.ok().put("rows", rows); + } + + @PostMapping("/inquiryDetailItem/updateInquiryPartItemList") + @ResponseBody + public R updateInquiryPartItemList(@RequestBody List list){ + inquiryDetailItemService.updateInquiryPartItemList(list); + return R.ok(); + } +} diff --git a/src/main/java/com/xujie/sys/modules/inquiry/data/InquiryApplicationData.java b/src/main/java/com/xujie/sys/modules/inquiry/data/InquiryApplicationData.java new file mode 100644 index 00000000..c6de1c99 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/inquiry/data/InquiryApplicationData.java @@ -0,0 +1,101 @@ +package com.xujie.sys.modules.inquiry.data; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xujie.sys.common.utils.QueryPage; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * @TableName plm_rfq_header + */ +@TableName(value ="plm_rfq_header") +@Data +public class InquiryApplicationData extends QueryPage implements Serializable { + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private String site; + + private String rfqNo; + + private String customerNo; + + private String requester; + + private String quoter; + + private String customerInquiryNo; + + private String status; + + private String priorityLevel; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date requiredCompletionDate; + + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date requiredCompletionStartDate; + + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date requiredCompletionEndDate; + + private String remark; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createDate; + + private String createBy; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateDate; + + private String updateBy; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date requestDate; + + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date requestStartDate; + + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date requestEndDate; + + private String buNo; + + @TableField(exist = false) + private String buDesc; + + @TableField(exist = false) + private String customerDesc; + + @TableField(exist = false) + private String requesterName; + + @TableField(exist = false) + private String quoterName; + + @TableField(exist = false) + private String bu; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/xujie/sys/modules/inquiry/data/InquiryDetailData.java b/src/main/java/com/xujie/sys/modules/inquiry/data/InquiryDetailData.java new file mode 100644 index 00000000..5500f1ce --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/inquiry/data/InquiryDetailData.java @@ -0,0 +1,132 @@ +package com.xujie.sys.modules.inquiry.data; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xujie.sys.common.utils.QueryPage; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * @TableName plm_rfq_detail + */ +@TableName(value ="plm_rfq_detail") +@Data +public class InquiryDetailData extends QueryPage implements Serializable { + + @TableId(value = "id",type = IdType.AUTO) + private Integer id; + + private String site; + + @TableField(exist = false) + private String bu; + + @TableField(exist = false) + private String buNo; + + @TableField(exist = false) + private String buDesc; + + private Integer rfqId; + + private Integer testPartId; + + @TableField(exist = false) + private String partNo; + + @TableField(exist = false) + private String partDesc; + + private Double inquiryQty; + + private String umId; + + @TableField(exist = false) + private String umName; + + private String codeNo; + + @TableField(exist = false) + private String codeDesc; + + private String remark; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createDate; + + private String createBy; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateDate; + + private String updateBy; + + @TableField(exist = false) + private String rfqNo; + + @TableField(exist = false) + private String customerNo; + + @TableField(exist = false) + private String requester; + + @TableField(exist = false) + private String quoter; + + @TableField(exist = false) + private String customerInquiryNo; + + private String status; + + @TableField(exist = false) + private String priorityLevel; + + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date requiredCompletionDate; + + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date requiredCompletionStartDate; + + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date requiredCompletionEndDate; + + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date requestDate; + + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date requestStartDate; + + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date requestEndDate; + + @TableField(exist = false) + private String customerDesc; + + @TableField(exist = false) + private String requesterName; + + @TableField(exist = false) + private String quoterName; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/xujie/sys/modules/inquiry/data/InquiryDetailItemData.java b/src/main/java/com/xujie/sys/modules/inquiry/data/InquiryDetailItemData.java new file mode 100644 index 00000000..d06f42a9 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/inquiry/data/InquiryDetailItemData.java @@ -0,0 +1,86 @@ +package com.xujie.sys.modules.inquiry.data; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xujie.sys.modules.part.data.PtmConditionItemData; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * @TableName plm_rfq_detail_item + */ +@TableName(value ="plm_rfq_detail_item") +@Data +public class InquiryDetailItemData implements Serializable { + + @TableId(value = "id",type = IdType.AUTO) + private Integer id; + + private Integer inquiryPartId; + + private String itemNo; + + @TableField(exist = false) + private String itemDesc; + + @TableField(exist = false) + private String userName; + + private String textValue; + + private String createBy; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createDate; + + private String updateBy; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateDate; + + private String recordType; + + private Double numValue; + + private String buNo; + + private String site; + + @TableField(exist = false) + private String valueType; + + @TableField(exist = false) + private String codeNo; + + @TableField(exist = false) + private String valueTypeDb; + + @TableField(exist = false) + private List inquiryDetailItemAddList; + + @TableField(exist = false) + private String valueChooseFlag; + + @TableField(exist = false) + private Integer itemId; + + @TableField(exist = false) + private String valueNo; + + @TableField(exist = false) + private String availableValue; + + @TableField(exist = false) + private List availableValueList; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryApplicationMapper.java b/src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryApplicationMapper.java new file mode 100644 index 00000000..6c812e54 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryApplicationMapper.java @@ -0,0 +1,24 @@ +package com.xujie.sys.modules.inquiry.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xujie.sys.modules.inquiry.data.InquiryApplicationData; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** +* @author Jia +* @description 针对表【plm_rfq_header】的数据库操作Mapper +* @createDate 2024-09-22 16:00:27 +* @Entity com.xujie.sys.modules.Inquiry.data.InquiryApplication +*/ +@Mapper +public interface InquiryApplicationMapper extends BaseMapper { + + IPage searchInquiryApplicationInfo(Page inquiryApplicationDataPage, @Param("query") InquiryApplicationData data); +} + + + + diff --git a/src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryDetailItemMapper.java b/src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryDetailItemMapper.java new file mode 100644 index 00000000..7b1f9772 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryDetailItemMapper.java @@ -0,0 +1,26 @@ +package com.xujie.sys.modules.inquiry.mapper; + +import com.xujie.sys.modules.inquiry.data.InquiryDetailItemData; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** +* @author Jia +* @description 针对表【plm_rfq_detail_item】的数据库操作Mapper +* @createDate 2024-09-24 21:46:23 +* @Entity com.xujie.sys.modules.inquiry.data.InquiryDetailItem +*/ + +@Mapper +public interface InquiryDetailItemMapper extends BaseMapper { + + List getItemListByInquiryPartAndCodeNo(InquiryDetailItemData data); + + List searchInquiryDetailItemAvailable(InquiryDetailItemData inquiryDetailItemData); +} + + + + diff --git a/src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryDetailMapper.java b/src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryDetailMapper.java new file mode 100644 index 00000000..915cc685 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryDetailMapper.java @@ -0,0 +1,45 @@ +package com.xujie.sys.modules.inquiry.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xujie.sys.modules.inquiry.data.InquiryDetailData; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xujie.sys.modules.inquiry.data.InquiryDetailItemData; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** +* @author Jia +* @description 针对表【plm_rfq_detail】的数据库操作Mapper +* @createDate 2024-09-24 15:54:29 +* @Entity com.xujie.sys.modules.inquiry.data.InquiryDetail +*/ + +@Mapper +public interface InquiryDetailMapper extends BaseMapper { + + IPage searchInquiryDetailInfo(Page page,@Param("query") InquiryDetailData data); + + @Select("SELECT site," + + "bu_no," + + "id," + + "item_no," + + "item_desc," + + "item_type as record_type," + + "value_type," + + "value_type_db," + + "value_choose_flag" + + " FROM plm_properties_item " + + "WHERE " + + "item_type = #{recordType} AND site = #{site} AND bu_no = #{buNo}") + List getItemListByRecordTypeAndCodeNo(InquiryDetailItemData inquiryDetailItemData); + + IPage searchInquiryDetailHeaderInfo(Page objectPage,@Param("query") InquiryDetailData data); +} + + + + diff --git a/src/main/java/com/xujie/sys/modules/inquiry/service/InquiryApplicationService.java b/src/main/java/com/xujie/sys/modules/inquiry/service/InquiryApplicationService.java new file mode 100644 index 00000000..b78d2b21 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/inquiry/service/InquiryApplicationService.java @@ -0,0 +1,21 @@ +package com.xujie.sys.modules.inquiry.service; + +import com.xujie.sys.common.utils.PageUtils; +import com.xujie.sys.modules.inquiry.data.InquiryApplicationData; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author Jia +* @description 针对表【plm_rfq_header】的数据库操作Service +* @createDate 2024-09-22 16:00:27 +*/ +public interface InquiryApplicationService extends IService { + + PageUtils searchInquiryApplicationInfo(InquiryApplicationData data); + + void addInquiryApplicationInfo(InquiryApplicationData data); + + void updateInquiryApplicationInfo(InquiryApplicationData data); + + void deleteInquiryApplicationInfo(InquiryApplicationData data); +} diff --git a/src/main/java/com/xujie/sys/modules/inquiry/service/InquiryDetailItemService.java b/src/main/java/com/xujie/sys/modules/inquiry/service/InquiryDetailItemService.java new file mode 100644 index 00000000..4d75cc97 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/inquiry/service/InquiryDetailItemService.java @@ -0,0 +1,18 @@ +package com.xujie.sys.modules.inquiry.service; + +import com.xujie.sys.modules.inquiry.data.InquiryDetailItemData; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** +* @author Jia +* @description 针对表【plm_rfq_detail_item】的数据库操作Service +* @createDate 2024-09-24 21:46:23 +*/ +public interface InquiryDetailItemService extends IService { + + List getItemListByInquiryPartAndCodeNo(InquiryDetailItemData data); + + void updateInquiryPartItemList(List list); +} diff --git a/src/main/java/com/xujie/sys/modules/inquiry/service/InquiryDetailService.java b/src/main/java/com/xujie/sys/modules/inquiry/service/InquiryDetailService.java new file mode 100644 index 00000000..417c0a22 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/inquiry/service/InquiryDetailService.java @@ -0,0 +1,27 @@ +package com.xujie.sys.modules.inquiry.service; + +import com.xujie.sys.common.utils.PageUtils; +import com.xujie.sys.modules.inquiry.data.InquiryApplicationData; +import com.xujie.sys.modules.inquiry.data.InquiryDetailData; +import com.baomidou.mybatisplus.extension.service.IService; +import com.xujie.sys.modules.inquiry.data.InquiryDetailItemData; + +import java.util.List; + +/** +* @author Jia +* @description 针对表【plm_rfq_detail】的数据库操作Service +* @createDate 2024-09-24 15:54:29 +*/ +public interface InquiryDetailService extends IService { + + PageUtils searchInquiryDetailInfo(InquiryDetailData data); + + void addInquiryDetailInfo(InquiryDetailData data); + + void updateInquiryDetailInfo(InquiryDetailData data); + + void deleteInquiryDetailInfo(InquiryDetailData data); + + PageUtils searchInquiryDetailHeaderInfo(InquiryDetailData data); +} diff --git a/src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryApplicationServiceImpl.java b/src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryApplicationServiceImpl.java new file mode 100644 index 00000000..b9d3b515 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryApplicationServiceImpl.java @@ -0,0 +1,99 @@ +package com.xujie.sys.modules.inquiry.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xujie.sys.common.utils.PageUtils; +import com.xujie.sys.modules.inquiry.data.InquiryApplicationData; +import com.xujie.sys.modules.inquiry.data.InquiryDetailData; +import com.xujie.sys.modules.inquiry.mapper.InquiryDetailMapper; +import com.xujie.sys.modules.inquiry.service.InquiryApplicationService; +import com.xujie.sys.modules.inquiry.mapper.InquiryApplicationMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** +* @author Jia +* @description 针对表【plm_rfq_header】的数据库操作Service实现 +* @createDate 2024-09-22 16:00:27 +*/ +@Service +public class InquiryApplicationServiceImpl extends ServiceImpl + implements InquiryApplicationService{ + + + @Autowired + private InquiryApplicationMapper inquiryApplicationMapper; + + @Autowired + private InquiryDetailMapper inquiryDetailMapper; + + @Override + public PageUtils searchInquiryApplicationInfo(InquiryApplicationData data) { + if (data.getBu() != "" && data.getBu() != null) { + data.setBuNo(data.getBu().split("_")[1]); + data.setSite(data.getBu().split("_")[0]); + } + IPage page = inquiryApplicationMapper.searchInquiryApplicationInfo(new Page<>(data.getPage(), data.getLimit()), data); + return new PageUtils(page); + } + + @Override + @Transactional + public void addInquiryApplicationInfo(InquiryApplicationData data) { + data.setBuNo(data.getBu().split("_")[1]); + data.setSite(data.getBu().split("_")[0]); + // 查询是否存在相同的询价单号 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("rfq_no", data.getRfqNo()) + .eq("site", data.getSite()) + .eq("bu_no", data.getBuNo()); + List list = inquiryApplicationMapper.selectList(queryWrapper); + if (!list.isEmpty()) { + throw new RuntimeException("在当前Site及BU下 " + data.getBu() + " ,存在相同的询价单号!"); + } + data.setCreateDate(new Date()); + inquiryApplicationMapper.insert(data); + } + + @Override + @Transactional + public void updateInquiryApplicationInfo(InquiryApplicationData data) { + data.setBuNo(data.getBu().split("_")[1]); + data.setSite(data.getBu().split("_")[0]); + // 查询是否存在相同的询价单号(排除当前记录) + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("rfq_no", data.getRfqNo()) + .eq("site", data.getSite()) + .eq("bu_no", data.getBuNo()) + .ne("id", data.getId()); + List list = inquiryApplicationMapper.selectList(queryWrapper); + if (!list.isEmpty()) { + throw new RuntimeException("在当前Site及BU下 " + data.getBu() + " ,存在相同的询价单号!"); + } + data.setUpdateDate(new Date()); + inquiryApplicationMapper.updateById(data); + } + + @Override + public void deleteInquiryApplicationInfo(InquiryApplicationData data) { + // 查询询价单下是否存在产品 + QueryWrapper eq = new QueryWrapper().eq("rfq_id", data.getId()) + .eq("site", data.getSite()); + List list = inquiryDetailMapper.selectList(eq); + if (!list.isEmpty()) { + throw new RuntimeException("该询价单下存在产品,无法删除!"); + } + // 删除询价单 + inquiryApplicationMapper.deleteById(data.getId()); + } +} + + + + diff --git a/src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryDetailItemServiceImpl.java b/src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryDetailItemServiceImpl.java new file mode 100644 index 00000000..b9a1f030 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryDetailItemServiceImpl.java @@ -0,0 +1,47 @@ +package com.xujie.sys.modules.inquiry.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xujie.sys.modules.inquiry.data.InquiryDetailItemData; +import com.xujie.sys.modules.inquiry.service.InquiryDetailItemService; +import com.xujie.sys.modules.inquiry.mapper.InquiryDetailItemMapper; +import com.xujie.sys.modules.part.data.PtmConditionItemData; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** +* @author Jia +* @description 针对表【plm_rfq_detail_item】的数据库操作Service实现 +* @createDate 2024-09-24 21:46:23 +*/ +@Service +public class InquiryDetailItemServiceImpl extends ServiceImpl + implements InquiryDetailItemService{ + + @Autowired + private InquiryDetailItemMapper inquiryDetailItemMapper; + + @Override + public List getItemListByInquiryPartAndCodeNo(InquiryDetailItemData data) { + List result = inquiryDetailItemMapper.getItemListByInquiryPartAndCodeNo(data); + for (int i = 0; i < result.size(); i++) { + if ("Y".equals(result.get(i).getValueChooseFlag())) { + List availableList = inquiryDetailItemMapper.searchInquiryDetailItemAvailable(result.get(i)); + result.get(i).setAvailableValueList(availableList); + } + } + return result; + } + + @Override + public void updateInquiryPartItemList(List list) { + for (InquiryDetailItemData itemData : list) { + inquiryDetailItemMapper.updateById(itemData); + } + } +} + + + + diff --git a/src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryDetailServiceImpl.java b/src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryDetailServiceImpl.java new file mode 100644 index 00000000..1ab5e631 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryDetailServiceImpl.java @@ -0,0 +1,146 @@ +package com.xujie.sys.modules.inquiry.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xujie.sys.common.utils.PageUtils; +import com.xujie.sys.modules.inquiry.data.InquiryDetailData; +import com.xujie.sys.modules.inquiry.data.InquiryDetailItemData; +import com.xujie.sys.modules.inquiry.mapper.InquiryDetailItemMapper; +import com.xujie.sys.modules.inquiry.service.InquiryDetailService; +import com.xujie.sys.modules.inquiry.mapper.InquiryDetailMapper; +import com.xujie.sys.modules.part.entity.PartInformationEntity; +import com.xujie.sys.modules.part.mapper.PartInformationMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** +* @author Jia +* @description 针对表【plm_rfq_detail】的数据库操作Service实现 +* @createDate 2024-09-24 15:54:29 +*/ +@Service +public class InquiryDetailServiceImpl extends ServiceImpl + implements InquiryDetailService{ + + @Autowired + private InquiryDetailMapper inquiryDetailMapper; + + @Autowired + private InquiryDetailItemMapper inquiryDetailItemMapper; + + @Autowired + private PartInformationMapper partInformationMapper; + + @Override + public PageUtils searchInquiryDetailInfo(InquiryDetailData data){ + IPage page = inquiryDetailMapper.searchInquiryDetailInfo(new Page<>(data.getPage(), data.getLimit()), data); + return new PageUtils(page); + } + + @Override + @Transactional + public void addInquiryDetailInfo(InquiryDetailData data){ + data.setCreateDate(new Date()); + // 查询是否存在相同的产品编码 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("site", data.getSite()) + .eq("sourceBu", data.getBuNo()) + .eq("part_no", data.getPartNo()); + List list = partInformationMapper.selectList(queryWrapper); + if (!list.isEmpty()){ + throw new RuntimeException("该BU下已存在产品 "+data.getPartNo()+",请勿重复添加!"); + } + + // 添加产品信息 + PartInformationEntity partInformationEntity = new PartInformationEntity(); + partInformationEntity.setSite(data.getSite()); + partInformationEntity.setBuNo(data.getBuNo()); + partInformationEntity.setPartNo(data.getPartNo()); + partInformationEntity.setPartDesc(data.getPartDesc()); + partInformationEntity.setUmId(data.getUmId()); + partInformationEntity.setCodeNo(data.getCodeNo()); + partInformationEntity.setActive("Y"); + partInformationEntity.setCreateBy(data.getCreateBy()); + partInformationEntity.setCreateDate(data.getCreateDate()); + partInformationMapper.insert(partInformationEntity); + PartInformationEntity partInfoId = partInformationMapper.selectOne(queryWrapper); + data.setTestPartId(partInfoId.getId()); + // 添加询价产品信息 + inquiryDetailMapper.insert(data); + + + InquiryDetailItemData inquiryDetailItemData = new InquiryDetailItemData(); + inquiryDetailItemData.setSite(data.getSite()); + inquiryDetailItemData.setBuNo(data.getBuNo()); + inquiryDetailItemData.setCodeNo(data.getCodeNo()); + inquiryDetailItemData.setRecordType("PRICECHECK"); + // 查询相应的模板属性 + List itemList = inquiryDetailMapper.getItemListByRecordTypeAndCodeNo(inquiryDetailItemData); + // 拿到最大的询价产品ID + List inquiryDetailData = inquiryDetailMapper.selectList(null); + Integer inquiryDetailDataId = inquiryDetailData.get(inquiryDetailData.size()-1).getId(); + // 遍历属性并根据ID插入询价产品属性 + for (InquiryDetailItemData itemData : itemList) { + itemData.setInquiryPartId(inquiryDetailDataId); + + itemData.setCreateBy(data.getCreateBy()); + itemData.setCreateDate(data.getCreateDate()); + inquiryDetailItemMapper.insert(itemData); + } + } + + @Override + @Transactional + public void updateInquiryDetailInfo(InquiryDetailData data){ + data.setUpdateDate(new Date()); + // 查询是否存在相同的产品编码(排除当前记录) + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("site", data.getSite()) + .eq("sourceBu", data.getBuNo()) + .eq("part_no", data.getPartNo()) + .ne("id", data.getTestPartId()); + List partInformationEntities = partInformationMapper.selectList(queryWrapper); + if (!partInformationEntities.isEmpty()){ + throw new RuntimeException("该BU下已存在产品 "+data.getPartNo()+",请重新填写产品编码!"); + } + // 更新产品信息 + PartInformationEntity partInformationEntity = partInformationMapper.selectById(data.getTestPartId()); + partInformationEntity.setPartNo(data.getPartNo()); + partInformationEntity.setPartDesc(data.getPartDesc()); + partInformationEntity.setUmId(data.getUmId()); + partInformationEntity.setCodeNo(data.getCodeNo()); + partInformationMapper.updateById(partInformationEntity); + // 更新询价产品信息 + inquiryDetailMapper.updateById(data); + } + + @Override + public void deleteInquiryDetailInfo(InquiryDetailData data){ + QueryWrapper eq = new QueryWrapper().eq("inquiry_part_id", data.getId()) + .eq("site", data.getSite()) + .eq("bu_no", data.getBuNo()) + .eq("record_type", "PRICECHECK"); + partInformationMapper.deleteById(data.getTestPartId()); + inquiryDetailMapper.deleteById(data); + inquiryDetailItemMapper.delete(eq); + } + + @Override + public PageUtils searchInquiryDetailHeaderInfo(InquiryDetailData data) { + if (data.getBu() != null && !data.getBu().equals("")) { + data.setBuNo(data.getBu().split("-")[1]); + } + IPage page = inquiryDetailMapper.searchInquiryDetailHeaderInfo(new Page<>(data.getPage(), data.getLimit()), data); + return new PageUtils(page); + } +} + + + + diff --git a/src/main/resources/mapper/inquiry/InquiryApplicationMapper.xml b/src/main/resources/mapper/inquiry/InquiryApplicationMapper.xml new file mode 100644 index 00000000..a84aec51 --- /dev/null +++ b/src/main/resources/mapper/inquiry/InquiryApplicationMapper.xml @@ -0,0 +1,57 @@ + + + + + + diff --git a/src/main/resources/mapper/inquiry/InquiryDetailItemMapper.xml b/src/main/resources/mapper/inquiry/InquiryDetailItemMapper.xml new file mode 100644 index 00000000..580404bc --- /dev/null +++ b/src/main/resources/mapper/inquiry/InquiryDetailItemMapper.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/src/main/resources/mapper/inquiry/InquiryDetailMapper.xml b/src/main/resources/mapper/inquiry/InquiryDetailMapper.xml new file mode 100644 index 00000000..6475f75b --- /dev/null +++ b/src/main/resources/mapper/inquiry/InquiryDetailMapper.xml @@ -0,0 +1,91 @@ + + + + + + +