ruanqi 1 year ago
parent
commit
da429765f7
  1. 66
      src/main/java/com/xujie/sys/modules/ecss/controller/CoDelController.java
  2. 24
      src/main/java/com/xujie/sys/modules/ecss/entity/PropertyItemData.java
  3. 28
      src/main/java/com/xujie/sys/modules/ecss/entity/PropertyModelHeaderData.java
  4. 28
      src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java
  5. 14
      src/main/java/com/xujie/sys/modules/ecss/service/CoDelService.java
  6. 67
      src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java
  7. 119
      src/main/resources/mapper/ecss/CoDelMapper.xml

66
src/main/java/com/xujie/sys/modules/ecss/controller/CoDelController.java

@ -2,14 +2,20 @@ package com.xujie.sys.modules.ecss.controller;
import com.xujie.sys.common.utils.PageUtils;
import com.xujie.sys.common.utils.R;
import com.xujie.sys.modules.attrbute.entity.PropertyItem;
import com.xujie.sys.modules.attrbute.entity.PropertyModelHeader;
import com.xujie.sys.modules.ecss.data.EcssCoDelNotifyData;
import com.xujie.sys.modules.ecss.data.EcssCoDelNotifyDetailData;
import com.xujie.sys.modules.ecss.data.EcssCoDelNotifyHeaderData;
import com.xujie.sys.modules.ecss.data.EcssHsCodeData;
import com.xujie.sys.modules.ecss.entity.EcssCoDelNotify;
import com.xujie.sys.modules.ecss.entity.EcssCoDelNotifyDetail;
import com.xujie.sys.modules.ecss.entity.PropertyItemData;
import com.xujie.sys.modules.ecss.entity.PropertyModelHeaderData;
import com.xujie.sys.modules.ecss.service.CoDelService;
import com.xujie.sys.modules.orderIssure.entity.SOIssueNotifyHeaderData;
import com.xujie.sys.modules.part.entity.PartSubPropertiesValue;
import com.xujie.sys.modules.part.entity.PartSubPropertiesValueData;
import com.xujie.sys.modules.part.vo.BomComponentVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -106,4 +112,64 @@ public class CoDelController {
coDelService.saveHSCodeData(data);
return R.ok();
}
/**
* @Description TODO
* @Title getPropertiesListByPartAndCodeNo
* @param inData
* @author rq
* @date 2024/8/21 17:46
* @return R
* @throw
*/
@PostMapping("/getPropertiesListByPartAndCodeNo")
@ResponseBody
public R getPropertiesListByPartAndCodeNo(@RequestBody PartSubPropertiesValueData inData){
List<PartSubPropertiesValueData> resultList=coDelService.getPropertiesListByPartAndCodeNo(inData);
return R.ok().put("rows", resultList);
}
/**
* @Description 批量更新属性值
* @Title updatePropertiesList
* @param inData
* @author rq
* @date 2024/8/22 16:53
* @return R
* @throw
*/
@PostMapping("/updatePropertiesList")
@ResponseBody
public R updatePropertiesList(@RequestBody List<PartSubPropertiesValue> inData){
coDelService.updatePropertiesList(inData);
return R.ok();
}
@PostMapping("/searchPropertiesItemList")
@ResponseBody
public R searchPropertiesItemList(@RequestBody PropertyModelHeaderData inData){
List<PropertyItemData> rows = coDelService.searchPropertiesItemList(inData);
return R.ok().put("rows", rows);
}
@PostMapping("/saveSubPropertiesValueForAlone")
@ResponseBody
public R saveSubPropertiesValueForAlone(@RequestBody List<PartSubPropertiesValueData> inData){
coDelService.saveSubPropertiesValueForAlone(inData);
return R.ok();
}
@PostMapping("/deleteSubPropertiesValueForAlone")
@ResponseBody
public R deleteSubPropertiesValueForAlone(@RequestBody List<PartSubPropertiesValueData> inData){
coDelService.deleteSubPropertiesValueForAlone(inData);
return R.ok();
}
@PostMapping("/deleteHsCode")
@ResponseBody
public R deleteHsCode(@RequestBody EcssHsCodeData inData){
coDelService.deleteHsCode(inData);
return R.ok();
}
}

24
src/main/java/com/xujie/sys/modules/ecss/entity/PropertyItemData.java

@ -0,0 +1,24 @@
package com.xujie.sys.modules.ecss.entity;
import com.xujie.sys.modules.attrbute.entity.PropertyItem;
import lombok.Data;
@Data
public class PropertyItemData extends PropertyItem {
private Integer flag;
private String functionType;
private String codeNo;
private String userId;
private String buNo;
private String itNo;
private String partNo;
private String propertiesItemNo;
private Double subCodeSeqNo;
private String recordType;
private String functionTypeDesc;
}

28
src/main/java/com/xujie/sys/modules/ecss/entity/PropertyModelHeaderData.java

@ -0,0 +1,28 @@
package com.xujie.sys.modules.ecss.entity;
import com.xujie.sys.modules.attrbute.entity.PropertyItem;
import com.xujie.sys.modules.attrbute.entity.PropertyModelHeader;
import lombok.Data;
import org.apache.ibatis.type.Alias;
import java.util.List;
@Data
@Alias("PropertyModelHeaderData")
public class PropertyModelHeaderData extends PropertyModelHeader {
private Integer flag;
// 项目编码
private String itemNo;
// 项目名称
private String itemDesc;
private String userId;
private List<String> menuList;
private String group;
private String buNo;
private String partNo;
private String functionTypeDesc;
private String functionGroupDesc;
private List<PropertyItemData> list;
}

28
src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java

@ -2,6 +2,7 @@ package com.xujie.sys.modules.ecss.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xujie.sys.modules.attrbute.entity.PropertyItem;
import com.xujie.sys.modules.attrbute.entity.PropertyModelHeader;
import com.xujie.sys.modules.ecss.data.EcssCoDelNotifyData;
import com.xujie.sys.modules.ecss.data.EcssCoDelNotifyDetailData;
@ -9,8 +10,11 @@ import com.xujie.sys.modules.ecss.data.EcssCoDelNotifyHeaderData;
import com.xujie.sys.modules.ecss.data.EcssHsCodeData;
import com.xujie.sys.modules.ecss.entity.EcssCoDelNotifyDetail;
import com.xujie.sys.modules.ecss.entity.EcssCoDelNotifyHeader;
import com.xujie.sys.modules.ecss.entity.PropertyItemData;
import com.xujie.sys.modules.orderIssure.entity.PartData;
import com.xujie.sys.modules.orderIssure.entity.SOIssueNotifyHeaderData;
import com.xujie.sys.modules.part.entity.PartSubPropertiesValue;
import com.xujie.sys.modules.part.entity.PartSubPropertiesValueData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -54,5 +58,29 @@ public interface CoDelMapper {
void updateHsCodeData(EcssHsCodeData inData);
void deleteHsCode(EcssHsCodeData inData);
List<PropertyItem> searchPropertiesItemList(@Param("site") String site,
@Param("itemNo")String itemNo,
@Param("buNo") String buNo,
@Param("itemDesc")String itemDesc,
@Param("itemType")String itemType);
List<PartSubPropertiesValueData> getPropertiesListByPartAndCodeNo(PartSubPropertiesValueData inData);
void updatePropertiesList(PartSubPropertiesValue inData);
void saveSubPropertiesValueForAlone(PartSubPropertiesValueData inData);
void deleteSubPropertiesValueForAlone(PartSubPropertiesValueData inData);
Double getNewSeqNoForAlone(PartSubPropertiesValueData inData);
List<PropertyItemData> searchPropertiesUnChoose(@Param("site")String site,
@Param("buNo")String buNo,
@Param("codeType")String codeType,
@Param("list") List<String> list);
}

14
src/main/java/com/xujie/sys/modules/ecss/service/CoDelService.java

@ -1,12 +1,17 @@
package com.xujie.sys.modules.ecss.service;
import com.xujie.sys.common.utils.PageUtils;
import com.xujie.sys.modules.attrbute.entity.PropertyItem;
import com.xujie.sys.modules.ecss.data.EcssCoDelNotifyData;
import com.xujie.sys.modules.ecss.data.EcssCoDelNotifyDetailData;
import com.xujie.sys.modules.ecss.data.EcssCoDelNotifyHeaderData;
import com.xujie.sys.modules.ecss.data.EcssHsCodeData;
import com.xujie.sys.modules.ecss.entity.PropertyItemData;
import com.xujie.sys.modules.ecss.entity.PropertyModelHeaderData;
import com.xujie.sys.modules.orderIssure.entity.SOIssueNotifyHeaderData;
import com.xujie.sys.modules.part.entity.PartSubPropertiesValue;
import com.xujie.sys.modules.part.entity.PartSubPropertiesValueData;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile;
@ -36,4 +41,13 @@ public interface CoDelService {
PageUtils searchHsCodeData(EcssHsCodeData data);
void saveHSCodeData(EcssHsCodeData data);
List<PartSubPropertiesValueData> getPropertiesListByPartAndCodeNo(PartSubPropertiesValueData inData);
void updatePropertiesList(List<PartSubPropertiesValue> data);
List<PropertyItemData> searchPropertiesItemList(PropertyModelHeaderData inData);
void saveSubPropertiesValueForAlone(List<PartSubPropertiesValueData> inData);
void deleteSubPropertiesValueForAlone(List<PartSubPropertiesValueData> inData);
void deleteHsCode(EcssHsCodeData data);
}

67
src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java

@ -6,14 +6,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xujie.sys.common.utils.DateUtils;
import com.xujie.sys.common.utils.PageUtils;
import com.xujie.sys.modules.attrbute.entity.PropertyItem;
import com.xujie.sys.modules.attrbute.entity.PropertyModelHeader;
import com.xujie.sys.modules.ecss.data.EcssCoDelNotifyData;
import com.xujie.sys.modules.ecss.data.EcssCoDelNotifyDetailData;
import com.xujie.sys.modules.ecss.data.EcssCoDelNotifyHeaderData;
import com.xujie.sys.modules.ecss.data.EcssHsCodeData;
import com.xujie.sys.modules.ecss.entity.EcssCoDelNotify;
import com.xujie.sys.modules.ecss.entity.EcssCoDelNotifyDetail;
import com.xujie.sys.modules.ecss.entity.EcssCoDelNotifyHeader;
import com.xujie.sys.modules.ecss.entity.*;
import com.xujie.sys.modules.ecss.mapper.CoDelMapper;
import com.xujie.sys.modules.ecss.service.CoDelService;
import com.xujie.sys.modules.orderIssure.entity.PartData;
@ -325,7 +324,10 @@ public class CoDelServiceImpl implements CoDelService {
IPage<EcssHsCodeData> resultList = coDelMapper.searchHsCodeData(new Page<EcssHsCodeData>(data.getPage(), data.getLimit()), data);
return new PageUtils(resultList);
}
@Override
public void deleteHsCode(EcssHsCodeData data){
coDelMapper.deleteHsCode(data);
}
@Override
@Transactional
public void saveHSCodeData(EcssHsCodeData inData){
@ -377,4 +379,61 @@ public class CoDelServiceImpl implements CoDelService {
}
}
@Override
public List<PropertyItemData> searchPropertiesItemList(PropertyModelHeaderData inData) {
String functionType = inData.getFunctionType();
List<String> list = inData.getList().stream().map(PropertyItemData::getPropertiesItemNo).collect(Collectors.toList());
return coDelMapper.searchPropertiesUnChoose(inData.getSite(), inData.getBuNo(),functionType, list);
}
@Override
@Transactional
public List<PartSubPropertiesValueData> getPropertiesListByPartAndCodeNo(PartSubPropertiesValueData inData){
//公共参数
String recordType = inData.getRecordType();
List<PartSubPropertiesValueData> result = null;
result = coDelMapper.getPropertiesListByPartAndCodeNo(inData);
for (int i = 0; i < result.size(); i++) {
if ("Y".equals(result.get(i).getValueChooseFlag())) {
List<PlmPropertiesItemAvailableData> availableList = partInformationMapper.getAvailableValueList(result.get(i));
result.get(i).setAvailableValueList(availableList);
}
}
return result;
}
@Override
@Transactional
public void updatePropertiesList(List<PartSubPropertiesValue> data){
for (PartSubPropertiesValue itemDate : data){
coDelMapper.updatePropertiesList(itemDate);
}
}
@Override
@Transactional
public void saveSubPropertiesValueForAlone(List<PartSubPropertiesValueData> inData){
for (int i = 0; i <inData.size() ; i++) {
Double seqNo=coDelMapper.getNewSeqNoForAlone(inData.get(i));
inData.get(i).setItemNo(seqNo);
coDelMapper.saveSubPropertiesValueForAlone(inData.get(i));
}
}
@Override
@Transactional
public void deleteSubPropertiesValueForAlone(List<PartSubPropertiesValueData> inData){
for (int i = 0; i <inData.size() ; i++) {
coDelMapper.deleteSubPropertiesValueForAlone(inData.get(i));
}
}
}

119
src/main/resources/mapper/ecss/CoDelMapper.xml

@ -221,7 +221,126 @@
where site=#{site} and buNo=#{buNo} and HsCode=#{hsCode}
</update>
<select id="deleteHsCode" >
delete from ecss_hsCode where site=#{site} and buNo=#{buNo} and HsCode=#{hsCode}
</select>
<select id="searchPropertiesItemList" resultType="com.xujie.sys.modules.attrbute.entity.PropertyItem">
select
id,site,bu_no,item_no,item_type,item_desc,default_value,value_type,value_type_db,value_choose_flag,min_value,max_value,
create_by,create_date,update_by,update_date
from dbo.plm_properties_item
<where>
and site = #{site} and bu_no=#{buNo}
<if test="itemNo != null and itemNo != ''">
and item_no like #{itemNo}
</if>
<if test="itemDesc != null and itemDesc != ''">
and item_desc like #{itemDesc}
</if>
<if test="itemType != null and itemType != ''">
and item_type = #{itemType}
</if>
order by item_type ,item_no
</where>
</select>
<select id="getPropertiesListByPartAndCodeNo" resultType="com.xujie.sys.modules.part.entity.PartSubPropertiesValueData">
SELECT a.part_no
, a.Site
, a.code_no
, a.sub_code_seq_no
, a.sub_code_desc
,a.bu_no
,a.item_no
, a.properties_item_no
, a.text_value
, a.num_value
, a.record_type
, b.item_desc ItemDesc
, b.value_type
, b.value_type_db
, b.value_choose_flag
FROM part_sub_properties_value a
left join plm_properties_item b
on a.properties_item_no = b.Item_No and a.site = b.site and a.record_type = b.Item_Type
<where>
AND a.site = #{site}
and a.record_type = #{recordType}
and a.bu_no=#{buNo}
and a.code_no = #{codeNo}
AND a.part_no = #{partNo,jdbcType=VARCHAR}
</where>
order by a.item_no
</select>
<update id="updatePropertiesList">
update part_sub_properties_value
set text_value=#{textValue},
num_value=#{numValue,jdbcType=DOUBLE}
where Site = #{site}
and code_no = #{codeNo}
and part_no = #{partNo}
and sub_code_seq_no = #{subCodeSeqNo}
and item_no = #{itemNo}
and bu_no=#{buNo}
</update>
<insert id="saveSubPropertiesValueForAlone">
insert into part_sub_properties_value ( part_no, site, bu_no, code_no, sub_code_seq_no, sub_code_desc,
item_no, properties_item_no, text_value, num_value, record_type)
select
#{partNo},
#{site},
#{buNo},
#{codeNo},
1,
d.code_desc,
#{itemNo,jdbcType=DOUBLE},
c.item_no,
case when c.value_type_db = 'T' then c.default_value else null end,
case when c.value_type_db = 'N' and c.default_value != '' then c.default_value else null end,
#{recordType}
from plm_properties_item c
left join plm_properties_model_header d on c.site=d.site and d.code_no=#{codeNo}
where c.Item_No = #{propertiesItemNo}
and c.site = #{site}
and c.bu_no=#{buNo}
and c.item_Type = #{recordType}
</insert>
<delete id="deleteSubPropertiesValueForAlone">
delete
from part_sub_properties_value
where a.site = #{site}
and a.record_type = #{recordType}
and a.bu_no=#{buNo}
and a.code_no = #{codeNo}
AND a.part_no = #{partNo,jdbcType=VARCHAR}
</delete>
<select id="getNewSeqNoForAlone" resultType="Double">
select isnull(Max(item_No) + 1, 1)
from part_sub_properties_value a
where a.site = #{site}
and a.record_type = #{recordType}
and a.bu_no=#{buNo}
and a.code_no = #{codeNo}
AND a.part_no = #{partNo,jdbcType=VARCHAR}
</select>
<select id="searchPropertiesUnChoose" resultType="com.xujie.sys.modules.ecss.entity.PropertyItemData">
SELECT
b.id,b.site,b.bu_no,b.item_no,b.item_type as functionType,b.item_desc,b.default_value,b.value_type,b.value_type_db,b.value_choose_flag,
b.min_value,b.max_value,b.create_by,b.create_date,b.update_by,b.update_date
FROM plm_properties_item b
where b.item_type = #{codeType}
and b.site = #{site}
<if test="list != null and list.size() != 0">
and b.item_no not in (
<foreach collection="list" item="item" separator=",">
#{item}
</foreach>
)
</if>
</select>
</mapper>
Loading…
Cancel
Save