From b1e911bff34974e244416608aa73eef50448ea79 Mon Sep 17 00:00:00 2001 From: guo Date: Thu, 7 Dec 2023 10:56:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=99=BA=E6=85=A7=E6=A2=81=E5=9C=BA=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/controller/ProjectController.java | 22 +++++ .../xmgl/modules/project/entity/Project.java | 7 +- .../project/entity/vo/ProjectExtDto.java | 13 +++ .../project/service/IProjectService.java | 4 + .../service/impl/ProjectServiceImpl.java | 20 +++++ .../SmartBeamFieldMakeBeamPedestal.java | 4 + .../SmartBeamFieldBeamToProcessMapper.java | 10 +++ .../xml/SmartBeamFieldBeamToProcessMapper.xml | 13 +++ .../SmartBeamFieldMakeBeamPedestalMapper.xml | 13 ++- .../xml/SmartBeamFieldProcessMapper.xml | 6 +- .../SmartBeamFieldProductionLineMapper.xml | 6 +- ...martBeamFieldBeamToProcessServiceImpl.java | 7 +- ...tBeamFieldMakeBeamPedestalServiceImpl.java | 81 ++++++++++++++++--- .../zhgd/xmgl/security/WebSecurityConfig.java | 2 + 14 files changed, 184 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/modules/project/entity/vo/ProjectExtDto.java diff --git a/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectController.java b/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectController.java index 091fb8fe9..ce7c56963 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectController.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectController.java @@ -30,6 +30,7 @@ import org.simpleframework.xml.core.Validate; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; import javax.annotation.Resource; import java.util.Arrays; @@ -432,4 +433,25 @@ public class ProjectController { public Result> countConstructionStage(@RequestBody Map map) { return Result.success(projectService.countConstructionStage(map)); } + + @ApiOperation(value = "保存项目拓展字段信息", notes = "保存项目拓展字段信息") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String") + }) + @PostMapping("/saveProjectExtendInfo") + public Result saveProjectExtendInfo(@ApiIgnore @RequestBody ProjectExtDto dto) { + projectService.saveProjectExtendInfo(dto); + return Result.ok(); + } + + @ApiOperation(value = "查询项目拓展字段信息", notes = "查询项目拓展字段信息") + @ApiImplicitParams({ + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") + }) + @GetMapping("/getProjectExtendInfo") + public Result getProjectExtendInfo(@ApiIgnore @RequestBody Map map) { + return Result.success(projectService.getProjectExtendInfo(map)); + } + + } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java b/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java index 99fbdbdb6..aee86e915 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java @@ -12,7 +12,8 @@ import org.jeecgframework.poi.excel.annotation.Excel; import java.io.Serializable; /** - * @Description: 项目 + * 项目 + * * @author: pds * @date: 2020-08-07 * @version: V1.0 @@ -280,6 +281,10 @@ public class Project implements Serializable { private String gldLicPath; @ApiModelProperty(value = "新大屏地址(没有填则跳旧大屏)") private String newBigScreen; + @ApiModelProperty(value = "拓展字段1") + private String extend1; + @ApiModelProperty(value = "拓展字段2") + private String extend2; /** diff --git a/src/main/java/com/zhgd/xmgl/modules/project/entity/vo/ProjectExtDto.java b/src/main/java/com/zhgd/xmgl/modules/project/entity/vo/ProjectExtDto.java new file mode 100644 index 000000000..355abe77d --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/project/entity/vo/ProjectExtDto.java @@ -0,0 +1,13 @@ +package com.zhgd.xmgl.modules.project.entity.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class ProjectExtDto { + @ApiModelProperty(value = "拓展字段1") + private String extend1; + private String projectSn; + @ApiModelProperty(value = "拓展字段2") + private String extend2; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectService.java b/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectService.java index 54643e675..4ac8a3246 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectService.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectService.java @@ -79,4 +79,8 @@ public interface IProjectService extends IService { List countConstructionStage(Map map); void setProjectAreaCode(Project project); + + void saveProjectExtendInfo(ProjectExtDto map); + + Project getProjectExtendInfo(Map map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java index 61d6b6b9b..9ac6dfea0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java @@ -1,5 +1,6 @@ package com.zhgd.xmgl.modules.project.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.digest.HMac; @@ -305,6 +306,25 @@ public class ProjectServiceImpl extends ServiceImpl impl } } + @Override + public void saveProjectExtendInfo(ProjectExtDto dto) { + Project project = BeanUtil.toBean(dto, Project.class); + projectMapper.update(project, new LambdaQueryWrapper() + .eq(Project::getProjectSn, dto.getProjectSn())); + } + + @Override + public Project getProjectExtendInfo(Map map) { + String projectSn = MapUtils.getString(map, "projectSn"); + Project p = projectMapper.selectOne(new LambdaQueryWrapper() + .eq(Project::getProjectSn, projectSn)); + Project project = new Project(); + project.setProjectSn(p.getProjectSn()); + project.setExtend1(p.getExtend1()); + project.setExtend2(p.getExtend2()); + return project; + } + @Override public void saveZwProject(ZwProjectDataVo zwProjectDataVo) { Project project = new Project(); diff --git a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/entity/SmartBeamFieldMakeBeamPedestal.java b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/entity/SmartBeamFieldMakeBeamPedestal.java index 28373dbe4..d62fcd2b0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/entity/SmartBeamFieldMakeBeamPedestal.java +++ b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/entity/SmartBeamFieldMakeBeamPedestal.java @@ -85,4 +85,8 @@ public class SmartBeamFieldMakeBeamPedestal implements Serializable { @TableField(exist = false) @ApiModelProperty(value = "二维码页面的url") private java.lang.String qrCodeUrl; + @TableField(exist = false) + @ApiModelProperty(value = "是否被生产线绑定") + private java.lang.Boolean bindByProductionLine; + } diff --git a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/SmartBeamFieldBeamToProcessMapper.java b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/SmartBeamFieldBeamToProcessMapper.java index aab203555..84a5a4489 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/SmartBeamFieldBeamToProcessMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/SmartBeamFieldBeamToProcessMapper.java @@ -1,8 +1,15 @@ package com.zhgd.xmgl.modules.smartbeamfield.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhgd.xmgl.modules.smartbeamfield.entity.SmartBeamFieldBeamToProcess; import org.apache.ibatis.annotations.Mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @Description: 智慧梁场-梁和工序中间表 @@ -13,4 +20,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; @Mapper public interface SmartBeamFieldBeamToProcessMapper extends BaseMapper { + IPage queryList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + List queryList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldBeamToProcessMapper.xml b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldBeamToProcessMapper.xml index edbc0bf88..d18df8dbc 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldBeamToProcessMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldBeamToProcessMapper.xml @@ -1,4 +1,17 @@ + diff --git a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldMakeBeamPedestalMapper.xml b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldMakeBeamPedestalMapper.xml index 15f512d36..4f0084492 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldMakeBeamPedestalMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldMakeBeamPedestalMapper.xml @@ -2,19 +2,24 @@ diff --git a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldProcessMapper.xml b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldProcessMapper.xml index 7af7252a7..844605750 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldProcessMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldProcessMapper.xml @@ -4,12 +4,12 @@ diff --git a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldProductionLineMapper.xml b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldProductionLineMapper.xml index 7409be943..fb2876211 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldProductionLineMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/mapper/xml/SmartBeamFieldProductionLineMapper.xml @@ -1,7 +1,8 @@ - - select sbfpl.*, mb.smart_beam_field_make_beam_pedestal_id, mb.process_sort, bp.* from smart_beam_field_production_line sbfpl left join smart_beam_field_production_line_to_make_beam_pedestal mb on mb.smart_beam_field_production_line_id = sbfpl.id left join smart_beam_field_make_beam_pedestal bp on mb.smart_beam_field_make_beam_pedestal_id = bp.id where sbfpl.id = #{id} + order by sbfpl.id desc,mb.process_sort diff --git a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/service/impl/SmartBeamFieldBeamToProcessServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/service/impl/SmartBeamFieldBeamToProcessServiceImpl.java index c37b56744..c52a7a7ba 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/service/impl/SmartBeamFieldBeamToProcessServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/service/impl/SmartBeamFieldBeamToProcessServiceImpl.java @@ -42,7 +42,7 @@ public class SmartBeamFieldBeamToProcessServiceImpl extends ServiceImpl queryPageList(HashMap paramMap) { QueryWrapper queryWrapper = getQueryWrapper(paramMap); Page page = PageUtil.getPage(paramMap); - IPage pageList = this.page(page, queryWrapper); + IPage pageList = baseMapper.queryList(page, queryWrapper); pageList.setRecords(dealList(pageList.getRecords())); return pageList; } @@ -50,13 +50,12 @@ public class SmartBeamFieldBeamToProcessServiceImpl extends ServiceImpl queryList(HashMap paramMap) { QueryWrapper queryWrapper = getQueryWrapper(paramMap); - return dealList(this.list(queryWrapper)); + return dealList(baseMapper.queryList(queryWrapper)); } private QueryWrapper getQueryWrapper(HashMap paramMap) { - String alias = ""; + String alias = "sbfbtp."; QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(SmartBeamFieldBeamToProcess.class, paramMap, alias); - queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(SmartBeamFieldBeamToProcess::getId)); return queryWrapper; } diff --git a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/service/impl/SmartBeamFieldMakeBeamPedestalServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/service/impl/SmartBeamFieldMakeBeamPedestalServiceImpl.java index b1c103859..a636cf997 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/service/impl/SmartBeamFieldMakeBeamPedestalServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/smartbeamfield/service/impl/SmartBeamFieldMakeBeamPedestalServiceImpl.java @@ -1,5 +1,6 @@ package com.zhgd.xmgl.modules.smartbeamfield.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.IdUtil; @@ -14,6 +15,7 @@ import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.xmgl.modules.smartbeamfield.entity.*; import com.zhgd.xmgl.modules.smartbeamfield.entity.vo.MakeBeamRecordVo; +import com.zhgd.xmgl.modules.smartbeamfield.mapper.SmartBeamFieldBeamToProcessMapper; import com.zhgd.xmgl.modules.smartbeamfield.mapper.SmartBeamFieldMakeBeamPedestalMapper; import com.zhgd.xmgl.modules.smartbeamfield.mapper.SmartBeamFieldMakeBeamPedestalToProcessMapper; import com.zhgd.xmgl.modules.smartbeamfield.mapper.SmartBeamFieldProductionLineToMakeBeamPedestalMapper; @@ -27,10 +29,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.stream.Collectors; /** * @Description: 智慧梁场-制梁台座 @@ -47,6 +47,8 @@ public class SmartBeamFieldMakeBeamPedestalServiceImpl extends ServiceImpl getQueryWrapper(HashMap paramMap) { String alias = "mbp."; QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(SmartBeamFieldMakeBeamPedestal.class, paramMap, alias); - queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(SmartBeamFieldMakeBeamPedestal::getId)); return queryWrapper; } @@ -93,15 +94,16 @@ public class SmartBeamFieldMakeBeamPedestalServiceImpl extends ServiceImpl processList = smartBeamFieldMakeBeamPedestal.getProcessList(); if (CollUtil.isNotEmpty(processList)) { for (SmartBeamFieldProcess smartBeamFieldProcess : processList) { SmartBeamFieldMakeBeamPedestalToProcess makeBeamPedestalProcess = new SmartBeamFieldMakeBeamPedestalToProcess(); - makeBeamPedestalProcess.setSmartBeamFieldMakeBeamPedestalId(smartBeamFieldMakeBeamPedestal.getId()); + makeBeamPedestalProcess.setSmartBeamFieldMakeBeamPedestalId(id); makeBeamPedestalProcess.setSmartBeamFieldProcessId(smartBeamFieldProcess.getId()); makeBeamPedestalProcess.setProjectSn(smartBeamFieldMakeBeamPedestal.getProjectSn()); smartBeamFieldMakeBeamPedestalToProcessMapper.insert(makeBeamPedestalProcess); @@ -112,15 +114,74 @@ public class SmartBeamFieldMakeBeamPedestalServiceImpl extends ServiceImpl() + Long smartBeamFieldMakeBeamPedestalId = smartBeamFieldMakeBeamPedestal.getId(); + SmartBeamFieldMakeBeamPedestal queryPedestal = smartBeamFieldMakeBeamPedestalMapper.selectById(smartBeamFieldMakeBeamPedestalId); + SmartBeamFieldMakeBeamPedestal smartBeamFieldMakeBeamPedestal1 = smartBeamFieldMakeBeamPedestalMapper.selectOne(new LambdaQueryWrapper() .eq(SmartBeamFieldMakeBeamPedestal::getMakeBeamPedestalSn, makeBeamPedestalSn) .eq(SmartBeamFieldMakeBeamPedestal::getProjectSn, smartBeamFieldMakeBeamPedestal.getProjectSn()) - .ne(SmartBeamFieldMakeBeamPedestal::getId, smartBeamFieldMakeBeamPedestal.getId()) + .ne(SmartBeamFieldMakeBeamPedestal::getId, smartBeamFieldMakeBeamPedestalId) ); - if (p != null) { + if (smartBeamFieldMakeBeamPedestal1 != null) { throw new OpenAlertException("编号已存在"); } baseMapper.updateById(smartBeamFieldMakeBeamPedestal); + + //更新工序 + smartBeamFieldMakeBeamPedestalToProcessMapper.delete(new LambdaQueryWrapper() + .eq(SmartBeamFieldMakeBeamPedestalToProcess::getSmartBeamFieldMakeBeamPedestalId, smartBeamFieldMakeBeamPedestalId) + ); + List processList = smartBeamFieldMakeBeamPedestal.getProcessList(); + if (CollUtil.isNotEmpty(processList)) { + for (SmartBeamFieldProcess smartBeamFieldProcess : processList) { + SmartBeamFieldMakeBeamPedestalToProcess makeBeamPedestalProcess = new SmartBeamFieldMakeBeamPedestalToProcess(); + makeBeamPedestalProcess.setSmartBeamFieldMakeBeamPedestalId(smartBeamFieldMakeBeamPedestalId); + makeBeamPedestalProcess.setSmartBeamFieldProcessId(smartBeamFieldProcess.getId()); + makeBeamPedestalProcess.setProjectSn(smartBeamFieldMakeBeamPedestal.getProjectSn()); + smartBeamFieldMakeBeamPedestalToProcessMapper.insert(makeBeamPedestalProcess); + } + } + + //更新智慧梁场-梁和工序中间表顺序 + if (CollUtil.isNotEmpty(processList)) { + List existList = smartBeamFieldBeamToProcessMapper.selectList(new LambdaQueryWrapper() + .eq(SmartBeamFieldBeamToProcess::getSmartBeamFieldMakeBeamPedestalId, smartBeamFieldMakeBeamPedestalId) + ); + + Map>> beamMap = existList.stream() + .collect(Collectors.groupingBy(SmartBeamFieldBeamToProcess::getSmartBeamFieldBeamId, + Collectors.groupingBy(SmartBeamFieldBeamToProcess::getSmartBeamFieldProcessId))); + + smartBeamFieldBeamToProcessMapper.delete(new LambdaQueryWrapper() + .eq(SmartBeamFieldBeamToProcess::getSmartBeamFieldMakeBeamPedestalId, smartBeamFieldMakeBeamPedestalId) + ); + List beamIdList = existList.stream().map(SmartBeamFieldBeamToProcess::getSmartBeamFieldBeamId).distinct().sorted(Long::compareTo).collect(Collectors.toList()); + for (Long beamId : beamIdList) { + for (SmartBeamFieldProcess process : processList) { + SmartBeamFieldBeamToProcess pr = new SmartBeamFieldBeamToProcess(); + Map> lm = beamMap.get(beamId); + boolean exsit = false; + if (lm != null) { + List pl = lm.get(process.getId()); + if (CollUtil.isNotEmpty(pl)) { + SmartBeamFieldBeamToProcess p = pl.get(0); + if (p != null) { + BeanUtil.copyProperties(p, pr); + exsit = true; + } + } + } + if (!exsit) { + pr.setSmartBeamFieldMakeBeamPedestalId(queryPedestal.getId()); + pr.setSmartBeamFieldBeamId(beamId); + pr.setSmartBeamFieldProcessId(pr.getId()); + pr.setProcessName(pr.getProcessName()); + pr.setMakeBeamPedestalSn(makeBeamPedestalSn); + pr.setProjectSn(queryPedestal.getProjectSn()); + } + smartBeamFieldBeamToProcessMapper.insert(pr); + } + } + } } @Override diff --git a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java index 8319584aa..2315b60e6 100644 --- a/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java +++ b/src/main/java/com/zhgd/xmgl/security/WebSecurityConfig.java @@ -259,6 +259,8 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/xmgl/smartBeamFieldBeamToProcess/getMakeBeamProcess").permitAll() .antMatchers("/xmgl/smartBeamFieldSaveBeamPedestal/getSaveBeamRecordList").permitAll() .antMatchers("/xmgl/smartBeamFieldMakeBeamPedestal/getMakeBeamRecordList").permitAll() + .antMatchers("/xmgl/project/saveProjectExtendInfo").permitAll() + .antMatchers("/xmgl/project/getProjectExtendInfo").permitAll() .antMatchers(HttpMethod.OPTIONS, "/**").anonymous() .anyRequest().authenticated() // 剩下所有的验证都需要验证 .and()