mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
优化生产大板字段类型更改,未排单接口查询速度优化
This commit is contained in:
+60
-54
@@ -123,6 +123,7 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode ORGAN_NAME_DUPLICATE = new ErrorCode(1_002_015_004, "名字为【{}】的组织已存在");
|
||||
ErrorCode ORGAN_WEBSITE_DUPLICATE = new ErrorCode(1_002_015_005, "域名为【{}】的组织已存在");
|
||||
ErrorCode ORGAN_DATA_CODE_NOT_EXISTS = new ErrorCode(1_002_015_006, "组织未配置数据源标识");
|
||||
ErrorCode ORGAN_ALREADY_EXISTS = new ErrorCode(1_002_015_007, "该新增组织已授权机台数量无需重复新增!");
|
||||
|
||||
// ========== 组织套餐 1-002-016-000 ==========
|
||||
ErrorCode TENANT_PACKAGE_NOT_EXISTS = new ErrorCode(1_002_016_000, "组织套餐不存在");
|
||||
@@ -196,12 +197,6 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode PROCESS_STATUS_DISABLE = new ErrorCode(1_002_027_003, "工序状态以已禁用");
|
||||
ErrorCode PROCESS_NAME_EXISTS = new ErrorCode(1_002_027_004, "工序名称已存在");
|
||||
|
||||
//=========== 工序组信息 1-002-029-000 ============
|
||||
ErrorCode PROCESS_GROUP_NOT_EXISTS = new ErrorCode(1_002_029_010, "工序组不存在");
|
||||
ErrorCode PROCESS_GROUP_USED = new ErrorCode(1_002_029_011, "工序组已使用,禁止删除 ");
|
||||
ErrorCode PROCESS_GROUP_NAME_EXISTS = new ErrorCode(1_002_029_012, "工序名称已存在");
|
||||
ErrorCode PROCESS_GROUP_CUTTING_ERROR = new ErrorCode(1_002_029_012, "开料工序类型已经存在,禁止重复");
|
||||
ErrorCode PROCESS_GROUP_PACKING_ERROR = new ErrorCode(1_002_029_012, "打包工序类型已经存在,禁止重复");
|
||||
|
||||
// ========== 机台 1-002-029-000 ==========
|
||||
ErrorCode MACHINE_NOT_EXISTS = new ErrorCode(1_002_029_000, "机台不存在");
|
||||
@@ -219,6 +214,9 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode MACHINE_NUM_ERROR = new ErrorCode(1_002_029_011, "当前模板创建的机台数量已达到最大值,无法继续创建");
|
||||
ErrorCode MACHINE_NAME_ERROR = new ErrorCode(1_002_029_012, "当前机台名称已存在,请重新输入机台名称");
|
||||
ErrorCode MACHINETEMPLATE_NAME_ERROR = new ErrorCode(1_002_029_013, "当前机台模板的名称已存在,请重新输入机台模板名称");
|
||||
ErrorCode LABELINGMACHINE_RELATED_DATA_ERROR = new ErrorCode(1_002_029_014, "当前机台关联的贴标机数据有误,请在高级配置中重新配置贴标机或选择其他模板");
|
||||
ErrorCode DRILLMACHINE_RELATED_DATA_ERROR = new ErrorCode(1_002_029_015, "当前机台关联的钻孔机数据有误,请在钻孔模块中重新配置钻孔机或选择其他模板");
|
||||
|
||||
|
||||
// ========== 标签模板 1-002-300-000 ==========
|
||||
ErrorCode LABEL_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_300_000, "标签模板不存在");
|
||||
@@ -228,71 +226,79 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode DEFAULT_NOT_DELETED = new ErrorCode(1_002_300_004, "默认标签模板无法删除");
|
||||
ErrorCode LABEL_ERROR = new ErrorCode(1_002_300_005, "当前标签错误,请重新配置标签");
|
||||
|
||||
|
||||
// ========== 系统数据源 1_002_301_000 ==========
|
||||
ErrorCode DATA_SOURCE_NOT_EXISTS = new ErrorCode(1_002_301_000, "系统数据源不存在");
|
||||
|
||||
|
||||
//=========== 工序组信息 1-002-031-000 ============
|
||||
ErrorCode PLATE_NOT_EXISTS = new ErrorCode(1_002_029_001, "板材不存在");
|
||||
|
||||
//=========== 板材信息 1-002-032-000 ============
|
||||
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-032-000 ============
|
||||
ErrorCode PROCESS_GROUP_NOT_EXISTS = new ErrorCode(1_002_032_001, "工序组不存在");
|
||||
ErrorCode PROCESS_GROUP_USED = new ErrorCode(1_002_032_002, "工序组已使用,禁止删除 ");
|
||||
ErrorCode PROCESS_GROUP_NAME_EXISTS = new ErrorCode(1_002_032_003, "工序名称已存在");
|
||||
ErrorCode PROCESS_GROUP_CUTTING_ERROR = new ErrorCode(1_002_032_004, "开料工序类型已经存在,禁止重复");
|
||||
ErrorCode PROCESS_GROUP_PACKING_ERROR = new ErrorCode(1_002_032_005, "打包工序类型已经存在,禁止重复");
|
||||
|
||||
|
||||
|
||||
//=========== 板材信息 1-002-033-000 ============
|
||||
ErrorCode REMAIN_PLATE_NOT_EXISTS = new ErrorCode(1_002_032_002, "板材不存在");
|
||||
|
||||
//=========== 板材信息 1-002-034-000 ============
|
||||
ErrorCode PROCESS_USER_NOT_EXISTS = new ErrorCode(1_002_032_002, "工序用户不存在");
|
||||
ErrorCode PROCESS_USER_EXISTS = new ErrorCode(1_002_032_003, "工序用户存在");
|
||||
|
||||
|
||||
//=========== 工序的生产状态 1-002-034-000 ============
|
||||
ErrorCode UNPROCESSED_BEFORE_PROCESSING = new ErrorCode(1_002_034_666, "未加工状态方可进行加工");
|
||||
|
||||
|
||||
// ========== 新增外部配件 1-002-035-000 ==========
|
||||
ErrorCode THE_ACCESSORY_NAME_CANNOT_BE_DUPLICATED = new ErrorCode(1_002_035_666, "配件名称不能重复");
|
||||
ErrorCode PLATE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_033_001, "导入板材数据不能为空!");
|
||||
ErrorCode PLATE_EXISTS = new ErrorCode(1_002_033_002, "板材存在");
|
||||
ErrorCode THE_CURRENT_BOARD_IS_NOT_SELECTED = new ErrorCode(1_002_033_003, "当前板材没有选择房间和柜体,请选择");
|
||||
ErrorCode THE_BOARD_HAS_BEEN_CUT_INTO_PIECES = new ErrorCode(1_002_033_004, "当前排单已有板材开料,禁止修改");
|
||||
ErrorCode REMAIN_PLATE_NOT_EXISTS = new ErrorCode(1_002_033_005, "板材不存在");
|
||||
ErrorCode RAW_GOODS_NOT_EXISTS = new ErrorCode(1_002_033_006, "设计板材不存在");
|
||||
ErrorCode RAW_GOODS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_033_007, "生产板材导入数据不可以为空");
|
||||
ErrorCode PLATENO_ERROR = new ErrorCode(1_002_033_008, "当前板编号无对应包裹信息");
|
||||
|
||||
|
||||
|
||||
|
||||
//=========== 板材信息 1-002-035-000 ============
|
||||
ErrorCode RAW_GOODS_NOT_EXISTS = new ErrorCode(1_002_033_001, "设计板材不存再");
|
||||
ErrorCode RAW_GOODS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_033_002, "生产板材导入数据不可以为空");
|
||||
ErrorCode PLATENO_ERROR = new ErrorCode(1_002_033_003, "当前板编号无对应包裹信息");
|
||||
|
||||
//=========== 配件信息 1-002-035-000 ============
|
||||
ErrorCode ORDER_PARTS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_034_001, "生产配件导入数据不可以为空");
|
||||
|
||||
//=========== 柜体信息 1-002-035-000 ============
|
||||
ErrorCode ORDER_BODY_NOT_EXISTS = new ErrorCode(1_002_035_001, "柜体信息不存在");
|
||||
|
||||
//=========== 柜体信息 1-002-035-000 ============
|
||||
ErrorCode ORDER_GROUP_NOT_EXISTS = new ErrorCode(1_002_036_001, "加工组信息不存在");
|
||||
//=========== 工序信息 1-002-034-000 ============
|
||||
ErrorCode PROCESS_USER_NOT_EXISTS = new ErrorCode(1_002_034_001, "工序用户不存在");
|
||||
ErrorCode PROCESS_USER_EXISTS = new ErrorCode(1_002_034_002, "工序用户存在");
|
||||
ErrorCode UNPROCESSED_BEFORE_PROCESSING = new ErrorCode(1_002_034_003, "未加工状态方可进行加工");
|
||||
|
||||
|
||||
//=========== 包裹信息 1-002-038-000 ============
|
||||
ErrorCode THE_CURRENT_PACKAGE_HAS_AN_UNSEALED_PACKAGE = new ErrorCode(1_002_038_666, "当前包裹还有未封包包裹");
|
||||
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, "已经是{}一条了");
|
||||
|
||||
// ========== 配件信息 1-002-035-000 ==========
|
||||
ErrorCode THE_ACCESSORY_NAME_CANNOT_BE_DUPLICATED = new ErrorCode(1_002_035_001, "配件名称不能重复");
|
||||
ErrorCode ORDER_PARTS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_035_002, "生产配件导入数据不可以为空");
|
||||
|
||||
|
||||
|
||||
//=========== 柜体信息 1-002-036-000 ============
|
||||
ErrorCode ORDER_BODY_NOT_EXISTS = new ErrorCode(1_002_036_001, "柜体信息不存在");
|
||||
|
||||
|
||||
|
||||
//=========== 加工组信息 1-002-037-000 ============
|
||||
ErrorCode ORDER_GROUP_NOT_EXISTS = new ErrorCode(1_002_037_001, "加工组信息不存在");
|
||||
|
||||
|
||||
|
||||
//=========== 包裹信息 1-002-040-000 ============
|
||||
ErrorCode THE_CURRENT_PACKAGE_HAS_AN_UNSEALED_PACKAGE = new ErrorCode(1_002_040_001, "当前包裹还有未封包包裹");
|
||||
ErrorCode THE_CURRENT_PACKAGE_TYPE_IS_INCORRECT = new ErrorCode(1_002_040_002, "当前包裹类型错误");
|
||||
ErrorCode FAILED_TO_MODIFY_THE_STATUS_OF_THE_CURRENT_PRODUCTION_ORDER = new ErrorCode(1_002_040_003, "修改当前生产单的工序状态和生产单的状态失败");
|
||||
ErrorCode NO_OPTIMIZATION_INFORMATION_AVAILABLE = new ErrorCode(1_002_040_004, "当前订单无优化信息");
|
||||
ErrorCode NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE = new ErrorCode(1_002_040_005, "已经是{}一条了");
|
||||
|
||||
|
||||
//=========== 断言提示信息 1-002-041-000 ============
|
||||
ErrorCode ORDER_DATE_ERROR = new ErrorCode(1_002_041_001, "生产单信息不存在,请重新进入或切换生产单");
|
||||
ErrorCode ORDER_PLATE_ERROR = new ErrorCode(1_002_041_002, "生产单对应的板材信息不存在");
|
||||
|
||||
|
||||
|
||||
//=========== 应用信息 1-002-037-000 ============
|
||||
ErrorCode APPLICATION_NOT_EXISTS = new ErrorCode(1_002_037_001, "应用信息不存在");
|
||||
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, "余料板未使用");
|
||||
ErrorCode REMAIN_PLATE_USR_TYPE = new ErrorCode(1_002_038_003, "余料板使用类型为不可核销类型");
|
||||
ErrorCode REMAIN_PLATE_ID_NOT_EXISTS = new ErrorCode(1_002_038_004, "未选中余料板,请选择余料板");
|
||||
ErrorCode REMAIN_PLATE_STATUS_USED = new ErrorCode(1_002_038_003, "余料板正在使用中,禁止修改");
|
||||
ErrorCode REMAIN_PLATE_STATUS_NO_USED = new ErrorCode(1_002_038_004, "余料板未使用");
|
||||
ErrorCode REMAIN_PLATE_USR_TYPE = new ErrorCode(1_002_038_005, "余料板使用类型为不可核销类型");
|
||||
ErrorCode REMAIN_PLATE_ID_NOT_EXISTS = new ErrorCode(1_002_038_006, "未选中余料板,请选择余料板");
|
||||
ErrorCode APPLICATION_NOT_EXISTS = new ErrorCode(1_002_038_007, "应用信息不存在");
|
||||
ErrorCode APPLICATION_LOGIN_USER_DISABLED = new ErrorCode(1_002_038_008, "应用登陆失败");
|
||||
|
||||
|
||||
//=========== 用户的系统配置 1-002-039-000 ============
|
||||
|
||||
+2
-1
@@ -11,6 +11,7 @@ import com.cf.imes.module.system.controller.admin.machine.vo.*;
|
||||
import com.cf.imes.module.system.dal.dataobject.machine.MachineDO;
|
||||
import com.cf.imes.module.system.service.machine.MachineService;
|
||||
import com.cf.imes.module.system.service.machine.MachineTemplateService;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -41,7 +42,7 @@ public class MachineController {
|
||||
@Operation(summary = "创建机台")
|
||||
//@PreAuthorize("@ss.hasPermission('machine::create')")
|
||||
@OperateLog(logArgs = false)
|
||||
public CommonResult<Long> createCutting(@Validated(CreateGroup.class) @RequestBody CuttingSaveReqVO createReqVO) {
|
||||
public CommonResult<Long> createCutting(@Validated(CreateGroup.class) @RequestBody CuttingSaveReqVO createReqVO) throws JsonProcessingException {
|
||||
return success(machineService.createCutting(createReqVO));
|
||||
}
|
||||
|
||||
|
||||
+5
-2
@@ -3,6 +3,7 @@ package com.cf.imes.module.system.service.machine;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.module.system.controller.admin.machine.vo.*;
|
||||
import com.cf.imes.module.system.dal.dataobject.machine.MachineDO;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.Collection;
|
||||
@@ -22,7 +23,7 @@ public interface MachineService {
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createCutting(@Valid CuttingSaveReqVO createReqVO);
|
||||
Long createCutting(@Valid CuttingSaveReqVO createReqVO) throws JsonProcessingException;
|
||||
|
||||
/**
|
||||
* 更新机台
|
||||
@@ -69,7 +70,9 @@ public interface MachineService {
|
||||
|
||||
Map<Integer, List<MachineVO>> getMachineTree(Long type);
|
||||
|
||||
Boolean auth(MachineOrgAuthReq vo);
|
||||
Boolean authInsert(MachineOrgAuthReq vo);
|
||||
|
||||
Boolean authUpdate(MachineOrgAuthReq vo);
|
||||
|
||||
PageResult<OrganMachineResp> organMachinePage(OrganMachinePage page);
|
||||
|
||||
|
||||
+153
-37
@@ -32,7 +32,9 @@ 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.cf.imes.module.system.dal.mysql.organ.OrganMapper;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -46,6 +48,7 @@ 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.framework.common.util.json.JsonUtils.zipString;
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
|
||||
|
||||
@@ -92,7 +95,7 @@ public class MachineServiceImpl implements MachineService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long createCutting(CuttingSaveReqVO createReqVO) {
|
||||
public Long createCutting(CuttingSaveReqVO createReqVO) throws JsonProcessingException {
|
||||
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||
assert loginUser != null;
|
||||
|
||||
@@ -114,7 +117,9 @@ public class MachineServiceImpl implements MachineService {
|
||||
// 插入
|
||||
machineDO = MachineConvert.convert(createReqVO);
|
||||
|
||||
machineDO.setSetting(copyMachineDO.getSetting());
|
||||
String updatedJsonString = handleMachineSpecificConfiguration(machineDO, machineDO.getMachineType(),copyMachineDO.getSetting(),true);
|
||||
|
||||
machineDO.setSetting(updatedJsonString == null ? copyMachineDO.getSetting() : zipString(updatedJsonString));
|
||||
|
||||
machineDO.setId(null);
|
||||
|
||||
@@ -133,11 +138,13 @@ public class MachineServiceImpl implements MachineService {
|
||||
|
||||
// 创建新的机器对象
|
||||
machineDO = MachineConvert.convert(createReqVO);
|
||||
machineDO.setSetting(machineTemplateDO.getSetting());
|
||||
machineMapper.insert(machineDO);
|
||||
|
||||
// 处理不同机台类型的配置
|
||||
handleMachineSpecificConfiguration(machineDO, machineTemplateDO);
|
||||
String updatedJsonString = handleMachineSpecificConfiguration(machineDO, machineTemplateDO.getMachineType(), machineTemplateDO.getSetting(),false);
|
||||
|
||||
machineDO.setSetting(updatedJsonString == null ? machineTemplateDO.getSetting() : zipString(updatedJsonString));
|
||||
machineMapper.insert(machineDO);
|
||||
|
||||
|
||||
// 返回新机器的ID
|
||||
return machineDO.getId();
|
||||
@@ -146,67 +153,176 @@ public class MachineServiceImpl implements MachineService {
|
||||
|
||||
|
||||
// 判断机台的模板是否是钻孔机或封边机
|
||||
private void handleMachineSpecificConfiguration(MachineDO machineDO, MachineTemplateDO machineTemplateDO) {
|
||||
Integer machineType = machineTemplateDO.getMachineType();
|
||||
private String handleMachineSpecificConfiguration(MachineDO machineDO, Integer machineType,String machineSetting,Boolean isMachine) throws JsonProcessingException {
|
||||
|
||||
String updatedJsonString = null;
|
||||
|
||||
if (MachineTypeEnum.CUTTING.getType().equals(machineType)) {
|
||||
handleCuttingMachineConfiguration(machineDO, machineTemplateDO);
|
||||
updatedJsonString = handleCuttingMachineConfiguration(machineDO, machineSetting,isMachine);
|
||||
} else if (MachineTypeEnum.BANDING.getType().equals(machineType)) {
|
||||
handleBandingMachineConfiguration(machineDO, machineTemplateDO);
|
||||
updatedJsonString = handleBandingMachineConfiguration(machineDO, machineSetting,isMachine);
|
||||
}
|
||||
|
||||
return updatedJsonString;
|
||||
}
|
||||
|
||||
|
||||
// 创建贴标机
|
||||
private void handleCuttingMachineConfiguration(MachineDO machineDO, MachineTemplateDO machineTemplateDO) {
|
||||
private String handleCuttingMachineConfiguration(MachineDO machineDO, String machineSetting,Boolean isMachine) throws JsonProcessingException {
|
||||
|
||||
JsonNode cuttingSetting = JsonUtils.parseTree(unzipString(machineTemplateDO.getSetting()));
|
||||
String unzipMachineSetting = unzipString(machineSetting);
|
||||
|
||||
JsonNode cuttingSetting = JsonUtils.parseTree(unzipMachineSetting);
|
||||
|
||||
JsonNode advancedConfigsRef = cuttingSetting.get("advancedConfigsRef");
|
||||
|
||||
boolean isAutoLabelEnabled = advancedConfigsRef.get("isAutoLabelEnabled").asBoolean();
|
||||
|
||||
if (isAutoLabelEnabled && advancedConfigsRef.has("autoLabelModel")) {
|
||||
Integer autoLabelModel = advancedConfigsRef.get("autoLabelModel").asInt();
|
||||
createAndInsertMachine(autoLabelModel, machineDO, "开料" + machineDO.getName() + "-贴标机");
|
||||
Integer autoLabelModelId = advancedConfigsRef.get("autoLabelModel").asInt();
|
||||
|
||||
MachineDO newMachine ;
|
||||
|
||||
if(isMachine){
|
||||
|
||||
MachineDO machine = machineMapper.selectById(autoLabelModelId);
|
||||
if (machine != null) {
|
||||
newMachine = MachineDO.builder()
|
||||
.labelId(machine.getLabelId())
|
||||
.machineType(machine.getMachineType())
|
||||
.brandId(machine.getBrandId())
|
||||
.setting(machine.getSetting())
|
||||
.name("开料" + machineDO.getName() + "-贴标机")
|
||||
.build();
|
||||
|
||||
machineMapper.insert(newMachine);
|
||||
|
||||
// 创建 ObjectMapper 对象
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
// 将 JSON 字符串解析为 Map
|
||||
Map map = mapper.readValue(unzipMachineSetting, Map.class);
|
||||
|
||||
// 修改值
|
||||
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("advancedConfigsRef");
|
||||
advancedConfigs.put("autoLabelModel", newMachine.getId());
|
||||
|
||||
// 将 Map 转换为 JSON 字符串
|
||||
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
MachineTemplateDO machineTemplate = machineTemplateMapper.selectById(autoLabelModelId);
|
||||
if (machineTemplate != null) {
|
||||
newMachine = MachineDO.builder()
|
||||
.labelId(machineDO.getLabelId())
|
||||
.machineType(machineTemplate.getMachineType())
|
||||
.brandId(machineTemplate.getBrandId())
|
||||
.setting(machineTemplate.getSetting())
|
||||
.name("开料" + machineDO.getName() + "-贴标机")
|
||||
.build();
|
||||
|
||||
machineMapper.insert(newMachine);
|
||||
|
||||
// 创建 ObjectMapper 对象
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
// 将 JSON 字符串解析为 Map
|
||||
Map map = mapper.readValue(unzipMachineSetting, Map.class);
|
||||
|
||||
// 修改值
|
||||
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("advancedConfigsRef");
|
||||
advancedConfigs.put("autoLabelModel", newMachine.getId());
|
||||
|
||||
// 将 Map 转换为 JSON 字符串
|
||||
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
|
||||
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
// 创建钻孔机
|
||||
private void handleBandingMachineConfiguration(MachineDO machineDO, MachineTemplateDO machineTemplateDO) {
|
||||
JsonNode drillSetting = JsonUtils.parseTree(unzipString(machineTemplateDO.getSetting()));
|
||||
private String handleBandingMachineConfiguration(MachineDO machineDO, String machineSetting,Boolean isMachine) throws JsonProcessingException {
|
||||
|
||||
String unzipMachineSetting = unzipString(machineSetting);
|
||||
|
||||
JsonNode drillSetting = JsonUtils.parseTree(unzipMachineSetting);
|
||||
|
||||
JsonNode cuttingModuleRef = drillSetting.get("cuttingModuleRef");
|
||||
|
||||
boolean isDrillEnabled = cuttingModuleRef.get("isDrillEnabled").asBoolean();
|
||||
|
||||
if (isDrillEnabled && cuttingModuleRef.has("drillModel")) {
|
||||
Integer drillModel = cuttingModuleRef.get("drillModel").asInt();
|
||||
createAndInsertMachine(drillModel, machineDO, "开料" + machineDO.getName() + "钻孔机");
|
||||
Integer drillModelId = cuttingModuleRef.get("drillModel").asInt();
|
||||
|
||||
MachineDO newMachine ;
|
||||
|
||||
if(isMachine){
|
||||
|
||||
MachineDO machine = machineMapper.selectById(drillModelId);
|
||||
if (machine != null) {
|
||||
newMachine = MachineDO.builder()
|
||||
.labelId(machine.getLabelId())
|
||||
.machineType(machine.getMachineType())
|
||||
.brandId(machine.getBrandId())
|
||||
.setting(machine.getSetting())
|
||||
.name("封边" + machineDO.getName() + "-钻孔机")
|
||||
.build();
|
||||
|
||||
machineMapper.insert(newMachine);
|
||||
|
||||
// 创建 ObjectMapper 对象
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
// 将 JSON 字符串解析为 Map
|
||||
Map map = mapper.readValue(unzipMachineSetting, Map.class);
|
||||
|
||||
// 修改值
|
||||
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("cuttingModuleRef");
|
||||
advancedConfigs.put("drillModel", newMachine.getId());
|
||||
|
||||
// 将 Map 转换为 JSON 字符串并打印输出
|
||||
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
MachineTemplateDO machineTemplate = machineTemplateMapper.selectById(drillModelId);
|
||||
if (machineTemplate != null) {
|
||||
newMachine = MachineDO.builder()
|
||||
.labelId(machineDO.getLabelId())
|
||||
.machineType(machineTemplate.getMachineType())
|
||||
.brandId(machineTemplate.getBrandId())
|
||||
.setting(machineTemplate.getSetting())
|
||||
.name("封边" + machineDO.getName() + "-钻孔机")
|
||||
.build();
|
||||
|
||||
machineMapper.insert(newMachine);
|
||||
|
||||
// 创建 ObjectMapper 对象
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
// 将 JSON 字符串解析为 Map
|
||||
Map map = mapper.readValue(unzipMachineSetting, Map.class);
|
||||
|
||||
// 修改值
|
||||
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("cuttingModuleRef");
|
||||
advancedConfigs.put("drillModel", newMachine.getId());
|
||||
|
||||
// 将 Map 转换为 JSON 字符串并打印输出
|
||||
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
private void createAndInsertMachine(Integer modelId, MachineDO parentMachine, String machineName) {
|
||||
MachineTemplateDO template = machineTemplateMapper.selectById(modelId);
|
||||
|
||||
if (template != null) {
|
||||
MachineDO newMachine = MachineDO.builder()
|
||||
.labelId(parentMachine.getLabelId())
|
||||
.machineType(template.getMachineType())
|
||||
.brandId(template.getBrandId())
|
||||
.setting(template.getSetting())
|
||||
.name(machineName)
|
||||
.build();
|
||||
|
||||
machineMapper.insert(newMachine);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+68
-20
@@ -24,6 +24,7 @@ import com.cf.imes.module.system.dal.mysql.machinetemplate.MachineTemplateLimitM
|
||||
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 com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -92,12 +93,12 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
|
||||
|
||||
MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachine(reqVO.getBrandId(), reqVO.getMachineId());
|
||||
|
||||
templateDO.setSetting(machineTemplateDO.getSetting());
|
||||
String updatedJsonString = handleMachineType(templateDO.getName(),machineTemplateDO.getMachineType(),machineTemplateDO.getSetting());
|
||||
|
||||
templateDO.setSetting(updatedJsonString == null ? machineTemplateDO.getSetting() : JsonUtils.zipString(updatedJsonString));
|
||||
|
||||
machineTemplateMapper.insert(templateDO);
|
||||
|
||||
handleMachineType(machineTemplateDO, templateDO);
|
||||
|
||||
return templateDO.getId();
|
||||
}
|
||||
|
||||
@@ -481,68 +482,115 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
|
||||
|
||||
|
||||
// 判断机台模板的类型
|
||||
private void handleMachineType(MachineTemplateDO machineTemplateDO, MachineTemplateDO templateDO) {
|
||||
private String handleMachineType(String machineName,Integer machineType,String machineSetting) {
|
||||
|
||||
if(machineTemplateDO.getMachineType().equals(MachineTypeEnum.CUTTING.getType())) {
|
||||
handleCuttingMachine(machineTemplateDO, templateDO);
|
||||
} else if(machineTemplateDO.getMachineType().equals(MachineTypeEnum.BANDING.getType())) {
|
||||
handleBandingMachine(machineTemplateDO, templateDO);
|
||||
String updatedJsonString = null;
|
||||
|
||||
if(machineType.equals(MachineTypeEnum.CUTTING.getType())) {
|
||||
updatedJsonString = handleCuttingMachine(machineName, machineSetting);
|
||||
} else if(machineType.equals(MachineTypeEnum.BANDING.getType())) {
|
||||
updatedJsonString = handleBandingMachine(machineName, machineSetting);
|
||||
}
|
||||
return updatedJsonString;
|
||||
}
|
||||
|
||||
private void handleCuttingMachine(MachineTemplateDO machineTemplateDO, MachineTemplateDO templateDO) {
|
||||
|
||||
JsonNode cuttingSetting = JsonUtils.parseTree(unzipString(machineTemplateDO.getSetting()));
|
||||
private String handleCuttingMachine(String machineName, String machineSetting) {
|
||||
|
||||
String unzipString = unzipString(machineSetting);
|
||||
|
||||
JsonNode cuttingSetting = JsonUtils.parseTree(unzipString);
|
||||
|
||||
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);
|
||||
Integer autoLabelModelId = advancedConfigsRef.get("autoLabelModel").asInt();
|
||||
|
||||
if(labelingMachineTemplateDO != null) {
|
||||
try {
|
||||
|
||||
MachineTemplateDO labelingMachineTemplateDO = machineTemplateMapper.selectById(autoLabelModelId);
|
||||
|
||||
MachineTemplateDO labelingMachineDO = MachineTemplateDO.builder()
|
||||
.machineType(labelingMachineTemplateDO.getMachineType())
|
||||
.brandId(labelingMachineTemplateDO.getBrandId())
|
||||
.setting(labelingMachineTemplateDO.getSetting())
|
||||
.name("开料" + templateDO.getName() + "-贴标机")
|
||||
.name("开料" + machineName + "-贴标机")
|
||||
.build();
|
||||
|
||||
machineTemplateMapper.insert(labelingMachineDO);
|
||||
|
||||
// 创建 ObjectMapper 对象
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
// 将 JSON 字符串解析为 Map
|
||||
Map map = mapper.readValue(unzipString, Map.class);
|
||||
|
||||
// 修改值
|
||||
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("advancedConfigsRef");
|
||||
advancedConfigs.put("autoLabelModel", labelingMachineDO.getId());
|
||||
|
||||
// 将 Map 转换为 JSON 字符串
|
||||
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
|
||||
|
||||
}catch (Exception e){
|
||||
|
||||
throw exception(LABELINGMACHINE_RELATED_DATA_ERROR);
|
||||
}
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void handleBandingMachine(MachineTemplateDO machineTemplateDO, MachineTemplateDO templateDO) {
|
||||
private String handleBandingMachine(String machineName, String machineSetting){
|
||||
|
||||
String unzipString = unzipString(machineSetting);
|
||||
|
||||
JsonNode drillSetting = JsonUtils.parseTree(unzipString);
|
||||
|
||||
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);
|
||||
Integer drillModelId = cuttingModuleRef.get("drillModel").asInt();
|
||||
|
||||
if(drillMachineTemplateDO != null) {
|
||||
try {
|
||||
|
||||
MachineTemplateDO drillMachineTemplateDO = machineTemplateMapper.selectById(drillModelId);
|
||||
|
||||
MachineTemplateDO drillMachineDO = MachineTemplateDO.builder()
|
||||
.machineType(drillMachineTemplateDO.getMachineType())
|
||||
.brandId(drillMachineTemplateDO.getBrandId())
|
||||
.setting(drillMachineTemplateDO.getSetting())
|
||||
.name("开料" + templateDO.getName() + "钻孔机")
|
||||
.name("封边" + machineName + "-钻孔机")
|
||||
.build();
|
||||
|
||||
machineTemplateMapper.insert(drillMachineDO);
|
||||
|
||||
// 创建 ObjectMapper 对象
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
// 将 JSON 字符串解析为 Map
|
||||
Map map = mapper.readValue(unzipString, Map.class);
|
||||
|
||||
// 修改值
|
||||
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("cuttingModuleRef");
|
||||
advancedConfigs.put("drillModel", drillMachineDO.getId());
|
||||
|
||||
// 将 Map 转换为 JSON 字符串
|
||||
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
|
||||
|
||||
}catch (Exception e){
|
||||
|
||||
throw exception(DRILLMACHINE_RELATED_DATA_ERROR);
|
||||
}
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user