From 645b3dc3a47dcec161bbc1383f9061444baf4588 Mon Sep 17 00:00:00 2001 From: qiezi <15576055375@163.com> Date: Fri, 6 Dec 2024 15:50:34 +0800 Subject: [PATCH] 2024-12-06 --- .../QuoteDetailOtherController.java | 45 ++++++++++ .../controller/QuoteDetailTestController.java | 44 ++++++++++ .../quote/entity/QuoteDetailOther.java | 57 +++++++++++++ .../modules/quote/entity/QuoteDetailTest.java | 57 +++++++++++++ .../quote/mapper/QuoteDetailOtherMapper.java | 16 ++++ .../quote/mapper/QuoteDetailTestMapper.java | 16 ++++ .../service/QuoteDetailOtherService.java | 23 ++++++ .../quote/service/QuoteDetailTestService.java | 25 ++++++ .../impl/QuoteDetailOtherServiceImpl.java | 79 ++++++++++++++++++ .../service/impl/QuoteDetailServiceImpl.java | 44 ++++++++-- .../impl/QuoteDetailTestServiceImpl.java | 82 +++++++++++++++++++ .../impl/QuoteDetailToolServiceImpl.java | 2 +- .../mapper/quote/QuoteDetailOtherMapper.xml | 32 ++++++++ .../mapper/quote/QuoteDetailTestMapper.xml | 32 ++++++++ .../mapper/quote/QuoteDetailToolMapper.xml | 1 + 15 files changed, 545 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/spring/modules/quote/controller/QuoteDetailOtherController.java create mode 100644 src/main/java/com/spring/modules/quote/controller/QuoteDetailTestController.java create mode 100644 src/main/java/com/spring/modules/quote/entity/QuoteDetailOther.java create mode 100644 src/main/java/com/spring/modules/quote/entity/QuoteDetailTest.java create mode 100644 src/main/java/com/spring/modules/quote/mapper/QuoteDetailOtherMapper.java create mode 100644 src/main/java/com/spring/modules/quote/mapper/QuoteDetailTestMapper.java create mode 100644 src/main/java/com/spring/modules/quote/service/QuoteDetailOtherService.java create mode 100644 src/main/java/com/spring/modules/quote/service/QuoteDetailTestService.java create mode 100644 src/main/java/com/spring/modules/quote/service/impl/QuoteDetailOtherServiceImpl.java create mode 100644 src/main/java/com/spring/modules/quote/service/impl/QuoteDetailTestServiceImpl.java create mode 100644 src/main/resources/mapper/quote/QuoteDetailOtherMapper.xml create mode 100644 src/main/resources/mapper/quote/QuoteDetailTestMapper.xml diff --git a/src/main/java/com/spring/modules/quote/controller/QuoteDetailOtherController.java b/src/main/java/com/spring/modules/quote/controller/QuoteDetailOtherController.java new file mode 100644 index 00000000..3bc63492 --- /dev/null +++ b/src/main/java/com/spring/modules/quote/controller/QuoteDetailOtherController.java @@ -0,0 +1,45 @@ +package com.spring.modules.quote.controller; + + +import com.spring.common.utils.R; +import com.spring.modules.quote.entity.QuoteDetailOther; +import com.spring.modules.quote.service.QuoteDetailOtherService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/quote/detail/other") +public class QuoteDetailOtherController { + + @Autowired + private QuoteDetailOtherService quoteDetailOtherService; + + @PostMapping("/list") + public R queryQuoteDetailOther(@RequestBody QuoteDetailOther other) { + List list = quoteDetailOtherService.queryQuoteDetailOther(other); + return R.ok().put("rows", list); + } + + @PostMapping("/save") + public R saveQuoteDetailOther(@RequestBody QuoteDetailOther other) { + quoteDetailOtherService.saveQuoteDetailOther(other); + return R.ok("操作成功"); + } + + @PostMapping("/remove") + public R removeQuoteDetailOther(@RequestBody QuoteDetailOther other) { + quoteDetailOtherService.removeQuoteDetailOther(other); + return R.ok("操作成功"); + } + + @PostMapping("/update") + public R updateQuoteDetailOther(@RequestBody QuoteDetailOther other) { + quoteDetailOtherService.updateQuoteDetailOther(other); + return R.ok("操作成功"); + } +} diff --git a/src/main/java/com/spring/modules/quote/controller/QuoteDetailTestController.java b/src/main/java/com/spring/modules/quote/controller/QuoteDetailTestController.java new file mode 100644 index 00000000..599f1915 --- /dev/null +++ b/src/main/java/com/spring/modules/quote/controller/QuoteDetailTestController.java @@ -0,0 +1,44 @@ +package com.spring.modules.quote.controller; + + +import com.spring.common.utils.R; +import com.spring.modules.quote.entity.QuoteDetailTest; +import com.spring.modules.quote.entity.QuoteDetailTool; +import com.spring.modules.quote.service.QuoteDetailTestService; +import com.spring.modules.quote.service.QuoteDetailToolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/quote/detail/test") +public class QuoteDetailTestController { + + @Autowired + private QuoteDetailTestService quoteDetailTestService; + + @PostMapping("/list") + public R queryQuoteDetailTest(@RequestBody QuoteDetailTest test) { + List list = quoteDetailTestService.queryQuoteDetailTest(test); + return R.ok().put("rows", list); + } + + @PostMapping("/save") + public R saveQuoteDetailTest(@RequestBody QuoteDetailTest test) { + quoteDetailTestService.saveQuoteDetailTest(test); + return R.ok("操作成功"); + } + + @PostMapping("/remove") + public R removeQuoteDetailTest(@RequestBody QuoteDetailTest test) { + quoteDetailTestService.removeQuoteDetailTest(test); + return R.ok("操作成功"); + } + + @PostMapping("/update") + public R updateQuoteDetailTest(@RequestBody QuoteDetailTest test) { + quoteDetailTestService.updateQuoteDetailTest(test); + return R.ok("操作成功"); + } +} diff --git a/src/main/java/com/spring/modules/quote/entity/QuoteDetailOther.java b/src/main/java/com/spring/modules/quote/entity/QuoteDetailOther.java new file mode 100644 index 00000000..b05bab8e --- /dev/null +++ b/src/main/java/com/spring/modules/quote/entity/QuoteDetailOther.java @@ -0,0 +1,57 @@ +package com.spring.modules.quote.entity; + + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +@TableName("plm_quote_detail_other") +@Data +public class QuoteDetailOther { + + @TableId + private Long id; + + private Long quoteDetailId; + + private Long quoteId; + + private String quoteNo; + + private String site; + + private String buNo; + + private String versionNo; + + private Integer quoteDetailItemNo; + + private Integer itemNo; + + private String otherDesc; + + private BigDecimal otherQty; + + private BigDecimal unitCost; + + private BigDecimal markup; + + private BigDecimal quoteOtherCost; + + private String remark; + + private String createBy; + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date createDate; + + private String updateBy; + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date updateDate; +} diff --git a/src/main/java/com/spring/modules/quote/entity/QuoteDetailTest.java b/src/main/java/com/spring/modules/quote/entity/QuoteDetailTest.java new file mode 100644 index 00000000..24bcf1f3 --- /dev/null +++ b/src/main/java/com/spring/modules/quote/entity/QuoteDetailTest.java @@ -0,0 +1,57 @@ +package com.spring.modules.quote.entity; + + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +@TableName("plm_quote_detail_test") +@Data +public class QuoteDetailTest { + + @TableId + private Long id; + + private Long quoteDetailId; + + private Long quoteId; + + private String quoteNo; + + private String site; + + private String buNo; + + private String versionNo; + + private Integer quoteDetailItemNo; + + private Integer itemNo; + + private String testDesc; + + private BigDecimal testQty; + + private BigDecimal unitCost; + + private BigDecimal markup; + + private BigDecimal quoteTestCost; + + private String remark; + + private String createBy; + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date createDate; + + private String updateBy; + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date updateDate; +} diff --git a/src/main/java/com/spring/modules/quote/mapper/QuoteDetailOtherMapper.java b/src/main/java/com/spring/modules/quote/mapper/QuoteDetailOtherMapper.java new file mode 100644 index 00000000..ebf56219 --- /dev/null +++ b/src/main/java/com/spring/modules/quote/mapper/QuoteDetailOtherMapper.java @@ -0,0 +1,16 @@ +package com.spring.modules.quote.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.spring.modules.quote.entity.QuoteDetailOther; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface QuoteDetailOtherMapper extends BaseMapper { + + + List queryQuoteDetailOther(QuoteDetailOther quoteDetailOther); + + int queryItemNo(QuoteDetailOther other); +} diff --git a/src/main/java/com/spring/modules/quote/mapper/QuoteDetailTestMapper.java b/src/main/java/com/spring/modules/quote/mapper/QuoteDetailTestMapper.java new file mode 100644 index 00000000..c70fdea9 --- /dev/null +++ b/src/main/java/com/spring/modules/quote/mapper/QuoteDetailTestMapper.java @@ -0,0 +1,16 @@ +package com.spring.modules.quote.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.spring.modules.quote.entity.QuoteDetailTest; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface QuoteDetailTestMapper extends BaseMapper { + + + List queryQuoteDetailTest(QuoteDetailTest quoteDetailTest); + + int queryItemNo(QuoteDetailTest test); +} diff --git a/src/main/java/com/spring/modules/quote/service/QuoteDetailOtherService.java b/src/main/java/com/spring/modules/quote/service/QuoteDetailOtherService.java new file mode 100644 index 00000000..953ce633 --- /dev/null +++ b/src/main/java/com/spring/modules/quote/service/QuoteDetailOtherService.java @@ -0,0 +1,23 @@ +package com.spring.modules.quote.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.spring.modules.quote.entity.QuoteDetail; +import com.spring.modules.quote.entity.QuoteDetailOther; + +import java.util.List; + +public interface QuoteDetailOtherService extends IService { + + + List queryQuoteDetailOther(QuoteDetailOther other); + + void saveQuoteDetailOther(QuoteDetailOther other); + + void removeQuoteDetailOther(QuoteDetailOther other); + + void updateQuoteDetailOther(QuoteDetailOther other); + + void againQuoteDetailOther(QuoteDetail detail,Long detailId); + + void saveQuoteDetailOtherOther(QuoteDetail detail); +} diff --git a/src/main/java/com/spring/modules/quote/service/QuoteDetailTestService.java b/src/main/java/com/spring/modules/quote/service/QuoteDetailTestService.java new file mode 100644 index 00000000..24257e74 --- /dev/null +++ b/src/main/java/com/spring/modules/quote/service/QuoteDetailTestService.java @@ -0,0 +1,25 @@ +package com.spring.modules.quote.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.spring.modules.quote.entity.QuoteDetail; +import com.spring.modules.quote.entity.QuoteDetailRouting; +import com.spring.modules.quote.entity.QuoteDetailTest; +import com.spring.modules.quote.entity.QuoteDetailTool; + +import java.util.List; + +public interface QuoteDetailTestService extends IService { + + + List queryQuoteDetailTest(QuoteDetailTest test); + + void saveQuoteDetailTest(QuoteDetailTest test); + + void removeQuoteDetailTest(QuoteDetailTest test); + + void updateQuoteDetailTest(QuoteDetailTest test); + + void againQuoteDetailTest(QuoteDetail detail,Long detailId); + + void saveQuoteDetailOtherTest(QuoteDetail detail); +} diff --git a/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailOtherServiceImpl.java b/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailOtherServiceImpl.java new file mode 100644 index 00000000..d6af508c --- /dev/null +++ b/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailOtherServiceImpl.java @@ -0,0 +1,79 @@ +package com.spring.modules.quote.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.spring.modules.quote.entity.QuoteDetail; +import com.spring.modules.quote.entity.QuoteDetailOther; +import com.spring.modules.quote.mapper.QuoteDetailOtherMapper; +import com.spring.modules.quote.service.QuoteDetailOtherService; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + + +@Service +public class QuoteDetailOtherServiceImpl extends ServiceImpl implements QuoteDetailOtherService { + + @Override + public List queryQuoteDetailOther(QuoteDetailOther other) { + return baseMapper.queryQuoteDetailOther(other); + } + + @Override + public void saveQuoteDetailOther(QuoteDetailOther other) { + other.setCreateDate(new Date()); + other.setItemNo(baseMapper.queryItemNo(other)); + save(other); + } + + @Override + public void removeQuoteDetailOther(QuoteDetailOther other) { + removeById(other.getId()); + } + + @Override + public void updateQuoteDetailOther(QuoteDetailOther other) { + other.setUpdateDate(new Date()); + updateById(other); + } + + @Override + public void againQuoteDetailOther(QuoteDetail quoteDetail, Long detailId) { + List list = lambdaQuery().eq(QuoteDetailOther::getQuoteDetailId, detailId).list(); + for (QuoteDetailOther other : list) { + other.setQuoteId(quoteDetail.getQuoteId()); + other.setQuoteDetailId(quoteDetail.getId()); + other.setQuoteNo(quoteDetail.getQuoteNo()); + other.setVersionNo(quoteDetail.getVersionNo()); + other.setQuoteDetailItemNo(quoteDetail.getItemNo()); + other.setCreateBy(quoteDetail.getCreateBy()); + other.setCreateDate(quoteDetail.getCreateDate()); + other.setUpdateBy(quoteDetail.getUpdateBy()); + other.setUpdateDate(quoteDetail.getUpdateDate()); + other.setId(null); + save(other); + } + } + + @Override + public void saveQuoteDetailOtherOther(QuoteDetail detail) { + QuoteDetailOther other = new QuoteDetailOther(); + other.setQuoteDetailId(detail.getId()); + other.setQuoteId(detail.getQuoteId()); + other.setQuoteNo(detail.getQuoteNo()); + other.setSite(detail.getSite()); + other.setBuNo(detail.getBuNo()); + other.setVersionNo(detail.getVersionNo()); + other.setQuoteDetailItemNo(detail.getItemNo()); + other.setOtherDesc("其他"); + other.setOtherQty(BigDecimal.ZERO); + other.setUnitCost(BigDecimal.ZERO); + other.setMarkup(BigDecimal.ZERO); + other.setQuoteOtherCost(BigDecimal.ZERO); + other.setCreateBy(detail.getCreateBy()); + other.setCreateDate(detail.getCreateDate()); + other.setItemNo(0); + save(other); + } +} diff --git a/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailServiceImpl.java b/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailServiceImpl.java index f14750f3..87500700 100644 --- a/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailServiceImpl.java +++ b/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailServiceImpl.java @@ -32,6 +32,8 @@ public class QuoteDetailServiceImpl extends ServiceImpl 0) { - throw new RuntimeException("该报价包含工具,请先删除工具"); - } +// Integer toolCount = quoteDetailToolService.lambdaQuery().eq(QuoteDetailTool::getQuoteDetailId, id).count(); +// if (toolCount > 0) { +// throw new RuntimeException("该报价包含工具,请先删除工具"); +// } +// // 测试 +// Integer testCount = quoteDetailTestService.lambdaQuery().eq(QuoteDetailTest::getQuoteDetailId, id).count(); +// if (testCount > 0) { +// throw new RuntimeException("该报价包含测试,请先删除测试"); +// } + // 工具 + quoteDetailToolService.lambdaUpdate().eq(QuoteDetailTool::getQuoteDetailId, id).remove(); + // 测试 + quoteDetailTestService.lambdaUpdate().eq(QuoteDetailTest::getQuoteDetailId, id).remove(); quoteDetailAttributeService.lambdaUpdate().eq(QuoteDetailAttribute::getQuoteDetailId, id).remove(); quoteDetailBomTreeService.lambdaUpdate().eq(QuoteDetailBomTree::getQuoteDetailId, id).remove(); quoteDetailBomService.lambdaUpdate().eq(QuoteDetailBom::getQuoteDetailId, id).remove(); @@ -100,15 +113,24 @@ public class QuoteDetailServiceImpl extends ServiceImpl 0) { - throw new RuntimeException("该报价包含工具,请先删除工具"); - } +// Integer toolCount = quoteDetailToolService.lambdaQuery().eq(QuoteDetailTool::getQuoteId, quote.getId()).count(); +// if (toolCount > 0) { +// throw new RuntimeException("该报价包含工具,请先删除工具"); +// } +// // 测试 +// Integer testCount = quoteDetailTestService.lambdaQuery().eq(QuoteDetailTest::getQuoteId, quote.getId()).count(); +// if (testCount > 0) { +// throw new RuntimeException("该报价包含测试,请先删除测试"); +// } // 附件信息 sysOssService.lambdaUpdate() .eq(SysOssEntity::getOrderRef1,quote.getSite()) .eq(SysOssEntity::getOrderRef2,quote.getQuoteVersionNo()) .remove(); + // 工具 + quoteDetailToolService.lambdaUpdate().eq(QuoteDetailTool::getQuoteId, quote.getId()).remove(); + // 测试 + quoteDetailTestService.lambdaUpdate().eq(QuoteDetailTest::getQuoteId, quote.getId()).remove(); // 属性 其他成本 quoteDetailAttributeService.lambdaUpdate().eq(QuoteDetailAttribute::getQuoteId, quote.getId()).remove(); // BOM结构 @@ -376,6 +398,8 @@ public class QuoteDetailServiceImpl extends ServiceImpl implements QuoteDetailTestService { + + @Override + public List queryQuoteDetailTest(QuoteDetailTest test) { + return baseMapper.queryQuoteDetailTest(test); + } + + @Override + public void saveQuoteDetailTest(QuoteDetailTest test) { + test.setCreateDate(new Date()); + test.setItemNo(baseMapper.queryItemNo(test)); + save(test); + } + + @Override + public void removeQuoteDetailTest(QuoteDetailTest test) { + removeById(test.getId()); + } + + @Override + public void updateQuoteDetailTest(QuoteDetailTest test) { + test.setUpdateDate(new Date()); + updateById(test); + } + + @Override + public void againQuoteDetailTest(QuoteDetail quoteDetail, Long detailId) { + List list = lambdaQuery().eq(QuoteDetailTest::getQuoteDetailId, detailId).list(); + for (QuoteDetailTest test : list) { + test.setQuoteId(quoteDetail.getQuoteId()); + test.setQuoteDetailId(quoteDetail.getId()); + test.setQuoteNo(quoteDetail.getQuoteNo()); + test.setVersionNo(quoteDetail.getVersionNo()); + test.setQuoteDetailItemNo(quoteDetail.getItemNo()); + test.setCreateBy(quoteDetail.getCreateBy()); + test.setCreateDate(quoteDetail.getCreateDate()); + test.setUpdateBy(quoteDetail.getUpdateBy()); + test.setUpdateDate(quoteDetail.getUpdateDate()); + test.setId(null); + save(test); + } + } + + @Override + public void saveQuoteDetailOtherTest(QuoteDetail detail) { + QuoteDetailTest test = new QuoteDetailTest(); + test.setQuoteDetailId(detail.getId()); + test.setQuoteId(detail.getQuoteId()); + test.setQuoteNo(detail.getQuoteNo()); + test.setSite(detail.getSite()); + test.setBuNo(detail.getBuNo()); + test.setVersionNo(detail.getVersionNo()); + test.setQuoteDetailItemNo(detail.getItemNo()); + test.setTestDesc("其他"); + test.setTestQty(BigDecimal.ZERO); + test.setUnitCost(BigDecimal.ZERO); + test.setMarkup(BigDecimal.ZERO); + test.setQuoteTestCost(BigDecimal.ZERO); + test.setCreateBy(detail.getCreateBy()); + test.setCreateDate(detail.getCreateDate()); + test.setItemNo(0); + save(test); + } +} diff --git a/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailToolServiceImpl.java b/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailToolServiceImpl.java index e71be2cc..3b84f919 100644 --- a/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailToolServiceImpl.java +++ b/src/main/java/com/spring/modules/quote/service/impl/QuoteDetailToolServiceImpl.java @@ -102,7 +102,7 @@ public class QuoteDetailToolServiceImpl extends ServiceImpl + + + + + + + diff --git a/src/main/resources/mapper/quote/QuoteDetailTestMapper.xml b/src/main/resources/mapper/quote/QuoteDetailTestMapper.xml new file mode 100644 index 00000000..605a49a9 --- /dev/null +++ b/src/main/resources/mapper/quote/QuoteDetailTestMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + diff --git a/src/main/resources/mapper/quote/QuoteDetailToolMapper.xml b/src/main/resources/mapper/quote/QuoteDetailToolMapper.xml index d4f4ba99..a9fee4a5 100644 --- a/src/main/resources/mapper/quote/QuoteDetailToolMapper.xml +++ b/src/main/resources/mapper/quote/QuoteDetailToolMapper.xml @@ -44,6 +44,7 @@ and quote_detail_item_no = #{quoteDetailItemNo} + order by qdt.item_no desc