diff --git a/src/main/java/com/spring/modules/code/controller/CodeDrawingController.java b/src/main/java/com/spring/modules/code/controller/CodeDrawingController.java new file mode 100644 index 00000000..13cad4f4 --- /dev/null +++ b/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 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","操作成功"); + } +} diff --git a/src/main/java/com/spring/modules/code/controller/CodeItemDefController.java b/src/main/java/com/spring/modules/code/controller/CodeItemDefController.java index 9ad2c9e8..d583b01b 100644 --- a/src/main/java/com/spring/modules/code/controller/CodeItemDefController.java +++ b/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 codeItemDefs = codeItemDefService.searchCodeItemAllDefsSeq(codeItemDef); + return R.ok().put("rows", codeItemDefs); + } + @PostMapping("/save/batch") public R saveCodeItemDefs(@RequestBody List codeItemDefs) { codeItemDefService.saveCodeItemDefs(codeItemDefs); diff --git a/src/main/java/com/spring/modules/code/entity/CodeDrawing.java b/src/main/java/com/spring/modules/code/entity/CodeDrawing.java new file mode 100644 index 00000000..d0be309d --- /dev/null +++ b/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; +} diff --git a/src/main/java/com/spring/modules/code/mapper/CodeConditionDetailMapper.java b/src/main/java/com/spring/modules/code/mapper/CodeConditionDetailMapper.java index f77c95e3..3196c1fa 100644 --- a/src/main/java/com/spring/modules/code/mapper/CodeConditionDetailMapper.java +++ b/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 selectByConditionDetail(CodeConditionDetail conditionDetail); List selectCodeConditionDetailList(CodeSeqNoGenerateRule codeSeqNoGenerateRule); + + List searchCodeItemAllDefsSeq(CodeItemDef codeItemDef); + + List searchCodeItemValue(@Param("site")String site, + @Param("itemNo")Integer itemNo, + @Param("itemByCondition")String itemByCondition); } diff --git a/src/main/java/com/spring/modules/code/mapper/CodeDrawingMapper.java b/src/main/java/com/spring/modules/code/mapper/CodeDrawingMapper.java new file mode 100644 index 00000000..38b0b0a8 --- /dev/null +++ b/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 { +} diff --git a/src/main/java/com/spring/modules/code/service/CodeDrawingService.java b/src/main/java/com/spring/modules/code/service/CodeDrawingService.java new file mode 100644 index 00000000..d389088d --- /dev/null +++ b/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 { + List searchCodeDrawingList(CodeDrawingVo codeDrawing); + + void removeCodeDrawing(CodeDrawingVo codeDrawing); + + void saveCodeDrawing(CodeDrawingVo codeDrawing); + + void editCodeDrawing(CodeDrawingVo codeDrawing); +} diff --git a/src/main/java/com/spring/modules/code/service/CodeItemDefService.java b/src/main/java/com/spring/modules/code/service/CodeItemDefService.java index 8e70d9e4..c80bc15e 100644 --- a/src/main/java/com/spring/modules/code/service/CodeItemDefService.java +++ b/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 { void removeCodeItemDefs(List codeItemDefs); List searchCodeItemDefsSeq(CodeItemDef codeItemDef); + + List searchCodeItemAllDefsSeq(CodeItemDef codeItemDef); } diff --git a/src/main/java/com/spring/modules/code/service/impl/CodeDrawingServiceImpl.java b/src/main/java/com/spring/modules/code/service/impl/CodeDrawingServiceImpl.java new file mode 100644 index 00000000..4f77769b --- /dev/null +++ b/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 implements CodeDrawingService { + WrapperGenerate generate = new WrapperGenerate<>(); + @Override + public List searchCodeDrawingList(CodeDrawingVo codeDrawing) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + LambdaQueryChainWrapper 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(); + } +} diff --git a/src/main/java/com/spring/modules/code/service/impl/CodeItemDefServiceImpl.java b/src/main/java/com/spring/modules/code/service/impl/CodeItemDefServiceImpl.java index 1dd4f718..8d6ba8a9 100644 --- a/src/main/java/com/spring/modules/code/service/impl/CodeItemDefServiceImpl.java +++ b/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 searchCodeItemDefs(CodeItemDef codeItemDef) { @@ -90,9 +94,14 @@ public class CodeItemDefServiceImpl extends ServiceImpl searchCodeItemAllDefsSeq(CodeItemDef codeItemDef) { + return codeConditionDetailMapper.searchCodeItemAllDefsSeq(codeItemDef); + } } diff --git a/src/main/java/com/spring/modules/code/utils/WrapperGenerate.java b/src/main/java/com/spring/modules/code/utils/WrapperGenerate.java new file mode 100644 index 00000000..aec80064 --- /dev/null +++ b/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{ + + public LambdaQueryChainWrapper generateChainLambdaLike(String column, SFunction sqlColumn, LambdaQueryChainWrapper 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 generateLambdaLike(String column, SFunction sqlColumn, LambdaQueryWrapper 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 generateChainLike(String column, String sqlColumn, QueryChainWrapper 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 generateLike(String column, String sqlColumn, QueryWrapper 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; + } +} diff --git a/src/main/java/com/spring/modules/code/vo/CodeDrawingVo.java b/src/main/java/com/spring/modules/code/vo/CodeDrawingVo.java new file mode 100644 index 00000000..89fd222a --- /dev/null +++ b/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; +} diff --git a/src/main/resources/mapper/code/CodeConditionDetailMapper.xml b/src/main/resources/mapper/code/CodeConditionDetailMapper.xml index 5d3e19b8..734d48e5 100644 --- a/src/main/resources/mapper/code/CodeConditionDetailMapper.xml +++ b/src/main/resources/mapper/code/CodeConditionDetailMapper.xml @@ -47,4 +47,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +