9 changed files with 277 additions and 11 deletions
-
5src/main/java/com/xujie/sys/modules/quote/controller/QuoteAttributeController.java
-
37src/main/java/com/xujie/sys/modules/quote/controller/QuoteDetailAttributeController.java
-
2src/main/java/com/xujie/sys/modules/quote/controller/QuoteDetailToolController.java
-
63src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailAttribute.java
-
19src/main/java/com/xujie/sys/modules/quote/mapper/QuoteDetailAttributeMapper.java
-
18src/main/java/com/xujie/sys/modules/quote/service/QuoteDetailAttributeService.java
-
39src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailAttributeServiceImpl.java
-
29src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java
-
76src/main/resources/mapper/quote/QuoteDetailAttributeMapper.xml
@ -1,5 +0,0 @@ |
|||||
package com.xujie.sys.modules.quote.controller; |
|
||||
|
|
||||
public class QuoteAttributeController { |
|
||||
|
|
||||
} |
|
||||
@ -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("操作成功"); |
||||
|
} |
||||
|
} |
||||
@ -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; |
||||
|
|
||||
|
} |
||||
@ -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); |
||||
|
} |
||||
@ -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); |
||||
|
} |
||||
@ -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); |
||||
|
} |
||||
|
} |
||||
@ -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> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue