开料,封边新增连带贴标,钻孔新增-逻辑新增,预打包翻页提示信息更改

This commit is contained in:
liuzhaotian
2024-08-16 11:29:55 +08:00
parent a939049345
commit 97bab4fd24
18 changed files with 407 additions and 155 deletions
@@ -233,6 +233,7 @@ public interface ErrorCodeConstants {
ErrorCode PLATE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_032_001, "导入板材数据不能为空!");
ErrorCode PLATE_EXISTS = new ErrorCode(1_002_032_002, "板材存在");
ErrorCode THE_CURRENT_BOARD_IS_NOT_SELECTED = new ErrorCode(1_002_032_003, "当前板材没有选择房间和柜体,请选择");
ErrorCode THE_BOARD_HAS_BEEN_CUT_INTO_PIECES = new ErrorCode(1_002_032_004, "当前排单已有板材开料,禁止修改");
//=========== 板材信息 1-002-033-000 ============
ErrorCode REMAIN_PLATE_NOT_EXISTS = new ErrorCode(1_002_032_002, "板材不存在");
@@ -271,7 +272,7 @@ public interface ErrorCodeConstants {
ErrorCode THE_CURRENT_PACKAGE_TYPE_IS_INCORRECT = new ErrorCode(1_002_038_777, "当前包裹类型错误");
ErrorCode FAILED_TO_MODIFY_THE_STATUS_OF_THE_CURRENT_PRODUCTION_ORDER = new ErrorCode(1_002_038_778, "修改当前生产单的工序状态和生产单的状态失败");
ErrorCode NO_OPTIMIZATION_INFORMATION_AVAILABLE = new ErrorCode(1_002_038_779, "当前订单无优化信息");
ErrorCode NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE = new ErrorCode(1_002_038_780, "已经是{}一条了,无{}一页信息");
ErrorCode NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE = new ErrorCode(1_002_038_780, "已经是{}一条了");
//=========== 应用信息 1-002-037-000 ============
@@ -279,6 +280,7 @@ public interface ErrorCodeConstants {
ErrorCode APPLICATION_LOGIN_USER_DISABLED = new ErrorCode(1_002_037_001, "应用登陆失败");
ErrorCode ERR = new ErrorCode(1_002_038_001, "未知错误");
ErrorCode DATA_ERR = new ErrorCode(1_002_038_002, "数据错误,需要清除数据重新导入");
ErrorCode REMAIN_PLATE_STATUS_USED = new ErrorCode(1_002_038_001, "余料板正在使用中,禁止修改");
ErrorCode REMAIN_PLATE_STATUS_NO_USED = new ErrorCode(1_002_038_002, "余料板未使用");
@@ -1,10 +1,9 @@
package com.cf.imes.module.system.controller.admin.machine.vo;
import com.alibaba.fastjson.JSONObject;
import com.cf.imes.framework.es.core.valid.CreateGroup;
import com.cf.imes.framework.es.core.valid.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@@ -43,8 +42,13 @@ public class CuttingSaveReqVO {
// @Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED)
// private String brand;
@Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED)
private String model;
// @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED)
// private String model;
@Schema(description = "机台的型号-机台的ID")
private Long machineId;
@Schema(description = "机台配置")
private JSONObject machineSettingDO;
@@ -2,7 +2,6 @@ package com.cf.imes.module.system.controller.admin.machine.vo;
import com.alibaba.fastjson.JSONObject;
import com.cf.imes.framework.es.core.valid.UpdateGroup;
import com.cf.imes.module.system.dal.dataobject.machinetemplate.CuttingTemplateMachineDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -41,8 +40,12 @@ public class CuttingTemplateSaveReqVO {
// private String brand;
@Schema(description = "机台的型号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
private String model;
// @Schema(description = "机台的型号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
// private String model;
@Schema(description = "机台的型号-机台ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
private Long machineId;
@Schema(description = "管理理后台 - 机台模板新增/修改 Request VO")
@@ -12,14 +12,17 @@ public class MachineBrandModelRespVO {
@Schema(description = "机台的品牌ID")
private Long id;
private Long brandId;
@Schema(description = "机台的品牌")
private String brand;
// @Schema(description = "机台的型号-即机台的名称")
// private List<String> name;
@Schema(description = "机台的型号-即机台的名称")
private List<String> name;
private List<MachineSimpleRespVO> machineSimpleRespVOS;
}
@@ -5,21 +5,29 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class MachineTemplateBrandReqVO {
@Schema(description = "组织ID")
private Long organId;
@Schema(description = "1开料机台设备 2钻孔机台设备", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "1开料机台设备 2钻孔机台设备 不能为空")
private Integer machineType;
@Schema(description = "机台的品牌ID")
private Integer id;
private Long id;
@Schema(description = "机台的品牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "品牌名称不能为空")
private String brand;
@Schema(description = "机台模板的授权信息")
private List<OrganTemplateVO> organMachineVOS;
}
@@ -9,8 +9,12 @@ import lombok.Data;
*/
@Data
public class OrganTemplatePage extends PageParam {
@Schema(description = "组织id")
private Long organId;
// @Schema(description = "组织id")
// private Long organId;
@Schema(description = "组织名称")
private String organName;
@Schema(description = "机台模板名称")
private String templateName;
@@ -28,6 +28,9 @@ public class OrganTemplateResp {
@Schema(description = "更新时间")
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
private Date updateTime;
@Schema(description = "机台模板列表")
private List<OrganTemplateVO> authTemplateList;
private List<MachineTemplateBrandReqVO> machineTemplateBrandReqVOS;
// @Schema(description = "机台模板列表")
// private List<OrganTemplateVO> authTemplateList;
}
@@ -11,6 +11,8 @@ import lombok.Data;
public class OrganTemplateVO {
@Schema(description = "机台模板id")
private Long templateId;
@Schema(description = "机台模板品牌id")
private Long brandId;
@Schema(description = "机台模板名称")
private String templateName;
@Schema(description = "机台模板类型")
@@ -1,12 +1,15 @@
package com.cf.imes.module.system.controller.admin.machine.vo;
import com.baomidou.mybatisplus.annotation.TableId;
import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganSimpleRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import java.util.List;
/**
* @author Beal
*/
@@ -15,26 +18,76 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
public class TemplateAutoResp {
@Schema(description = "机台模板id")
private Long id;
/**
* 名称
*/
@Schema(description = "机台模板名称")
private String templateName;
/**
* 1机台设备 2CNC设备
*/
@Schema(description = "机台模板类别")
private Integer machineType;
/**
* 是否默认模板
*/
private Boolean isDefault;
@Schema(description ="加工模式 开料机加工模式 默认true,显示开料机工作模式(是否排钻/造型,sc)配置")
private Boolean showPriorFacing = false;
@Schema(description = "双工位")
private Boolean showDualWorkstation = false;
@Schema(description = "自动贴标")
private Boolean showAutoNotePrinter = false;
@Schema(description = "组织信息")
private List<OrganSimpleRespVO> organSimpleRespVOS;
@Schema(description = "机台模板的品牌信息")
private List<MachineBrand> machineBrand;
@Valid
@Data
public static class MachineBrand {
@Schema(description = "品牌ID")
private Long id;
@Schema(description = "品牌名称")
private String brand;
@Schema(description = "机台类别")
private Integer machineType;
@Schema(description = "机台模板的权限信息")
private List<MachineTemplate> machineTemplates;
}
@Valid
@Data
public static class MachineTemplate {
@Schema(description = "机台模板ID")
private Long id;
@Schema(description = "机台模板品牌ID")
private Long brandId;
@Schema(description = "机台模板名称")
private String name;
}
// @Schema(description = "机台模板id")
// private Long id;
//
//
// @Schema(description = "机台模板名称")
// private String templateName;
//
//
// @Schema(description = "机台模板类别")
// private Integer machineType;
//
//
//// private Boolean isDefault;
//
// @Schema(description ="加工模式 开料机加工模式 默认true,显示开料机工作模式(是否排钻/造型,sc)配置")
// private Boolean showPriorFacing = false;
//
// @Schema(description = "双工位")
// private Boolean showDualWorkstation = false;
//
// @Schema(description = "自动贴标")
// private Boolean showAutoNotePrinter = false;
}
@@ -28,7 +28,7 @@ public class MachineTemplateConvert {
.id(reqVO.getId())
.name(reqVO.getName())
// .brand(reqVO.getBrand())
.brandId(reqVO.getBrandId())
.brandId(reqVO.getNowBrandId())
.setting(reqVO.getSetting().toJSONString())
.build();
}
@@ -3,9 +3,8 @@ package com.cf.imes.module.system.dal.mysql.machine;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.system.controller.admin.machine.vo.MachineBrandModelRespVO;
import com.cf.imes.module.system.dal.dataobject.machine.MachineBrandDO;
import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateDO;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -31,4 +30,6 @@ public interface MachineBrandMapper extends BaseMapperX<MachineBrandDO> {
}
List<MachineBrandModelRespVO> selectMachineList(@Param("type") Integer type);
}
@@ -49,16 +49,23 @@ public interface MachineTemplateMapper extends BaseMapperX<MachineTemplateDO> {
default List<MachineTemplateDO> selectByBrand(Integer id) {
default List<MachineTemplateDO> selectByBrand(Long id) {
return selectList(new LambdaQueryWrapperX<MachineTemplateDO>()
.eqIfPresent(MachineTemplateDO::getBrandId,id));
}
default MachineTemplateDO selectMachine(Long brandId, String model) {
default MachineTemplateDO selectMachine(Long brandId, Long machineId) {
return selectOne(new LambdaQueryWrapperX<MachineTemplateDO>()
.eqIfPresent(MachineTemplateDO::getBrandId,brandId)
.eqIfPresent(MachineTemplateDO::getName,model));
.eqIfPresent(MachineTemplateDO::getId,machineId));
}
default List<MachineTemplateDO> selectMachineTemplate(String templateName) {
return selectList(new LambdaQueryWrapperX<MachineTemplateDO>()
.likeIfPresent(MachineTemplateDO::getName,templateName));
}
}
@@ -3,15 +3,15 @@ package com.cf.imes.module.system.service.machine;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.elasticsearch._types.FieldValue;
import co.elastic.clients.elasticsearch._types.query_dsl.TermQuery;
import co.elastic.clients.elasticsearch._types.query_dsl.TermsQuery;
import co.elastic.clients.elasticsearch.core.DeleteByQueryRequest;
import co.elastic.clients.elasticsearch.core.SearchRequest;
import co.elastic.clients.elasticsearch.core.SearchResponse;
import co.elastic.clients.elasticsearch.core.search.Hit;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cf.imes.framework.common.enums.MachineTypeEnum;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.json.JsonUtils;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.es.core.dal.ESDocument;
import com.cf.imes.framework.es.core.service.ESDocumentService;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -23,29 +23,26 @@ import com.cf.imes.module.system.controller.admin.machine.vo.*;
import com.cf.imes.module.system.convert.machine.MachineConvert;
import com.cf.imes.module.system.dal.dataobject.machine.*;
import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateDO;
import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateLimitDO;
import com.cf.imes.module.system.dal.mysql.machine.MachineBrandMapper;
import com.cf.imes.module.system.dal.mysql.machine.MachineMapper;
import com.cf.imes.module.system.dal.mysql.machine.MachineLimitMapper;
import com.cf.imes.module.system.dal.mysql.machine.MachineMapper;
import com.cf.imes.module.system.dal.mysql.machinetemplate.MachineTemplateLimitMapper;
import com.cf.imes.module.system.dal.mysql.machinetemplate.MachineTemplateMapper;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
import javax.annotation.Resource;
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cf.imes.framework.common.util.json.JsonUtils.unzipString;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
@@ -111,26 +108,91 @@ public class MachineServiceImpl implements MachineService {
}
MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachine(createReqVO.getBrandId(), createReqVO.getModel());
MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachine(createReqVO.getBrandId(), createReqVO.getMachineId());
if(machineTemplateDO == null){
throw exception(THE_MODEL_OF_THE_MACHINE_DOES_NOT_EXIST);
}
// MachineTemplateLimitDO organMachineTemplateDO = machineTemplateLimitMapper.selectOne(new LambdaQueryWrapperX<MachineTemplateLimitDO>()
//// .eq(MachineTemplateLimitDO::getMachineId, createReqVO.getTemplateId())
// .eq(MachineTemplateLimitDO::getOrganId, loginUser.getOrganId())
// );
// 插入
MachineDO machineDO = MachineConvert.convert(createReqVO);
// if(createReqVO.getMachineSettingDO().isEmpty()) {
// machineDO.setSetting(machineTemplateDO.getSetting());
// }
machineDO.setSetting(machineTemplateDO.getSetting());
machineMapper.insert(machineDO);
if(machineTemplateDO.getMachineType().equals(MachineTypeEnum.CUTTING.getType())) {
// 将配置进行解压,判断该类型的机台的贴标配置是否开启
JsonNode cuttingSetting = JsonUtils.parseTree(unzipString(machineTemplateDO.getSetting()));
JsonNode advancedConfigsRef = cuttingSetting.get("advancedConfigsRef");
boolean isAutoLabelEnabled = advancedConfigsRef.get("isAutoLabelEnabled").asBoolean();
if(isAutoLabelEnabled && advancedConfigsRef.get("autoLabelBrand") != null && advancedConfigsRef.get("autoLabelModel") != null){
// Integer autoLabelBrand = advancedConfigsRef.get("autoLabelBrand").asInt();
Integer autoLabelModel = advancedConfigsRef.get("autoLabelModel").asInt();
// 根据型号ID查询贴标的配置信息
MachineTemplateDO labelingMachineTemplateDO = machineTemplateMapper.selectById(autoLabelModel);
MachineDO labelingMachineDO = MachineDO.builder()
.labelId(machineDO.getLabelId())
.machineType(labelingMachineTemplateDO.getMachineType())
.brandId(labelingMachineTemplateDO.getBrandId())
.setting(labelingMachineTemplateDO.getSetting())
.name("开料"+machineDO.getName()+ "-贴标机")
.build();
machineMapper.insert(labelingMachineDO);
}
}
if(machineTemplateDO.getMachineType().equals(MachineTypeEnum.BANDING.getType())) {
// 将配置进行解压,判断该类型的机台的钻孔配置是否开启
JsonNode drillSetting = JsonUtils.parseTree(unzipString(machineTemplateDO.getSetting()));
JsonNode cuttingModuleRef = drillSetting.get("cuttingModuleRef");
boolean isDrillEnabled = cuttingModuleRef.get("isDrillEnabled").asBoolean();
if(isDrillEnabled && cuttingModuleRef.get("drillBrand") != null && cuttingModuleRef.get("drillModel") != null){
// Integer drillBrand = cuttingModuleRef.get("drillBrand").asInt();
Integer autoLabelModel = cuttingModuleRef.get("drillModel").asInt();
// 根据型号ID查询钻孔机的配置信息
MachineTemplateDO drillMachineTemplateDO = machineTemplateMapper.selectById(autoLabelModel);
MachineDO drillMachineDO = MachineDO.builder()
.labelId(machineDO.getLabelId())
.machineType(drillMachineTemplateDO.getMachineType())
.brandId(drillMachineTemplateDO.getBrandId())
.setting(drillMachineTemplateDO.getSetting())
.name("开料"+machineDO.getName()+"钻孔机")
.build();
machineMapper.insert(drillMachineDO);
}
}
// MachineLimitDO machineLimitDO = MachineLimitDO.builder()
// .organId(loginUser.getOrganId())
// .machineId(machineDO.getId())
@@ -309,18 +371,20 @@ public class MachineServiceImpl implements MachineService {
@Override
public List<MachineBrandModelRespVO> getBrandAndModel(Integer type) {
List<MachineBrandDO> machineBrandDOS = machineBrandMapper.selectListByType(type);
// List<MachineBrandDO> machineBrandDOS = machineBrandMapper.selectListByType(type);
return machineBrandMapper.selectMachineList(type);
List<MachineBrandModelRespVO> machineBrandModelRespVOS = BeanUtils.toBean(machineBrandDOS, MachineBrandModelRespVO.class);
List<MachineTemplateDO> machineDOS = machineTemplateMapper.selectList(new LambdaQueryWrapperX<MachineTemplateDO>()
.eqIfPresent(MachineTemplateDO::getMachineType, type));
machineBrandModelRespVOS.forEach(v->
v.setName(machineDOS.stream().filter(f->f.getBrandId().equals(v.getId())).map(MachineTemplateDO::getName).toList())
);
// List<MachineBrandModelRespVO> machineBrandModelRespVOS = BeanUtils.toBean(machineBrandDOS, MachineBrandModelRespVO.class);
//
//
// List<MachineTemplateDO> machineDOS = machineTemplateMapper.selectList(new LambdaQueryWrapperX<MachineTemplateDO>()
// .eq(MachineTemplateDO::getDeleted,false)
// .eqIfPresent(MachineTemplateDO::getMachineType, type));
//
// machineBrandModelRespVOS.forEach(v->
// v.setName(machineDOS.stream().filter(f->f.getBrandId().equals(v.getId())).map(MachineTemplateDO::getName).toList())
// );
// List<MachineBrandModelRespVO> machineVOS = BeanUtils.toBean(machineDOS, MachineBrandModelRespVO.class);
@@ -329,7 +393,7 @@ public class MachineServiceImpl implements MachineService {
// Map<String, List<MachineBrandModelRespVO>> map = machineVOS.stream().collect(Collectors.groupingBy(MachineBrandModelRespVO::getBrand));
return machineBrandModelRespVOS;
// return machineBrandModelRespVOS;
}
@@ -11,37 +11,43 @@ import co.elastic.clients.elasticsearch.core.SearchRequest;
import co.elastic.clients.elasticsearch.core.SearchResponse;
import co.elastic.clients.elasticsearch.core.search.Hit;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cf.imes.framework.common.exception.ServiceException;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.common.enums.MachineTypeEnum;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.json.JsonUtils;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.es.core.dal.ESDocument;
import com.cf.imes.framework.es.core.service.ESDocumentService;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
import com.cf.imes.module.system.controller.admin.machine.vo.*;
import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganSimpleRespVO;
import com.cf.imes.module.system.convert.machine.MachineTemplateConvert;
import com.cf.imes.module.system.dal.dataobject.machine.CuttingSettingDO;
import com.cf.imes.module.system.dal.dataobject.machine.MachineBrandDO;
import com.cf.imes.module.system.dal.dataobject.machine.UserMachineDO;
import com.cf.imes.module.system.dal.dataobject.machinetemplate.DrillTemplateMachineDO;
import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateDO;
import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateLimitDO;
import com.cf.imes.module.system.dal.dataobject.organ.OrganizationDO;
import com.cf.imes.module.system.dal.mysql.machine.MachineBrandMapper;
import com.cf.imes.module.system.dal.mysql.machine.UserMachineMapper;
import com.cf.imes.module.system.dal.mysql.machinetemplate.MachineTemplateMapper;
import com.cf.imes.module.system.dal.mysql.machinetemplate.MachineTemplateLimitMapper;
import com.cf.imes.module.system.dal.mysql.machinetemplate.MachineTemplateMapper;
import com.cf.imes.module.system.dal.mysql.organ.OrganMapper;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cf.imes.framework.common.util.json.JsonUtils.unzipString;
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
/**
@@ -172,18 +178,17 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO);
// MachineBrandDO machineBrandDO = machineBrandMapper.selectBrand(reqVO.getBrand(),reqVO.getMachineType());
if(reqVO.getMachineId()!=null) {
// List<MachineTemplateDO> machineTemplateDOS = machineTemplateMapper.selectByBrand(machineBrandDO.getId());
if(reqVO.getModel()!=null) {
MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachine(reqVO.getNowBrandId(), reqVO.getModel());
MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachine(reqVO.getBrandId(), reqVO.getMachineId());
templateDO.setSetting(machineTemplateDO.getSetting());
machineTemplateMapper.insert(templateDO);
handleMachineType(machineTemplateDO, templateDO);
return templateDO.getId();
}
@@ -191,11 +196,13 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
machineTemplateMapper.insert(templateDO);
return templateDO.getId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateCuttingTemplate(CuttingTemplateSaveReqVO reqVO) {
@@ -222,9 +229,9 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
if (Objects.isNull(templateDO)) {
throw exception(MACHINE_TEMPLATE_NOT_EXISTS);
}
templateDO.setSetting(JsonUtils.unzipString(templateDO.getSetting()));
CuttingTemplateRespVO respVO = MachineTemplateConvert.convert1(templateDO);
return respVO;
templateDO.setSetting(unzipString(templateDO.getSetting()));
return MachineTemplateConvert.convert1(templateDO);
}
@Override
@@ -242,6 +249,7 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
List<Long> ids = machineTemplateDOS.stream().map(MachineTemplateDO::getId).toList();
machineTemplateMapper.deleteBatchIds(ids);
}
@@ -267,7 +275,7 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
.stream()
// todo 目前需要写上,等数据清一波后,应该不需要了
.filter(m -> !Objects.equals(m.getBrandId(),null))
.map(m -> m.setSetting(JsonUtils.unzipString(m.getSetting()))).toList();
.map(m -> m.setSetting(unzipString(m.getSetting()))).toList();
for (MachineTemplateRespVO machineTemplateRespVO : machineTemplateRespVOS) {
machineTemplateRespVO.setMachineTemplateDOS(machineTemplateDOS.stream()
@@ -275,9 +283,9 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
.toList());
}
Map<Integer, List<MachineTemplateRespVO>> map = machineTemplateRespVOS.stream().collect(Collectors.groupingBy(MachineTemplateRespVO::getMachineType));
return machineTemplateRespVOS.stream().collect(Collectors.groupingBy(MachineTemplateRespVO::getMachineType));
return map;
}
@Override
@@ -364,9 +372,7 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
if (Objects.isNull(templateDO)) {
throw exception(MACHINE_TEMPLATE_NOT_EXISTS);
}
// if(templateDO.getIsDefault()) {
// throw exception(DEFAULT_TEMPLATE_NOT_DELETED);
// }
machineTemplateMapper.deleteById(id);
return Boolean.TRUE;
}
@@ -438,56 +444,78 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
}
/* @Override
public PageResult<CuttingMachineDO> pageCutting(PageParam pageParam) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
List<String> machineIds = userMachineMapper.selectList(new LambdaQueryWrapperX<UserMachineDO>().eq(UserMachineDO::getUserId, 1L*//*loginUser.getId()*//*))
.stream()
.map(e -> e.getMachineId())
.collect(Collectors.toList());
List<CuttingMachineDO> cuttingMachineDOS = new ArrayList<>();
List<Query> queryList = new ArrayList<>();
List<FieldValue> fieldValues = new ArrayList<>();
for (String machineId : machineIds) {
fieldValues.add(FieldValue.of(machineId));
}
queryList.add(TermsQuery.of(e-> e.field("_id").terms(b->b.value(fieldValues)))._toQuery());
queryList.add(TermQuery.of(e->e.field("organId").value( loginUser.getOrganId()))._toQuery());
SearchResponse<CuttingMachineDO> response = null;
try {
response = elasticsearchClient.search(s-> s.index(CUTTING_MACHINE_INX)
.from((pageParam.getPageNo() - 1) * pageParam.getPageSize())
.size(pageParam.getPageSize())
.query(b -> b.bool( builder -> builder.must(queryList))),
CuttingMachineDO.class);
} catch (IOException e) {
log.error(e.getMessage());
throw new ServiceException(500, "服务器异常");
}
long value = response.hits().total().value();
for (Hit<CuttingMachineDO> hit : response.hits().hits()) {
cuttingMachineDOS.add(hit.source());
}
return new PageResult<CuttingMachineDO>(cuttingMachineDOS, value);
}*/
@Override
public PageResult<MachineTemplateDO> page(MachinePageReqVO pageParam) {
/* LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
List<Long> machineIds = userMachineMapper.selectList(new LambdaQueryWrapperX<UserMachineDO>().eq(UserMachineDO::getUserId, loginUser.getId()))
.stream()
.map(e -> e.getMachineId())
.collect(Collectors.toList());
if(CollectionUtil.isEmpty(machineIds)) {
return new PageResult<>();
}*/
PageResult<MachineTemplateDO> machineTemplateDOPageResult = machineTemplateMapper.selectPage(pageParam, new ArrayList<>());
// 将机台模板的配置进行解压
machineTemplateDOPageResult.setList(machineTemplateDOPageResult.getList().stream().map(m -> m.setSetting(JsonUtils.unzipString(m.getSetting()))).collect(Collectors.toList()));
machineTemplateDOPageResult.setList(machineTemplateDOPageResult.getList().stream().map(m -> m.setSetting(unzipString(m.getSetting()))).collect(Collectors.toList()));
return machineTemplateDOPageResult;
}
// 判断机台模板的类型
private void handleMachineType(MachineTemplateDO machineTemplateDO, MachineTemplateDO templateDO) {
if(machineTemplateDO.getMachineType().equals(MachineTypeEnum.CUTTING.getType())) {
handleCuttingMachine(machineTemplateDO, templateDO);
} else if(machineTemplateDO.getMachineType().equals(MachineTypeEnum.BANDING.getType())) {
handleBandingMachine(machineTemplateDO, templateDO);
}
}
private void handleCuttingMachine(MachineTemplateDO machineTemplateDO, MachineTemplateDO templateDO) {
JsonNode cuttingSetting = JsonUtils.parseTree(unzipString(machineTemplateDO.getSetting()));
JsonNode advancedConfigsRef = cuttingSetting.get("advancedConfigsRef");
boolean isAutoLabelEnabled = advancedConfigsRef.get("isAutoLabelEnabled").asBoolean();
if(isAutoLabelEnabled && advancedConfigsRef.get("autoLabelBrand") != null && advancedConfigsRef.get("autoLabelModel") != null){
Integer autoLabelModel = advancedConfigsRef.get("autoLabelModel").asInt();
MachineTemplateDO labelingMachineTemplateDO = machineTemplateMapper.selectById(autoLabelModel);
MachineTemplateDO labelingMachineDO = MachineTemplateDO.builder()
.machineType(labelingMachineTemplateDO.getMachineType())
.brandId(labelingMachineTemplateDO.getBrandId())
.setting(labelingMachineTemplateDO.getSetting())
.name("开料" + templateDO.getName() + "-贴标机")
.build();
machineTemplateMapper.insert(labelingMachineDO);
}
}
private void handleBandingMachine(MachineTemplateDO machineTemplateDO, MachineTemplateDO templateDO) {
JsonNode drillSetting = JsonUtils.parseTree(unzipString(machineTemplateDO.getSetting()));
JsonNode cuttingModuleRef = drillSetting.get("cuttingModuleRef");
boolean isDrillEnabled = cuttingModuleRef.get("isDrillEnabled").asBoolean();
if(isDrillEnabled && cuttingModuleRef.get("drillBrand") != null && cuttingModuleRef.get("drillModel") != null){
Integer drillModel = cuttingModuleRef.get("drillModel").asInt();
MachineTemplateDO drillMachineTemplateDO = machineTemplateMapper.selectById(drillModel);
MachineTemplateDO drillMachineDO = MachineTemplateDO.builder()
.machineType(drillMachineTemplateDO.getMachineType())
.brandId(drillMachineTemplateDO.getBrandId())
.setting(drillMachineTemplateDO.getSetting())
.name("开料" + templateDO.getName() + "钻孔机")
.build();
machineTemplateMapper.insert(drillMachineDO);
}
}
}
@@ -0,0 +1,40 @@
<?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.cf.imes.module.system.dal.mysql.machine.MachineBrandMapper">
<resultMap id="MachineMap" type="com.cf.imes.module.system.controller.admin.machine.vo.MachineBrandModelRespVO">
<result property="brandId" column="brandId"/>
<result property="brand" column="brand"/>
<collection property="machineSimpleRespVOS" ofType="com.cf.imes.module.system.controller.admin.machine.vo.MachineSimpleRespVO" resultMap="MachineSimpleMap"/>
</resultMap>
<resultMap id="MachineSimpleMap" type="com.cf.imes.module.system.controller.admin.machine.vo.MachineSimpleRespVO">
<result property="id" column="id"/>
<result property="name" column="name"/>
</resultMap>
<select id="selectMachineList" resultMap="MachineMap">
select smb.id as brandId,
smb.brand,
smt.id,
smt.name
from system_machine_brand smb
left join system_machine_template smt on smb.id = smt.brand_id
where smt.deleted = false and smb.machine_type = #{type}
</select>
</mapper>