智慧梁场修改

This commit is contained in:
guo 2023-12-07 10:56:22 +08:00
parent 2f7bd7d1ba
commit b1e911bff3
14 changed files with 184 additions and 24 deletions

View File

@ -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<List<ConstructionStageVo>> countConstructionStage(@RequestBody Map<String, Object> 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<Project> getProjectExtendInfo(@ApiIgnore @RequestBody Map<String, Object> map) {
return Result.success(projectService.getProjectExtendInfo(map));
}
}

View File

@ -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;
/**

View File

@ -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;
}

View File

@ -79,4 +79,8 @@ public interface IProjectService extends IService<Project> {
List<ConstructionStageVo> countConstructionStage(Map<String, Object> map);
void setProjectAreaCode(Project project);
void saveProjectExtendInfo(ProjectExtDto map);
Project getProjectExtendInfo(Map<String, Object> map);
}

View File

@ -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<ProjectMapper, Project> impl
}
}
@Override
public void saveProjectExtendInfo(ProjectExtDto dto) {
Project project = BeanUtil.toBean(dto, Project.class);
projectMapper.update(project, new LambdaQueryWrapper<Project>()
.eq(Project::getProjectSn, dto.getProjectSn()));
}
@Override
public Project getProjectExtendInfo(Map<String, Object> map) {
String projectSn = MapUtils.getString(map, "projectSn");
Project p = projectMapper.selectOne(new LambdaQueryWrapper<Project>()
.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();

View File

@ -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;
}

View File

@ -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<SmartBeamFieldBeamToProcess> {
IPage<SmartBeamFieldBeamToProcess> queryList(Page<SmartBeamFieldBeamToProcess> page, @Param(Constants.WRAPPER) QueryWrapper<SmartBeamFieldBeamToProcess> queryWrapper);
List<SmartBeamFieldBeamToProcess> queryList(@Param(Constants.WRAPPER) QueryWrapper<SmartBeamFieldBeamToProcess> queryWrapper);
}

View File

@ -1,4 +1,17 @@
<?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.zhgd.xmgl.modules.smartbeamfield.mapper.SmartBeamFieldBeamToProcessMapper">
<select id="queryList" resultType="com.zhgd.xmgl.modules.smartbeamfield.entity.SmartBeamFieldBeamToProcess">
select sbfbtp.*
from smart_beam_field_beam_to_process sbfbtp
join smart_beam_field_make_beam_pedestal_to_process sbfmbptp on sbfbtp.smart_beam_field_make_beam_pedestal_id =
sbfmbptp.smart_beam_field_make_beam_pedestal_id
and sbfbtp.id = sbfmbptp.smart_beam_field_process_id
join smart_beam_field_beam sbfb on sbfbtp.smart_beam_field_beam_id = sbfb.id
join smart_beam_field_production_line_to_make_beam_pedestal sbfpltmbp on
sbfbtp.smart_beam_field_make_beam_pedestal_id = sbfpltmbp.smart_beam_field_make_beam_pedestal_id
and sbfpltmbp.smart_beam_field_production_line_id=sbfb.smart_beam_field_production_line_id
${ew.customSqlSegment}
order by sbfpltmbp.process_sort,sbfbtp.id
</select>
</mapper>

View File

@ -2,19 +2,24 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.smartbeamfield.mapper.SmartBeamFieldMakeBeamPedestalMapper">
<select id="getMakeBeamRecordList" resultType="com.zhgd.xmgl.modules.smartbeamfield.entity.SmartBeamFieldBeam">
select b.* from smart_beam_field_beam b
select b.*
from smart_beam_field_beam b
left join smart_beam_field_production_line bp on b.smart_beam_field_production_line_id = bp.id
left join smart_beam_field_production_line_to_make_beam_pedestal sbfplmbp on
sbfplmbp.smart_beam_field_production_line_id = bp.id
where sbfplmbp.smart_beam_field_make_beam_pedestal_id=#{smartBeamFieldMakeBeamPedestalId}
where sbfplmbp.smart_beam_field_make_beam_pedestal_id = #{smartBeamFieldMakeBeamPedestalId}
</select>
<select id="queryList" resultType="com.zhgd.xmgl.modules.smartbeamfield.entity.SmartBeamFieldMakeBeamPedestal">
select mbp.*,group_concat(p.process_name) pedestalProcess from smart_beam_field_make_beam_pedestal mbp
select mbp.*, group_concat(p.process_name) pedestalProcess,if(sbfpltmbp.id is null,0,1) bindByProductionLine
from smart_beam_field_make_beam_pedestal mbp
join smart_beam_field_make_beam_pedestal_to_process mbptp on mbptp.smart_beam_field_make_beam_pedestal_id =
mbp.id
join smart_beam_field_process p on mbptp.smart_beam_field_process_id = p.id
group by mbp.id
left join smart_beam_field_production_line_to_make_beam_pedestal sbfpltmbp on mbp.id =
sbfpltmbp.smart_beam_field_make_beam_pedestal_id
${ew.customSqlSegment}
group by mbp.id
ORDER BY mbp.id DESC
</select>
</mapper>

View File

@ -4,12 +4,12 @@
<select id="getProcessAndMakeBeamPedestalByLineId"
resultType="com.zhgd.xmgl.modules.smartbeamfield.entity.SmartBeamFieldProcess">
select p.*, mbp.id as smartBeamFieldMakeBeamPedestalId, mbp.make_beam_pedestal_sn
from
smart_beam_field_production_line_to_make_beam_pedestal pltmbp
from smart_beam_field_production_line_to_make_beam_pedestal pltmbp
join smart_beam_field_make_beam_pedestal mbp on pltmbp.smart_beam_field_make_beam_pedestal_id = mbp.id
join smart_beam_field_make_beam_pedestal_to_process mbptp
on mbptp.smart_beam_field_make_beam_pedestal_id = mbp.id
join smart_beam_field_process p on mbptp.smart_beam_field_process_id = p.id
where pltmbp.smart_beam_field_production_line_id=#{smartBeamFieldProductionLineId}
where pltmbp.smart_beam_field_production_line_id = #{smartBeamFieldProductionLineId}
order by pltmbp.process_sort,mbptp.id
</select>
</mapper>

View File

@ -1,7 +1,8 @@
<?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.zhgd.xmgl.modules.smartbeamfield.mapper.SmartBeamFieldProductionLineMapper">
<resultMap id="companyInfoDetails" type="com.zhgd.xmgl.modules.smartbeamfield.entity.SmartBeamFieldProductionLine"
<resultMap id="getProductionLineAndMakeBeamPedestals"
type="com.zhgd.xmgl.modules.smartbeamfield.entity.SmartBeamFieldProductionLine"
autoMapping="true">
<id column="id" property="id"/>
<collection property="makeBeamPedestals"
@ -11,12 +12,13 @@
<id property="processSort" column="process_sort"/>
</collection>
</resultMap>
<select id="queryById" resultType="com.zhgd.xmgl.modules.smartbeamfield.entity.SmartBeamFieldProductionLine">
<select id="queryById" resultMap="getProductionLineAndMakeBeamPedestals">
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
</select>
</mapper>

View File

@ -42,7 +42,7 @@ public class SmartBeamFieldBeamToProcessServiceImpl extends ServiceImpl<SmartBea
public IPage<SmartBeamFieldBeamToProcess> queryPageList(HashMap<String, Object> paramMap) {
QueryWrapper<SmartBeamFieldBeamToProcess> queryWrapper = getQueryWrapper(paramMap);
Page<SmartBeamFieldBeamToProcess> page = PageUtil.getPage(paramMap);
IPage<SmartBeamFieldBeamToProcess> pageList = this.page(page, queryWrapper);
IPage<SmartBeamFieldBeamToProcess> pageList = baseMapper.queryList(page, queryWrapper);
pageList.setRecords(dealList(pageList.getRecords()));
return pageList;
}
@ -50,13 +50,12 @@ public class SmartBeamFieldBeamToProcessServiceImpl extends ServiceImpl<SmartBea
@Override
public List<SmartBeamFieldBeamToProcess> queryList(HashMap<String, Object> paramMap) {
QueryWrapper<SmartBeamFieldBeamToProcess> queryWrapper = getQueryWrapper(paramMap);
return dealList(this.list(queryWrapper));
return dealList(baseMapper.queryList(queryWrapper));
}
private QueryWrapper<SmartBeamFieldBeamToProcess> getQueryWrapper(HashMap<String, Object> paramMap) {
String alias = "";
String alias = "sbfbtp.";
QueryWrapper<SmartBeamFieldBeamToProcess> queryWrapper = QueryGenerator.initPageQueryWrapper(SmartBeamFieldBeamToProcess.class, paramMap, alias);
queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(SmartBeamFieldBeamToProcess::getId));
return queryWrapper;
}

View File

@ -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<Smart
private SmartBeamFieldMakeBeamPedestalToProcessMapper smartBeamFieldMakeBeamPedestalToProcessMapper;
@Autowired
private SmartBeamFieldProductionLineToMakeBeamPedestalMapper smartBeamFieldProductionLineToMakeBeamPedestalMapper;
@Autowired
private SmartBeamFieldBeamToProcessMapper smartBeamFieldBeamToProcessMapper;
@Value("${basePath}")
private String basePath;
@ -68,7 +70,6 @@ public class SmartBeamFieldMakeBeamPedestalServiceImpl extends ServiceImpl<Smart
private QueryWrapper<SmartBeamFieldMakeBeamPedestal> getQueryWrapper(HashMap<String, Object> paramMap) {
String alias = "mbp.";
QueryWrapper<SmartBeamFieldMakeBeamPedestal> 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<Smart
smartBeamFieldMakeBeamPedestal.setQrCode(IdUtil.simpleUUID() + ".jpg");
baseMapper.insert(smartBeamFieldMakeBeamPedestal);
Long id = smartBeamFieldMakeBeamPedestal.getId();
QrCodeUtil.generate(String.format("%s?smartBeamFieldMakeBeamPedestalId=%s",
smartBeamFieldMakeBeamPedestal.getQrCodeUrl(), smartBeamFieldMakeBeamPedestal.getId()
smartBeamFieldMakeBeamPedestal.getQrCodeUrl(), id
), 300, 300, FileUtil.file((new File(this.basePath, smartBeamFieldMakeBeamPedestal.getQrCode())).getAbsolutePath()));
List<SmartBeamFieldProcess> 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<Smart
@Override
public void edit(SmartBeamFieldMakeBeamPedestal smartBeamFieldMakeBeamPedestal) {
String makeBeamPedestalSn = smartBeamFieldMakeBeamPedestal.getMakeBeamPedestalSn();
SmartBeamFieldMakeBeamPedestal p = smartBeamFieldMakeBeamPedestalMapper.selectOne(new LambdaQueryWrapper<SmartBeamFieldMakeBeamPedestal>()
Long smartBeamFieldMakeBeamPedestalId = smartBeamFieldMakeBeamPedestal.getId();
SmartBeamFieldMakeBeamPedestal queryPedestal = smartBeamFieldMakeBeamPedestalMapper.selectById(smartBeamFieldMakeBeamPedestalId);
SmartBeamFieldMakeBeamPedestal smartBeamFieldMakeBeamPedestal1 = smartBeamFieldMakeBeamPedestalMapper.selectOne(new LambdaQueryWrapper<SmartBeamFieldMakeBeamPedestal>()
.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<SmartBeamFieldMakeBeamPedestalToProcess>()
.eq(SmartBeamFieldMakeBeamPedestalToProcess::getSmartBeamFieldMakeBeamPedestalId, smartBeamFieldMakeBeamPedestalId)
);
List<SmartBeamFieldProcess> 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<SmartBeamFieldBeamToProcess> existList = smartBeamFieldBeamToProcessMapper.selectList(new LambdaQueryWrapper<SmartBeamFieldBeamToProcess>()
.eq(SmartBeamFieldBeamToProcess::getSmartBeamFieldMakeBeamPedestalId, smartBeamFieldMakeBeamPedestalId)
);
Map<Long, Map<Long, List<SmartBeamFieldBeamToProcess>>> beamMap = existList.stream()
.collect(Collectors.groupingBy(SmartBeamFieldBeamToProcess::getSmartBeamFieldBeamId,
Collectors.groupingBy(SmartBeamFieldBeamToProcess::getSmartBeamFieldProcessId)));
smartBeamFieldBeamToProcessMapper.delete(new LambdaQueryWrapper<SmartBeamFieldBeamToProcess>()
.eq(SmartBeamFieldBeamToProcess::getSmartBeamFieldMakeBeamPedestalId, smartBeamFieldMakeBeamPedestalId)
);
List<Long> 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<Long, List<SmartBeamFieldBeamToProcess>> lm = beamMap.get(beamId);
boolean exsit = false;
if (lm != null) {
List<SmartBeamFieldBeamToProcess> 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

View File

@ -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()