Browse Source

Merge remote-tracking branch 'origin/master'

java8
wenkuan.shi 1 year ago
parent
commit
b7accf6672
  1. 5
      src/main/java/com/xujie/sys/modules/quote/controller/QuoteAttributeController.java
  2. 37
      src/main/java/com/xujie/sys/modules/quote/controller/QuoteDetailAttributeController.java
  3. 2
      src/main/java/com/xujie/sys/modules/quote/controller/QuoteDetailToolController.java
  4. 63
      src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailAttribute.java
  5. 19
      src/main/java/com/xujie/sys/modules/quote/mapper/QuoteDetailAttributeMapper.java
  6. 18
      src/main/java/com/xujie/sys/modules/quote/service/QuoteDetailAttributeService.java
  7. 39
      src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailAttributeServiceImpl.java
  8. 29
      src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java
  9. 76
      src/main/resources/mapper/quote/QuoteDetailAttributeMapper.xml

5
src/main/java/com/xujie/sys/modules/quote/controller/QuoteAttributeController.java

@ -1,5 +0,0 @@
package com.xujie.sys.modules.quote.controller;
public class QuoteAttributeController {
}

37
src/main/java/com/xujie/sys/modules/quote/controller/QuoteDetailAttributeController.java

@ -0,0 +1,37 @@
package com.xujie.sys.modules.quote.controller;
import com.xujie.sys.common.utils.R;
import com.xujie.sys.modules.quote.entity.QuoteDetailAttribute;
import com.xujie.sys.modules.quote.service.QuoteDetailAttributeService;
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/attribute")
public class QuoteDetailAttributeController {
@Autowired
private QuoteDetailAttributeService quoteDetailAttributeService;
@PostMapping
public R queryQuoteDetailAttribute(@RequestBody QuoteDetailAttribute attribute) {
List<QuoteDetailAttribute> list = quoteDetailAttributeService.queryQuoteDetailAttribute(attribute);
return R.ok().put("rows", list);
}
@PostMapping("/item")
public R queryQuoteDetailAttributeByItem(@RequestBody QuoteDetailAttribute attribute) {
List<QuoteDetailAttribute> list = quoteDetailAttributeService.queryQuoteDetailAttributeByItem(attribute);
return R.ok().put("rows", list);
}
@PostMapping("/batch/update")
public R batchUpdateQuoteDetailAttribute(@RequestBody List<QuoteDetailAttribute> attributeList) {
quoteDetailAttributeService.batchUpdateQuoteDetailAttribute(attributeList);
return R.ok("操作成功");
}
}

2
src/main/java/com/xujie/sys/modules/quote/controller/QuoteToolController.java → src/main/java/com/xujie/sys/modules/quote/controller/QuoteDetailToolController.java

@ -11,7 +11,7 @@ import java.util.List;
@RestController
@RequestMapping("/quote/detail/tool")
public class QuoteToolController {
public class QuoteDetailToolController {
@Autowired
private QuoteDetailToolService quoteDetailToolService;

63
src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailAttribute.java

@ -0,0 +1,63 @@
package com.xujie.sys.modules.quote.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@TableName("plm_quote_detail_attribute")
public class QuoteDetailAttribute {
@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 String codeNo;
/**
* 模板类型
*/
private String itemType;
/**
* 模板属性编码
*/
private String itemNo;
private String textValue;
private BigDecimal numValue;
private String createBy;
private Date createDate;
private String updateBy;
private Date updateDate;
@TableField(exist = false)
private String valueType;
@TableField(exist = false)
private String itemDesc;
}

19
src/main/java/com/xujie/sys/modules/quote/mapper/QuoteDetailAttributeMapper.java

@ -0,0 +1,19 @@
package com.xujie.sys.modules.quote.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xujie.sys.modules.quote.entity.QuoteDetail;
import com.xujie.sys.modules.quote.entity.QuoteDetailAttribute;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface QuoteDetailAttributeMapper extends BaseMapper<QuoteDetailAttribute> {
void initQuoteDetailAttribute(QuoteDetail quoteDetail);
List<QuoteDetailAttribute> queryQuoteDetailAttribute(QuoteDetailAttribute attribute);
List<QuoteDetailAttribute> queryQuoteDetailAttributeByItem(QuoteDetailAttribute attribute);
}

18
src/main/java/com/xujie/sys/modules/quote/service/QuoteDetailAttributeService.java

@ -0,0 +1,18 @@
package com.xujie.sys.modules.quote.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xujie.sys.modules.quote.entity.QuoteDetail;
import com.xujie.sys.modules.quote.entity.QuoteDetailAttribute;
import java.util.List;
public interface QuoteDetailAttributeService extends IService<QuoteDetailAttribute> {
void initQuoteDetailAttribute(QuoteDetail quoteDetail);
List<QuoteDetailAttribute> queryQuoteDetailAttribute(QuoteDetailAttribute attribute);
void batchUpdateQuoteDetailAttribute(List<QuoteDetailAttribute> attributeList);
List<QuoteDetailAttribute> queryQuoteDetailAttributeByItem(QuoteDetailAttribute attribute);
}

39
src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailAttributeServiceImpl.java

@ -0,0 +1,39 @@
package com.xujie.sys.modules.quote.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xujie.sys.modules.quote.entity.QuoteDetail;
import com.xujie.sys.modules.quote.entity.QuoteDetailAttribute;
import com.xujie.sys.modules.quote.mapper.QuoteDetailAttributeMapper;
import com.xujie.sys.modules.quote.service.QuoteDetailAttributeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@Slf4j
public class QuoteDetailAttributeServiceImpl extends ServiceImpl<QuoteDetailAttributeMapper,QuoteDetailAttribute> implements QuoteDetailAttributeService {
@Override
public void initQuoteDetailAttribute(QuoteDetail quoteDetail) {
// 查找模板 BJ001 的属性
baseMapper.initQuoteDetailAttribute(quoteDetail);
}
@Override
public List<QuoteDetailAttribute> queryQuoteDetailAttribute(QuoteDetailAttribute attribute) {
return baseMapper.queryQuoteDetailAttribute(attribute);
}
@Override
@Transactional
public void batchUpdateQuoteDetailAttribute(List<QuoteDetailAttribute> attributeList) {
updateBatchById(attributeList);
}
@Override
public List<QuoteDetailAttribute> queryQuoteDetailAttributeByItem(QuoteDetailAttribute attribute) {
return baseMapper.queryQuoteDetailAttributeByItem(attribute);
}
}

29
src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java

@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xujie.sys.modules.quote.entity.Quote;
import com.xujie.sys.modules.quote.entity.QuoteDetail;
import com.xujie.sys.modules.quote.entity.QuoteDetailAttribute;
import com.xujie.sys.modules.quote.entity.QuoteDetailTool;
import com.xujie.sys.modules.quote.mapper.QuoteDetailMapper;
import com.xujie.sys.modules.quote.service.QuoteDetailAttributeService;
import com.xujie.sys.modules.quote.service.QuoteDetailService;
import com.xujie.sys.modules.quote.service.QuoteDetailToolService;
import lombok.extern.slf4j.Slf4j;
@ -25,6 +27,8 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
@Autowired
private QuoteDetailToolService quoteDetailToolService;
@Autowired
private QuoteDetailAttributeService quoteDetailAttributeService;
@Override
public IPage<QuoteDetail> queryQuoteDetailByPage(int no, int size, QuoteDetail quoteDetail) {
@ -49,6 +53,8 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
quoteDetail.setItemNo(itemNo);
quoteDetail.setCreateDate(new Date());
save(quoteDetail);
// 3初始化属性
quoteDetailAttributeService.initQuoteDetailAttribute(quoteDetail);
return quoteDetail;
}
@ -81,13 +87,26 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
// 1工具成本
QuoteDetailTool tool = new QuoteDetailTool();
tool.setQuoteDetailId(quoteDetail.getId());
List<QuoteDetailTool> list = quoteDetailToolService.queryQuoteDetailTool(tool);
BigDecimal bigDecimal = new BigDecimal(0);
for (QuoteDetailTool quoteDetailTool : list) {
bigDecimal = bigDecimal.add(quoteDetailTool.getQuoteUnitCost());
List<QuoteDetailTool> toolList = quoteDetailToolService.queryQuoteDetailTool(tool);
BigDecimal toolCost = new BigDecimal(0);
for (QuoteDetailTool quoteDetailTool : toolList) {
toolCost = toolCost.add(quoteDetailTool.getQuoteUnitCost());
}
// 2其他成本
QuoteDetailAttribute attribute = new QuoteDetailAttribute();
attribute.setQuoteDetailId(quoteDetail.getId());
List<QuoteDetailAttribute> attributeList = quoteDetailAttributeService.queryQuoteDetailAttribute(attribute);
// 2-1包装成本
BigDecimal packCost = new BigDecimal(0);
// 2-2运输成本
BigDecimal shippingCost = new BigDecimal(0);
map.put("toolCost", bigDecimal);
// 传入map
map.put("toolCost", toolCost);
map.put("packCost", packCost);
map.put("shippingCost", shippingCost);
map.put("otherCost", packCost.add(shippingCost));
return map;
}
}

76
src/main/resources/mapper/quote/QuoteDetailAttributeMapper.xml

@ -0,0 +1,76 @@
<?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.quote.mapper.QuoteDetailAttributeMapper">
<insert id="initQuoteDetailAttribute">
insert into plm_quote_detail_attribute(quote_detail_id,quote_id, quote_no, site, bu_no, version_no, quote_detail_item_no,
code_no, item_type, item_no, text_value, num_value, create_by,
create_date)
select #{id}, #{quoteId}, #{quoteNo}, #{site}, #{buNo}, #{versionNo}, #{itemNo},
pmd.code_no,pmd.function_type,pmd.properties_item_no,null,null,#{createBy},#{createDate}
from plm_properties_model_detail pmd
inner join plm_properties_item ppi
on pmd.site = ppi.site
and pmd.bu_no = ppi.bu_no
and pmd.function_type = ppi.item_type
and pmd.properties_item_no = ppi.item_no
where pmd.site = #{site}
and pmd.bu_no = #{buNo}
and pmd.function_type = 'QUOTE'
and pmd.code_no = 'BJ001'
order by pmd.order_id
</insert>
<select id="queryQuoteDetailAttribute"
resultType="com.xujie.sys.modules.quote.entity.QuoteDetailAttribute">
select qda.id,
qda.quote_detail_id,
qda.quote_id,
qda.quote_no,
qda.site,
qda.bu_no,
qda.version_no,
qda.quote_detail_item_no,
qda.code_no,
qda.item_type,
qda.item_no,
qda.text_value,
qda.num_value,
qda.create_by,
qda.create_date,
qda.update_by,
qda.update_date,
ppi.item_desc,
ppi.value_type
from plm_quote_detail_attribute qda
left join plm_properties_item ppi on qda.site = ppi.site
and qda.bu_no = ppi.bu_no
and qda.item_type = ppi.item_type
and qda.item_no = ppi.item_no
where quote_detail_id = #{quoteDetailId}
</select>
<select id="queryQuoteDetailAttributeByItem"
resultType="com.xujie.sys.modules.quote.entity.QuoteDetailAttribute">
select ppi.site,
ppi.bu_no,
ppi.item_no,
ppi.item_type,
ppi.item_desc,
'BJ001' as code_no,
#{quoteDetailId} as quote_detail_id,
#{quoteId} as quote_id,
#{quoteNo} as quote_no,
#{versionNo} as version_no,
#{quoteDetailItemNo} as quote_detail_item_no
from plm_properties_item ppi
where ppi.site = #{site}
and ppi.bu_no = #{buNo}
and ppi.item_type = 'QUOTE'
and ppi.item_no not in (select qda.item_no from plm_quote_detail_attribute qda where quote_detail_id = #{quoteDetailId})
<if test="itemNo!= null and itemNo != ''">
and ppi.item_no like #{itemNo}
</if>
<if test="itemDesc!= null and itemDesc != ''">
and ppi.item_desc like #{itemDesc}
</if>
</select>
</mapper>
Loading…
Cancel
Save