Merge branch 'main' of ssh://192.168.1.205:9922/cf_devdept2/cf_imes_server

This commit is contained in:
lym
2024-09-04 12:54:41 +08:00
26 changed files with 669 additions and 379 deletions
@@ -480,7 +480,7 @@ public class PlanServiceImpl implements PlanService {
} }
planDOPageResult.setList(plan); planDOPageResult.setList(plan);
planDOPageResult.setTotal(1L);
}else { }else {
@@ -610,11 +610,6 @@ public class PlanServiceImpl implements PlanService {
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决 // todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
List<GoodsDO> goodsDOS = goodsMapper.selectListByGoodsId(pageReqVO.getGoodsId(), getUserOrganId()); List<GoodsDO> goodsDOS = goodsMapper.selectListByGoodsId(pageReqVO.getGoodsId(), getUserOrganId());
// List<Long> orderIds = new ArrayList<>();
// if(pageReqVO.getGoodsId() != null) {
// List<GoodsDO> goodsDOS = goodsMapper.selectListByGoodsId(pageReqVO.getGoodsId(), getUserOrganId());
// orderIds = goodsDOS.stream().map(GoodsDO::getOrderId).toList();
// }
QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>(); QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>();
queryWrapperX queryWrapperX
@@ -626,18 +621,44 @@ public class PlanServiceImpl implements PlanService {
.eq("og.deleted",false) .eq("og.deleted",false)
// .isNull("opi.item_id") // .isNull("opi.item_id")
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决 // 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()) .inIfPresent("o.id",pageReqVO.getOrderIds())
.likeIfPresent("o.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null) .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.customer", pageReqVO.getConsignee())
.likeIfPresent("o.custom_order_no", pageReqVO.getDefaultId()) .likeIfPresent("o.custom_order_no", pageReqVO.getDefaultId())
.likeIfPresent("o.address", pageReqVO.getConsigneeAddress()) .likeIfPresent("o.address", pageReqVO.getConsigneeAddress())
.betweenIfPresent("o.order_date", pageReqVO.getCreateTime()) .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") .groupBy("o.id", " o.order_date", "o.delivery_date", "o.customer", "o.address", "o.custom_order_no","o.status")
.having("count(op.id) != 0") .having("count(op.id) != 0")
.orderByDesc("o.order_date"); .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 目前修改一半,速度无法再进行特别的优化,需等后面修改表结构再进行优化 // todo 目前修改一半,速度无法再进行特别的优化,需等后面修改表结构再进行优化
IPage<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderPage(page,queryWrapperX); IPage<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderPage(page,queryWrapperX);
@@ -807,11 +828,15 @@ public class PlanServiceImpl implements PlanService {
.inIfPresent("og.order_id", pageReqVO.getOrderIds()) .inIfPresent("og.order_id", pageReqVO.getOrderIds())
.inIfPresent("og.id", pageReqVO.getIds()) .inIfPresent("og.id", pageReqVO.getIds())
// .isNull("opi.item_id")
// .isNotNull("og.id")
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决 // todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
.eqIfPresent("og.goods_id",pageReqVO.getGoodsId()) .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.getRectangle() != null ? false: null)
.eqIfPresent("op.is_special_shaped", pageReqVO.getSpecialShaped()) .eqIfPresent("op.is_special_shaped", pageReqVO.getSpecialShaped())
.eqIfPresent("op.is_sculpt", pageReqVO.getSculpt()) .eqIfPresent("op.is_sculpt", pageReqVO.getSculpt())
@@ -5,8 +5,6 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.util.List;
@Data @Data
@ToString(callSuper = true) @ToString(callSuper = true)
@Builder @Builder
@@ -22,7 +20,7 @@ public class PackPlateList {
// 板材ID // 板材ID
private Long plateId; private Long plateId;
// 包裹编号 // 板材编号
private String plateNo; private String plateNo;
@@ -121,6 +121,8 @@ public class PackServiceImpl implements PackService {
packRespVOS.setRecords(packRespVOList); packRespVOS.setRecords(packRespVOList);
packRespVOS.setTotal(1);
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList()); orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
}else { }else {
@@ -843,10 +845,10 @@ public class PackServiceImpl implements PackService {
.status(OrderPackageStatusEnum.PACKAGED.getStatus()) .status(OrderPackageStatusEnum.PACKAGED.getStatus())
.build()); .build());
prePackOptimizeInfo.getList().forEach(plate ->{ prePackOptimizeInfo.getList().forEach(plate ->{
List<String> list = plate.getList().stream().map(PrePackOptimizeInfo.PrerPlateData::getPlateNo).toList(); List<String> list = plate.getList().stream().map(PrePackOptimizeInfo.PrerPlateData::getPlateId).toList();
list.forEach(a -> packPlateNoLists.add(PackPlateList.builder() list.forEach(a -> packPlateNoLists.add(PackPlateList.builder()
.packNo(packageNo) .packNo(packageNo)
.plateNo(a) .plateId(Long.valueOf(a))
.build())); .build()));
}); });
@@ -876,14 +878,24 @@ public class PackServiceImpl implements PackService {
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackPlateList(reqVO.getOrderId(), getUserOrganId()); List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackPlateList(reqVO.getOrderId(), getUserOrganId());
List<String> plateNo = packPlateNoLists.stream().map(PackPlateList::getPlateNo).toList(); // List<String> plateNo = packPlateNoLists.stream().map(PackPlateList::getPlateNo).toList();
//
//
// List<OrderPlateDO> 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<OrderPlateDO> 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-> packPlateNoLists.forEach(a->
orderItemDOS.stream().filter(f->Objects.equals(f.getPlateId(), a.getPlateId())) orderItemDOS.stream().filter(f->Objects.equals(f.getPlateId(), a.getPlateId()))
@@ -217,7 +217,9 @@ public interface ErrorCodeConstants {
ErrorCode THE_CURRENT_BRAND_OF_THE_MACHINE_EXISTS = new ErrorCode(1_002_029_008, "当前机台配置的模板中,该品牌已存在,请重新输入品牌名称"); 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_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 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 ========== // ========== 标签模板 1-002-300-000 ==========
ErrorCode LABEL_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_300_000, "标签模板不存在"); ErrorCode LABEL_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_300_000, "标签模板不存在");
@@ -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.CommonResult;
import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.module.system.controller.admin.machine.vo.*; 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.MachineService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@@ -13,7 +12,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.Map;
import static com.cf.imes.framework.common.pojo.CommonResult.success; import static com.cf.imes.framework.common.pojo.CommonResult.success;
@@ -28,8 +27,8 @@ public class MachineAuthController {
@Resource @Resource
private MachineService machineService; private MachineService machineService;
@PutMapping("insert-organ-auth") @PostMapping("insert-organ-auth")
@Operation(summary = "组织机台授权新") @Operation(summary = "组织机台授权信息更")
@PreAuthorize("@ss.hasPermission('machine-auth::update')") @PreAuthorize("@ss.hasPermission('machine-auth::update')")
public CommonResult<Boolean> auth(@RequestBody MachineOrgAuthReq vo) { public CommonResult<Boolean> auth(@RequestBody MachineOrgAuthReq vo) {
return success(machineService.auth(vo)); return success(machineService.auth(vo));
@@ -43,27 +42,29 @@ public class MachineAuthController {
} }
@GetMapping("organ-by-organId") @GetMapping("organ-by-organId")
@Operation(summary = "根据组织id查询组织机台授权") @Operation(summary = "根据组织ID查询已经授权的机台ID")
@PreAuthorize("@ss.hasPermission('machine-auth::query')") @PreAuthorize("@ss.hasPermission('machine-auth::query')")
@Parameter(name = "organId", description = "组织id", required = true, example = "1") @Parameter(name = "organId", description = "组织id", required = true, example = "1")
public CommonResult<OrganMachineResp> organTemplateByOrganId(@RequestParam Long organId ) { public CommonResult<List<Integer>> organTemplateByOrganId(@RequestParam Long organId ) {
return success(machineService.organMachineByOrganId(organId)); return success(machineService.organMachineByOrganId(organId));
} }
@GetMapping("page-machine-auth") @GetMapping("select-machine-auth")
@Operation(summary = "授权机台分页") @Operation(summary = "查询机台授权列表")
@PreAuthorize("@ss.hasPermission('machine-auth::query')") @PreAuthorize("@ss.hasPermission('machine-auth::query')")
public CommonResult<PageResult<MachineAuthResp>> pageTemplateAuth(MachinePageReqVO pageParam) { public CommonResult<Map<Integer, List<MachineBrandModelRespVO>>> getTemplateAuth(MachinePageReqVO pageParam) {
PageResult<MachineDO> page = machineService.page(pageParam);
List<MachineAuthResp> 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<MachineAuthResp>(list, page.getTotal())); return success(machineService.getTemplateAuth(pageParam));
// List<MachineAuthResp> 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<MachineAuthResp>(list, page.getTotal()));
} }
} }
@@ -1,5 +1,8 @@
package com.cf.imes.module.system.controller.admin.machine; 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.CreateGroup;
import com.cf.imes.framework.es.core.valid.UpdateGroup; import com.cf.imes.framework.es.core.valid.UpdateGroup;
import com.cf.imes.framework.operatelog.core.annotations.OperateLog; 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.dal.dataobject.machine.MachineDO;
import com.cf.imes.module.system.service.machine.MachineService; import com.cf.imes.module.system.service.machine.MachineService;
import com.cf.imes.module.system.service.machine.MachineTemplateService; 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 org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Valid;
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 java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -128,6 +124,12 @@ public class MachineController {
} }
@GetMapping("getMachineModelAll")
@Operation(summary = "获得机台类型下所有机台的型号")
//@PreAuthorize("@ss.hasPermission('machine::query')")
public CommonResult<List<MachineSimpleRespVO>> getMachineModelAll(@RequestParam Integer type) {
return success(machineService.getMachineModelAll(type));
}
} }
@@ -31,7 +31,6 @@ public class CuttingTemplateSaveReqVO {
@Schema(description = "引用的品牌ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @Schema(description = "引用的品牌ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
// @NotNull(message = "品牌ID")
private Long brandId; private Long brandId;
@@ -19,8 +19,8 @@ public class MachineBrandModelRespVO {
private String brand; private String brand;
// @Schema(description = "机台的型号-即机台的名称") @Schema(description = "机台类别")
// private List<String> name; private Integer machineType;
@Schema(description = "机台的型号-即机台的名称") @Schema(description = "机台的型号-即机台的名称")
private List<MachineSimpleRespVO> machineSimpleRespVOS; private List<MachineSimpleRespVO> machineSimpleRespVOS;
@@ -12,10 +12,32 @@ import java.util.List;
@Data @Data
public class MachineOrgAuthReq { public class MachineOrgAuthReq {
@Schema(description = "组织id") @Schema(description = "组织id", requiredMode = Schema.RequiredMode.REQUIRED)
private Long organId; private Long organId;
@Schema(description = "权限列表")
private List<MachineAuth> 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<Integer> machineAuthIds;
} }
@@ -9,8 +9,10 @@ import lombok.Data;
*/ */
@Data @Data
public class OrganMachinePage extends PageParam { public class OrganMachinePage extends PageParam {
@Schema(description = "组织id")
private Long organId; @Schema(description = "组织名称")
private String organName;
@Schema(description = "机台名称") @Schema(description = "机台名称")
private String machineName; private String machineName;
} }
@@ -1,18 +1,11 @@
package com.cf.imes.module.system.controller.admin.machine.vo; 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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; 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 * @author Beal
*/ */
@@ -21,13 +14,31 @@ import static com.cf.imes.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class OrganMachineResp { public class OrganMachineResp {
@Schema(description = "组织id") @Schema(description = "组织id")
private Long organId; private Long organId;
@Schema(description = "组织名称") @Schema(description = "组织名称")
private String organName; private String organName;
@Schema(description = "更新时间")
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
private Date updateTime; @Schema(description = "开料机授权数量")
@Schema(description = "机台模板列表") private Integer cutLimit;
private List<OrganMachineVO> authMachineList;
@Schema(description = "钻孔机授权数量")
private Integer drillLimit;
@Schema(description = "贴标机授权数量")
private Integer labelLimit;
@Schema(description = "裁板锯授权数量")
private Integer sawLimit;
@Schema(description = "封边机授权数量")
private Integer sealedgeLimit;
} }
@@ -1,6 +1,5 @@
package com.cf.imes.module.system.controller.admin.machine.vo; 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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@@ -9,19 +8,10 @@ import lombok.Data;
*/ */
@Data @Data
public class OrganMachineVO { 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; private Long organId;
} }
@@ -2,13 +2,12 @@ package com.cf.imes.module.system.dal.dataobject.machine;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/** /**
* @author Beal * @author Beal
*/ */
@@ -17,22 +16,43 @@ import java.time.LocalDateTime;
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class MachineLimitDO { public class MachineLimitDO extends BaseDO {
@TableId @TableId
private Long id;
private Long organId; 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;
} }
@@ -32,4 +32,6 @@ public interface MachineBrandMapper extends BaseMapperX<MachineBrandDO> {
List<MachineBrandModelRespVO> selectMachineList(@Param("type") Integer type); List<MachineBrandModelRespVO> selectMachineList(@Param("type") Integer type);
List<MachineBrandModelRespVO> selectMachineNoDefault();
} }
@@ -1,12 +1,20 @@
package com.cf.imes.module.system.dal.mysql.machine; 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.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 com.cf.imes.module.system.dal.dataobject.machine.MachineLimitDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/** /**
* @author Beal * @author Beal
*/ */
@Mapper @Mapper
public interface MachineLimitMapper extends BaseMapperX<MachineLimitDO> { public interface MachineLimitMapper extends BaseMapperX<MachineLimitDO> {
IPage<OrganMachineResp> selectOrganMachinePage(@Param("page") IPage page,@Param("machinePage") OrganMachinePage machinePage);
} }
@@ -1,17 +1,16 @@
package com.cf.imes.module.system.dal.mysql.machine; 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.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.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.machine.MachineDO;
import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; 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; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
/** /**
@@ -31,11 +30,6 @@ public interface MachineMapper extends BaseMapperX<MachineDO> {
.orderByDesc(MachineDO::getCreateTime)); .orderByDesc(MachineDO::getCreateTime));
} }
Page<OrganMachineResp> selectOrganMachinePage(@Param("page") Page<OrganMachineResp> respPage, @Param("vo") OrganMachinePage page);
List<OrganMachineVO> selectOrganMachineList(Map<String, Object> map);
OrganMachineResp selectOrganMachine(Long organId);
default PageResult<MachineDO> selectPage(MachinePageReqVO pageParam, Collection<Long> ids) { default PageResult<MachineDO> selectPage(MachinePageReqVO pageParam, Collection<Long> ids) {
return selectPage(pageParam, new LambdaQueryWrapperX<MachineDO>() return selectPage(pageParam, new LambdaQueryWrapperX<MachineDO>()
@@ -44,4 +38,41 @@ public interface MachineMapper extends BaseMapperX<MachineDO> {
.betweenIfPresent(MachineDO::getCreateTime, pageParam.getCreateTime()) .betweenIfPresent(MachineDO::getCreateTime, pageParam.getCreateTime())
.orderByDesc(MachineDO::getCreateTime)); .orderByDesc(MachineDO::getCreateTime));
}; };
default List<MachineDO> selectByOrganId(Integer machineType,Long organId) {
return selectList(new LambdaQueryWrapperX<MachineDO>()
.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<MachineDO>()
.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<MachineDO> selectMachineList(Integer machineType,Long organId) {
return selectList(new LambdaQueryWrapperX<MachineDO>()
.eq(MachineDO::getOrganId,organId)
.eq(MachineDO::getDeleted,false)
.eq(MachineDO::getMachineType,machineType)
.select(MachineDO::getId,MachineDO::getName,MachineDO::getMachineType));
}
} }
@@ -64,8 +64,13 @@ public interface MachineTemplateMapper extends BaseMapperX<MachineTemplateDO> {
default List<MachineTemplateDO> selectMachineTemplate(String templateName) { default MachineTemplateDO selectMachineTemplateName(String name,Integer machineType) {
return selectList(new LambdaQueryWrapperX<MachineTemplateDO>() return selectOne(new LambdaQueryWrapperX<MachineTemplateDO>()
.likeIfPresent(MachineTemplateDO::getName,templateName)); .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);
} }
@@ -114,4 +114,11 @@ public interface OrganMapper extends BaseMapperX<OrganizationDO> {
.eq(OrganizationDO::getDeleted,false) .eq(OrganizationDO::getDeleted,false)
.lt(OrganizationDO::getExpireTime,alertDay)); .lt(OrganizationDO::getExpireTime,alertDay));
} }
default List<OrganizationDO> selectOrganListByName(String organName) {
return selectList(new LambdaQueryWrapperX<OrganizationDO>()
.eqIfPresent(OrganizationDO::getDeleted,false)
.likeIfPresent(OrganizationDO::getName,organName)
.select(OrganizationDO::getId));
}
} }
@@ -1,12 +1,13 @@
package com.cf.imes.module.system.service.machine; 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.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.dal.dataobject.machine.MachineDO;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/** /**
* 机台 Service 接口 * 机台 Service 接口
@@ -64,17 +65,23 @@ public interface MachineService {
List<MachineDO> list(Collection<Long> ids); List<MachineDO> list(Collection<Long> ids);
List<MachineSimpleRespVO> getMachineModelAll(Integer type);
Map<Integer, List<MachineVO>> getMachineTree(Long type); Map<Integer, List<MachineVO>> getMachineTree(Long type);
Boolean auth(MachineOrgAuthReq vo); Boolean auth(MachineOrgAuthReq vo);
PageResult<OrganMachineResp> organMachinePage(OrganMachinePage page); PageResult<OrganMachineResp> organMachinePage(OrganMachinePage page);
OrganMachineResp organMachineByOrganId(Long organId); List<Integer> organMachineByOrganId(Long organId);
PageResult<MachineDO> page(MachinePageReqVO pageParam); PageResult<MachineDO> page(MachinePageReqVO pageParam);
List<MachineSimpleRespVO> simpleList(Long organId,Long type); List<MachineSimpleRespVO> simpleList(Long organId,Long type);
List<MachineBrandModelRespVO> getBrandAndModel(Integer type); List<MachineBrandModelRespVO> getBrandAndModel(Integer type);
Map<Integer, List<MachineBrandModelRespVO>> getTemplateAuth(MachinePageReqVO pageParam);
} }
@@ -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.SearchRequest;
import co.elastic.clients.elasticsearch.core.SearchResponse; import co.elastic.clients.elasticsearch.core.SearchResponse;
import co.elastic.clients.elasticsearch.core.search.Hit; 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.enums.MachineTypeEnum;
import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.json.JsonUtils; 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.convert.machine.MachineConvert;
import com.cf.imes.module.system.dal.dataobject.machine.*; 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.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.MachineBrandMapper;
import com.cf.imes.module.system.dal.mysql.machine.MachineLimitMapper; 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.machine.MachineMapper;
import com.cf.imes.module.system.dal.mysql.machinetemplate.MachineTemplateLimitMapper; 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.machinetemplate.MachineTemplateMapper;
import com.cf.imes.module.system.dal.mysql.organ.OrganMapper;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -36,7 +40,6 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -83,6 +86,9 @@ public class MachineServiceImpl implements MachineService {
@Resource @Resource
private MachineBrandMapper machineBrandMapper; private MachineBrandMapper machineBrandMapper;
@Resource
private OrganMapper organMapper;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@@ -90,12 +96,23 @@ public class MachineServiceImpl implements MachineService {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
assert loginUser != null; 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 copyMachineDO = machineMapper.selectById(createReqVO.getId());
// 插入 // 插入
MachineDO machineDO = MachineConvert.convert(createReqVO); machineDO = MachineConvert.convert(createReqVO);
machineDO.setSetting(copyMachineDO.getSetting()); 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); throw exception(THE_MODEL_OF_THE_MACHINE_DOES_NOT_EXIST);
} }
// 插入 // 创建新的机器对象
MachineDO machineDO = MachineConvert.convert(createReqVO); machineDO = MachineConvert.convert(createReqVO);
machineDO.setSetting(machineTemplateDO.getSetting()); machineDO.setSetting(machineTemplateDO.getSetting());
machineMapper.insert(machineDO); machineMapper.insert(machineDO);
// 处理不同机台类型的配置
handleMachineSpecificConfiguration(machineDO, machineTemplateDO);
// 返回新机器的ID
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);
// 返回
return machineDO.getId(); 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 @Override
@Transactional(rollbackFor = Exception.class)
public void updateCutting(CuttingSaveReqVO updateReqVO) { public void updateCutting(CuttingSaveReqVO updateReqVO) {
// 校验存在 // 校验存在和判断机台名称是否重复
validateExists(updateReqVO.getId()); validateExists(updateReqVO.getId(),updateReqVO.getName(),updateReqVO.getMachineType(),updateReqVO.getId());
// 更新 // 更新
MachineDO updateObj = MachineConvert.convert(updateReqVO); MachineDO updateObj = MachineConvert.convert(updateReqVO);
//MachineDO updateObj = BeanUtils.toBean(updateReqVO, MachineDO.class); //MachineDO updateObj = BeanUtils.toBean(updateReqVO, MachineDO.class);
@@ -313,42 +318,73 @@ public class MachineServiceImpl implements MachineService {
@Override @Override
public Boolean auth(MachineOrgAuthReq vo) { public Boolean auth(MachineOrgAuthReq vo) {
machineLimitMapper.delete(new LambdaQueryWrapperX<MachineLimitDO>().eq(MachineLimitDO::getOrganId, vo.getOrganId()));
List<MachineAuth> machineAuthList = vo.getMachineAuthList(); OrganizationDO tenant = organMapper.selectById(vo.getOrganId());
if (tenant == null) {
if(CollectionUtil.isNotEmpty(machineAuthList)) { throw exception(ORGAN_NOT_EXISTS);
List<MachineLimitDO> 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);
} }
// machineLimitMapper.delete(new LambdaQueryWrapperX<MachineLimitDO>().eq(MachineLimitDO::getOrganId, vo.getOrganId()));
// List<MachineAuth> machineAuthList = vo.getMachineAuthList();
// if(CollectionUtil.isNotEmpty(machineAuthList)) {
// List<MachineLimitDO> 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; return Boolean.TRUE;
} }
@Override @Override
public PageResult<OrganMachineResp> organMachinePage(OrganMachinePage page) { public PageResult<OrganMachineResp> organMachinePage(OrganMachinePage machinePage) {
Page<OrganMachineResp> respPage = new Page<>(page.getPageNo(), page.getPageSize());
Page<OrganMachineResp> pageRes = machineMapper.selectOrganMachinePage(respPage, page); PageDTO<OrganMachineResp> page = new PageDTO<>(machinePage.getPageNo(), machinePage.getPageSize());
return new PageResult<>(pageRes.getRecords(), pageRes.getTotal());
IPage<OrganMachineResp> packRespVOS = machineLimitMapper.selectOrganMachinePage(page, machinePage);
return new PageResult<>(packRespVOS.getRecords(), packRespVOS.getTotal());
} }
@Override @Override
public OrganMachineResp organMachineByOrganId(Long organId) { public List<Integer> organMachineByOrganId(Long organId) {
return machineMapper.selectOrganMachine(organId);
String setting = machineLimitMapper.selectById(organId).getSetting();
return JSON.parseArray(setting).toJavaList(Integer.class);
// return machineMapper.selectOrganMachine(organId);
} }
@Override @Override
@@ -356,6 +392,17 @@ public class MachineServiceImpl implements MachineService {
return machineMapper.selectPage(pageParam, new ArrayList<>()); return machineMapper.selectPage(pageParam, new ArrayList<>());
} }
@Override
public List<MachineSimpleRespVO> getMachineModelAll(Integer type) {
List<MachineDO> machineDOS = machineMapper.selectMachineList(type, getUserOrganId());
return BeanUtils.toBean(machineDOS,MachineSimpleRespVO.class);
}
@Override @Override
@OrganIgnore @OrganIgnore
public List<MachineSimpleRespVO> simpleList(Long organId,Long type) { public List<MachineSimpleRespVO> simpleList(Long organId,Long type) {
@@ -371,44 +418,73 @@ public class MachineServiceImpl implements MachineService {
@Override @Override
public List<MachineBrandModelRespVO> getBrandAndModel(Integer type) { public List<MachineBrandModelRespVO> getBrandAndModel(Integer type) {
// List<MachineBrandDO> machineBrandDOS = machineBrandMapper.selectListByType(type);
return machineBrandMapper.selectMachineList(type); return machineBrandMapper.selectMachineList(type);
// List<MachineBrandModelRespVO> machineBrandModelRespVOS = BeanUtils.toBean(machineBrandDOS, MachineBrandModelRespVO.class);
//
//
// List<MachineTemplateDO> machineDOS = machineTemplateMapper.selectList(new LambdaQueryWrapperX<MachineTemplateDO>()
// .eq(MachineTemplateDO::getDeleted,false)
// .eqIfPresent(MachineTemplateDO::getMachineType, type));
//
// machineBrandModelRespVOS.forEach(v->
// v.setName(machineDOS.stream().filter(f->f.getBrandId().equals(v.getId())).map(MachineTemplateDO::getName).toList())
// );
// List<MachineBrandModelRespVO> machineVOS = BeanUtils.toBean(machineDOS, MachineBrandModelRespVO.class);
//
//
// Map<String, List<MachineBrandModelRespVO>> map = machineVOS.stream().collect(Collectors.groupingBy(MachineBrandModelRespVO::getBrand));
// return machineBrandModelRespVOS;
} }
private void validateExists(Long id) { @Override
if (machineMapper.selectById(id) == null) { public Map<Integer, List<MachineBrandModelRespVO>> getTemplateAuth(MachinePageReqVO pageParam) {
List<MachineBrandModelRespVO> 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); 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 @Override
@@ -29,7 +29,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -83,6 +82,8 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
throw exception(THE_CURRENT_BRAND); throw exception(THE_CURRENT_BRAND);
} }
validateMachineTemplate(reqVO.getName(),reqVO.getMachineType());
MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO); MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO);
@@ -121,6 +122,9 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
throw exception(THE_CURRENT_BRAND); throw exception(THE_CURRENT_BRAND);
} }
// 校验机台模板是否存在和名称是否重复
validateMachineTemplateExists(reqVO.getName(),reqVO.getMachineType(),reqVO.getId());
MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO); MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO);
@@ -376,23 +380,23 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
@Override @Override
public Boolean updateTemplateAuth(MachineOrgAuthReq vo) { public Boolean updateTemplateAuth(MachineOrgAuthReq vo) {
List<MachineAuth> machineAuthList = vo.getMachineAuthList(); // List<MachineAuth> machineAuthList = vo.getMachineAuthList();
//
if(!machineAuthList.isEmpty()) { // if(!machineAuthList.isEmpty()) {
List<MachineTemplateLimitDO> machineTemplateLimitDOS = new ArrayList<>(); // List<MachineTemplateLimitDO> machineTemplateLimitDOS = new ArrayList<>();
//
for (MachineAuth machineAuth : machineAuthList) { // for (MachineAuth machineAuth : machineAuthList) {
//
machineTemplateLimitDOS.add(MachineTemplateLimitDO.builder() // machineTemplateLimitDOS.add(MachineTemplateLimitDO.builder()
.id(machineAuth.getMachineId()) // .id(machineAuth.getMachineId())
.showAutoNotePrinter(machineAuth.getShowAutoNotePrinter()) // .showAutoNotePrinter(machineAuth.getShowAutoNotePrinter())
.showDualWorkstation(machineAuth.getShowDualWorkstation()) // .showDualWorkstation(machineAuth.getShowDualWorkstation())
.showPriorFacing(machineAuth.getShowPriorFacing()) // .showPriorFacing(machineAuth.getShowPriorFacing())
.build()); // .build());
} // }
//
machineTemplateLimitMapper.updateBatch(machineTemplateLimitDOS); // machineTemplateLimitMapper.updateBatch(machineTemplateLimitDOS);
} // }
return true; return true;
@@ -435,26 +439,26 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
// 去掉授权删除 // 去掉授权删除
// machineTemplateLimitMapper.delete(new LambdaQueryWrapperX<MachineTemplateLimitDO>().eq(MachineTemplateLimitDO::getOrganId, vo.getOrganId())); // machineTemplateLimitMapper.delete(new LambdaQueryWrapperX<MachineTemplateLimitDO>().eq(MachineTemplateLimitDO::getOrganId, vo.getOrganId()));
List<MachineAuth> machineAuthList = vo.getMachineAuthList(); // List<MachineAuth> machineAuthList = vo.getMachineAuthList();
//
if(CollectionUtil.isNotEmpty(machineAuthList)) { // if(CollectionUtil.isNotEmpty(machineAuthList)) {
List<MachineTemplateLimitDO> organMachineDOS = new ArrayList<>(); // List<MachineTemplateLimitDO> organMachineDOS = new ArrayList<>();
LocalDateTime now = LocalDateTime.now(); // LocalDateTime now = LocalDateTime.now();
for (MachineAuth machineAuth : machineAuthList) { // for (MachineAuth machineAuth : machineAuthList) {
organMachineDOS.add( // organMachineDOS.add(
MachineTemplateLimitDO.builder() // MachineTemplateLimitDO.builder()
.createTime(now) // .createTime(now)
.organId(vo.getOrganId()) // .organId(vo.getOrganId())
.machineId(machineAuth.getMachineId()) // .machineId(machineAuth.getMachineId())
.showDualWorkstation(machineAuth.getShowDualWorkstation()) // .showDualWorkstation(machineAuth.getShowDualWorkstation())
.showAutoNotePrinter(machineAuth.getShowAutoNotePrinter()) // .showAutoNotePrinter(machineAuth.getShowAutoNotePrinter())
.showPriorFacing(machineAuth.getShowPriorFacing()) // .showPriorFacing(machineAuth.getShowPriorFacing())
.build() // .build()
); // );
//
} // }
machineTemplateLimitMapper.insertBatch(organMachineDOS); // machineTemplateLimitMapper.insertBatch(organMachineDOS);
} // }
return Boolean.TRUE; return Boolean.TRUE;
} }
@@ -498,14 +502,19 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
Integer autoLabelModel = advancedConfigsRef.get("autoLabelModel").asInt(); Integer autoLabelModel = advancedConfigsRef.get("autoLabelModel").asInt();
MachineTemplateDO labelingMachineTemplateDO = machineTemplateMapper.selectById(autoLabelModel); MachineTemplateDO labelingMachineTemplateDO = machineTemplateMapper.selectById(autoLabelModel);
MachineTemplateDO labelingMachineDO = MachineTemplateDO.builder() if(labelingMachineTemplateDO != null) {
.machineType(labelingMachineTemplateDO.getMachineType())
.brandId(labelingMachineTemplateDO.getBrandId()) MachineTemplateDO labelingMachineDO = MachineTemplateDO.builder()
.setting(labelingMachineTemplateDO.getSetting()) .machineType(labelingMachineTemplateDO.getMachineType())
.name("开料" + templateDO.getName() + "-贴标机") .brandId(labelingMachineTemplateDO.getBrandId())
.build(); .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(); Integer drillModel = cuttingModuleRef.get("drillModel").asInt();
MachineTemplateDO drillMachineTemplateDO = machineTemplateMapper.selectById(drillModel); MachineTemplateDO drillMachineTemplateDO = machineTemplateMapper.selectById(drillModel);
MachineTemplateDO drillMachineDO = MachineTemplateDO.builder() if(drillMachineTemplateDO != null) {
.machineType(drillMachineTemplateDO.getMachineType())
.brandId(drillMachineTemplateDO.getBrandId())
.setting(drillMachineTemplateDO.getSetting())
.name("开料" + templateDO.getName() + "钻孔机")
.build();
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);
}
}
} }
@@ -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.organ.vo.organ.OrganSaveReqVO;
import com.cf.imes.module.system.controller.admin.user.vo.user.UserSaveReqVO; 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.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.MenuDO;
import com.cf.imes.module.system.dal.dataobject.permission.RoleDO; 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.OrganizationDO;
import com.cf.imes.module.system.dal.dataobject.organ.TenantPackageDO; 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.dal.mysql.organ.OrganMapper;
import com.cf.imes.module.system.enums.permission.RoleCodeEnum; import com.cf.imes.module.system.enums.permission.RoleCodeEnum;
import com.cf.imes.module.system.enums.permission.RoleTypeEnum; 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}") @Value("${chenfeng.organ.use-data-code:imes_prod}")
private String useDataCode; private String useDataCode;
@Resource
private MachineLimitMapper machineLimitMapper;
@Override @Override
public List<Long> getOrganIdList() { public List<Long> getOrganIdList() {
List<OrganizationDO> organizationDOS = organMapper.selectList(); List<OrganizationDO> organizationDOS = organMapper.selectList();
@@ -152,6 +158,14 @@ public class OrganServiceImpl implements OrganService {
// 修改组织的管理员 // 修改组织的管理员
organMapper.updateById(new OrganizationDO().setId(tenant.getId()).setContactUserId(userId)); organMapper.updateById(new OrganizationDO().setId(tenant.getId()).setContactUserId(userId));
}); });
// 往组织机台授权表新增信息
MachineLimitDO machineLimitDO = MachineLimitDO.builder()
.organId(tenant.getId())
.build();
machineLimitMapper.insert(machineLimitDO);
return tenant.getId(); return tenant.getId();
} }
@@ -7,6 +7,7 @@
<result property="brandId" column="brandId"/> <result property="brandId" column="brandId"/>
<result property="brand" column="brand"/> <result property="brand" column="brand"/>
<result property="machineType" column="machineType"/>
<collection property="machineSimpleRespVOS" ofType="com.cf.imes.module.system.controller.admin.machine.vo.MachineSimpleRespVO" resultMap="MachineSimpleMap"/> <collection property="machineSimpleRespVOS" ofType="com.cf.imes.module.system.controller.admin.machine.vo.MachineSimpleRespVO" resultMap="MachineSimpleMap"/>
@@ -34,6 +35,28 @@
where smt.deleted = false and smb.machine_type = #{type} where smt.deleted = false and smb.machine_type = #{type}
</select>
<!-- where smt.deleted = false and smt.is_enabled = true and smt.is_default = true and smb.machine_type = #{type}-->
<!--</select>-->
<select id="selectMachineNoDefault" resultMap="MachineMap">
select smb.id as brandId,
smb.machine_type as machineType,
smb.brand,
smt.id,
smt.name
from system_machine_brand smb
left join system_machine_template smt on smb.id = smt.brand_id
where smt.deleted = false and smt.is_enabled = true and smt.is_default = false
</select> </select>
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.system.dal.mysql.machine.MachineLimitMapper">
<select id="selectOrganMachinePage" resultType="com.cf.imes.module.system.controller.admin.machine.vo.OrganMachineResp" parameterType="map">
select sml.*
from system_machine_limit sml
left join system_organization so on sml.organ_id = so.id
left join system_machine_template smt on sml.setting like concat(smt.id, '%')
<where>
sml.deleted = false
and smt.deleted = false
and smt.is_enabled = true
and smt.is_default = false
and so.status = 0
<if test="machinePage.organName !=null">
and so.name like concat('%', #{machinePage.organName},'%')
</if>
<if test="machinePage.machineName !=null">
and smt.name like concat('%', #{machinePage.machineName},'%')
</if>
</where>
</select>
</mapper>
@@ -2,76 +2,18 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.system.dal.mysql.machine.MachineMapper"> <mapper namespace="com.cf.imes.module.system.dal.mysql.machine.MachineMapper">
<resultMap id="xxMap" type="com.cf.imes.module.system.controller.admin.machine.vo.OrganMachineResp">
<result property="organId" column="organId"/>
<result property="organName" column="organName"/>
<result property="updateTime" column="updateTime"/>
<collection property="authMachineList" javaType="java.util.List" ofType="com.cf.imes.module.system.controller.admin.machine.vo.OrganTemplateVO"
select="selectOrganMachineList" column="{organId=organId, machineName = machineName}" notNullColumn="machineName" >
</collection>
</resultMap>
<resultMap id="orgMap" type="com.cf.imes.module.system.controller.admin.machine.vo.OrganMachineResp"> <select id="selectMachine" resultType="com.cf.imes.module.system.dal.dataobject.machine.MachineDO">
<result property="organId" column="organId"/>
<result property="organName" column="organName"/>
<result property="updateTime" column="updateTime"/> select *
<collection property="authMachineList" javaType="java.util.List" ofType="com.cf.imes.module.system.controller.admin.machine.vo.OrganMachineVO" from system_machine
select="selectOrganMachineList" column="{organId=organId}" > where organ_id = #{organId}
</collection> and deleted = false
</resultMap> and machine_type = #{machineType}
and name = #{name}
and id != #{machineId};
<select id="selectOrganMachinePage" resultMap="xxMap">
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
<where>
a.id = b.organ_id
<if test="vo.organId !=null">
and a.id = #{vo.organId}
</if>
</where>
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
<where>
<if test="vo.machineName !=null and vo.machineName !='' " >
c.name like concat('%',#{vo.machineName},'%')
</if>
</where>
) t2 on t1.organId = t2.t2_organId
where t2.t2_organId is not null
GROUP BY organId
order by updateTime desc
</select> </select>
<select id="selectOrganMachineList"
resultType="com.cf.imes.module.system.controller.admin.machine.vo.OrganMachineVO">
select b.organ_id organId, b.show_prior_facing, b.show_dual_workstation, b.show_auto_note_printer,
c.name AS machineName, c.id AS machineId, c.machine_type
from system_machine_limit b
inner join system_machine c on b.machine_id = c.id and c.deleted = 0
<where>
b.organ_id = #{organId}
<if test="machineName != null and machineName != ''">
and c.name like concat('%',#{machineName},'%')
</if>
</where>
</select>
<select id="selectOrganMachine" resultMap="orgMap">
select a.id as organId, a.name as organName, max(b.create_time) as updateTime
from system_organization a, system_machine_limit b
<where>
a.id = b.organ_id
and a.id = #{vo.organId}
</where>
GROUP BY organId
</select>
</mapper> </mapper>
@@ -132,5 +132,22 @@
</where> </where>
GROUP BY organId GROUP BY organId
</select>
<select id="selectMachineTemplate"
resultType="com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateDO">
select *
from system_machine_template
where deleted = false
and machine_type = #{machineType}
and name = #{name}
and id != #{id}
</select> </select>
</mapper> </mapper>