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.setTotal(1L);
}else {
@@ -610,11 +610,6 @@ public class PlanServiceImpl implements PlanService {
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
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
@@ -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<OrderRespVOCopy> 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())
@@ -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;
@@ -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<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()
.packNo(packageNo)
.plateNo(a)
.plateId(Long.valueOf(a))
.build()));
});
@@ -876,14 +878,24 @@ public class PackServiceImpl implements PackService {
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->
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_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, "标签模板不存在");
@@ -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<Boolean> 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<OrganMachineResp> organTemplateByOrganId(@RequestParam Long organId ) {
public CommonResult<List<Integer>> 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<PageResult<MachineAuthResp>> pageTemplateAuth(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());
public CommonResult<Map<Integer, List<MachineBrandModelRespVO>>> getTemplateAuth(MachinePageReqVO pageParam) {
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;
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<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")
// @NotNull(message = "品牌ID")
private Long brandId;
@@ -19,8 +19,8 @@ public class MachineBrandModelRespVO {
private String brand;
// @Schema(description = "机台的型号-即机台的名称")
// private List<String> name;
@Schema(description = "机台类别")
private Integer machineType;
@Schema(description = "机台的型号-即机台的名称")
private List<MachineSimpleRespVO> machineSimpleRespVOS;
@@ -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<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
public class OrganMachinePage extends PageParam {
@Schema(description = "组织id")
private Long organId;
@Schema(description = "组织名称")
private String organName;
@Schema(description = "机台名称")
private String machineName;
}
@@ -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<OrganMachineVO> 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;
}
@@ -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;
}
@@ -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;
}
@@ -32,4 +32,6 @@ public interface MachineBrandMapper extends BaseMapperX<MachineBrandDO> {
List<MachineBrandModelRespVO> selectMachineList(@Param("type") Integer type);
List<MachineBrandModelRespVO> selectMachineNoDefault();
}
@@ -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<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;
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<MachineDO> {
.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) {
return selectPage(pageParam, new LambdaQueryWrapperX<MachineDO>()
@@ -44,4 +38,41 @@ public interface MachineMapper extends BaseMapperX<MachineDO> {
.betweenIfPresent(MachineDO::getCreateTime, pageParam.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) {
return selectList(new LambdaQueryWrapperX<MachineTemplateDO>()
.likeIfPresent(MachineTemplateDO::getName,templateName));
default MachineTemplateDO selectMachineTemplateName(String name,Integer machineType) {
return selectOne(new LambdaQueryWrapperX<MachineTemplateDO>()
.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)
.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;
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<MachineDO> list(Collection<Long> ids);
List<MachineSimpleRespVO> getMachineModelAll(Integer type);
Map<Integer, List<MachineVO>> getMachineTree(Long type);
Boolean auth(MachineOrgAuthReq vo);
PageResult<OrganMachineResp> organMachinePage(OrganMachinePage page);
OrganMachineResp organMachineByOrganId(Long organId);
List<Integer> organMachineByOrganId(Long organId);
PageResult<MachineDO> page(MachinePageReqVO pageParam);
List<MachineSimpleRespVO> simpleList(Long organId,Long 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.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<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);
OrganizationDO tenant = organMapper.selectById(vo.getOrganId());
if (tenant == null) {
throw exception(ORGAN_NOT_EXISTS);
}
// 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;
}
@Override
public PageResult<OrganMachineResp> organMachinePage(OrganMachinePage page) {
Page<OrganMachineResp> respPage = new Page<>(page.getPageNo(), page.getPageSize());
Page<OrganMachineResp> pageRes = machineMapper.selectOrganMachinePage(respPage, page);
return new PageResult<>(pageRes.getRecords(), pageRes.getTotal());
public PageResult<OrganMachineResp> organMachinePage(OrganMachinePage machinePage) {
PageDTO<OrganMachineResp> page = new PageDTO<>(machinePage.getPageNo(), machinePage.getPageSize());
IPage<OrganMachineResp> packRespVOS = machineLimitMapper.selectOrganMachinePage(page, machinePage);
return new PageResult<>(packRespVOS.getRecords(), packRespVOS.getTotal());
}
@Override
public OrganMachineResp organMachineByOrganId(Long organId) {
return machineMapper.selectOrganMachine(organId);
public List<Integer> 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<MachineSimpleRespVO> getMachineModelAll(Integer type) {
List<MachineDO> machineDOS = machineMapper.selectMachineList(type, getUserOrganId());
return BeanUtils.toBean(machineDOS,MachineSimpleRespVO.class);
}
@Override
@OrganIgnore
public List<MachineSimpleRespVO> simpleList(Long organId,Long type) {
@@ -371,44 +418,73 @@ public class MachineServiceImpl implements MachineService {
@Override
public List<MachineBrandModelRespVO> getBrandAndModel(Integer type) {
// List<MachineBrandDO> machineBrandDOS = machineBrandMapper.selectListByType(type);
return machineBrandMapper.selectMachineList(type);
// List<MachineBrandModelRespVO> machineBrandModelRespVOS = BeanUtils.toBean(machineBrandDOS, MachineBrandModelRespVO.class);
//
//
// List<MachineTemplateDO> machineDOS = machineTemplateMapper.selectList(new LambdaQueryWrapperX<MachineTemplateDO>()
// .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) {
if (machineMapper.selectById(id) == null) {
@Override
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);
}
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
@@ -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<MachineAuth> machineAuthList = vo.getMachineAuthList();
if(!machineAuthList.isEmpty()) {
List<MachineTemplateLimitDO> 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<MachineAuth> machineAuthList = vo.getMachineAuthList();
//
// if(!machineAuthList.isEmpty()) {
// List<MachineTemplateLimitDO> 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<MachineTemplateLimitDO>().eq(MachineTemplateLimitDO::getOrganId, vo.getOrganId()));
List<MachineAuth> machineAuthList = vo.getMachineAuthList();
if(CollectionUtil.isNotEmpty(machineAuthList)) {
List<MachineTemplateLimitDO> 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<MachineAuth> machineAuthList = vo.getMachineAuthList();
//
// if(CollectionUtil.isNotEmpty(machineAuthList)) {
// List<MachineTemplateLimitDO> 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);
}
}
}
@@ -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<Long> getOrganIdList() {
List<OrganizationDO> 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();
}
@@ -7,6 +7,7 @@
<result property="brandId" column="brandId"/>
<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"/>
@@ -34,6 +35,28 @@
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>
@@ -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" >
<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">
<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.OrganMachineVO"
select="selectOrganMachineList" column="{organId=organId}" >
</collection>
</resultMap>
<select id="selectMachine" resultType="com.cf.imes.module.system.dal.dataobject.machine.MachineDO">
select *
from system_machine
where organ_id = #{organId}
and deleted = false
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 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>
@@ -132,5 +132,22 @@
</where>
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>
</mapper>