diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java index b7ca9b596..c7dcec725 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java @@ -480,7 +480,7 @@ public class PlanServiceImpl implements PlanService { } planDOPageResult.setList(plan); - + planDOPageResult.setTotal(1L); }else { @@ -610,11 +610,6 @@ public class PlanServiceImpl implements PlanService { // todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决 List goodsDOS = goodsMapper.selectListByGoodsId(pageReqVO.getGoodsId(), getUserOrganId()); -// List orderIds = new ArrayList<>(); -// if(pageReqVO.getGoodsId() != null) { -// List goodsDOS = goodsMapper.selectListByGoodsId(pageReqVO.getGoodsId(), getUserOrganId()); -// orderIds = goodsDOS.stream().map(GoodsDO::getOrderId).toList(); -// } QueryWrapperX queryWrapperX = new QueryWrapperX<>(); queryWrapperX @@ -626,18 +621,44 @@ public class PlanServiceImpl implements PlanService { .eq("og.deleted",false) // .isNull("opi.item_id") // todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决 - .inIfPresent("op.goods_id",goodsDOS.isEmpty() ? null :goodsDOS.stream().map(GoodsDO::getId).toList()) + .inIfPresent("og.id",goodsDOS.isEmpty() ? null :goodsDOS.stream().map(GoodsDO::getId).toList()) .inIfPresent("o.id",pageReqVO.getOrderIds()) .likeIfPresent("o.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null) - .inIfPresent("op.goods_id",pageReqVO.getIds()) + .inIfPresent("og.id",pageReqVO.getIds()) .likeIfPresent("o.customer", pageReqVO.getConsignee()) .likeIfPresent("o.custom_order_no", pageReqVO.getDefaultId()) .likeIfPresent("o.address", pageReqVO.getConsigneeAddress()) .betweenIfPresent("o.order_date", pageReqVO.getCreateTime()) + .eqIfPresent("op.is_special_shaped", pageReqVO.getRectangle() != null ? false: null) + .eqIfPresent("op.is_special_shaped", pageReqVO.getSpecialShaped()) + .eqIfPresent("op.is_sculpt", pageReqVO.getSculpt()) + .eqIfPresent("op.is_door", pageReqVO.getIsDoor()) + .betweenIfPresent("op.height", new BigDecimal[]{pageReqVO.getLongMinRang(), pageReqVO.getLongMaxRang()}) + .betweenIfPresent("op.width", new BigDecimal[]{pageReqVO.getWidthMinRang(), pageReqVO.getWidthMaxRang()}) .groupBy("o.id", " o.order_date", "o.delivery_date", "o.customer", "o.address", "o.custom_order_no","o.status") .having("count(op.id) != 0") .orderByDesc("o.order_date"); + String filterTypes = ""; + if (Objects.nonNull(pageReqVO.getHoleThrough()) && pageReqVO.getHoleThrough()) { + filterTypes += PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType().toString(); + } + if (Objects.nonNull(pageReqVO.getBurrow()) && pageReqVO.getBurrow()) { + filterTypes += PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType().toString(); + } + if (Objects.nonNull(pageReqVO.getTwoDimensionalToolPath()) && pageReqVO.getTwoDimensionalToolPath()) { + filterTypes += PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType().toString(); + } + + queryWrapperX.likeIfPresent("op.filter_type", insertSeparator(filterTypes)); + + + + + + + + // todo 目前修改一半,速度无法再进行特别的优化,需等后面修改表结构再进行优化 IPage orderRespVOCopies = orderMapper.selectOrderPage(page,queryWrapperX); @@ -807,11 +828,15 @@ public class PlanServiceImpl implements PlanService { .inIfPresent("og.order_id", pageReqVO.getOrderIds()) .inIfPresent("og.id", pageReqVO.getIds()) -// .isNull("opi.item_id") -// .isNotNull("og.id") // todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决 .eqIfPresent("og.goods_id",pageReqVO.getGoodsId()) + + .likeIfPresent("o.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null) + .likeIfPresent("o.customer", pageReqVO.getConsignee()) + .likeIfPresent("o.custom_order_no", pageReqVO.getDefaultId()) + .likeIfPresent("o.address", pageReqVO.getConsigneeAddress()) + .betweenIfPresent("o.order_date", pageReqVO.getCreateTime()) .eqIfPresent("op.is_special_shaped", pageReqVO.getRectangle() != null ? false: null) .eqIfPresent("op.is_special_shaped", pageReqVO.getSpecialShaped()) .eqIfPresent("op.is_sculpt", pageReqVO.getSculpt()) diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PackPlateList.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PackPlateList.java index e761dc1a5..7cd2d2e9a 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PackPlateList.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PackPlateList.java @@ -5,8 +5,6 @@ import lombok.Builder; import lombok.Data; import lombok.ToString; -import java.util.List; - @Data @ToString(callSuper = true) @Builder @@ -22,7 +20,7 @@ public class PackPlateList { // 板材ID private Long plateId; - // 包裹编号 + // 板材编号 private String plateNo; diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java index 2b651c340..5a9763843 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java @@ -121,6 +121,8 @@ public class PackServiceImpl implements PackService { packRespVOS.setRecords(packRespVOList); + packRespVOS.setTotal(1); + orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList()); }else { @@ -843,10 +845,10 @@ public class PackServiceImpl implements PackService { .status(OrderPackageStatusEnum.PACKAGED.getStatus()) .build()); prePackOptimizeInfo.getList().forEach(plate ->{ - List list = plate.getList().stream().map(PrePackOptimizeInfo.PrerPlateData::getPlateNo).toList(); + List list = plate.getList().stream().map(PrePackOptimizeInfo.PrerPlateData::getPlateId).toList(); list.forEach(a -> packPlateNoLists.add(PackPlateList.builder() .packNo(packageNo) - .plateNo(a) + .plateId(Long.valueOf(a)) .build())); }); @@ -876,14 +878,24 @@ public class PackServiceImpl implements PackService { List orderItemDOS = orderItemMapper.selectPackPlateList(reqVO.getOrderId(), getUserOrganId()); - List plateNo = packPlateNoLists.stream().map(PackPlateList::getPlateNo).toList(); +// List plateNo = packPlateNoLists.stream().map(PackPlateList::getPlateNo).toList(); +// +// +// List orderPlateDOS = orderPlateMapper.selectPlateList(plateNo, getUserOrganId()); +// +// if(orderPlateDOS.isEmpty()){ +// System.out.println("当前板材数据为空"); +// +// } +// +// orderPlateDOS.forEach(a-> +// packPlateNoLists.stream().filter(f->Objects.equals(f.getPlateNo(), a.getPlateNo())) +// .forEach(f -> f.setPlateId(a.getId()))); +// +// +// System.out.println("啊哈哈哈哈哈哈1 "+packPlateNoLists); - List orderPlateDOS = orderPlateMapper.selectPlateList(plateNo, getUserOrganId()); - - orderPlateDOS.forEach(a-> - packPlateNoLists.stream().filter(f->Objects.equals(f.getPlateNo(), a.getPlateNo())) - .forEach(f -> f.setPlateId(a.getId()))); packPlateNoLists.forEach(a-> orderItemDOS.stream().filter(f->Objects.equals(f.getPlateId(), a.getPlateId())) diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java index 1d174cbc3..24f7efcae 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java @@ -217,7 +217,9 @@ public interface ErrorCodeConstants { 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_010, "品牌ID错误,或品牌不存在"); - ErrorCode MACHINE_NUM_ERROR = new ErrorCode(1_002_029_011, "当前模板创建的机台数量已达到最大轴,无法继续创建"); + 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, "当前机台模板的名称已存在,请重新输入机台模板名称"); // ========== 标签模板 1-002-300-000 ========== ErrorCode LABEL_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_300_000, "标签模板不存在"); diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineAuthController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineAuthController.java index 881814206..f4dab90bc 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineAuthController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineAuthController.java @@ -3,7 +3,6 @@ package com.cf.imes.module.system.controller.admin.machine; import com.cf.imes.framework.common.pojo.CommonResult; 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.cf.imes.module.system.service.machine.MachineService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -13,7 +12,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; -import java.util.stream.Collectors; +import java.util.Map; import static com.cf.imes.framework.common.pojo.CommonResult.success; @@ -28,8 +27,8 @@ public class MachineAuthController { @Resource private MachineService machineService; - @PutMapping("insert-organ-auth") - @Operation(summary = "组织机台授权新增") + @PostMapping("insert-organ-auth") + @Operation(summary = "组织机台授权信息更新") @PreAuthorize("@ss.hasPermission('machine-auth::update')") public CommonResult auth(@RequestBody MachineOrgAuthReq vo) { return success(machineService.auth(vo)); @@ -43,27 +42,29 @@ public class MachineAuthController { } @GetMapping("organ-by-organId") - @Operation(summary = "根据组织id查询组织机台授权") + @Operation(summary = "根据组织ID查询已经授权的机台ID") @PreAuthorize("@ss.hasPermission('machine-auth::query')") @Parameter(name = "organId", description = "组织id", required = true, example = "1") - public CommonResult organTemplateByOrganId(@RequestParam Long organId ) { + public CommonResult> organTemplateByOrganId(@RequestParam Long organId ) { return success(machineService.organMachineByOrganId(organId)); } - @GetMapping("page-machine-auth") - @Operation(summary = "授权机台分页") + @GetMapping("select-machine-auth") + @Operation(summary = "查询机台授权列表") @PreAuthorize("@ss.hasPermission('machine-auth::query')") - public CommonResult> pageTemplateAuth(MachinePageReqVO pageParam) { - PageResult page = machineService.page(pageParam); - List list = page.getList().stream().map(e->MachineAuthResp.builder() - .id(e.getId()) - .machineType(e.getMachineType()) - .machineName(e.getName()) - .organId(e.getOrganId()) - .build() - ).collect(Collectors.toList()); + public CommonResult>> getTemplateAuth(MachinePageReqVO pageParam) { - return success(new PageResult(list, page.getTotal())); + return success(machineService.getTemplateAuth(pageParam)); + +// List list = page.getList().stream().map(e->MachineAuthResp.builder() +// .id(e.getId()) +// .machineType(e.getMachineType()) +// .machineName(e.getName()) +// .organId(e.getOrganId()) +// .build() +// ).collect(Collectors.toList()); +// +// return success(new PageResult(list, page.getTotal())); } } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineController.java index 6cd176c35..c46038c7f 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineController.java @@ -1,5 +1,8 @@ package com.cf.imes.module.system.controller.admin.machine; +import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.framework.common.pojo.PageResult; +import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.framework.es.core.valid.CreateGroup; import com.cf.imes.framework.es.core.valid.UpdateGroup; import com.cf.imes.framework.operatelog.core.annotations.OperateLog; @@ -8,21 +11,14 @@ 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 io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; - -import org.springframework.validation.annotation.Validated; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import javax.validation.*; - -import com.cf.imes.framework.common.pojo.PageResult; -import com.cf.imes.framework.common.pojo.CommonResult; -import com.cf.imes.framework.common.util.object.BeanUtils; - +import javax.validation.Valid; import java.util.List; import java.util.Map; @@ -128,6 +124,12 @@ public class MachineController { } + @GetMapping("getMachineModelAll") + @Operation(summary = "获得机台类型下所有机台的型号") + //@PreAuthorize("@ss.hasPermission('machine::query')") + public CommonResult> getMachineModelAll(@RequestParam Integer type) { + return success(machineService.getMachineModelAll(type)); + } } \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingTemplateSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingTemplateSaveReqVO.java index 58a8d6ca0..de5438c17 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingTemplateSaveReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingTemplateSaveReqVO.java @@ -31,7 +31,6 @@ public class CuttingTemplateSaveReqVO { @Schema(description = "引用的品牌ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") -// @NotNull(message = "品牌ID") private Long brandId; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineBrandModelRespVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineBrandModelRespVO.java index b1273fafb..ac857145f 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineBrandModelRespVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineBrandModelRespVO.java @@ -19,8 +19,8 @@ public class MachineBrandModelRespVO { private String brand; -// @Schema(description = "机台的型号-即机台的名称") -// private List name; + @Schema(description = "机台类别") + private Integer machineType; @Schema(description = "机台的型号-即机台的名称") private List machineSimpleRespVOS; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineOrgAuthReq.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineOrgAuthReq.java index 6af97f83b..11ac6ed2e 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineOrgAuthReq.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineOrgAuthReq.java @@ -12,10 +12,32 @@ import java.util.List; @Data public class MachineOrgAuthReq { - @Schema(description = "组织id") + @Schema(description = "组织id", requiredMode = Schema.RequiredMode.REQUIRED) private Long organId; - @Schema(description = "权限列表") - private List machineAuthList; + + + @Schema(description = "开料机授权数量") + private Integer cutLimit; + + + @Schema(description = "钻孔机授权数量") + private Integer drillLimit; + + + @Schema(description = "贴标机授权数量") + private Integer labelLimit; + + + @Schema(description = "裁板锯授权数量") + private Integer sawLimit; + + + @Schema(description = "封边机授权数量") + private Integer sealedgeLimit; + + + @Schema(description = "授权的机台ID") + private List machineAuthIds; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachinePage.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachinePage.java index a376a6778..0c46c5c5f 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachinePage.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachinePage.java @@ -9,8 +9,10 @@ import lombok.Data; */ @Data public class OrganMachinePage extends PageParam { - @Schema(description = "组织id") - private Long organId; + + @Schema(description = "组织名称") + private String organName; + @Schema(description = "机台名称") private String machineName; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachineResp.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachineResp.java index 8bbba4f59..15ab134ba 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachineResp.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachineResp.java @@ -1,18 +1,11 @@ package com.cf.imes.module.system.controller.admin.machine.vo; -import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.Date; -import java.util.List; - -import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; -import static com.cf.imes.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT; - /** * @author Beal */ @@ -21,13 +14,31 @@ import static com.cf.imes.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT @AllArgsConstructor @NoArgsConstructor public class OrganMachineResp { + @Schema(description = "组织id") private Long organId; + @Schema(description = "组织名称") private String organName; - @Schema(description = "更新时间") - @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) - private Date updateTime; - @Schema(description = "机台模板列表") - private List authMachineList; + + + @Schema(description = "开料机授权数量") + private Integer cutLimit; + + + @Schema(description = "钻孔机授权数量") + private Integer drillLimit; + + + @Schema(description = "贴标机授权数量") + private Integer labelLimit; + + + @Schema(description = "裁板锯授权数量") + private Integer sawLimit; + + + @Schema(description = "封边机授权数量") + private Integer sealedgeLimit; + } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachineVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachineVO.java index 09ef11ba9..41c3fb728 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachineVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachineVO.java @@ -1,6 +1,5 @@ package com.cf.imes.module.system.controller.admin.machine.vo; -import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -9,19 +8,10 @@ import lombok.Data; */ @Data public class OrganMachineVO { - @Schema(description = "机台id") - private Long machineId; - @Schema(description = "机台名称") - private String machineName; - @Schema(description = "机台类型") - private Integer machineType; - @Schema(description ="加工模式 开料机加工模式 默认true,显示开料机工作模式(是否排钻/造型,sc)配置") - private Boolean showPriorFacing; - @Schema(description = "双工位") - private Boolean showDualWorkstation; - @Schema(description = "自动贴标") - private Boolean showAutoNotePrinter; - @JsonIgnore + + @Schema(description = "组织ID") private Long organId; + + } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/machine/MachineLimitDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/machine/MachineLimitDO.java index bc3b89f48..f07e0080d 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/machine/MachineLimitDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/machine/MachineLimitDO.java @@ -2,13 +2,12 @@ package com.cf.imes.module.system.dal.dataobject.machine; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.time.LocalDateTime; - /** * @author Beal */ @@ -17,22 +16,43 @@ import java.time.LocalDateTime; @Builder @AllArgsConstructor @NoArgsConstructor -public class MachineLimitDO { +public class MachineLimitDO extends BaseDO { + @TableId - private Long id; private Long organId; - private Long machineId; - private LocalDateTime createTime; + + /** - * 加工模式 开料机加工模式 默认true,显示开料机工作模式(是否排钻/造型,sc)配置 + * 开料机授权数量 */ - private Boolean showPriorFacing; + private Integer cutLimit; + + /** - * 双工位 + * 钻孔机授权数量 */ - private Boolean showDualWorkstation; + private Integer drillLimit; + /** - * 自动贴标 + * 贴标机授权数量 */ - private Boolean showAutoNotePrinter; + private Integer labelLimit; + + /** + * 裁板锯授权数量 + */ + private Integer sawLimit; + + + /** + * 封边机授权数量 + */ + private Integer sealedgeLimit; + + + /** + * 机台授权列表 + */ + private String setting; + } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machine/MachineBrandMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machine/MachineBrandMapper.java index de50e299e..390fa3e8d 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machine/MachineBrandMapper.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machine/MachineBrandMapper.java @@ -32,4 +32,6 @@ public interface MachineBrandMapper extends BaseMapperX { List selectMachineList(@Param("type") Integer type); + List selectMachineNoDefault(); + } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machine/MachineLimitMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machine/MachineLimitMapper.java index 40b616c76..2065a3d9c 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machine/MachineLimitMapper.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machine/MachineLimitMapper.java @@ -1,12 +1,20 @@ package com.cf.imes.module.system.dal.mysql.machine; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; +import com.cf.imes.module.system.controller.admin.machine.vo.OrganMachinePage; +import com.cf.imes.module.system.controller.admin.machine.vo.OrganMachineResp; import com.cf.imes.module.system.dal.dataobject.machine.MachineLimitDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * @author Beal */ @Mapper public interface MachineLimitMapper extends BaseMapperX { + + + IPage selectOrganMachinePage(@Param("page") IPage page,@Param("machinePage") OrganMachinePage machinePage); + } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machine/MachineMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machine/MachineMapper.java index 94f089fcf..bda6c58ce 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machine/MachineMapper.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machine/MachineMapper.java @@ -1,17 +1,16 @@ package com.cf.imes.module.system.dal.mysql.machine; -import java.util.*; - -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.cf.imes.framework.common.pojo.PageResult; -import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; -import com.cf.imes.module.system.controller.admin.machine.vo.*; +import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.cf.imes.module.system.controller.admin.machine.vo.MachinePageReqVO; import com.cf.imes.module.system.dal.dataobject.machine.MachineDO; -import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.Collection; +import java.util.List; + import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; /** @@ -31,11 +30,6 @@ public interface MachineMapper extends BaseMapperX { .orderByDesc(MachineDO::getCreateTime)); } - Page selectOrganMachinePage(@Param("page") Page respPage, @Param("vo") OrganMachinePage page); - - List selectOrganMachineList(Map map); - - OrganMachineResp selectOrganMachine(Long organId); default PageResult selectPage(MachinePageReqVO pageParam, Collection ids) { return selectPage(pageParam, new LambdaQueryWrapperX() @@ -44,4 +38,41 @@ public interface MachineMapper extends BaseMapperX { .betweenIfPresent(MachineDO::getCreateTime, pageParam.getCreateTime()) .orderByDesc(MachineDO::getCreateTime)); }; + + + + default List selectByOrganId(Integer machineType,Long organId) { + return selectList(new LambdaQueryWrapperX() + .eq(MachineDO::getOrganId,organId) + .eq(MachineDO::getDeleted,false) + .eq(MachineDO::getMachineType,machineType) + .select(MachineDO::getId)); + + } + + + + default MachineDO selectMachineName(String name,Integer machineType,Long organId) { + return selectOne(new LambdaQueryWrapperX() + .eq(MachineDO::getOrganId,organId) + .eq(MachineDO::getDeleted,false) + .eq(MachineDO::getMachineType,machineType) + .eq(MachineDO::getName,name)); + + } + + MachineDO selectMachine(@Param("name") String name, @Param("machineType") Integer machineType, @Param("machineId") Long machineId, @Param("organId") Long organId); + + + default List selectMachineList(Integer machineType,Long organId) { + return selectList(new LambdaQueryWrapperX() + .eq(MachineDO::getOrganId,organId) + .eq(MachineDO::getDeleted,false) + .eq(MachineDO::getMachineType,machineType) + .select(MachineDO::getId,MachineDO::getName,MachineDO::getMachineType)); + + } + + + } \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machinetemplate/MachineTemplateMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machinetemplate/MachineTemplateMapper.java index 709255525..ef1488ef1 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machinetemplate/MachineTemplateMapper.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/machinetemplate/MachineTemplateMapper.java @@ -64,8 +64,13 @@ public interface MachineTemplateMapper extends BaseMapperX { - default List selectMachineTemplate(String templateName) { - return selectList(new LambdaQueryWrapperX() - .likeIfPresent(MachineTemplateDO::getName,templateName)); + default MachineTemplateDO selectMachineTemplateName(String name,Integer machineType) { + return selectOne(new LambdaQueryWrapperX() + .eq(MachineTemplateDO::getDeleted,false) + .eq(MachineTemplateDO::getMachineType,machineType) + .eq(MachineTemplateDO::getName,name)); } + + MachineTemplateDO selectMachineTemplate(@Param("name") String name,@Param("machineType") Integer machineType,@Param("id") Long id); + } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/organ/OrganMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/organ/OrganMapper.java index b629790f2..b6240f93d 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/organ/OrganMapper.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/organ/OrganMapper.java @@ -114,4 +114,11 @@ public interface OrganMapper extends BaseMapperX { .eq(OrganizationDO::getDeleted,false) .lt(OrganizationDO::getExpireTime,alertDay)); } + default List selectOrganListByName(String organName) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(OrganizationDO::getDeleted,false) + .likeIfPresent(OrganizationDO::getName,organName) + .select(OrganizationDO::getId)); + } + } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineService.java index a861fa359..b50653db2 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineService.java @@ -1,12 +1,13 @@ package com.cf.imes.module.system.service.machine; -import java.util.*; - -import com.cf.imes.module.system.controller.admin.machine.vo.*; 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 javax.validation.Valid; +import java.util.Collection; +import java.util.List; +import java.util.Map; /** * 机台 Service 接口 @@ -64,17 +65,23 @@ public interface MachineService { List list(Collection ids); + List getMachineModelAll(Integer type); + Map> getMachineTree(Long type); Boolean auth(MachineOrgAuthReq vo); PageResult organMachinePage(OrganMachinePage page); - OrganMachineResp organMachineByOrganId(Long organId); + List organMachineByOrganId(Long organId); PageResult page(MachinePageReqVO pageParam); List simpleList(Long organId,Long type); List getBrandAndModel(Integer type); + + Map> getTemplateAuth(MachinePageReqVO pageParam); + + } \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineServiceImpl.java index 564d21acb..f0bd853e3 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineServiceImpl.java @@ -7,7 +7,9 @@ import co.elastic.clients.elasticsearch._types.query_dsl.TermQuery; 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.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; 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; @@ -23,11 +25,13 @@ 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.organ.OrganizationDO; import com.cf.imes.module.system.dal.mysql.machine.MachineBrandMapper; 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.cf.imes.module.system.dal.mysql.organ.OrganMapper; import com.fasterxml.jackson.databind.JsonNode; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -36,7 +40,6 @@ 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; @@ -83,6 +86,9 @@ public class MachineServiceImpl implements MachineService { @Resource private MachineBrandMapper machineBrandMapper; + @Resource + private OrganMapper organMapper; + @Override @Transactional(rollbackFor = Exception.class) @@ -90,12 +96,23 @@ public class MachineServiceImpl implements MachineService { LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); assert loginUser != null; - if(createReqVO.getId() != null){ + // 校验机台名称是否重复 + MachineDO machine = machineMapper.selectMachineName(createReqVO.getName(),createReqVO.getMachineType(), getUserOrganId()); + if(machine != null){ + throw exception(MACHINE_NAME_ERROR); + } + +// validateMachineNum(createReqVO.getMachineType(), loginUser.getOrganId()); + + MachineDO machineDO; + MachineTemplateDO machineTemplateDO; + + if (createReqVO.getId() != null) { MachineDO copyMachineDO = machineMapper.selectById(createReqVO.getId()); // 插入 - MachineDO machineDO = MachineConvert.convert(createReqVO); + machineDO = MachineConvert.convert(createReqVO); machineDO.setSetting(copyMachineDO.getSetting()); @@ -108,109 +125,97 @@ public class MachineServiceImpl implements MachineService { } - MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachine(createReqVO.getBrandId(), createReqVO.getMachineId()); + machineTemplateDO = machineTemplateMapper.selectMachine(createReqVO.getBrandId(), createReqVO.getMachineId()); - if(machineTemplateDO == null){ + if (machineTemplateDO == null) { throw exception(THE_MODEL_OF_THE_MACHINE_DOES_NOT_EXIST); } - // 插入 - MachineDO machineDO = MachineConvert.convert(createReqVO); - + // 创建新的机器对象 + machineDO = MachineConvert.convert(createReqVO); machineDO.setSetting(machineTemplateDO.getSetting()); - machineMapper.insert(machineDO); + // 处理不同机台类型的配置 + handleMachineSpecificConfiguration(machineDO, machineTemplateDO); - - 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()) -// .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); - - // 返回 + // 返回新机器的ID return machineDO.getId(); } + + + // 判断机台的模板是否是钻孔机或封边机 + private void handleMachineSpecificConfiguration(MachineDO machineDO, MachineTemplateDO machineTemplateDO) { + Integer machineType = machineTemplateDO.getMachineType(); + + if (MachineTypeEnum.CUTTING.getType().equals(machineType)) { + handleCuttingMachineConfiguration(machineDO, machineTemplateDO); + } else if (MachineTypeEnum.BANDING.getType().equals(machineType)) { + handleBandingMachineConfiguration(machineDO, machineTemplateDO); + } + } + + + // 创建贴标机 + private void handleCuttingMachineConfiguration(MachineDO machineDO, MachineTemplateDO machineTemplateDO) { + + JsonNode cuttingSetting = JsonUtils.parseTree(unzipString(machineTemplateDO.getSetting())); + + 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() + "-贴标机"); + } + } + + + // 创建钻孔机 + private void handleBandingMachineConfiguration(MachineDO machineDO, MachineTemplateDO machineTemplateDO) { + JsonNode drillSetting = JsonUtils.parseTree(unzipString(machineTemplateDO.getSetting())); + 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() + "钻孔机"); + } + } + + + 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); + } + } + + + + + + + + + @Override + @Transactional(rollbackFor = Exception.class) public void updateCutting(CuttingSaveReqVO updateReqVO) { - // 校验存在 - validateExists(updateReqVO.getId()); + // 校验存在和判断机台名称是否重复 + validateExists(updateReqVO.getId(),updateReqVO.getName(),updateReqVO.getMachineType(),updateReqVO.getId()); // 更新 MachineDO updateObj = MachineConvert.convert(updateReqVO); //MachineDO updateObj = BeanUtils.toBean(updateReqVO, MachineDO.class); @@ -313,42 +318,73 @@ public class MachineServiceImpl implements MachineService { @Override public Boolean auth(MachineOrgAuthReq vo) { - machineLimitMapper.delete(new LambdaQueryWrapperX().eq(MachineLimitDO::getOrganId, vo.getOrganId())); - List machineAuthList = vo.getMachineAuthList(); - - if(CollectionUtil.isNotEmpty(machineAuthList)) { - List organMachineDOS = new ArrayList<>(); - LocalDateTime now = LocalDateTime.now(); - for (MachineAuth machineAuth : machineAuthList) { - organMachineDOS.add( - MachineLimitDO.builder() - .createTime(now) - .organId(vo.getOrganId()) - .machineId(machineAuth.getMachineId()) - .showDualWorkstation(machineAuth.getShowDualWorkstation()) - .showAutoNotePrinter(machineAuth.getShowAutoNotePrinter()) - .showPriorFacing(machineAuth.getShowPriorFacing()) - .build() - ); - - } - machineLimitMapper.insertBatch(organMachineDOS); + OrganizationDO tenant = organMapper.selectById(vo.getOrganId()); + if (tenant == null) { + throw exception(ORGAN_NOT_EXISTS); } +// machineLimitMapper.delete(new LambdaQueryWrapperX().eq(MachineLimitDO::getOrganId, vo.getOrganId())); + +// List machineAuthList = vo.getMachineAuthList(); + +// if(CollectionUtil.isNotEmpty(machineAuthList)) { +// List organMachineDOS = new ArrayList<>(); +// LocalDateTime now = LocalDateTime.now(); +// for (MachineAuth machineAuth : machineAuthList) { +// organMachineDOS.add( +// MachineLimitDO.builder() +// .createTime(now) +// .organId(vo.getOrganId()) +//// .machineId(machineAuth.getMachineId()) +//// .showDualWorkstation(machineAuth.getShowDualWorkstation()) +//// .showAutoNotePrinter(machineAuth.getShowAutoNotePrinter()) +//// .showPriorFacing(machineAuth.getShowPriorFacing()) +// .build() +// ); +// +// } +// machineLimitMapper.insertBatch(organMachineDOS); +// } + + MachineLimitDO machineLimitDO = MachineLimitDO.builder() + .organId(vo.getOrganId()) + .cutLimit(vo.getCutLimit()) + .drillLimit(vo.getDrillLimit()) + .labelLimit(vo.getLabelLimit()) + .sawLimit(vo.getSawLimit()) + .sealedgeLimit(vo.getSealedgeLimit()) + .setting(vo.getMachineAuthIds().toString()) + .build(); + + + + machineLimitMapper.updateById(machineLimitDO); return Boolean.TRUE; } @Override - public PageResult organMachinePage(OrganMachinePage page) { - Page respPage = new Page<>(page.getPageNo(), page.getPageSize()); - Page pageRes = machineMapper.selectOrganMachinePage(respPage, page); - return new PageResult<>(pageRes.getRecords(), pageRes.getTotal()); + public PageResult organMachinePage(OrganMachinePage machinePage) { + + PageDTO page = new PageDTO<>(machinePage.getPageNo(), machinePage.getPageSize()); + + + IPage packRespVOS = machineLimitMapper.selectOrganMachinePage(page, machinePage); + + + return new PageResult<>(packRespVOS.getRecords(), packRespVOS.getTotal()); + } @Override - public OrganMachineResp organMachineByOrganId(Long organId) { - return machineMapper.selectOrganMachine(organId); + public List organMachineByOrganId(Long organId) { + + String setting = machineLimitMapper.selectById(organId).getSetting(); + + return JSON.parseArray(setting).toJavaList(Integer.class); + +// return machineMapper.selectOrganMachine(organId); + } @Override @@ -356,6 +392,17 @@ public class MachineServiceImpl implements MachineService { return machineMapper.selectPage(pageParam, new ArrayList<>()); } + + @Override + public List getMachineModelAll(Integer type) { + + List machineDOS = machineMapper.selectMachineList(type, getUserOrganId()); + + return BeanUtils.toBean(machineDOS,MachineSimpleRespVO.class); + + } + + @Override @OrganIgnore public List simpleList(Long organId,Long type) { @@ -371,44 +418,73 @@ public class MachineServiceImpl implements MachineService { @Override public List getBrandAndModel(Integer type) { -// List machineBrandDOS = machineBrandMapper.selectListByType(type); return machineBrandMapper.selectMachineList(type); -// List machineBrandModelRespVOS = BeanUtils.toBean(machineBrandDOS, MachineBrandModelRespVO.class); -// -// -// List machineDOS = machineTemplateMapper.selectList(new LambdaQueryWrapperX() -// .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 machineVOS = BeanUtils.toBean(machineDOS, MachineBrandModelRespVO.class); -// -// -// Map> map = machineVOS.stream().collect(Collectors.groupingBy(MachineBrandModelRespVO::getBrand)); - - -// return machineBrandModelRespVOS; } - private void validateExists(Long id) { - if (machineMapper.selectById(id) == null) { + @Override + public Map> getTemplateAuth(MachinePageReqVO pageParam) { + + + List machineBrandModelRespVOS = machineBrandMapper.selectMachineNoDefault(); + + return machineBrandModelRespVOS.stream().collect(Collectors.groupingBy(MachineBrandModelRespVO::getMachineType)); + + + + } + + + + // 校验机台是否存在和机台名称是否重复 + private void validateExists(Long id,String name,Integer machineType,Long machineId) { + MachineDO machineDO = machineMapper.selectById(id); + if (machineDO == null) { throw exception(MACHINE_NOT_EXISTS); } + MachineDO machine = machineMapper.selectMachine(name, machineType,machineId, getUserOrganId()); + + if(machine != null){ + throw exception(MACHINE_NAME_ERROR); + } } - private Boolean validateBrandAndModel(String brand, String model){ + // 校验当前组织当前类型的机台是否达到最大创建数量 + private void validateMachineNum(Integer machineType, Long organId){ + Integer machineNum = machineMapper.selectByOrganId(machineType,organId).size()+1; + MachineLimitDO machineLimitDO = machineLimitMapper.selectById(organId); + + Integer authMachineNum = 0; + switch (machineType){ + + case 1 : + authMachineNum = machineLimitDO.getCutLimit(); + break; + case 2 : + authMachineNum = machineLimitDO.getDrillLimit(); + break; + case 3 : + authMachineNum = machineLimitDO.getSawLimit(); + break; + case 4 : + authMachineNum = machineLimitDO.getLabelLimit(); + break; + case 5 : + authMachineNum = machineLimitDO.getSealedgeLimit(); + break; + + } + + if(machineNum >= authMachineNum){ + throw exception(MACHINE_NUM_ERROR); + } - return true; } @Override diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateServiceImpl.java index 1e31ed10a..cd9b73284 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateServiceImpl.java @@ -29,7 +29,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -83,6 +82,8 @@ public class MachineTemplateServiceImpl implements MachineTemplateService { throw exception(THE_CURRENT_BRAND); } + validateMachineTemplate(reqVO.getName(),reqVO.getMachineType()); + MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO); @@ -121,6 +122,9 @@ public class MachineTemplateServiceImpl implements MachineTemplateService { throw exception(THE_CURRENT_BRAND); } + // 校验机台模板是否存在和名称是否重复 + validateMachineTemplateExists(reqVO.getName(),reqVO.getMachineType(),reqVO.getId()); + MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO); @@ -376,23 +380,23 @@ public class MachineTemplateServiceImpl implements MachineTemplateService { @Override public Boolean updateTemplateAuth(MachineOrgAuthReq vo) { - List machineAuthList = vo.getMachineAuthList(); - - if(!machineAuthList.isEmpty()) { - List machineTemplateLimitDOS = new ArrayList<>(); - - for (MachineAuth machineAuth : machineAuthList) { - - machineTemplateLimitDOS.add(MachineTemplateLimitDO.builder() - .id(machineAuth.getMachineId()) - .showAutoNotePrinter(machineAuth.getShowAutoNotePrinter()) - .showDualWorkstation(machineAuth.getShowDualWorkstation()) - .showPriorFacing(machineAuth.getShowPriorFacing()) - .build()); - } - - machineTemplateLimitMapper.updateBatch(machineTemplateLimitDOS); - } +// List machineAuthList = vo.getMachineAuthList(); +// +// if(!machineAuthList.isEmpty()) { +// List machineTemplateLimitDOS = new ArrayList<>(); +// +// for (MachineAuth machineAuth : machineAuthList) { +// +// machineTemplateLimitDOS.add(MachineTemplateLimitDO.builder() +// .id(machineAuth.getMachineId()) +// .showAutoNotePrinter(machineAuth.getShowAutoNotePrinter()) +// .showDualWorkstation(machineAuth.getShowDualWorkstation()) +// .showPriorFacing(machineAuth.getShowPriorFacing()) +// .build()); +// } +// +// machineTemplateLimitMapper.updateBatch(machineTemplateLimitDOS); +// } return true; @@ -435,26 +439,26 @@ public class MachineTemplateServiceImpl implements MachineTemplateService { // 去掉授权删除 // machineTemplateLimitMapper.delete(new LambdaQueryWrapperX().eq(MachineTemplateLimitDO::getOrganId, vo.getOrganId())); - List machineAuthList = vo.getMachineAuthList(); - - if(CollectionUtil.isNotEmpty(machineAuthList)) { - List organMachineDOS = new ArrayList<>(); - LocalDateTime now = LocalDateTime.now(); - for (MachineAuth machineAuth : machineAuthList) { - organMachineDOS.add( - MachineTemplateLimitDO.builder() - .createTime(now) - .organId(vo.getOrganId()) - .machineId(machineAuth.getMachineId()) - .showDualWorkstation(machineAuth.getShowDualWorkstation()) - .showAutoNotePrinter(machineAuth.getShowAutoNotePrinter()) - .showPriorFacing(machineAuth.getShowPriorFacing()) - .build() - ); - - } - machineTemplateLimitMapper.insertBatch(organMachineDOS); - } +// List machineAuthList = vo.getMachineAuthList(); +// +// if(CollectionUtil.isNotEmpty(machineAuthList)) { +// List organMachineDOS = new ArrayList<>(); +// LocalDateTime now = LocalDateTime.now(); +// for (MachineAuth machineAuth : machineAuthList) { +// organMachineDOS.add( +// MachineTemplateLimitDO.builder() +// .createTime(now) +// .organId(vo.getOrganId()) +// .machineId(machineAuth.getMachineId()) +// .showDualWorkstation(machineAuth.getShowDualWorkstation()) +// .showAutoNotePrinter(machineAuth.getShowAutoNotePrinter()) +// .showPriorFacing(machineAuth.getShowPriorFacing()) +// .build() +// ); +// +// } +// machineTemplateLimitMapper.insertBatch(organMachineDOS); +// } return Boolean.TRUE; } @@ -498,14 +502,19 @@ public class MachineTemplateServiceImpl implements MachineTemplateService { 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(); + if(labelingMachineTemplateDO != null) { + + MachineTemplateDO labelingMachineDO = MachineTemplateDO.builder() + .machineType(labelingMachineTemplateDO.getMachineType()) + .brandId(labelingMachineTemplateDO.getBrandId()) + .setting(labelingMachineTemplateDO.getSetting()) + .name("开料" + templateDO.getName() + "-贴标机") + .build(); + + machineTemplateMapper.insert(labelingMachineDO); + + } - machineTemplateMapper.insert(labelingMachineDO); } } @@ -521,17 +530,49 @@ public class MachineTemplateServiceImpl implements MachineTemplateService { 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(); + if(drillMachineTemplateDO != null) { - machineTemplateMapper.insert(drillMachineDO); + MachineTemplateDO drillMachineDO = MachineTemplateDO.builder() + .machineType(drillMachineTemplateDO.getMachineType()) + .brandId(drillMachineTemplateDO.getBrandId()) + .setting(drillMachineTemplateDO.getSetting()) + .name("开料" + templateDO.getName() + "钻孔机") + .build(); + + machineTemplateMapper.insert(drillMachineDO); + + } } } + private void validateMachineTemplateExists(String name,Integer machineType,Long machineId) { + + MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectById(machineId); + + if(machineTemplateDO == null){ + throw exception(MACHINE_TEMPLATE_NOT_EXISTS); + } + + MachineTemplateDO machineTemplate = machineTemplateMapper.selectMachineTemplate(name, machineType,machineId); + + if(machineTemplate != null){ + throw exception(MACHINETEMPLATE_NAME_ERROR); + } + + } + + + + private void validateMachineTemplate(String name,Integer machineType) { + + MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachineTemplateName(name, machineType); + + + if(machineTemplateDO != null){ + throw exception(MACHINETEMPLATE_NAME_ERROR); + } + + } } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganServiceImpl.java index 16c62f3c8..d2c2a579a 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganServiceImpl.java @@ -25,10 +25,12 @@ import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganPageReqVO; import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganSaveReqVO; import com.cf.imes.module.system.controller.admin.user.vo.user.UserSaveReqVO; import com.cf.imes.module.system.convert.organ.OrganConvert; +import com.cf.imes.module.system.dal.dataobject.machine.MachineLimitDO; import com.cf.imes.module.system.dal.dataobject.permission.MenuDO; import com.cf.imes.module.system.dal.dataobject.permission.RoleDO; import com.cf.imes.module.system.dal.dataobject.organ.OrganizationDO; import com.cf.imes.module.system.dal.dataobject.organ.TenantPackageDO; +import com.cf.imes.module.system.dal.mysql.machine.MachineLimitMapper; import com.cf.imes.module.system.dal.mysql.organ.OrganMapper; import com.cf.imes.module.system.enums.permission.RoleCodeEnum; import com.cf.imes.module.system.enums.permission.RoleTypeEnum; @@ -86,6 +88,10 @@ public class OrganServiceImpl implements OrganService { @Value("${chenfeng.organ.use-data-code:imes_prod}") private String useDataCode; + @Resource + private MachineLimitMapper machineLimitMapper; + + @Override public List getOrganIdList() { List organizationDOS = organMapper.selectList(); @@ -152,6 +158,14 @@ public class OrganServiceImpl implements OrganService { // 修改组织的管理员 organMapper.updateById(new OrganizationDO().setId(tenant.getId()).setContactUserId(userId)); }); + + + // 往组织机台授权表新增信息 + MachineLimitDO machineLimitDO = MachineLimitDO.builder() + .organId(tenant.getId()) + .build(); + machineLimitMapper.insert(machineLimitDO); + return tenant.getId(); } diff --git a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/machine/MachineBrandMapper.xml b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/machine/MachineBrandMapper.xml index fccec1e83..f4a9e6b2e 100644 --- a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/machine/MachineBrandMapper.xml +++ b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/machine/MachineBrandMapper.xml @@ -7,6 +7,7 @@ + @@ -34,6 +35,28 @@ where smt.deleted = false and smb.machine_type = #{type} + + + + + + + + + + diff --git a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/machine/MachineLimitMapper.xml b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/machine/MachineLimitMapper.xml new file mode 100644 index 000000000..485132725 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/machine/MachineLimitMapper.xml @@ -0,0 +1,33 @@ + + + + + + + \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/process/MachineMapper.xml b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/process/MachineMapper.xml index 36fa312d4..c34712671 100644 --- a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/process/MachineMapper.xml +++ b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/process/MachineMapper.xml @@ -2,76 +2,18 @@ - - - - - - - - - - - - - - + - select * from ( - select a.id as organId, a.name as organName, max(b.create_time) as updateTime, - case when ('${vo.machineName}' != '') then '${vo.machineName}' else '' end as machineName - from system_organization a, system_machine_limit b - - a.id = b.organ_id - - and a.id = #{vo.organId} - - - GROUP BY organId - ) t1 - LEFT JOIN ( - select b.organ_id t2_organId - from system_machine_limit b inner join system_machine c on b.machine_id = c.id and c.deleted = 0 - - - c.name like concat('%',#{vo.machineName},'%') - - - ) t2 on t1.organId = t2.t2_organId - where t2.t2_organId is not null - GROUP BY organId - order by updateTime desc - - - - - - \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/process/MachineTemplateMapper.xml b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/process/MachineTemplateMapper.xml index 71ede804e..34cabbbb2 100644 --- a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/process/MachineTemplateMapper.xml +++ b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/process/MachineTemplateMapper.xml @@ -132,5 +132,22 @@ GROUP BY organId + + + \ No newline at end of file