diff --git a/src/main/java/com/xujie/sys/modules/quote/controller/QuoteAttributeController.java b/src/main/java/com/xujie/sys/modules/quote/controller/QuoteAttributeController.java deleted file mode 100644 index 47643e8c..00000000 --- a/src/main/java/com/xujie/sys/modules/quote/controller/QuoteAttributeController.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.xujie.sys.modules.quote.controller; - -public class QuoteAttributeController { - -} diff --git a/src/main/java/com/xujie/sys/modules/quote/controller/QuoteDetailAttributeController.java b/src/main/java/com/xujie/sys/modules/quote/controller/QuoteDetailAttributeController.java new file mode 100644 index 00000000..2845fffc --- /dev/null +++ b/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 list = quoteDetailAttributeService.queryQuoteDetailAttribute(attribute); + return R.ok().put("rows", list); + } + + @PostMapping("/item") + public R queryQuoteDetailAttributeByItem(@RequestBody QuoteDetailAttribute attribute) { + List list = quoteDetailAttributeService.queryQuoteDetailAttributeByItem(attribute); + return R.ok().put("rows", list); + } + + @PostMapping("/batch/update") + public R batchUpdateQuoteDetailAttribute(@RequestBody List attributeList) { + quoteDetailAttributeService.batchUpdateQuoteDetailAttribute(attributeList); + return R.ok("操作成功"); + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/controller/QuoteToolController.java b/src/main/java/com/xujie/sys/modules/quote/controller/QuoteDetailToolController.java similarity index 97% rename from src/main/java/com/xujie/sys/modules/quote/controller/QuoteToolController.java rename to src/main/java/com/xujie/sys/modules/quote/controller/QuoteDetailToolController.java index f80541ae..6bbb53a5 100644 --- a/src/main/java/com/xujie/sys/modules/quote/controller/QuoteToolController.java +++ b/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; diff --git a/src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailAttribute.java b/src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailAttribute.java new file mode 100644 index 00000000..b98c1f1f --- /dev/null +++ b/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; + +} diff --git a/src/main/java/com/xujie/sys/modules/quote/mapper/QuoteDetailAttributeMapper.java b/src/main/java/com/xujie/sys/modules/quote/mapper/QuoteDetailAttributeMapper.java new file mode 100644 index 00000000..254e8a4c --- /dev/null +++ b/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 { + + void initQuoteDetailAttribute(QuoteDetail quoteDetail); + + List queryQuoteDetailAttribute(QuoteDetailAttribute attribute); + + List queryQuoteDetailAttributeByItem(QuoteDetailAttribute attribute); +} diff --git a/src/main/java/com/xujie/sys/modules/quote/service/QuoteDetailAttributeService.java b/src/main/java/com/xujie/sys/modules/quote/service/QuoteDetailAttributeService.java new file mode 100644 index 00000000..041f9834 --- /dev/null +++ b/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 { + + void initQuoteDetailAttribute(QuoteDetail quoteDetail); + + List queryQuoteDetailAttribute(QuoteDetailAttribute attribute); + + void batchUpdateQuoteDetailAttribute(List attributeList); + + List queryQuoteDetailAttributeByItem(QuoteDetailAttribute attribute); +} diff --git a/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailAttributeServiceImpl.java b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailAttributeServiceImpl.java new file mode 100644 index 00000000..b324754f --- /dev/null +++ b/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 implements QuoteDetailAttributeService { + + @Override + public void initQuoteDetailAttribute(QuoteDetail quoteDetail) { + // 查找模板 BJ001 的属性 + baseMapper.initQuoteDetailAttribute(quoteDetail); + } + + @Override + public List queryQuoteDetailAttribute(QuoteDetailAttribute attribute) { + return baseMapper.queryQuoteDetailAttribute(attribute); + } + + @Override + @Transactional + public void batchUpdateQuoteDetailAttribute(List attributeList) { + updateBatchById(attributeList); + } + + @Override + public List queryQuoteDetailAttributeByItem(QuoteDetailAttribute attribute) { + return baseMapper.queryQuoteDetailAttributeByItem(attribute); + } +} diff --git a/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java index 982744ea..ef443a1e 100644 --- a/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java +++ b/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 queryQuoteDetailByPage(int no, int size, QuoteDetail quoteDetail) { @@ -49,6 +53,8 @@ public class QuoteDetailServiceImpl extends ServiceImpl list = quoteDetailToolService.queryQuoteDetailTool(tool); - BigDecimal bigDecimal = new BigDecimal(0); - for (QuoteDetailTool quoteDetailTool : list) { - bigDecimal = bigDecimal.add(quoteDetailTool.getQuoteUnitCost()); + List 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 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; } } diff --git a/src/main/resources/mapper/quote/QuoteDetailAttributeMapper.xml b/src/main/resources/mapper/quote/QuoteDetailAttributeMapper.xml new file mode 100644 index 00000000..03e9ae8d --- /dev/null +++ b/src/main/resources/mapper/quote/QuoteDetailAttributeMapper.xml @@ -0,0 +1,76 @@ + + + + + + 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 + + + +