Browse Source

2024-04-17

master
zelian_wu 2 years ago
parent
commit
99181e92d6
  1. 42
      src/main/java/com/spring/modules/code/controller/CodeDrawingController.java
  2. 7
      src/main/java/com/spring/modules/code/controller/CodeItemDefController.java
  3. 31
      src/main/java/com/spring/modules/code/entity/CodeDrawing.java
  4. 10
      src/main/java/com/spring/modules/code/mapper/CodeConditionDetailMapper.java
  5. 9
      src/main/java/com/spring/modules/code/mapper/CodeDrawingMapper.java
  6. 17
      src/main/java/com/spring/modules/code/service/CodeDrawingService.java
  7. 3
      src/main/java/com/spring/modules/code/service/CodeItemDefService.java
  8. 61
      src/main/java/com/spring/modules/code/service/impl/CodeDrawingServiceImpl.java
  9. 13
      src/main/java/com/spring/modules/code/service/impl/CodeItemDefServiceImpl.java
  10. 92
      src/main/java/com/spring/modules/code/utils/WrapperGenerate.java
  11. 22
      src/main/java/com/spring/modules/code/vo/CodeDrawingVo.java
  12. 73
      src/main/resources/mapper/code/CodeConditionDetailMapper.xml

42
src/main/java/com/spring/modules/code/controller/CodeDrawingController.java

@ -0,0 +1,42 @@
package com.spring.modules.code.controller;
import com.spring.common.utils.R;
import com.spring.modules.code.entity.CodeDrawing;
import com.spring.modules.code.service.CodeDrawingService;
import com.spring.modules.code.vo.CodeDrawingVo;
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("/code/drawing")
public class CodeDrawingController {
@Autowired
private CodeDrawingService codeDrawingService;
@PostMapping("/list")
public R searchCodeDrawingList(@RequestBody CodeDrawingVo codeDrawing) {
List<CodeDrawing> list = codeDrawingService.searchCodeDrawingList(codeDrawing);
return R.ok().put("rows",list);
}
@PostMapping("/remove")
public R removeCodeDrawing(@RequestBody CodeDrawingVo codeDrawing) {
codeDrawingService.removeCodeDrawing(codeDrawing);
return R.ok().put("msg","操作成功");
}
@PostMapping("/save")
public R saveCodeDrawing(@RequestBody CodeDrawingVo codeDrawing) {
codeDrawingService.saveCodeDrawing(codeDrawing);
return R.ok().put("msg","操作成功");
}
@PostMapping("/edit")
public R editCodeDrawing(@RequestBody CodeDrawingVo codeDrawing) {
codeDrawingService.editCodeDrawing(codeDrawing);
return R.ok().put("msg","操作成功");
}
}

7
src/main/java/com/spring/modules/code/controller/CodeItemDefController.java

@ -3,6 +3,7 @@ package com.spring.modules.code.controller;
import com.spring.common.utils.R;
import com.spring.modules.code.entity.CodeItemDef;
import com.spring.modules.code.service.CodeItemDefService;
import com.spring.modules.code.vo.CodeItemDefVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -25,6 +26,12 @@ public class CodeItemDefController {
return R.ok().put("rows", codeItemDefs);
}
@PostMapping("/all/seq/list")
public R searchCodeItemAllDefsSeq(@RequestBody CodeItemDef codeItemDef) {
List<CodeItemDefVo> codeItemDefs = codeItemDefService.searchCodeItemAllDefsSeq(codeItemDef);
return R.ok().put("rows", codeItemDefs);
}
@PostMapping("/save/batch")
public R saveCodeItemDefs(@RequestBody List<CodeItemDef> codeItemDefs) {
codeItemDefService.saveCodeItemDefs(codeItemDefs);

31
src/main/java/com/spring/modules/code/entity/CodeDrawing.java

@ -0,0 +1,31 @@
package com.spring.modules.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@TableName("drawing_list")
@Data
public class CodeDrawing {
private String site;
private String drawingNo;
private String drawingDesc;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createDate;
private String creator;
private String seqFlag;
private String drawingNoNew;
private String remark;
}

10
src/main/java/com/spring/modules/code/mapper/CodeConditionDetailMapper.java

@ -2,10 +2,14 @@ package com.spring.modules.code.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.spring.modules.code.entity.CodeConditionDetail;
import com.spring.modules.code.entity.CodeItemDef;
import com.spring.modules.code.entity.CodeItemValue;
import com.spring.modules.code.entity.CodeSeqNoGenerateRule;
import com.spring.modules.code.vo.CodeConditionDetailVo;
import com.spring.modules.code.vo.CodeItemDefVo;
import com.spring.modules.code.vo.CodeSeqNoGenerateRuleVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -15,4 +19,10 @@ public interface CodeConditionDetailMapper extends BaseMapper<CodeConditionDetai
List<CodeConditionDetailVo> selectByConditionDetail(CodeConditionDetail conditionDetail);
List<CodeSeqNoGenerateRuleVo> selectCodeConditionDetailList(CodeSeqNoGenerateRule codeSeqNoGenerateRule);
List<CodeItemDefVo> searchCodeItemAllDefsSeq(CodeItemDef codeItemDef);
List<CodeItemValue> searchCodeItemValue(@Param("site")String site,
@Param("itemNo")Integer itemNo,
@Param("itemByCondition")String itemByCondition);
}

9
src/main/java/com/spring/modules/code/mapper/CodeDrawingMapper.java

@ -0,0 +1,9 @@
package com.spring.modules.code.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.spring.modules.code.entity.CodeDrawing;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CodeDrawingMapper extends BaseMapper<CodeDrawing> {
}

17
src/main/java/com/spring/modules/code/service/CodeDrawingService.java

@ -0,0 +1,17 @@
package com.spring.modules.code.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.spring.modules.code.entity.CodeDrawing;
import com.spring.modules.code.vo.CodeDrawingVo;
import java.util.List;
public interface CodeDrawingService extends IService<CodeDrawing> {
List<CodeDrawing> searchCodeDrawingList(CodeDrawingVo codeDrawing);
void removeCodeDrawing(CodeDrawingVo codeDrawing);
void saveCodeDrawing(CodeDrawingVo codeDrawing);
void editCodeDrawing(CodeDrawingVo codeDrawing);
}

3
src/main/java/com/spring/modules/code/service/CodeItemDefService.java

@ -2,6 +2,7 @@ package com.spring.modules.code.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.spring.modules.code.entity.CodeItemDef;
import com.spring.modules.code.vo.CodeItemDefVo;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@ -17,4 +18,6 @@ public interface CodeItemDefService extends IService<CodeItemDef> {
void removeCodeItemDefs(List<CodeItemDef> codeItemDefs);
List<CodeItemDef> searchCodeItemDefsSeq(CodeItemDef codeItemDef);
List<CodeItemDefVo> searchCodeItemAllDefsSeq(CodeItemDef codeItemDef);
}

61
src/main/java/com/spring/modules/code/service/impl/CodeDrawingServiceImpl.java

@ -0,0 +1,61 @@
package com.spring.modules.code.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.spring.modules.code.entity.CodeDrawing;
import com.spring.modules.code.mapper.CodeDrawingMapper;
import com.spring.modules.code.service.CodeDrawingService;
import com.spring.modules.code.utils.WrapperGenerate;
import com.spring.modules.code.vo.CodeDrawingVo;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.apache.bcel.classfile.Code;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Objects;
@Service
@Slf4j
public class CodeDrawingServiceImpl extends ServiceImpl<CodeDrawingMapper, CodeDrawing> implements CodeDrawingService {
WrapperGenerate<CodeDrawing> generate = new WrapperGenerate<>();
@Override
public List<CodeDrawing> searchCodeDrawingList(CodeDrawingVo codeDrawing) {
LambdaQueryWrapper<CodeDrawing> wrapper = new LambdaQueryWrapper<>();
LambdaQueryChainWrapper<CodeDrawing> chainWrapper = lambdaQuery()
.eq(CodeDrawing::getSite, codeDrawing.getSite())
.ge(Objects.nonNull(codeDrawing.getStartDate()), CodeDrawing::getCreateDate, codeDrawing.getStartDate())
.le(Objects.nonNull(codeDrawing.getEndDate()), CodeDrawing::getCreateDate, codeDrawing.getEndDate());
generate.generateChainLambdaLike(codeDrawing.getDrawingNo(),CodeDrawing::getDrawingNo,chainWrapper);
generate.generateChainLambdaLike(codeDrawing.getDrawingDesc(),CodeDrawing::getDrawingDesc,chainWrapper);
generate.generateChainLambdaLike(codeDrawing.getRemark(),CodeDrawing::getRemark,chainWrapper);
generate.generateChainLambdaLike(codeDrawing.getCreator(),CodeDrawing::getCreator,chainWrapper);
return chainWrapper.list();
}
@Override
@Transactional
public void removeCodeDrawing(CodeDrawingVo codeDrawing) {
lambdaUpdate()
.eq(CodeDrawing::getDrawingNo,codeDrawing.getDrawingNo())
.eq(CodeDrawing::getSite,codeDrawing.getSite()).remove();
}
@Override
@Transactional
public void saveCodeDrawing(CodeDrawingVo codeDrawing) {
save(codeDrawing);
}
@Override
@Transactional
public void editCodeDrawing(CodeDrawingVo codeDrawing) {
lambdaUpdate()
.eq(CodeDrawing::getDrawingNo,codeDrawing.getDrawingNo())
.eq(CodeDrawing::getSite,codeDrawing.getSite())
.set(CodeDrawing::getDrawingNoNew,codeDrawing.getDrawingNoNew())
.update();
}
}

13
src/main/java/com/spring/modules/code/service/impl/CodeItemDefServiceImpl.java

@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.spring.modules.code.entity.CodeItemDef;
import com.spring.modules.code.entity.CodeItemValue;
import com.spring.modules.code.mapper.CodeConditionDetailMapper;
import com.spring.modules.code.mapper.CodeItemDefMapper;
import com.spring.modules.code.service.CodeItemDefService;
import com.spring.modules.code.service.CodeItemValueService;
import com.spring.modules.code.vo.CodeItemDefVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -23,6 +25,8 @@ public class CodeItemDefServiceImpl extends ServiceImpl<CodeItemDefMapper,CodeIt
@Autowired
private CodeItemValueService codeItemValueService;
@Autowired
private CodeConditionDetailMapper codeConditionDetailMapper;
@Override
public List<CodeItemDef> searchCodeItemDefs(CodeItemDef codeItemDef) {
@ -90,9 +94,14 @@ public class CodeItemDefServiceImpl extends ServiceImpl<CodeItemDefMapper,CodeIt
if (StringUtils.hasText(codeItemDef.getSite())){
wrapper.eq(CodeItemDef::getSite,codeItemDef.getSite());
}
wrapper.ne(CodeItemDef::getItemNo,codeItemDef.getItemNo());
wrapper.ne(Objects.nonNull(codeItemDef.getItemNo()),CodeItemDef::getItemNo,codeItemDef.getItemNo());
wrapper.le(Objects.nonNull(codeItemDef.getSeqNo()),CodeItemDef::getSeqNo,codeItemDef.getSeqNo());
wrapper.orderByAsc(CodeItemDef::getItemNo);
wrapper.orderByAsc(CodeItemDef::getSeqNo);
return list(wrapper);
}
@Override
public List<CodeItemDefVo> searchCodeItemAllDefsSeq(CodeItemDef codeItemDef) {
return codeConditionDetailMapper.searchCodeItemAllDefsSeq(codeItemDef);
}
}

92
src/main/java/com/spring/modules/code/utils/WrapperGenerate.java

@ -0,0 +1,92 @@
package com.spring.modules.code.utils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
import com.spring.modules.code.entity.CodeDrawing;
import org.springframework.util.StringUtils;
public class WrapperGenerate<T>{
public LambdaQueryChainWrapper<T> generateChainLambdaLike(String column, SFunction<T,?> sqlColumn, LambdaQueryChainWrapper<T> wrapper){
if (StringUtils.hasText(column)){
StringBuilder str = new StringBuilder(column);
if (column.length() > 2 && column.charAt(0) == '%' && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(0);
str.deleteCharAt(str.length() - 1);
wrapper.like(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(0) == '%'){
str.deleteCharAt(0);
wrapper.likeLeft(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(str.length() - 1);
wrapper.likeRight(StringUtils.hasText(column), sqlColumn, str.toString());
}else {
wrapper.eq(StringUtils.hasText(column), sqlColumn, column);
}
}
return wrapper;
}
public LambdaQueryWrapper<T> generateLambdaLike(String column, SFunction<T,?> sqlColumn, LambdaQueryWrapper<T> wrapper){
if (StringUtils.hasText(column)){
StringBuilder str = new StringBuilder(column);
if (column.length() > 2 && column.charAt(0) == '%' && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(0);
str.deleteCharAt(str.length() - 1);
wrapper.like(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(0) == '%'){
str.deleteCharAt(0);
wrapper.likeLeft(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(str.length() - 1);
wrapper.likeRight(StringUtils.hasText(column), sqlColumn, str.toString());
}else {
wrapper.eq(StringUtils.hasText(column), sqlColumn, column);
}
}
return wrapper;
}
public QueryChainWrapper<T> generateChainLike(String column, String sqlColumn, QueryChainWrapper<T> wrapper){
if (StringUtils.hasText(column)){
StringBuilder str = new StringBuilder(column);
if (column.length() > 2 && column.charAt(0) == '%' && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(0);
str.deleteCharAt(str.length() - 1);
wrapper.like(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(0) == '%'){
str.deleteCharAt(0);
wrapper.likeLeft(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(str.length() - 1);
wrapper.likeRight(StringUtils.hasText(column), sqlColumn, str.toString());
}else {
wrapper.eq(StringUtils.hasText(column), sqlColumn, column);
}
}
return wrapper;
}
public QueryWrapper<T> generateLike(String column, String sqlColumn, QueryWrapper<T> wrapper){
if (StringUtils.hasText(column)){
StringBuilder str = new StringBuilder(column);
if (column.length() > 2 && column.charAt(0) == '%' && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(0);
str.deleteCharAt(str.length() - 1);
wrapper.like(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(0) == '%'){
str.deleteCharAt(0);
wrapper.likeLeft(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(str.length() - 1);
wrapper.likeRight(StringUtils.hasText(column), sqlColumn, str.toString());
}else {
wrapper.eq(StringUtils.hasText(column), sqlColumn, column);
}
}
return wrapper;
}
}

22
src/main/java/com/spring/modules/code/vo/CodeDrawingVo.java

@ -0,0 +1,22 @@
package com.spring.modules.code.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.spring.modules.code.entity.CodeDrawing;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
public class CodeDrawingVo extends CodeDrawing {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startDate;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endDate;
}

73
src/main/resources/mapper/code/CodeConditionDetailMapper.xml

@ -47,4 +47,77 @@
</if>
</where>
</select>
<resultMap id="getItemDefsVo" type="com.spring.modules.code.vo.CodeItemDefVo">
<result column="site" property="site"/>
<result column="item_no" property="itemNo"/>
<result column="seq_no" property="seqNo"/>
<result column="item_desc" property="itemDesc"/>
<result column="bits" property="bits"/>
<result column="postfix" property="postfix"/>
<result column="item_by_condition" property="itemByCondition"/>
<result column="seq_flag" property="seqFlag"/>
<result column="item_type" property="itemType"/>
<result column="seq_no_bits" property="seqNoBits"/>
<result column="virtual_item" property="virtualItem"/>
<result column="seq_no_type" property="seqNoType"/>
<result column="value_seq_no" property="valueSeqNo"/>
<result column="fixed_value_flag" property="fixedValueFlag"/>
<result column="show_in_desc" property="showInDesc"/>
<result column="show_item_desc_in_desc" property="showItemDescInDesc"/>
<result column="show_in_remark" property="showInRemark"/>
<result column="show_item_desc_in_remark" property="showItemDescInRemark"/>
<collection property="itemValues" select="searchCodeItemValue"
column="{site=site,itemNo=item_no,itemByCondition=item_by_condition}"
ofType="com.spring.modules.code.entity.CodeItemValue">
</collection>
</resultMap>
<select id="searchCodeItemAllDefsSeq" resultMap="getItemDefsVo">
select site,
item_no,
seq_no,
item_desc,
bits,
[postfix],
item_by_condition,
seq_flag,
item_type,
seq_no_bits,
virtual_item,
seq_no_type,
value_seq_no,
fixed_value_flag,
show_in_desc,
show_item_desc_in_desc,
show_in_remark,
show_item_desc_in_remark
from ItemDef
<where>
<if test="site != null and site != ''">
and site = #{site}
</if>
order by seq_no
</where>
</select>
<select id="searchCodeItemValue" resultType="com.spring.modules.code.entity.CodeItemValue">
select site,item_no,condition_id,value_item_no,value_no,item_value
from item_value
<where>
<if test="site != null and site != ''">
and site = #{site}
</if>
<if test="itemNo != null">
and item_no = #{itemNo}
</if>
<if test="itemByCondition != null and itemByCondition == 'N'.toString()">
and condition_id = 1
</if>
<if test="itemByCondition != null and itemByCondition == 'Y'.toString()">
and condition_id is null
</if>
</where>
</select>
</mapper>
Loading…
Cancel
Save