Browse Source

2024-12-06

master
qiezi 2 years ago
parent
commit
645b3dc3a4
  1. 45
      src/main/java/com/spring/modules/quote/controller/QuoteDetailOtherController.java
  2. 44
      src/main/java/com/spring/modules/quote/controller/QuoteDetailTestController.java
  3. 57
      src/main/java/com/spring/modules/quote/entity/QuoteDetailOther.java
  4. 57
      src/main/java/com/spring/modules/quote/entity/QuoteDetailTest.java
  5. 16
      src/main/java/com/spring/modules/quote/mapper/QuoteDetailOtherMapper.java
  6. 16
      src/main/java/com/spring/modules/quote/mapper/QuoteDetailTestMapper.java
  7. 23
      src/main/java/com/spring/modules/quote/service/QuoteDetailOtherService.java
  8. 25
      src/main/java/com/spring/modules/quote/service/QuoteDetailTestService.java
  9. 79
      src/main/java/com/spring/modules/quote/service/impl/QuoteDetailOtherServiceImpl.java
  10. 44
      src/main/java/com/spring/modules/quote/service/impl/QuoteDetailServiceImpl.java
  11. 82
      src/main/java/com/spring/modules/quote/service/impl/QuoteDetailTestServiceImpl.java
  12. 2
      src/main/java/com/spring/modules/quote/service/impl/QuoteDetailToolServiceImpl.java
  13. 32
      src/main/resources/mapper/quote/QuoteDetailOtherMapper.xml
  14. 32
      src/main/resources/mapper/quote/QuoteDetailTestMapper.xml
  15. 1
      src/main/resources/mapper/quote/QuoteDetailToolMapper.xml

45
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<QuoteDetailOther> 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("操作成功");
}
}

44
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<QuoteDetailTest> 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("操作成功");
}
}

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

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

16
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<QuoteDetailOther> {
List<QuoteDetailOther> queryQuoteDetailOther(QuoteDetailOther quoteDetailOther);
int queryItemNo(QuoteDetailOther other);
}

16
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<QuoteDetailTest> {
List<QuoteDetailTest> queryQuoteDetailTest(QuoteDetailTest quoteDetailTest);
int queryItemNo(QuoteDetailTest test);
}

23
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<QuoteDetailOther> {
List<QuoteDetailOther> 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);
}

25
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<QuoteDetailTest> {
List<QuoteDetailTest> 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);
}

79
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<QuoteDetailOtherMapper, QuoteDetailOther> implements QuoteDetailOtherService {
@Override
public List<QuoteDetailOther> 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<QuoteDetailOther> 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);
}
}

44
src/main/java/com/spring/modules/quote/service/impl/QuoteDetailServiceImpl.java

@ -32,6 +32,8 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
@Autowired
private QuoteDetailRoutingService quoteDetailRoutingService;
@Autowired
private QuoteDetailTestService quoteDetailTestService;
@Autowired
private SysOssService sysOssService;
@Override
@ -77,6 +79,8 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
save(quoteDetail);
// 4初始化属性
quoteDetailAttributeService.initQuoteDetailAttribute(quoteDetail);
// 测试 默认插入其他列
quoteDetailTestService.saveQuoteDetailOtherTest(quoteDetail);
// 5初始化BOM结构和BOM/ROuting信息
quoteDetailBomTreeService.initQuoteDetailBomTree(quoteDetail, 0L, 0);
return quoteDetail;
@ -85,10 +89,19 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
@Override
@Transactional
public void removeQuoteDetail(Long id) {
Integer toolCount = quoteDetailToolService.lambdaQuery().eq(QuoteDetailTool::getQuoteDetailId, id).count();
if (toolCount > 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<QuoteDetailMapper, Quote
@Transactional
public void removeQuoteDetails(Quote quote) {
// 工具
Integer toolCount = quoteDetailToolService.lambdaQuery().eq(QuoteDetailTool::getQuoteId, quote.getId()).count();
if (toolCount > 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<QuoteDetailMapper, Quote
quoteDetailToolService.againQuoteDetailTool(quoteDetail, detailId);
// 属性
quoteDetailAttributeService.againQuoteDetailAttribute(quoteDetail, detailId);
// 测试
quoteDetailTestService.againQuoteDetailTest(quoteDetail, detailId);
// BomTree
quoteDetailBomTreeService.againQuoteDetailBomTree(quoteDetail, detailId);
}
@ -394,10 +418,12 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
Integer itemNo = baseMapper.queryItemNo(detail);
detail.setItemNo(itemNo);
save(detail);
// 工具
quoteDetailToolService.againQuoteDetailTool(detail, id);
// 属性
quoteDetailAttributeService.againQuoteDetailAttribute(detail, id);
// 测试
quoteDetailTestService.againQuoteDetailTest(detail, id);
// BomTree
quoteDetailBomTreeService.againQuoteDetailBomTree(detail, id);
}

82
src/main/java/com/spring/modules/quote/service/impl/QuoteDetailTestServiceImpl.java

@ -0,0 +1,82 @@
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.QuoteDetailRouting;
import com.spring.modules.quote.entity.QuoteDetailTest;
import com.spring.modules.quote.entity.QuoteDetailTool;
import com.spring.modules.quote.mapper.QuoteDetailTestMapper;
import com.spring.modules.quote.service.QuoteDetailTestService;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@Service
public class QuoteDetailTestServiceImpl extends ServiceImpl<QuoteDetailTestMapper, QuoteDetailTest> implements QuoteDetailTestService {
@Override
public List<QuoteDetailTest> 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<QuoteDetailTest> 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);
}
}

2
src/main/java/com/spring/modules/quote/service/impl/QuoteDetailToolServiceImpl.java

@ -102,7 +102,7 @@ public class QuoteDetailToolServiceImpl extends ServiceImpl<QuoteDetailToolMappe
tool.setQuoteUnitCost(BigDecimal.ZERO);
tool.setCreateBy(routing.getCreateBy());
tool.setCreateDate(routing.getCreateDate());
tool.setItemNo(baseMapper.queryItemNo(tool));
tool.setItemNo(0);
save(tool);
}
}

32
src/main/resources/mapper/quote/QuoteDetailOtherMapper.xml

@ -0,0 +1,32 @@
<?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.spring.modules.quote.mapper.QuoteDetailOtherMapper">
<select id="queryQuoteDetailOther" resultType="com.spring.modules.quote.entity.QuoteDetailOther">
select id,
quote_detail_id,
quote_id,
quote_no,
site,
bu_no,
version_no,
quote_detail_item_no,
item_no,
other_desc,
other_qty,
unit_cost,
markup,
quote_other_cost,
remark,
create_by,
create_date,
update_by,
update_date
from plm_quote_detail_other pqdt
where pqdt.quote_detail_id = #{quoteDetailId}
</select>
<select id="queryItemNo" resultType="int">
select isnull(max(item_no),0)+1 from plm_quote_detail_other where quote_detail_id = #{quoteDetailId}
</select>
</mapper>

32
src/main/resources/mapper/quote/QuoteDetailTestMapper.xml

@ -0,0 +1,32 @@
<?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.spring.modules.quote.mapper.QuoteDetailTestMapper">
<select id="queryQuoteDetailTest" resultType="com.spring.modules.quote.entity.QuoteDetailTest">
select id,
quote_detail_id,
quote_id,
quote_no,
site,
bu_no,
version_no,
quote_detail_item_no,
item_no,
test_desc,
test_qty,
unit_cost,
markup,
quote_test_cost,
remark,
create_by,
create_date,
update_by,
update_date
from plm_quote_detail_test pqdt
where pqdt.quote_detail_id = #{quoteDetailId}
</select>
<select id="queryItemNo" resultType="int">
select isnull(max(item_no),0)+1 from plm_quote_detail_test where quote_detail_id = #{quoteDetailId}
</select>
</mapper>

1
src/main/resources/mapper/quote/QuoteDetailToolMapper.xml

@ -44,6 +44,7 @@
and quote_detail_item_no = #{quoteDetailItemNo}
</if>
</where>
order by qdt.item_no desc
</select>
<select id="queryItemNo" resultType="int">

Loading…
Cancel
Save