根据新需求修改机台管理相关接口

This commit is contained in:
liuzhaotian
2024-08-01 14:58:41 +08:00
parent d7d45accf2
commit 64012ab29a
25 changed files with 498 additions and 275 deletions
@@ -24,6 +24,9 @@ public class MachineDTO {
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
private String name;
@Schema(description = "品牌ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
private Long brandId;
@Schema(description = "1机台设备 2CNC设备", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
private Integer machineType;
@@ -210,6 +210,9 @@ public interface ErrorCodeConstants {
ErrorCode NOT_MACHINE_AUTH = new ErrorCode(1_002_029_005, "该组织无此机台权限");
ErrorCode THE_CURRENT_MACHINE_IS_ALREADY_IN_USE = new ErrorCode(1_002_029_006, "当前机台已使用,禁止删除");
ErrorCode MACHINE_ERROR = new ErrorCode(1_002_029_007, "当前机台错误,请重新选择机台");
ErrorCode THE_CURRENT_BRAND_OF_THE_MACHINE_EXISTS = new ErrorCode(1_002_029_008, "当前机台配置的模板中,该品牌已存在,请重新输入品牌名称");
ErrorCode THE_MODEL_OF_THE_MACHINE_DOES_NOT_EXIST = new ErrorCode(1_002_029_009, "该型号的机台不存在,请进行配置");
ErrorCode THE_CURRENT_BRAND = new ErrorCode(1_002_029_666, "品牌ID错误,或品牌不存在");
// ========== 标签模板 1-002-300-000 ==========
ErrorCode LABEL_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_300_000, "标签模板不存在");
@@ -268,6 +271,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, "已经是{}一条了,无{}一页信息");
//=========== 应用信息 1-002-037-000 ============
@@ -283,5 +287,5 @@ public interface ErrorCodeConstants {
//=========== 用户的系统配置 1-002-039-000 ============
ErrorCode CURRENTLY_NO_CONFIGURATION_AVAILABLE = new ErrorCode(1_002_039_001, "当前没有配置信息,请前往设置配置");
ErrorCode CURRENTLY_NO_CONFIGURATION_AVAILABLE = new ErrorCode(1_002_039_001, "当前没有{}配置信息,请前往设置配置");
}
@@ -51,6 +51,7 @@ public class MachineApiImpl implements MachineApi {
MachineDTO machineDTO = MachineDTO.builder()
.id(cutting.getId())
.machineType(cutting.getMachineType())
.brandId(cutting.getBrandId())
.name(cutting.getName())
.setting(cutting.getMachineSettingDO().toJSONString())
.label(JsonUtils.toJsonString(label))
@@ -93,33 +93,14 @@ public class MachineController {
return success(BeanUtils.toBean(pageResult, CuttingRespVO.class));
}
@GetMapping("getDefaultCutting")
@Operation(summary = "获得默认机台模板")
@Parameter(name = "machineType", description = "机台类型", required = true, example = "1")
//@PreAuthorize("@ss.hasPermission('machine::query')")
public CommonResult<CuttingTemplateRespVO> getDefaultCutting(@RequestParam Integer machineType) {
return success(machineTemplateService.getDefaultCutting(machineType));
}
// @GetMapping("getDefaultCutting")
// @Operation(summary = "获得默认机台模板")
// @Parameter(name = "machineType", description = "机台类型", required = true, example = "1")
// //@PreAuthorize("@ss.hasPermission('machine::query')")
// public CommonResult<CuttingTemplateRespVO> getDefaultCutting(@RequestParam Integer machineType) {
// return success(machineTemplateService.getDefaultCutting(machineType));
// }
/* @GetMapping("getDefaultDrill")
@Operation(summary = "获得默认钻孔机台模板")
@PreAuthorize("@ss.hasPermission('machine::query')")
public CommonResult<DrillTemplateRespVO> getDefaultDrill() {
return success(machineTemplateService.getDefaultDrill());
}*/
/*@GetMapping("/export-excel")
@Operation(summary = "导出机台 Excel")
@PreAuthorize("@ss.hasPermission('machine::export')")
@OperateLog(type = EXPORT)
public void exportExcel(@Valid MachinePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MachineDO> list = Service.getPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "机台.xls", "数据", MachineRespVO.class,
BeanUtils.toBean(list, MachineRespVO.class));
}*/
@GetMapping("getMachineTree")
@@ -142,7 +123,7 @@ public class MachineController {
@GetMapping("getBrandAndModel")
@Operation(summary = "获得机台的品牌跟型号")
//@PreAuthorize("@ss.hasPermission('machine::query')")
public CommonResult<Map<String, List<MachineBrandModelRespVO>>> getBrandAndModel(@RequestParam Long type) {
public CommonResult<List<MachineBrandModelRespVO>> getBrandAndModel(@RequestParam Integer type) {
return success(machineService.getBrandAndModel(type));
}
@@ -59,7 +59,6 @@ public class MachineTemplateAuthController {
.id(e.getId())
.machineType(e.getMachineType())
.templateName(e.getName())
.isDefault(e.getIsDefault())
.build()
).collect(Collectors.toList());
@@ -34,17 +34,17 @@ public class MachineTemplateController {
@Resource
private MachineTemplateService machineTemplateService;
@GetMapping("/setDefaultTemplate")
@Operation(summary = "设置默认机台模板")
@PreAuthorize("@ss.hasPermission('machine-template::update')")
public CommonResult<Boolean> setDefaultTemplate(@RequestParam Long id) {
return success(machineTemplateService.setDefaultTemplate(id));
}
// @GetMapping("/setDefaultTemplate")
// @Operation(summary = "设置默认机台模板")
// @PreAuthorize("@ss.hasPermission('machine-template::update')")
// public CommonResult<Boolean> setDefaultTemplate(@RequestParam Long id) {
// return success(machineTemplateService.setDefaultTemplate(id));
// }
@GetMapping("getMachineTemplateTree")
@Operation(summary = "获得机台模板树")
@PreAuthorize("@ss.hasPermission('machine-template::query')")
public CommonResult<Map<Integer, List<MachineTemplateDO>>> getMachineTemplateTree() {
public CommonResult<Map<Integer, List<MachineTemplateRespVO>>> getMachineTemplateTree() {
return success(machineTemplateService.getMachineTemplateTree());
}
@@ -88,15 +88,29 @@ public class MachineTemplateController {
}
@DeleteMapping("batch-delete-cutting")
@Operation(summary = "批量删除机台模板配置")
@Operation(summary = "删除品牌即其下的机台模板配置")
@PreAuthorize("@ss.hasPermission('machine-template::delete')")
public CommonResult<Boolean> batchDeleteCutting(@RequestParam("id") List<Long> ids) {
return success(machineTemplateService.batchDeleteCuttingTemplate(ids));
public CommonResult<Boolean> batchDeleteCutting(@RequestBody MachineTemplateBrandReqVO reqVO) {
return success(machineTemplateService.batchDeleteCuttingTemplate(reqVO));
}
@PutMapping("insert-template-machine-brand")
@Operation(summary = "新增机台模板品牌")
@PreAuthorize("@ss.hasPermission('machine-template::create')")
public CommonResult<Boolean> createMachineTemplateBrand(@RequestBody MachineTemplateBrandReqVO reqVO) {
machineTemplateService.createMachineTemplateBrand(reqVO);
return success(true);
}
@PutMapping("update-template-machine-brand")
@Operation(summary = "修改机台品牌名称")
@PreAuthorize("@ss.hasPermission('machine-template::create')")
public CommonResult<Boolean> updateMachineTemplateBrand(@RequestBody MachineTemplateBrandReqVO reqVO) {
machineTemplateService.updateMachineTemplateBrand(reqVO);
return success(true);
}
}
@@ -31,14 +31,20 @@ public class CuttingRespVO {
@Schema(description = "标签id")
private Long labelId;
@Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
@ExcelProperty("品牌")
private String brand;
@Schema(description = "品牌ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
@ExcelProperty("品牌ID")
private Long brandId;
@Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
@ExcelProperty("型号")
private String model;
// @Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
// @ExcelProperty("品牌")
// private String brand;
// @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
// @ExcelProperty("型号")
// private String model;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
@@ -29,19 +29,21 @@ public class CuttingSaveReqVO {
private Integer machineType;
@Schema(description = "标签id")
// @NotNull(message = "标签id不能空")
private Long labelId;
@Schema(description = "机台模板id")
@NotNull(groups = CreateGroup.class, message = "机台模板id不能空")
private Long templateId;
// // 新的机台逻辑需要删除
// @Schema(description = "机台模板id")
// @NotNull(groups = CreateGroup.class, message = "机台模板id不能空")
// private Long templateId;
@Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED)
// @NotNull(message = "机台的品牌不能为空")
private String brand;
@Schema(description = "品牌ID", requiredMode = Schema.RequiredMode.REQUIRED)
private Long brandId;
// @Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED)
// private String brand;
@Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED)
// @NotNull(message = "机台的型号不能为空")
private String model;
@Schema(description = "机台配置")
@@ -26,15 +26,26 @@ public class CuttingTemplateSaveReqVO {
@NotNull(message = "1开料机台设备 2钻孔机台设备 不能为空")
private Integer machineType;
/*@Schema(description = "标签id")
@NotNull(message = "标签id不能空")
private Long labelId;*/
/* @Schema(description = "管理理后台 - 开料机台模板新增/修改 Request VO")
@NotNull(message = "开料机台配置不能空")
private CuttingTemplateMachineDO setting;*/
@Schema(description = "当前品牌ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
private Long nowBrandId;
@Schema(description = "管理理后台 - 开料机台模板新增/修改 Request VO")
@NotNull(message = "开料机台配置不能空")
@Schema(description = "引用的品牌ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
// @NotNull(message = "品牌ID")
private Long brandId;
// @Schema(description = "机台的品牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
// @NotNull(message = "品牌名称不能为空")
// private String brand;
@Schema(description = "机台的型号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
private String model;
@Schema(description = "管理理后台 - 机台模板新增/修改 Request VO")
private JSONObject setting;
}
@@ -3,15 +3,23 @@ package com.cf.imes.module.system.controller.admin.machine.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
@Schema(description = "机台的型号信息")
public class MachineBrandModelRespVO {
@Schema(description = "机台的品牌ID")
private Long id;
@Schema(description = "机台的品牌")
private String brand;
@Schema(description = "机台的型号")
private String model;
@Schema(description = "机台的型号-即机台的名称")
private List<String> name;
}
@@ -0,0 +1,25 @@
package com.cf.imes.module.system.controller.admin.machine.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class MachineTemplateBrandReqVO {
@Schema(description = "1开料机台设备 2钻孔机台设备", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "1开料机台设备 2钻孔机台设备 不能为空")
private Integer machineType;
@Schema(description = "机台的品牌ID")
private Integer id;
@Schema(description = "机台的品牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "品牌名称不能为空")
private String brand;
}
@@ -0,0 +1,34 @@
package com.cf.imes.module.system.controller.admin.machine.vo;
import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
import java.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class MachineTemplateRespVO {
@Schema(description = "品牌ID")
private Long id;
@Schema(description = "品牌名称")
private String brand;
@Schema(description = "机台类别")
private Integer machineType;
@Schema(description = "机台信息")
private List<MachineTemplateDO> machineTemplateDOS;
}
@@ -24,6 +24,12 @@ public class MachineVO {
@ExcelProperty("1开料机 2钻孔机")
private Integer machineType;
@Schema(description = "品牌ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
private Long brandId;
@Schema(description = "品牌名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
private String brand;
@Schema(description = "标签id")
private Long labelId;
@@ -20,8 +20,8 @@ public class MachineConvert {
.id(createReqVO.getId())
.labelId(createReqVO.getLabelId())
.setting(createReqVO.getMachineSettingDO().toJSONString())
.brand(createReqVO.getBrand())
.model(createReqVO.getModel())
.brandId(createReqVO.getBrandId())
// .model(createReqVO.getModel())
.build();
}
@@ -31,8 +31,8 @@ public class MachineConvert {
.id(machineDO.getId())
.machineSettingDO(JSON.parseObject(machineDO.getSetting()))
.createTime(machineDO.getCreateTime())
.brand(machineDO.getBrand())
.model(machineDO.getModel())
.brandId(machineDO.getBrandId())
// .model(machineDO.getModel())
.name(machineDO.getName())
.machineType(machineDO.getMachineType())
.labelId(machineDO.getLabelId())
@@ -27,6 +27,8 @@ public class MachineTemplateConvert {
.machineType(reqVO.getMachineType())
.id(reqVO.getId())
.name(reqVO.getName())
// .brand(reqVO.getBrand())
.brandId(reqVO.getNowBrandId())
.setting(reqVO.getSetting().toJSONString())
.build();
}
@@ -0,0 +1,36 @@
package com.cf.imes.module.system.dal.dataobject.machine;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
@TableName("system_machine_brand")
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MachineBrandDO /*extends BaseDO*/ {
/**
* 主键
*/
@TableId
private Long id;
/**
* 1开料设备 2钻孔机设备 3裁板锯 4贴标机 5封边机
*/
private Integer machineType;
/**
* 品牌
*/
private String brand;
}
@@ -46,14 +46,20 @@ public class MachineDO extends OrganBaseDO {
private String setting;
/**
* 品牌
* 品牌ID
*/
private String brand;
private Long brandId;
/**
* 型号
*/
private String model;
// /**
// * 品牌
// */
// private String brand;
// /**
// * 型号
// */
// private String model;
}
@@ -25,28 +25,26 @@ public class MachineTemplateDO extends BaseDO {
*/
private String name;
/**
* 1机台设备 2CNC设备
* 1开料设备 2钻孔机设备 3裁板锯 4贴标机 5封边机
*/
private Integer machineType;
/**
* 是否默认模板
*/
private Boolean isDefault;
// /**
// * 是否默认模板
// */
// private Boolean isDefault;
/**
* 机台模板配置
*/
private String setting;
/**
* 品牌
* 品牌ID
*/
private String brand;
private Long brandId;
/**
* 型号
*/
private String model;
/**
* 标签id
@@ -0,0 +1,34 @@
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.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;
import java.util.List;
@Mapper
public interface MachineBrandMapper extends BaseMapperX<MachineBrandDO> {
default List<MachineBrandDO> selectListByType(Integer machineType) {
return selectList(new LambdaQueryWrapperX<MachineBrandDO>()
.eqIfPresent(MachineBrandDO::getMachineType,machineType));
}
default MachineBrandDO selectBrand(String brand,Integer machineType) {
return selectOne(new LambdaQueryWrapperX<MachineBrandDO>()
.eqIfPresent(MachineBrandDO::getMachineType,machineType)
.eqIfPresent(MachineBrandDO::getBrand,brand));
}
}
@@ -42,11 +42,23 @@ public interface MachineTemplateMapper extends BaseMapperX<MachineTemplateDO> {
OrganTemplateResp selectOrganTemplate(Long organId);
default MachineTemplateDO selectMachineId(String brand, String model) {
return selectOne(new LambdaQueryWrapperX<MachineTemplateDO>()
.eqIfPresent(MachineTemplateDO::getBrand,brand)
.eqIfPresent(MachineTemplateDO::getModel,model));
// default MachineTemplateDO selectMachineId(String brand) {
// return selectOne(new LambdaQueryWrapperX<MachineTemplateDO>()
// .eqIfPresent(MachineTemplateDO::getBrand,brand));
// }
default List<MachineTemplateDO> selectByBrand(Integer id) {
return selectList(new LambdaQueryWrapperX<MachineTemplateDO>()
.eqIfPresent(MachineTemplateDO::getBrandId,id));
}
default MachineTemplateDO selectMachine(Long brandId, String model) {
return selectOne(new LambdaQueryWrapperX<MachineTemplateDO>()
.eqIfPresent(MachineTemplateDO::getBrandId,brandId)
.eqIfPresent(MachineTemplateDO::getName,model));
}
}
@@ -59,13 +59,6 @@ public interface MachineService {
*/
void batchDeleteCutting(List<Long> ids);
Long createDrill(DrillSaveReqVO createReqVO);
void updateDrill(DrillSaveReqVO updateReqVO);
void deleteDrill(Long id);
void batchDeleteDrill(List<Long> ids);
DrillRespVO getDrill(Long id);
@@ -83,5 +76,5 @@ public interface MachineService {
List<MachineSimpleRespVO> simpleList(Long organId,Long type);
Map<String, List<MachineBrandModelRespVO>> getBrandAndModel(Long type);
List<MachineBrandModelRespVO> getBrandAndModel(Integer type);
}
@@ -21,12 +21,10 @@ import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
import com.cf.imes.module.executor.api.plan.OrderPlanApi;
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.DrillSettingDO;
import com.cf.imes.module.system.dal.dataobject.machine.MachineDO;
import com.cf.imes.module.system.dal.dataobject.machine.CuttingSettingDO;
import com.cf.imes.module.system.dal.dataobject.machine.MachineLimitDO;
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.machinetemplate.MachineTemplateLimitMapper;
@@ -66,8 +64,6 @@ public class MachineServiceImpl implements MachineService {
@Resource
private ESDocumentService esDocumentService;
//开料机台配置索引
public final static String CUTTING_MACHINE_SETTING = "cutting_machine_setting";
//钻孔机台配置索引
public final static String DRILL_MACHINE_SETTING = "drill_machine_setting";
@@ -87,36 +83,64 @@ public class MachineServiceImpl implements MachineService {
@Resource
private OrderPlanApi orderPlanApi;
@Resource
private MachineBrandMapper machineBrandMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createCutting(CuttingSaveReqVO createReqVO) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
assert loginUser != null;
// MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachineId(createReqVO.getBrand(), createReqVO.getModel());
if(createReqVO.getId() != null){
MachineDO copyMachineDO = machineMapper.selectById(createReqVO.getId());
// 插入
MachineDO machineDO = MachineConvert.convert(createReqVO);
machineDO.setSetting(copyMachineDO.getSetting());
machineDO.setId(null);
machineMapper.insert(machineDO);
// 返回
return machineDO.getId();
}
MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachine(createReqVO.getBrandId(), createReqVO.getModel());
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())
// );
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(JsonUtils.zipString(machineDO.getSetting()));
machineDO.setSetting(machineTemplateDO.getSetting());
machineMapper.insert(machineDO);
MachineLimitDO machineLimitDO = MachineLimitDO.builder()
.organId(loginUser.getOrganId())
.machineId(machineDO.getId())
.showPriorFacing(Objects.isNull(organMachineTemplateDO)? Boolean.FALSE: organMachineTemplateDO.getShowPriorFacing())
.showAutoNotePrinter(Objects.isNull(organMachineTemplateDO)? Boolean.FALSE: organMachineTemplateDO.getShowAutoNotePrinter())
.showDualWorkstation(Objects.isNull(organMachineTemplateDO)? Boolean.FALSE: organMachineTemplateDO.getShowDualWorkstation())
.build();
// MachineLimitDO machineLimitDO = MachineLimitDO.builder()
// .organId(loginUser.getOrganId())
// .machineId(machineDO.getId())
// .showPriorFacing(Objects.isNull(organMachineTemplateDO)? Boolean.FALSE: organMachineTemplateDO.getShowPriorFacing())
// .showAutoNotePrinter(Objects.isNull(organMachineTemplateDO)? Boolean.FALSE: organMachineTemplateDO.getShowAutoNotePrinter())
// .showDualWorkstation(Objects.isNull(organMachineTemplateDO)? Boolean.FALSE: organMachineTemplateDO.getShowDualWorkstation())
// .build();
// machineLimitMapper.insert(machineLimitDO);
machineLimitMapper.insert(machineLimitDO);
// 返回
return machineDO.getId();
}
@@ -181,77 +205,7 @@ public class MachineServiceImpl implements MachineService {
return respVO;
}
@Override
public Long createDrill(DrillSaveReqVO createReqVO) {
// 插入
MachineDO machineDO = Convert.convert(MachineDO.class, createReqVO);
machineMapper.insert(machineDO);
DrillSettingDO machineSettingDO = createReqVO.getMachineSettingDO();
machineSettingDO.setMachineId(machineDO.getId());
try {
esDocumentService.createByFluentDSL(DRILL_MACHINE_SETTING, machineSettingDO.getId(), machineSettingDO);
} catch (Exception e) {
log.error(e.getMessage());
throw exception(INTERNAL_SERVER_ERROR);
}
// 返回
return machineDO.getId();
}
@Override
public void updateDrill(DrillSaveReqVO updateReqVO) {
// 校验存在
validateExists(updateReqVO.getId());
updateReqVO.getMachineSettingDO().setMachineId(updateReqVO.getId());
try {
esDocumentService.createByFluentDSL(DRILL_MACHINE_SETTING, updateReqVO.getMachineSettingDO().getId(), updateReqVO.getMachineSettingDO());
} catch (Exception e) {
log.error(e.getMessage());
throw exception(INTERNAL_SERVER_ERROR);
}
// 更新
MachineDO updateObj = BeanUtils.toBean(updateReqVO, MachineDO.class);
machineMapper.updateById(updateObj);
}
@Override
public void deleteDrill(Long id) {
// 校验存在
MachineDO machineDO = machineMapper.selectById(id);
if (machineMapper.selectById(id) == null) {
throw exception(MACHINE_NOT_EXISTS);
}
// 删除
DeleteByQueryRequest.Builder builder = new DeleteByQueryRequest.Builder()
.index(DRILL_MACHINE_SETTING)
.query(b -> b.term(t -> t.field("machineId").value(machineDO.getId())));
try {
elasticsearchClient.deleteByQuery(builder.build());
} catch (IOException e) {
log.error(e.getMessage());
throw exception(INTERNAL_SERVER_ERROR);
}
machineMapper.deleteById(id);
}
@Override
public void batchDeleteDrill(List<Long> ids) {
List<MachineDO> machineDOS = machineMapper.selectBatchIds(ids);
if (CollectionUtil.isEmpty(machineDOS)) {
throw exception(MACHINE_NOT_EXISTS);
}
List<FieldValue> fieldValues = machineDOS.stream().map(e -> FieldValue.of(e.getId())).collect(Collectors.toList());
DeleteByQueryRequest.Builder builder = new DeleteByQueryRequest.Builder()
.index(DRILL_MACHINE_SETTING)
.query(TermsQuery.of(e -> e.field("machineId").terms(b -> b.value(fieldValues)))._toQuery());
try {
elasticsearchClient.deleteByQuery(builder.build());
} catch (IOException e) {
log.error(e.getMessage());
throw exception(INTERNAL_SERVER_ERROR);
}
machineMapper.deleteBatchIds(ids);
}
@Override
public DrillRespVO getDrill(Long id) {
@@ -272,14 +226,23 @@ public class MachineServiceImpl implements MachineService {
@Override
public Map<Integer, List<MachineVO>> getMachineTree(Long type) {
List<MachineDO> machineDOS = machineMapper.selectList(new LambdaQueryWrapperX<MachineDO>()
.eqIfPresent(MachineDO::getOrganId, getUserOrganId())
.eqIfPresent(MachineDO::getMachineType, type)
.select(MachineDO::getName, MachineDO::getMachineType, MachineDO::getId, MachineDO::getLabelId, MachineDO::getCreateTime)
);
.eqIfPresent(MachineDO::getMachineType, type));
List<Long> brandIds = machineDOS.stream().map(MachineDO::getBrandId).toList();
List<MachineBrandDO> machineBrandDOS = machineBrandMapper.selectBatchIds(brandIds);
List<MachineVO> machineVOS = BeanUtils.toBean(machineDOS, MachineVO.class);
Map<Integer, List<MachineVO>> map = machineVOS.stream().collect(Collectors.groupingBy(MachineVO::getMachineType));
return map;
for (MachineVO machineVO : machineVOS) {
machineVO.setBrand(machineBrandDOS.stream().filter(m -> m.getId().equals(machineVO.getBrandId())).map(MachineBrandDO::getBrand)
.findFirst().orElse(null));
}
return machineVOS.stream().collect(Collectors.groupingBy(MachineVO::getMachineType));
}
@Override
@@ -340,19 +303,29 @@ public class MachineServiceImpl implements MachineService {
@Override
public Map<String, List<MachineBrandModelRespVO>> getBrandAndModel(Long type) {
public List<MachineBrandModelRespVO> getBrandAndModel(Integer type) {
List<MachineDO> machineDOS = machineMapper.selectList(new LambdaQueryWrapperX<MachineDO>()
.eqIfPresent(MachineDO::getOrganId, getUserOrganId())
.eqIfPresent(MachineDO::getMachineType, type)
.select(MachineDO::getModel,MachineDO::getBrand)
).stream().filter(f -> (!Objects.equals(f.getModel(), ""))).toList();
List<MachineBrandDO> machineBrandDOS = machineBrandMapper.selectListByType(type);
List<MachineBrandModelRespVO> machineVOS = BeanUtils.toBean(machineDOS, MachineBrandModelRespVO.class);
Map<String, List<MachineBrandModelRespVO>> map = machineVOS.stream().collect(Collectors.groupingBy(MachineBrandModelRespVO::getBrand));
List<MachineBrandModelRespVO> machineBrandModelRespVOS = BeanUtils.toBean(machineBrandDOS, MachineBrandModelRespVO.class);
return map;
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> machineVOS = BeanUtils.toBean(machineDOS, MachineBrandModelRespVO.class);
//
//
// Map<String, List<MachineBrandModelRespVO>> map = machineVOS.stream().collect(Collectors.groupingBy(MachineBrandModelRespVO::getBrand));
return machineBrandModelRespVOS;
}
@@ -37,13 +37,10 @@ public interface MachineTemplateService {
Boolean deleteCuttingTemplate(Long id);
Boolean batchDeleteCuttingTemplate(List<Long> ids);
Boolean batchDeleteCuttingTemplate(MachineTemplateBrandReqVO reqVO);
CuttingTemplateRespVO getDefaultCutting(Integer machineType);
DrillTemplateRespVO getDefaultDrill();
Map<Integer, List<MachineTemplateDO>> getMachineTemplateTree();
Map<Integer, List<MachineTemplateRespVO>> getMachineTemplateTree();
PageResult<AuthTemplateResp> authTemplatePage(AuthTemplatePage page);
@@ -53,5 +50,11 @@ public interface MachineTemplateService {
OrganTemplateResp organTemplateByOrganId(Long organId);
Boolean setDefaultTemplate(Long id);
void createMachineTemplateBrand(MachineTemplateBrandReqVO reqVO);
void updateMachineTemplateBrand(MachineTemplateBrandReqVO reqVO);
// Boolean setDefaultTemplate(Long id);
}
@@ -14,16 +14,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cf.imes.framework.common.exception.ServiceException;
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.module.system.controller.admin.machine.vo.*;
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.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;
@@ -68,6 +71,10 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
@Resource
private MachineTemplateLimitMapper machineTemplateLimitMapper;
@Resource
private MachineBrandMapper machineBrandMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createDrillTemplate(DrillTemplateSaveReqVO reqVO) {
@@ -156,21 +163,54 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
@Override
@Transactional(rollbackFor = Exception.class)
public Long createCuttingTemplate(CuttingTemplateSaveReqVO reqVO) {
MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO);
if(!templateDO.getSetting().isEmpty()){
templateDO.setSetting(JsonUtils.zipString(templateDO.getSetting()));
// todo 测试时的判断,测试完毕后删除
if(reqVO.getNowBrandId() == null){
throw exception(THE_CURRENT_BRAND);
}
MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO);
// MachineBrandDO machineBrandDO = machineBrandMapper.selectBrand(reqVO.getBrand(),reqVO.getMachineType());
// List<MachineTemplateDO> machineTemplateDOS = machineTemplateMapper.selectByBrand(machineBrandDO.getId());
if(reqVO.getModel()!=null) {
MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachine(reqVO.getBrandId(), reqVO.getModel());
templateDO.setSetting(machineTemplateDO.getSetting());
machineTemplateMapper.insert(templateDO);
return templateDO.getId();
}
templateDO.setSetting(JsonUtils.zipString(templateDO.getSetting()));
machineTemplateMapper.insert(templateDO);
return templateDO.getId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateCuttingTemplate(CuttingTemplateSaveReqVO reqVO) {
// todo 测试时的判断,测试完毕后删除
MachineBrandDO machineBrandDO = machineBrandMapper.selectById(reqVO.getNowBrandId());
if(machineBrandDO == null){
throw exception(THE_CURRENT_BRAND);
}
MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO);
if(!reqVO.getSetting().isEmpty()){
templateDO.setSetting(JsonUtils.zipString(templateDO.getSetting()));
}
machineTemplateMapper.updateById(templateDO);
return Boolean.TRUE;
@@ -188,59 +228,55 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
}
@Override
public Boolean batchDeleteCuttingTemplate(List<Long> ids) {
List<MachineTemplateDO> machineTemplateDOS = machineTemplateMapper.selectBatchIds(ids);
if (CollectionUtil.isEmpty(machineTemplateDOS)) {
throw exception(MACHINE_TEMPLATE_NOT_EXISTS);
public Boolean batchDeleteCuttingTemplate(MachineTemplateBrandReqVO reqVO) {
// MachineBrandDO machineBrandDO = machineBrandMapper.selectBrand(reqVO.getBrand(),reqVO.getMachineType());
// MachineBrandDO machineBrandDO = machineBrandMapper.selectById(reqVO.getId());
List<MachineTemplateDO> machineTemplateDOS = machineTemplateMapper.selectByBrand(reqVO.getId());
if (!machineTemplateDOS.isEmpty()) {
// throw exception(MACHINE_TEMPLATE_NOT_EXISTS);
List<Long> ids = machineTemplateDOS.stream().map(MachineTemplateDO::getId).toList();
machineTemplateMapper.deleteBatchIds(ids);
}
machineTemplateMapper.deleteBatchIds(ids);
machineBrandMapper.deleteById(reqVO.getId());
return Boolean.TRUE;
}
@Override
public CuttingTemplateRespVO getDefaultCutting(Integer machineType) {
List<MachineTemplateDO> machineTemplateDOS = machineTemplateMapper.selectList(new LambdaQueryWrapperX<MachineTemplateDO>()
.eq(MachineTemplateDO::getIsDefault, Boolean.TRUE)
.eq(MachineTemplateDO::getMachineType, machineType)
);
if (CollectionUtil.isNotEmpty(machineTemplateDOS)) {
if (machineTemplateDOS.size() > 1) {
throw exception(DEFAULT_TEMPLATE_COUNT);
}
MachineTemplateDO templateDO = machineTemplateDOS.get(0);
// 将机台的模板配置进行解压
templateDO.setSetting(JsonUtils.unzipString(templateDO.getSetting()));
return MachineTemplateConvert.convert1(templateDO);
}
throw exception(DEFAULT_TEMPLATE_NOT_EXISTS);
}
@Override
public DrillTemplateRespVO getDefaultDrill() {
List<MachineTemplateDO> machineTemplateDOS = machineTemplateMapper.selectList(new LambdaQueryWrapperX<MachineTemplateDO>()
.eq(MachineTemplateDO::getIsDefault, Boolean.TRUE)
.eq(MachineTemplateDO::getMachineType, 2)
);
if (CollectionUtil.isNotEmpty(machineTemplateDOS)) {
if (machineTemplateDOS.size() > 1) {
throw exception(DEFAULT_TEMPLATE_COUNT);
}
MachineTemplateDO templateDO = machineTemplateDOS.get(0);
DrillTemplateRespVO respVO = Convert.convert(DrillTemplateRespVO.class, templateDO);
Object o = buildResp(templateDO.getId(), DRILL_MACHINE_INX, DrillTemplateMachineDO.class);
respVO.setDrillTemplateMachineDO((DrillTemplateMachineDO) o);
return respVO;
}
throw exception(DEFAULT_TEMPLATE_COUNT);
}
public Map<Integer, List<MachineTemplateRespVO>> getMachineTemplateTree() {
// List<MachineBrandDO> machineBrandDOS = machineBrandMapper.selectListByType(machineType);
List<MachineBrandDO> machineBrandDOS = machineBrandMapper.selectList();
List<MachineTemplateRespVO> machineTemplateRespVOS = BeanUtils.toBean(machineBrandDOS, MachineTemplateRespVO.class);
@Override
public Map<Integer, List<MachineTemplateDO>> getMachineTemplateTree() {
List<MachineTemplateDO> machineTemplateDOS = machineTemplateMapper.selectList()
// 将机台的配置进行解压
.stream().map(m -> m.setSetting(JsonUtils.unzipString(m.getSetting()))).collect(Collectors.toList());
.stream()
// todo 目前需要写上,等数据清一波后,应该不需要了
.filter(m -> !Objects.equals(m.getBrandId(),null))
.map(m -> m.setSetting(JsonUtils.unzipString(m.getSetting()))).toList();
for (MachineTemplateRespVO machineTemplateRespVO : machineTemplateRespVOS) {
machineTemplateRespVO.setMachineTemplateDOS(machineTemplateDOS.stream()
.filter(m -> m.getBrandId().equals(machineTemplateRespVO.getId()))
.toList());
}
Map<Integer, List<MachineTemplateRespVO>> map = machineTemplateRespVOS.stream().collect(Collectors.groupingBy(MachineTemplateRespVO::getMachineType));
Map<Integer, List<MachineTemplateDO>> map = machineTemplateDOS.stream().collect(Collectors.groupingBy(MachineTemplateDO::getMachineType));
return map;
}
@@ -263,40 +299,74 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
return machineTemplateMapper.selectOrganTemplate(organId);
}
@Override
@Transactional
public Boolean setDefaultTemplate(Long id) {
MachineTemplateDO templateDO = machineTemplateMapper.selectById(id);
if (Objects.isNull(templateDO)) {
throw exception(MACHINE_TEMPLATE_NOT_EXISTS);
}
List<MachineTemplateDO> machineTemplateDOS = machineTemplateMapper.selectList(MachineTemplateDO::getMachineType, templateDO.getMachineType(), MachineTemplateDO::getIsDefault, Boolean.TRUE);
if(CollectionUtil.isEmpty(machineTemplateDOS) || machineTemplateDOS.size()>1) {
throw exception(DEFAULT_TEMPLATE_COUNT);
public void createMachineTemplateBrand(MachineTemplateBrandReqVO reqVO) {
MachineBrandDO machineBrandDO = machineBrandMapper.selectBrand(reqVO.getBrand(), reqVO.getMachineType());
if(machineBrandDO != null){
throw exception(THE_CURRENT_BRAND_OF_THE_MACHINE_EXISTS);
}
if(!machineTemplateDOS.isEmpty()){
MachineTemplateDO machineTemplateDO = new MachineTemplateDO();
machineTemplateDO.setId(machineTemplateDOS.get(0).getId());
machineTemplateDO.setIsDefault(Boolean.FALSE);
machineTemplateMapper.updateById(machineTemplateDO);
}
MachineBrandDO machineBrand = MachineBrandDO.builder()
.machineType(reqVO.getMachineType())
.brand(reqVO.getBrand())
.build();
machineBrandMapper.insert(machineBrand);
templateDO.setIsDefault(Boolean.TRUE);
machineTemplateMapper.updateById(templateDO);
return Boolean.TRUE;
}
@Override
public void updateMachineTemplateBrand(MachineTemplateBrandReqVO reqVO) {
// MachineBrandDO machineBrandDO = machineBrandMapper.selectBrand(reqVO.getBrand(), reqVO.getMachineType());
MachineBrandDO machineBrandDO = machineBrandMapper.selectById(reqVO.getId());
machineBrandDO.setBrand(reqVO.getBrand());
machineBrandMapper.updateById(machineBrandDO);
}
// @Override
// @Transactional
// public Boolean setDefaultTemplate(Long id) {
// MachineTemplateDO templateDO = machineTemplateMapper.selectById(id);
// if (Objects.isNull(templateDO)) {
// throw exception(MACHINE_TEMPLATE_NOT_EXISTS);
// }
// List<MachineTemplateDO> machineTemplateDOS = machineTemplateMapper.selectList(MachineTemplateDO::getMachineType, templateDO.getMachineType(), MachineTemplateDO::getIsDefault, Boolean.TRUE);
// if(CollectionUtil.isEmpty(machineTemplateDOS) || machineTemplateDOS.size()>1) {
// throw exception(DEFAULT_TEMPLATE_COUNT);
// }
//
// if(!machineTemplateDOS.isEmpty()){
// MachineTemplateDO machineTemplateDO = new MachineTemplateDO();
// machineTemplateDO.setId(machineTemplateDOS.get(0).getId());
// machineTemplateDO.setIsDefault(Boolean.FALSE);
// machineTemplateMapper.updateById(machineTemplateDO);
// }
//
// templateDO.setIsDefault(Boolean.TRUE);
// machineTemplateMapper.updateById(templateDO);
// return Boolean.TRUE;
// }
@Override
public Boolean deleteCuttingTemplate(Long id) {
MachineTemplateDO templateDO = machineTemplateMapper.selectById(id);
if (Objects.isNull(templateDO)) {
throw exception(MACHINE_TEMPLATE_NOT_EXISTS);
}
if(templateDO.getIsDefault()) {
throw exception(DEFAULT_TEMPLATE_NOT_DELETED);
}
// if(templateDO.getIsDefault()) {
// throw exception(DEFAULT_TEMPLATE_NOT_DELETED);
// }
machineTemplateMapper.deleteById(id);
return Boolean.TRUE;
}