Browse Source

2024.9.25 询价管理 - 询价申请(新) 第一版

询价管理 - 询价明细 第一版
java8
yuejiayang 2 years ago
parent
commit
49e5c8e6c3
  1. 112
      src/main/java/com/xujie/sys/modules/inquiry/controller/InquiryController.java
  2. 101
      src/main/java/com/xujie/sys/modules/inquiry/data/InquiryApplicationData.java
  3. 132
      src/main/java/com/xujie/sys/modules/inquiry/data/InquiryDetailData.java
  4. 86
      src/main/java/com/xujie/sys/modules/inquiry/data/InquiryDetailItemData.java
  5. 24
      src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryApplicationMapper.java
  6. 26
      src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryDetailItemMapper.java
  7. 45
      src/main/java/com/xujie/sys/modules/inquiry/mapper/InquiryDetailMapper.java
  8. 21
      src/main/java/com/xujie/sys/modules/inquiry/service/InquiryApplicationService.java
  9. 18
      src/main/java/com/xujie/sys/modules/inquiry/service/InquiryDetailItemService.java
  10. 27
      src/main/java/com/xujie/sys/modules/inquiry/service/InquiryDetailService.java
  11. 99
      src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryApplicationServiceImpl.java
  12. 47
      src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryDetailItemServiceImpl.java
  13. 146
      src/main/java/com/xujie/sys/modules/inquiry/service/impl/InquiryDetailServiceImpl.java
  14. 57
      src/main/resources/mapper/inquiry/InquiryApplicationMapper.xml
  15. 34
      src/main/resources/mapper/inquiry/InquiryDetailItemMapper.xml
  16. 91
      src/main/resources/mapper/inquiry/InquiryDetailMapper.xml

112
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<InquiryDetailItemData> rows = inquiryDetailItemService.getItemListByInquiryPartAndCodeNo(data);
return R.ok().put("rows", rows);
}
@PostMapping("/inquiryDetailItem/updateInquiryPartItemList")
@ResponseBody
public R updateInquiryPartItemList(@RequestBody List<InquiryDetailItemData> list){
inquiryDetailItemService.updateInquiryPartItemList(list);
return R.ok();
}
}

101
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;
}

132
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;
}

86
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<InquiryDetailItemData> 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<InquiryDetailItemData> availableValueList;
private static final long serialVersionUID = 1L;
}

24
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<InquiryApplicationData> {
IPage<InquiryApplicationData> searchInquiryApplicationInfo(Page<InquiryApplicationData> inquiryApplicationDataPage, @Param("query") InquiryApplicationData data);
}

26
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<InquiryDetailItemData> {
List<InquiryDetailItemData> getItemListByInquiryPartAndCodeNo(InquiryDetailItemData data);
List<InquiryDetailItemData> searchInquiryDetailItemAvailable(InquiryDetailItemData inquiryDetailItemData);
}

45
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<InquiryDetailData> {
IPage<InquiryDetailData> searchInquiryDetailInfo(Page<InquiryDetailData> 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<InquiryDetailItemData> getItemListByRecordTypeAndCodeNo(InquiryDetailItemData inquiryDetailItemData);
IPage<InquiryDetailData> searchInquiryDetailHeaderInfo(Page<Object> objectPage,@Param("query") InquiryDetailData data);
}

21
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<InquiryApplicationData> {
PageUtils searchInquiryApplicationInfo(InquiryApplicationData data);
void addInquiryApplicationInfo(InquiryApplicationData data);
void updateInquiryApplicationInfo(InquiryApplicationData data);
void deleteInquiryApplicationInfo(InquiryApplicationData data);
}

18
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<InquiryDetailItemData> {
List<InquiryDetailItemData> getItemListByInquiryPartAndCodeNo(InquiryDetailItemData data);
void updateInquiryPartItemList(List<InquiryDetailItemData> list);
}

27
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<InquiryDetailData> {
PageUtils searchInquiryDetailInfo(InquiryDetailData data);
void addInquiryDetailInfo(InquiryDetailData data);
void updateInquiryDetailInfo(InquiryDetailData data);
void deleteInquiryDetailInfo(InquiryDetailData data);
PageUtils searchInquiryDetailHeaderInfo(InquiryDetailData data);
}

99
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<InquiryApplicationMapper, InquiryApplicationData>
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<InquiryApplicationData> 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<InquiryApplicationData> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("rfq_no", data.getRfqNo())
.eq("site", data.getSite())
.eq("bu_no", data.getBuNo());
List<InquiryApplicationData> 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<InquiryApplicationData> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("rfq_no", data.getRfqNo())
.eq("site", data.getSite())
.eq("bu_no", data.getBuNo())
.ne("id", data.getId());
List<InquiryApplicationData> 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<InquiryDetailData> eq = new QueryWrapper<InquiryDetailData>().eq("rfq_id", data.getId())
.eq("site", data.getSite());
List<InquiryDetailData> list = inquiryDetailMapper.selectList(eq);
if (!list.isEmpty()) {
throw new RuntimeException("该询价单下存在产品,无法删除!");
}
// 删除询价单
inquiryApplicationMapper.deleteById(data.getId());
}
}

47
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<InquiryDetailItemMapper, InquiryDetailItemData>
implements InquiryDetailItemService{
@Autowired
private InquiryDetailItemMapper inquiryDetailItemMapper;
@Override
public List<InquiryDetailItemData> getItemListByInquiryPartAndCodeNo(InquiryDetailItemData data) {
List<InquiryDetailItemData> result = inquiryDetailItemMapper.getItemListByInquiryPartAndCodeNo(data);
for (int i = 0; i < result.size(); i++) {
if ("Y".equals(result.get(i).getValueChooseFlag())) {
List<InquiryDetailItemData> availableList = inquiryDetailItemMapper.searchInquiryDetailItemAvailable(result.get(i));
result.get(i).setAvailableValueList(availableList);
}
}
return result;
}
@Override
public void updateInquiryPartItemList(List<InquiryDetailItemData> list) {
for (InquiryDetailItemData itemData : list) {
inquiryDetailItemMapper.updateById(itemData);
}
}
}

146
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<InquiryDetailMapper, InquiryDetailData>
implements InquiryDetailService{
@Autowired
private InquiryDetailMapper inquiryDetailMapper;
@Autowired
private InquiryDetailItemMapper inquiryDetailItemMapper;
@Autowired
private PartInformationMapper partInformationMapper;
@Override
public PageUtils searchInquiryDetailInfo(InquiryDetailData data){
IPage<InquiryDetailData> 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<PartInformationEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("site", data.getSite())
.eq("sourceBu", data.getBuNo())
.eq("part_no", data.getPartNo());
List<PartInformationEntity> 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<InquiryDetailItemData> itemList = inquiryDetailMapper.getItemListByRecordTypeAndCodeNo(inquiryDetailItemData);
// 拿到最大的询价产品ID
List<InquiryDetailData> 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<PartInformationEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("site", data.getSite())
.eq("sourceBu", data.getBuNo())
.eq("part_no", data.getPartNo())
.ne("id", data.getTestPartId());
List<PartInformationEntity> 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<InquiryDetailItemData> eq = new QueryWrapper<InquiryDetailItemData>().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<InquiryDetailData> page = inquiryDetailMapper.searchInquiryDetailHeaderInfo(new Page<>(data.getPage(), data.getLimit()), data);
return new PageUtils(page);
}
}

57
src/main/resources/mapper/inquiry/InquiryApplicationMapper.xml

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xujie.sys.modules.inquiry.mapper.InquiryApplicationMapper">
<select id="searchInquiryApplicationInfo"
resultType="com.xujie.sys.modules.inquiry.data.InquiryApplicationData">
SELECT
*,
site + '_' + bu_no as bu,
dbo.get_bu_desc(site,bu_no) AS bu_desc,
dbo.plm_get_customer_desc(site,customer_no) AS customer_desc,
dbo.get_quoter_name(site,quoter) AS quoter_name,
dbo.get_requester_name(site,requester) AS requester_name
FROM
plm_rfq_header
<where>
<if test="query.buNo != null and query.buNo != ''">
AND bu_no = #{query.buNo}
</if>
<if test="query.rfqNo != null and query.rfqNo != ''">
AND rfq_no like #{query.rfqNo}
</if>
<if test="query.customerNo != null and query.customerNo != ''">
AND customer_no like #{query.customerNo}
</if>
<if test="query.customerDesc != null and query.customerDesc != ''">
AND dbo.plm_get_customer_desc ( site, customer_no ) like #{query.customerDesc}
</if>
<if test="query.requesterName != null and query.requesterName != ''">
AND dbo.get_requester_name(site,requester) like #{query.requesterName}
</if>
<if test="query.quoterName != null and query.quoterName != ''">
AND dbo.get_quoter_name(site,quoter) like #{query.quoterName}
</if>
<if test="query.priorityLevel != null and query.priorityLevel != ''">
AND priority_level = #{query.priorityLevel}
</if>
<if test="query.status != null and query.status != ''">
AND status = #{query.status}
</if>
<if test="query.requestStartDate != null">
AND request_date >= #{query.requestStartDate}
</if>
<if test="query.requestEndDate != null">
AND #{query.requestEndDate} >= request_date
</if>
<if test="query.requiredCompletionStartDate != null">
AND required_completion_date >= #{query.requiredCompletionStartDate}
</if>
<if test="query.requiredCompletionEndDate != null">
AND #{query.requiredCompletionEndDate} >= required_completion_date
</if>
</where>
</select>
</mapper>

34
src/main/resources/mapper/inquiry/InquiryDetailItemMapper.xml

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xujie.sys.modules.inquiry.mapper.InquiryDetailItemMapper">
<select id="getItemListByInquiryPartAndCodeNo"
resultType="com.xujie.sys.modules.inquiry.data.InquiryDetailItemData">
SELECT
a.*,
b.item_desc,
b.value_type,
b.value_type_db,
b.value_choose_flag
FROM
plm_rfq_detail_item as a
left join plm_properties_item as b on b.item_type = a.record_type and b.item_no = a.item_no and b.site = a.site and b.bu_no = a.bu_no
WHERE
a.inquiry_part_id = #{inquiryPartId}
and a.bu_no = #{buNo}
and a.site = #{site}
and a.record_type = #{recordType}
</select>
<select id="searchInquiryDetailItemAvailable"
resultType="com.xujie.sys.modules.inquiry.data.InquiryDetailItemData">
SELECT
a.item_no,
b.valueNo,
b.availableValue
FROM
plm_properties_item as a
left join plm_properties_item_available as b on a.id = b.item_id
where b.itemNo = #{itemNo} and b.site = #{site} and b.itemType = #{recordType} and b.bu_no = #{buNo}
</select>
</mapper>

91
src/main/resources/mapper/inquiry/InquiryDetailMapper.xml

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xujie.sys.modules.inquiry.mapper.InquiryDetailMapper">
<select id="searchInquiryDetailInfo" resultType="com.xujie.sys.modules.inquiry.data.InquiryDetailData">
select *,
dbo.Get_PartNo_ByPartId(site,test_part_id) AS part_no,
dbo.Get_PartDesc_ByPartId(site,test_part_id) AS part_desc,
#{query.buNo} AS bu_no,
dbo.get_bu_desc(site,#{query.buNo}) AS bu_desc,
dbo.qc_get_um_name(site,um_id) AS um_name,
dbo.get_code_desc(site,#{query.buNo},code_no,'PRICECHECK') AS code_desc
from plm_rfq_detail
where rfq_id = #{query.rfqId}
</select>
<select id="searchInquiryDetailHeaderInfo"
resultType="com.xujie.sys.modules.inquiry.data.InquiryDetailData">
SELECT
a.*,
b.bu_no,
b.rfq_no,
b.customer_no,
b.customer_inquiry_no,
b.required_completion_date,
b.requester,
b.request_date,
b.quoter,
b.priority_level,
b.status,
dbo.Get_PartNo_ByPartId ( a.site, a.test_part_id ) AS part_no,
dbo.Get_PartDesc_ByPartId ( a.site, a.test_part_id ) AS part_desc,
dbo.get_bu_desc ( b.site, b.bu_no ) AS bu_desc,
dbo.qc_get_um_name ( a.site, a.um_id ) AS um_name,
dbo.get_code_desc ( a.site, b.bu_no, a.code_no, 'PRICECHECK' ) AS code_desc,
dbo.plm_get_customer_desc(b.site,b.customer_no) AS customer_desc,
dbo.get_quoter_name(b.site,b.quoter) AS quoter_name,
dbo.get_requester_name(b.site,b.requester) AS requester_name
FROM
plm_rfq_detail a
LEFT JOIN plm_rfq_header b ON a.rfq_id = b.id
<where>
<if test="query.id != null">
AND a.id = #{query.id}
</if>
<if test="query.buNo != null and query.buNo != ''">
AND b.bu_no = #{query.buNo}
</if>
<if test="query.rfqNo != null and query.rfqNo != ''">
AND b.rfq_no like #{query.rfqNo}
</if>
<if test="query.partNo != null and query.partNo != ''">
AND dbo.Get_PartNo_ByPartId ( a.site, a.test_part_id ) like #{query.partNo}
</if>
<if test="query.partDesc != null and query.partDesc != ''">
AND dbo.Get_PartDesc_ByPartId ( a.site, a.test_part_id ) like #{query.partDesc}
</if>
<if test="query.customerNo != null and query.customerNo != ''">
AND b.customer_no like #{query.customerNo}
</if>
<if test="query.customerDesc != null and query.customerDesc != ''">
AND dbo.plm_get_customer_desc ( b.site, b.customer_no ) like #{query.customerDesc}
</if>
<if test="query.requesterName != null and query.requesterName != ''">
AND dbo.get_requester_name(b.site,b.requester) like #{query.requesterName}
</if>
<if test="query.quoterName != null and query.quoterName != ''">
AND dbo.get_quoter_name(b.site,b.quoter) like #{query.quoterName}
</if>
<if test="query.priorityLevel != null and query.priorityLevel != ''">
AND b.priority_level = #{query.priorityLevel}
</if>
<if test="query.status != null and query.status != ''">
AND a.status = #{query.status}
</if>
<if test="query.requestStartDate != null">
AND b.request_date >= #{query.requestStartDate}
</if>
<if test="query.requestEndDate != null">
AND #{query.requestEndDate} >= b.request_date
</if>
<if test="query.requiredCompletionStartDate != null">
AND b.required_completion_date >= #{query.requiredCompletionStartDate}
</if>
<if test="query.requiredCompletionEndDate != null">
AND #{query.requiredCompletionEndDate} >= b.required_completion_date
</if>
</where>
</select>
</mapper>
Loading…
Cancel
Save