Merge remote-tracking branch 'origin/main'

This commit is contained in:
gaoqr
2024-09-13 14:20:19 +08:00
20 changed files with 544 additions and 410 deletions
@@ -0,0 +1,49 @@
package com.cf.imes.framework.common.util.Assert;
import com.cf.imes.framework.common.exception.ErrorCode;
import org.springframework.util.ObjectUtils;
import java.util.List;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
/**
* 断言工具类:用于代码抛出异常,提升代码的简洁度
*
* @author 晨丰科技
*/
public class AssertUtils {
/*
* 判断是否为空,可以不用if语句,简化代码
* */
public static void notEmpty(List<?> array, ErrorCode errorCode) {
if (ObjectUtils.isEmpty(array)) {
throw exception(errorCode);
}
}
public static void empty(List<?> array, ErrorCode errorCode) {
if (!ObjectUtils.isEmpty(array)) {
throw exception(errorCode);
}
}
public static void notEmpty(Object object, ErrorCode errorCode) {
if (object == null) {
throw exception(errorCode);
}
}
public static void notEmpty(List<?> array ,Object object, ErrorCode errorCode) {
if (object == null || ObjectUtils.isEmpty(array)) {
throw exception(errorCode);
}
}
}
@@ -16,6 +16,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
@@ -195,4 +196,7 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
List<OrderRoomBodyList> selectNoPlanRoomBody(@Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
IPage<OrderRespVOCopy> selectOrderPlate(@Param("page") IPage page,@Param("organId") Long organId);
List<Long> selectPlanOrderList(@Param("orderId") Long orderId,@Param("roomIds") Set<Long> roomIds, @Param("bodyId") Long bodyId,@Param("organId") Long organId);
}
@@ -7,10 +7,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
import com.cf.imes.framework.common.pojo.PageParam;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.Assert.AssertUtils;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
import com.cf.imes.module.executor.controller.admin.order.vo.order.*;
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderBodyRespVO;
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderRoomBodyRespVO;
@@ -19,6 +24,7 @@ import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsResp
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
@@ -29,6 +35,7 @@ import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO;
import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO;
import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
import com.cf.imes.module.executor.dal.mysql.order.OrderMapper;
import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper;
import com.cf.imes.module.executor.dal.mysql.orderGroup.OrderGroupMapper;
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper;
@@ -39,7 +46,7 @@ import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
import com.cf.imes.module.executor.dal.mysql.rawgoods.RawGoodsMapper;
import com.cf.imes.module.executor.enums.OrderDeletedEnum;
import com.cf.imes.module.executor.enums.OrderStatusEnum;
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
import com.cf.imes.module.executor.service.plan.PlanService;
import com.cf.imes.module.executor.util.deviseData.structure.PlateDetail;
import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiDataAchieve;
import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiTypeRealize;
@@ -47,22 +54,14 @@ import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.ExcelTy
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.VO.OrderXmlVO;
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.XmlTypeRealize;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.module.executor.dal.mysql.order.OrderMapper;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.time.*;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.*;
@@ -74,8 +73,6 @@ import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.e
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.*;
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
/**
* 生产单表 order_{N} Service 实现类
*
@@ -139,9 +136,14 @@ public class OrderServiceImpl implements OrderService {
public static final String ORDER_PARTS_REMARK_MODEL = "imes_order_parts_remark_model";
String ORDER_REMAIN_PLATE_MODEL = "imes_order_optimize_plate_model";
@Resource
private XmlTypeRealize xmlTypeRealize;
@Resource
private PlanService planService;
@Override
public void updateOrder(OrderSaveReqVO updateReqVO) {
// 校验存在, 生产单未删除
@@ -240,7 +242,8 @@ public class OrderServiceImpl implements OrderService {
@Override
@Transactional(rollbackFor = Exception.class)
public void updateBodyDeletedByOrderId(Long orderId, Set<Long> roomIds, Long bodyId, Integer status) { // 要删除传1,还原传0
validateOrderStatus(orderId, getUserOrganId(), OrderDeletedEnum.NOT_DELETED.getStatus());
// 判断生产单的状态和生产单柜体对应的板擦是否已开料
List<Long> planIds = validateOrderStatus(orderId, roomIds, bodyId, getUserOrganId(), OrderDeletedEnum.NOT_DELETED.getStatus());
List<Long> bodyIds = new ArrayList<>();
Integer index = status == 1 ? 0 : 1;
@@ -292,7 +295,23 @@ public class OrderServiceImpl implements OrderService {
});
if (goodsIdDeleted.size() > 0) {
goodsMapper.updateDeletedById(goodsIdDeleted, status, getUserOrganId());
}
if(planIds != null) {
// 判断删除的柜体对应的板材是否和排单板材一样
List<GoodsDO> goodsDOS = goodsMapper.selectPlanGoodsListByPlanIdList(planIds, getUserOrganId());
// 一样,同时删除排单的信息
if(goodsDOS.isEmpty()){
planService.deletePlan(planIds);
}else {
// 只要有排单,不管删除的柜体的板材数和排单数一样,都要删除排单对应的优化数据(不用这种写法进行删除时,有时会报错,原因目前还没找到)
planService.deleteByPlanId(planIds, ORDER_REMAIN_PLATE_MODEL);
}
}
List<Long> partsList = orderPartsMapper.selectPartsIdListByBodyId(bodyIds, getUserOrganId(), orderId); // 配件
@@ -804,17 +823,28 @@ public class OrderServiceImpl implements OrderService {
return true;
}
// 判断生产单状态是否符合(开料之前状态判断)
private void validateOrderStatus(Long orderId, Long organId, Integer status) {
// 判断生产单状态是否符合(如果已开料,不允许删除)
private List<Long> validateOrderStatus(Long orderId,Set<Long> roomIds, Long bodyId, Long organId, Integer status) {
// 校验存在
OrderDO orderDO = orderMapper.selectOrderOne(orderId, organId);
if (orderDO == null)
throw exception(ORDER_NOT_EXISTS);
// 状态排除
if (!Objects.equals(orderDO.getStatus(), OrderStatusEnum.NEW_ORDER.getStatus()) &&
!Objects.equals(orderDO.getStatus(), OrderStatusEnum.SORTED.getStatus()) &&
!Objects.equals(orderDO.getStatus(), OrderStatusEnum.EMPTY.getStatus()))
throw exception(ORDER_NOT_CANCEL);
// 判断小板是否已开料,已开料不允许删除
List<Long> planIds = goodsMapper.selectPlanOrderList(orderId, roomIds, bodyId, organId);
if(!planIds.isEmpty()) {
List<PlanDO> planDOS = planMapper.selectPlanStatus(planIds, organId);
AssertUtils.empty(planDOS, ORDER_PLAN_ERROR);
// planService.deleteByPlanId(planIds, ORDER_REMAIN_PLATE_MODEL);
return planIds;
}
return null;
}
}
@@ -82,4 +82,6 @@ public interface PlanService {
List<NotPlanOrderPlateRespVO> getOrderPlateList(OrderPageReqVOCopy pageReqVO);
List<NotPlanGoodsRespVO> getNotOptimizeGoodsList(NotPlanGoodsReqVO reqVO);
void deleteByPlanId(List<Long> planIds, String index);
}
@@ -1055,6 +1055,7 @@ public class PlanServiceImpl implements PlanService {
}
@Override
public void deleteByPlanId(List<Long> planIds, String index) {
List<FieldValue> fieldValues = planIds.stream().map(FieldValue::of).toList();
@@ -41,7 +41,7 @@
<update id="updateDeletedById">
UPDATE order_goods
SET deleted = #{deleted}
SET deleted = #{deleted},plan_id = 0
WHERE id IN
<foreach item="id" collection="ids" open="(" separator="," close=")">
#{id}
@@ -383,4 +383,33 @@
</select>
<select id="selectPlanOrderList" resultType="java.lang.Long">
select distinct og.plan_id
from order_goods og
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id and og.deleted = op.deleted
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id
<where> og.organ_id = #{organId}
and og.deleted = false
and og.order_id = #{orderId}
<if test="bodyId !=null">
and oi.body_id = #{bodyId}
</if>
<if test="roomIds !=null">
and oi.room_id in
<foreach item="roomIds" collection="roomIds" open="(" separator="," close=")">
#{roomIds}
</foreach>
</if>
</where>
</select>
</mapper>
@@ -186,10 +186,9 @@ public class PackController {
// todo 是否使用和使用在什么地方带确认
@GetMapping("/print")
@Operation(summary = "包裹订单打印")
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
// @GetMapping("/print")
// @Operation(summary = "包裹订单打印")
// @PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<PrintOrderPackRespVO> printOrderPack (@Valid PrintOrderPackReqVO reqVO) {
return success(packService.printOrderPack(reqVO));
@@ -1,12 +1,15 @@
package com.cf.imes.module.manage.dal.mysql.plate;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO;
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingDetailRespVO;
import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlatePageReqVO;
import com.cf.imes.module.manage.controller.admin.process.vo.PlateDetails;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO;
import com.cf.imes.module.manage.dal.dataobject.plate.OrderPlateDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -48,4 +51,10 @@ public interface OrderPlateMapper extends BaseMapperX<OrderPlateDO> {
}
List<PackRespVO> selectPlateNum(@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
List<PlateDetailsRespVO> selectOrderNoPackPlateList(@Param("orderId") Long orderId,@Param("organId") Long organId);
List<PlateDetailsRespVO> selectOrderPlateList(@Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
IPage<PackageDetailsRespVO> selectPackPlateList(@Param("page") IPage page, @Param("packageId") Long packageId, @Param("organId") Long organId);
}
@@ -6,7 +6,6 @@ import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
import com.cf.imes.module.manage.controller.admin.process.vo.PlateDetails;
import com.cf.imes.module.manage.controller.admin.process.vo.ProcessPlateReqVO;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO;
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO;
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlateRespVO;
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.PlatePageVO;
@@ -20,8 +19,6 @@ import java.util.List;
public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
List<PackageDetailsRespVO> selectByPackageId( @Param("packageId") Long packageId, @Param("organId") Long organId);
List<OrderModuleVO> selectCombinationName(Long orderNo);
@@ -29,9 +26,6 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
List<OrderPlateRespVO> selectPlateList(PlatePageVO pageReqVO);
List<PlateDetailsRespVO> selectOrderPlateList(@Param("orderNo") Long orderNo,@Param("organId") Long organId);
List<PlateDetailsRespVO> selectPrintPlateList(@Param("orderNo")Long orderNo,@Param("packageNo") Long packageNo, @Param("organId") Long organId);
@@ -64,7 +58,6 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
List<PlateDetails> selectPlateListByBodyIds( @Param("collect") List<Long> collect,@Param("orderId") Long orderId,@Param("userOrganId") Long userOrganId);
List<PlateDetailsRespVO> selectOrdersPlateList(@Param("orderIds") List<Long> orderIds, @Param("userOrganId") Long userOrganId);
default List<OrderItemDO> selectPackList(Long packId,Long orderId ,Long organId) {
@@ -8,6 +8,7 @@ import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
import com.cf.imes.framework.common.enums.UserSettingTypeEnum;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.Assert.AssertUtils;
import com.cf.imes.framework.common.util.json.JsonUtils;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
@@ -32,6 +33,7 @@ import com.cf.imes.module.manage.dal.mysql.query.OrderPartsMapper;
import com.cf.imes.module.manage.util.SnowflakeIdWorker3rd;
import com.cf.imes.module.system.api.setting.SettingApi;
import com.cf.imes.module.system.api.setting.dto.PackageConfigDTO;
import com.cf.imes.module.system.enums.ErrorCodeConstants;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -106,7 +108,7 @@ public class PackServiceImpl implements PackService {
OrderDO order = ordersMapper.selectById(pageReqVO.getOrderId());
// 判断是否为空
// AssertUtils.notEmpty(order,ORDER_DATE_ERROR);
AssertUtils.notEmpty(order,ORDER_DATE_ERROR);
List<PackRespVO> packRespVOList = pageReqVO.getIsUp() ?
ordersMapper.selectOrderIds(order.getCreateTime().toString(), getUserOrganId(), order.getId()) :
@@ -145,7 +147,7 @@ public class PackServiceImpl implements PackService {
// 查询板材的总量
List<PackRespVO> packRespVOList = orderPlateMapper.selectPlateNum(orderIds, getUserOrganId());
// AssertUtils.notEmpty(packRespVOList, ErrorCodeConstants.THE_CURRENT_BOARD_IS_NOT_SELECTED);
AssertUtils.notEmpty(packRespVOList, ErrorCodeConstants.ORDER_PLATE_ERROR);
for (PackRespVO packRespVO : packRespVOList) {
packRespVO.setTotalPieceCount((long) packRespVO.getPlateId().size());
@@ -194,7 +196,7 @@ public class PackServiceImpl implements PackService {
public List<PlateDetailsRespVO> getOrderPlateList(Long orderId) {
// 查询订单对应的板件信息
List<PlateDetailsRespVO> plateDetailsRespVOS = orderItemMapper.selectOrderPlateList(orderId, getUserOrganId());
List<PlateDetailsRespVO> plateDetailsRespVOS = orderPlateMapper.selectOrderNoPackPlateList(orderId, getUserOrganId());
if(plateDetailsRespVOS.isEmpty()){
return null;
@@ -224,7 +226,7 @@ public class PackServiceImpl implements PackService {
public List<PlateDetailsRespVO> getOrdersPlateList(List<Long> orderIds) {
List<PlateDetailsRespVO> plateDetailsRespVOS = orderItemMapper.selectOrdersPlateList(orderIds, getUserOrganId());
List<PlateDetailsRespVO> plateDetailsRespVOS = orderPlateMapper.selectOrderPlateList(orderIds,getUserOrganId());
if (plateDetailsRespVOS.isEmpty()) {
@@ -237,7 +239,6 @@ public class PackServiceImpl implements PackService {
orderPackageDOS = orderPackageMapper.selectBatchIds(packageIds);
}
// AssertUtils.notEmpty(orderPackageDOS,ORDER_PLATE_ERROR);
for (PlateDetailsRespVO plateDetailsRespVO : plateDetailsRespVOS) {
String name = "";
@@ -273,13 +274,6 @@ public class PackServiceImpl implements PackService {
// AssertUtils.notEmpty(orderPackageVOS,orderDO,ORDER_PLATE_ERROR);
// for (OrderPackageVO orderPackageVO : orderPackageVOS) {
// orderPackageVO.setCustomOrderNo(orderDO.getCustomOrderNo());
// orderPackageVO.setCustomer(orderDO.getCustomer());
// orderPackageVO.setAddress(orderDO.getAddress());
// orderPackageVO.setDealer(orderDO.getDealer());
// orderPackageVO.setOrderRemark(orderDO.getRemark());
// }
return orderPackageVOS.stream().peek(m -> {
@@ -3,7 +3,6 @@ package com.cf.imes.module.manage.service.query;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
import com.cf.imes.framework.common.pojo.PageResult;
@@ -18,6 +17,7 @@ import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRateReqVO
import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO;
import com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper;
import com.cf.imes.module.manage.dal.mysql.plate.OrderPlateMapper;
import com.cf.imes.module.manage.dal.mysql.process.OrdersMapper;
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper;
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepMapper;
@@ -61,6 +61,8 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
@Resource
private OrderPartsMapper orderPartsMapper;
@Resource
private OrderPlateMapper orderPlateMapper;
// 生产状态分页查询
@@ -197,10 +199,13 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
// 查看板材包裹
List<PackageDetailsRespVO> packageDetailsRespVOS = orderItemMapper.selectByPackageId(reqVO.getPackageId(),getUserOrganId());
IPage<PackageDetailsRespVO> packageDetailsRespVOS = orderPlateMapper.selectPackPlateList(page,reqVO.getPackageId(),getUserOrganId());
if (CollectionUtil.isEmpty(packageDetailsRespVOS.getRecords())) {
return new PageResult<>();
}
for (PackageDetailsRespVO plateDetailsRespVO : packageDetailsRespVOS) {
for (PackageDetailsRespVO plateDetailsRespVO : packageDetailsRespVOS.getRecords()) {
String name = "";
if(!plateDetailsRespVO.getProcessGroupNameList().isEmpty()) {
@@ -214,15 +219,10 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
plateDetailsRespVO.setProcessGroup(name);
}
Page<PackageDetailsRespVO> packageDetailsRespVOPage = page.setRecords(packageDetailsRespVOS);
// Page<PackageDetailsRespVO> packageDetailsRespVOPage = page.setRecords(packageDetailsRespVOS);
if (CollectionUtil.isEmpty(packageDetailsRespVOPage.getRecords())) {
return new PageResult<>();
}
return new PageResult<>(packageDetailsRespVOPage.getRecords(), packageDetailsRespVOPage.getTotal());
return new PageResult<>(packageDetailsRespVOS.getRecords(), packageDetailsRespVOS.getTotal());
}
@@ -165,7 +165,7 @@
o.remark as orderRemark
from orders o
left join order_package op on o.id = op.order_id and o.organ_id = op.organ_id
left join order_package op on o.organ_id = op.organ_id and o.id = op.order_id
${ew.customSqlSegment}
@@ -206,7 +206,7 @@
from order_package
where organ_id = #{organId} and order_id = #{orderId} and deleted = false
where organ_id = #{organId} and deleted = false and order_id = #{orderId}
</select>
@@ -205,5 +205,174 @@
</select>
<resultMap id="PlateDetailsMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO">
<result property="packageId" column="packageId"/>
<result property="roomName" column="roomName"/>
<result property="cabinetName" column="bodyName"/>
<result property="plateId" column="plateId"/>
<result property="plateNo" column="plateNo"/>
<result property="orderId" column="orderId"/>
<result property="plateName" column="plateName"/>
<result property="material" column="plateMaterial"/>
<result property="color" column="plateColor"/>
<result property="width" column="plateWidth"/>
<result property="height" column="plateHeight"/>
<result property="thickness" column="plateThickness"/>
<result property="area" column="plateArea"/>
<result property="texture" column="texture"/>
<result property="specialShaped" column="specialShaped"/>
<result property="profiling" column="profiling"/>
<result property="rowHole" column="rowHole"/>
<result property="remark" column="remark"/>
<collection property="processGroupNameList" javaType="java.util.List" ofType="com.cf.imes.module.manage.controller.admin.pack.vo.GroupNameList">
<result property="name" column="name"/>
</collection>
</resultMap>
<select id="selectOrderNoPackPlateList"
parameterType="java.lang.Long"
resultMap="PlateDetailsMap" >
select distinct
og.name as name,
ob.room_name as roomName,
ob.name as bodyName,
op.id as plateId,
op.plate_no as plateNo,
op.name as plateName,
ogs.material as plateMaterial,
ogs.color as plateColor,
op.order_id as orderId,
op.height as plateHeight,
op.width as plateWidth,
op.thickness as plateThickness,
op.area as plateArea,
op.texture as texture ,
op.remark as remark,
op.is_special_shaped as specialShaped,
op.is_sculpt as profiling,
op.is_row_hole as rowHole
from order_plate op
left join order_goods ogs on op.organ_id = ogs.organ_id and op.order_id = ogs.order_id and op.goods_id = ogs.id
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id
left join order_group og on oi.organ_id = og.organ_id and oi.order_id = og.order_id and oi.group_id = og.id
left join order_body ob on oi.organ_id = ob.organ_id and oi.order_id = ob.order_id and oi.body_id = ob.id
where
op.organ_id = #{organId} and op.deleted = false and op.order_id = #{orderId} and oi.package_id = 0 ;
</select>
<select id="selectOrderPlateList"
parameterType="java.lang.Long"
resultMap="PlateDetailsMap">
select distinct
oi.package_id as packageId,
og.name as name,
ob.room_name as roomName,
ob.name as bodyName,
op.id as plateId,
op.plate_no as plateNo,
op.name as plateName,
ogs.material as plateMaterial,
ogs.color as plateColor,
op.order_id as orderId,
op.height as plateHeight,
op.width as plateWidth,
op.thickness as plateThickness,
op.area as plateArea,
op.texture as texture ,
op.remark as remark,
op.is_special_shaped as specialShaped,
op.is_sculpt as profiling,
op.is_row_hole as rowHole
from order_plate op
left join order_goods ogs on op.organ_id = ogs.organ_id and op.order_id = ogs.order_id and op.goods_id = ogs.id
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id
left join order_group og on oi.organ_id = og.organ_id and oi.order_id = og.order_id and oi.group_id = og.id
left join order_body ob on oi.organ_id = ob.organ_id and oi.order_id = ob.order_id and oi.body_id = ob.id
where
op.organ_id = #{organId}
and op.deleted = false
and op.order_id in
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
#{orderIds}
</foreach>
</select>
<resultMap id="orderItemMap" type="com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO">
<result property="orderId" column="orderId"/>
<result property="roomName" column="roomName"/>
<result property="cabinetName" column="bodyName"/>
<result property="plateId" column="plateId"/>
<result property="plateNo" column="plateNo"/>
<result property="plateName" column="plateName"/>
<result property="material" column="plateMaterial"/>
<result property="color" column="palteColor"/>
<result property="width" column="plateWidth"/>
<result property="height" column="plateHeight"/>
<result property="thickness" column="plateThickness"/>
<result property="area" column="plateArea"/>
<result property="texture" column="texture"/>
<result property="specialShaped" column="specialShaped"/>
<result property="profiling" column="profiling"/>
<result property="rowHole" column="rowHole"/>
<result property="remark" column="remark"/>
<collection property="processGroupNameList" javaType="java.util.List" ofType="com.cf.imes.module.manage.controller.admin.pack.vo.GroupNameList">
<result property="name" column="name"/>
</collection>
</resultMap>
<select id="selectPackPlateList"
parameterType="java.lang.Long"
resultMap="orderItemMap">
select distinct
op.order_id as orderId,
og.name as name,
ob.room_name as roomName,
ob.name as bodyName,
op.plate_no as plateNo,
op.id as plateId,
op.name as plateName,
ogs.material as plateMaterial,
ogs.color as palteColor,
op.height as plateHeight,
op.width as plateWidth,
op.thickness as plateThickness,
op.area as plateArea,
op.texture as texture ,
op.remark as remark,
op.is_special_shaped as specialShaped,
op.is_sculpt as profiling,
op.is_row_hole as rowHole
from order_plate op
left join order_goods ogs on op.organ_id = ogs.organ_id and op.order_id = ogs.order_id and op.goods_id = ogs.id
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id
left join order_group og on oi.organ_id = og.organ_id and oi.order_id = og.order_id and oi.group_id = og.id
left join order_body ob on oi.organ_id = ob.organ_id and oi.order_id = ob.order_id and oi.body_id = ob.id
where
oi.organ_id = #{organId} and oi.package_id =#{packageId} and op.deleted = false
</select>
</mapper>
@@ -3,67 +3,6 @@
<mapper namespace="com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper">
<resultMap id="orderItemMap" type="com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO">
<result property="orderId" column="orderId"/>
<result property="roomName" column="roomName"/>
<result property="cabinetName" column="bodyName"/>
<result property="plateId" column="plateId"/>
<result property="plateNo" column="plateNo"/>
<result property="plateName" column="plateName"/>
<result property="material" column="plateMaterial"/>
<result property="color" column="palteColor"/>
<result property="width" column="plateWidth"/>
<result property="height" column="plateHeight"/>
<result property="thickness" column="plateThickness"/>
<result property="area" column="plateArea"/>
<result property="texture" column="texture"/>
<result property="specialShaped" column="specialShaped"/>
<result property="profiling" column="profiling"/>
<result property="rowHole" column="rowHole"/>
<result property="remark" column="remark"/>
<collection property="processGroupNameList" javaType="java.util.List" ofType="com.cf.imes.module.manage.controller.admin.pack.vo.GroupNameList">
<result property="name" column="name"/>
</collection>
</resultMap>
<select id="selectByPackageId"
parameterType="java.lang.Long"
resultMap="orderItemMap">
select distinct
op.order_id as orderId,
og.name as name,
ob.room_name as roomName,
ob.name as bodyName,
op.plate_no as plateNo,
op.id as plateId,
op.name as plateName,
ogs.material as plateMaterial,
ogs.color as palteColor,
op.height as plateHeight,
op.width as plateWidth,
op.thickness as plateThickness,
op.area as plateArea,
op.texture as texture ,
op.remark as remark,
op.is_special_shaped as specialShaped,
op.is_sculpt as profiling,
op.is_row_hole as rowHole
from order_item oi
left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
join order_goods ogs on op.goods_id = ogs.id and op.organ_id = ogs.organ_id
join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
left join order_group og on oi.group_id = og.id and ob.organ_id = og.organ_id
where
oi.organ_id = #{organId} and oi.package_id =#{packageId} and op.deleted = false
</select>
<!-- 查看板材信息的组合名称-->
@@ -142,41 +81,6 @@
</collection>
</resultMap>
<select id="selectOrderPlateList"
parameterType="java.lang.Long"
resultMap="PlateDetailsMap" >
select distinct
og.name as name,
ob.room_name as roomName,
ob.name as bodyName,
op.id as plateId,
op.plate_no as plateNo,
op.name as plateName,
ogs.material as plateMaterial,
ogs.color as plateColor,
op.order_id as orderId,
op.height as plateHeight,
op.width as plateWidth,
op.thickness as plateThickness,
op.area as plateArea,
op.texture as texture ,
op.remark as remark,
op.is_special_shaped as specialShaped,
op.is_sculpt as profiling,
op.is_row_hole as rowHole
from order_item oi
join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
join order_goods ogs on op.goods_id = ogs.id and op.organ_id = ogs.organ_id
join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
left join order_group og on oi.group_id = og.id and ob.organ_id = og.organ_id
where
oi.order_id = #{orderNo} and oi.organ_id = #{organId} and oi.package_id = 0 and op.deleted = false;
</select>
@@ -412,49 +316,5 @@
</select>
<select id="selectOrdersPlateList"
parameterType="java.lang.Long"
resultMap="PlateDetailsMap">
select distinct
oi.package_id as packageId,
og.name as name,
ob.room_name as roomName,
ob.name as bodyName,
op.id as plateId,
op.plate_no as plateNo,
op.name as plateName,
ogs.material as plateMaterial,
ogs.color as plateColor,
op.order_id as orderId,
op.height as plateHeight,
op.width as plateWidth,
op.thickness as plateThickness,
op.area as plateArea,
op.texture as texture ,
op.remark as remark,
op.is_special_shaped as specialShaped,
op.is_sculpt as profiling,
op.is_row_hole as rowHole
from order_item oi
join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
join order_goods ogs on op.goods_id = ogs.id and op.organ_id = ogs.organ_id
join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
left join order_group og on oi.group_id = og.id and ob.organ_id = og.organ_id
where
oi.organ_id = #{userOrganId} and
oi.order_id in
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
#{orderIds}
</foreach>
and op.deleted = false;
</select>
</mapper>
@@ -34,6 +34,13 @@ public class CuttingTemplateSaveReqVO {
private Long brandId;
@Schema(description = "机台模板是否公用")
private Boolean isDefault;
@Schema(description = "机台模板是否可用")
private Boolean isEnabled;
// @Schema(description = "机台的品牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
// @NotNull(message = "品牌名称不能为空")
// private String brand;
@@ -29,6 +29,8 @@ public class MachineTemplateConvert {
.name(reqVO.getName())
// .brand(reqVO.getBrand())
.brandId(reqVO.getNowBrandId())
.isDefault(reqVO.getIsDefault())
.isEnabled(reqVO.getIsEnabled())
.setting(reqVO.getSetting().toJSONString())
.build();
}
@@ -29,10 +29,10 @@ public class MachineTemplateDO extends BaseDO {
*/
private Integer machineType;
// /**
// * 是否默认模板
// */
// private Boolean isDefault;
/**
* 是否公用
*/
private Boolean isDefault;
/**
* 机台模板配置
@@ -44,6 +44,10 @@ public class MachineTemplateDO extends BaseDO {
*/
private Long brandId;
/**
* 是否可用
*/
private Boolean isEnabled;
/**
@@ -100,8 +100,8 @@ public class MachineServiceImpl implements MachineService {
assert loginUser != null;
// 校验机台名称是否重复
MachineDO machine = machineMapper.selectMachineName(createReqVO.getName(),createReqVO.getMachineType(), getUserOrganId());
if(machine != null){
MachineDO machine = machineMapper.selectMachineName(createReqVO.getName(), createReqVO.getMachineType(), getUserOrganId());
if (machine != null) {
throw exception(MACHINE_NAME_ERROR);
}
@@ -117,7 +117,7 @@ public class MachineServiceImpl implements MachineService {
// 插入
machineDO = MachineConvert.convert(createReqVO);
String updatedJsonString = handleMachineSpecificConfiguration(machineDO, machineDO.getMachineType(),copyMachineDO.getSetting(),true);
String updatedJsonString = handleMachineSpecificConfiguration(machineDO, machineDO.getMachineType(), copyMachineDO.getSetting(), true);
machineDO.setSetting(updatedJsonString == null ? copyMachineDO.getSetting() : zipString(updatedJsonString));
@@ -140,7 +140,7 @@ public class MachineServiceImpl implements MachineService {
machineDO = MachineConvert.convert(createReqVO);
// 处理不同机台类型的配置
String updatedJsonString = handleMachineSpecificConfiguration(machineDO, machineTemplateDO.getMachineType(), machineTemplateDO.getSetting(),false);
String updatedJsonString = handleMachineSpecificConfiguration(machineDO, machineTemplateDO.getMachineType(), machineTemplateDO.getSetting(), false);
machineDO.setSetting(updatedJsonString == null ? machineTemplateDO.getSetting() : zipString(updatedJsonString));
machineMapper.insert(machineDO);
@@ -151,16 +151,15 @@ public class MachineServiceImpl implements MachineService {
}
// 判断机台的模板是否是钻孔机或封边机
private String handleMachineSpecificConfiguration(MachineDO machineDO, Integer machineType,String machineSetting,Boolean isMachine) throws JsonProcessingException {
private String handleMachineSpecificConfiguration(MachineDO machineDO, Integer machineType, String machineSetting, Boolean isMachine) throws JsonProcessingException {
String updatedJsonString = null;
if (MachineTypeEnum.CUTTING.getType().equals(machineType)) {
updatedJsonString = handleCuttingMachineConfiguration(machineDO, machineSetting,isMachine);
updatedJsonString = handleCuttingMachineConfiguration(machineDO, machineSetting, isMachine);
} else if (MachineTypeEnum.BANDING.getType().equals(machineType)) {
updatedJsonString = handleBandingMachineConfiguration(machineDO, machineSetting,isMachine);
updatedJsonString = handleBandingMachineConfiguration(machineDO, machineSetting, isMachine);
}
return updatedJsonString;
@@ -168,7 +167,7 @@ public class MachineServiceImpl implements MachineService {
// 创建贴标机
private String handleCuttingMachineConfiguration(MachineDO machineDO, String machineSetting,Boolean isMachine) throws JsonProcessingException {
private String handleCuttingMachineConfiguration(MachineDO machineDO, String machineSetting, Boolean isMachine) throws JsonProcessingException {
String unzipMachineSetting = unzipString(machineSetting);
@@ -176,53 +175,24 @@ public class MachineServiceImpl implements MachineService {
JsonNode advancedConfigsRef = cuttingSetting.get("advancedConfigsRef");
if(advancedConfigsRef.get("isAutoLabelEnabled") != null) {
boolean isAutoLabelEnabled = advancedConfigsRef.get("isAutoLabelEnabled").asBoolean();
boolean isAutoLabelEnabled = advancedConfigsRef.get("isAutoLabelEnabled") != null && advancedConfigsRef.get("isAutoLabelEnabled").asBoolean();
if (isAutoLabelEnabled && advancedConfigsRef.has("autoLabelModel")) {
Integer autoLabelModelId = advancedConfigsRef.get("autoLabelModel").asInt();
if (isAutoLabelEnabled && advancedConfigsRef.has("autoLabelModel")) {
Integer autoLabelModelId = advancedConfigsRef.get("autoLabelModel").asInt();
MachineDO newMachine;
MachineDO newMachine;
if (isMachine) {
if (isMachine) {
MachineDO machine = machineMapper.selectById(autoLabelModelId);
if (machine != null) {
newMachine = MachineDO.builder()
.labelId(machine.getLabelId())
.machineType(machine.getMachineType())
.brandId(machine.getBrandId())
.setting(machine.getSetting())
.name("开料" + machineDO.getName() + "-贴标机")
.build();
machineMapper.insert(newMachine);
// 创建 ObjectMapper 对象
ObjectMapper mapper = new ObjectMapper();
// 将 JSON 字符串解析为 Map
Map map = mapper.readValue(unzipMachineSetting, Map.class);
// 修改值
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("advancedConfigsRef");
advancedConfigs.put("autoLabelModel", newMachine.getId());
// 将 Map 转换为 JSON 字符串
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
}
}
MachineTemplateDO machineTemplate = machineTemplateMapper.selectById(autoLabelModelId);
if (machineTemplate != null) {
MachineDO machine = machineMapper.selectById(autoLabelModelId);
if (machine != null) {
newMachine = MachineDO.builder()
.labelId(machineDO.getLabelId())
.machineType(machineTemplate.getMachineType())
.brandId(machineTemplate.getBrandId())
.setting(machineTemplate.getSetting())
.labelId(machine.getLabelId())
.machineType(machine.getMachineType())
.brandId(machine.getBrandId())
.setting(machine.getSetting())
.name("开料" + machineDO.getName() + "-贴标机")
.build();
@@ -241,15 +211,44 @@ public class MachineServiceImpl implements MachineService {
// 将 Map 转换为 JSON 字符串
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
}
}
MachineTemplateDO machineTemplate = machineTemplateMapper.selectById(autoLabelModelId);
if (machineTemplate != null) {
newMachine = MachineDO.builder()
.labelId(machineDO.getLabelId())
.machineType(machineTemplate.getMachineType())
.brandId(machineTemplate.getBrandId())
.setting(machineTemplate.getSetting())
.name("开料" + machineDO.getName() + "-贴标机")
.build();
machineMapper.insert(newMachine);
// 创建 ObjectMapper 对象
ObjectMapper mapper = new ObjectMapper();
// 将 JSON 字符串解析为 Map
Map map = mapper.readValue(unzipMachineSetting, Map.class);
// 修改值
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("advancedConfigsRef");
advancedConfigs.put("autoLabelModel", newMachine.getId());
// 将 Map 转换为 JSON 字符串
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
}
}
return null;
return null;
}
// 创建钻孔机
private String handleBandingMachineConfiguration(MachineDO machineDO, String machineSetting,Boolean isMachine) throws JsonProcessingException {
private String handleBandingMachineConfiguration(MachineDO machineDO, String machineSetting, Boolean isMachine) throws JsonProcessingException {
String unzipMachineSetting = unzipString(machineSetting);
@@ -257,54 +256,23 @@ public class MachineServiceImpl implements MachineService {
JsonNode cuttingModuleRef = drillSetting.get("cuttingModuleRef");
if(cuttingModuleRef.get("isDrillEnabled") != null) {
boolean isDrillEnabled = cuttingModuleRef.get("isDrillEnabled").asBoolean();
boolean isDrillEnabled = cuttingModuleRef.get("isDrillEnabled") != null && cuttingModuleRef.get("isDrillEnabled").asBoolean();
if (isDrillEnabled && cuttingModuleRef.has("drillModel")) {
Integer drillModelId = cuttingModuleRef.get("drillModel").asInt();
if (isDrillEnabled && cuttingModuleRef.has("drillModel")) {
Integer drillModelId = cuttingModuleRef.get("drillModel").asInt();
MachineDO newMachine;
MachineDO newMachine;
if (isMachine) {
if (isMachine) {
MachineDO machine = machineMapper.selectById(drillModelId);
if (machine != null) {
newMachine = MachineDO.builder()
.labelId(machine.getLabelId())
.machineType(machine.getMachineType())
.brandId(machine.getBrandId())
.setting(machine.getSetting())
.name("封边" + machineDO.getName() + "-钻孔机")
.build();
machineMapper.insert(newMachine);
// 创建 ObjectMapper 对象
ObjectMapper mapper = new ObjectMapper();
// 将 JSON 字符串解析为 Map
Map map = mapper.readValue(unzipMachineSetting, Map.class);
// 修改值
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("cuttingModuleRef");
advancedConfigs.put("drillModel", newMachine.getId());
// 将 Map 转换为 JSON 字符串并打印输出
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
}
}
MachineTemplateDO machineTemplate = machineTemplateMapper.selectById(drillModelId);
if (machineTemplate != null) {
MachineDO machine = machineMapper.selectById(drillModelId);
if (machine != null) {
newMachine = MachineDO.builder()
.labelId(machineDO.getLabelId())
.machineType(machineTemplate.getMachineType())
.brandId(machineTemplate.getBrandId())
.setting(machineTemplate.getSetting())
.labelId(machine.getLabelId())
.machineType(machine.getMachineType())
.brandId(machine.getBrandId())
.setting(machine.getSetting())
.name("封边" + machineDO.getName() + "-钻孔机")
.build();
@@ -322,29 +290,55 @@ public class MachineServiceImpl implements MachineService {
// 将 Map 转换为 JSON 字符串并打印输出
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
}
}
MachineTemplateDO machineTemplate = machineTemplateMapper.selectById(drillModelId);
if (machineTemplate != null) {
newMachine = MachineDO.builder()
.labelId(machineDO.getLabelId())
.machineType(machineTemplate.getMachineType())
.brandId(machineTemplate.getBrandId())
.setting(machineTemplate.getSetting())
.name("封边" + machineDO.getName() + "-钻孔机")
.build();
machineMapper.insert(newMachine);
// 创建 ObjectMapper 对象
ObjectMapper mapper = new ObjectMapper();
// 将 JSON 字符串解析为 Map
Map map = mapper.readValue(unzipMachineSetting, Map.class);
// 修改值
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("cuttingModuleRef");
advancedConfigs.put("drillModel", newMachine.getId());
// 将 Map 转换为 JSON 字符串并打印输出
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
}
}
return null;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateCutting(CuttingSaveReqVO updateReqVO) {
// 校验存在和判断机台名称是否重复
validateExists(updateReqVO.getId(),updateReqVO.getName(),updateReqVO.getMachineType(),updateReqVO.getId());
validateExists(updateReqVO.getId(), updateReqVO.getName(), updateReqVO.getMachineType(), updateReqVO.getId());
// 更新
MachineDO updateObj = MachineConvert.convert(updateReqVO);
//MachineDO updateObj = BeanUtils.toBean(updateReqVO, MachineDO.class);
// 判断传入的机台配置是否存在,如果存在,压缩数据后更新
if(!updateReqVO.getMachineSettingDO().isEmpty()){
if (!updateReqVO.getMachineSettingDO().isEmpty()) {
updateObj.setSetting(JsonUtils.zipString(updateObj.getSetting()));
}
@@ -359,7 +353,7 @@ public class MachineServiceImpl implements MachineService {
throw exception(MACHINE_NOT_EXISTS);
}
// 校验当前机台是否使用
if(orderPlanApi.getOrderPlan(id).getData()){
if (orderPlanApi.getOrderPlan(id).getData()) {
throw exception(THE_CURRENT_MACHINE_IS_ALREADY_IN_USE);
}
machineMapper.deleteById(id);
@@ -395,7 +389,6 @@ public class MachineServiceImpl implements MachineService {
}
@Override
public DrillRespVO getDrill(Long id) {
MachineDO machineDO = machineMapper.selectById(id);
@@ -423,7 +416,7 @@ public class MachineServiceImpl implements MachineService {
List<Long> brandIds = machineDOS.stream().map(MachineDO::getBrandId).toList();
List<MachineBrandDO> machineBrandDOS = new ArrayList<>();
if(!brandIds.isEmpty()) {
if (!brandIds.isEmpty()) {
machineBrandDOS = machineBrandMapper.selectBatchIds(brandIds);
}
@@ -483,7 +476,6 @@ public class MachineServiceImpl implements MachineService {
.build();
machineLimitMapper.updateById(machineLimitDO);
return Boolean.TRUE;
@@ -524,14 +516,14 @@ public class MachineServiceImpl implements MachineService {
List<MachineDO> machineDOS = machineMapper.selectMachineList(type, getUserOrganId());
return BeanUtils.toBean(machineDOS,MachineSimpleRespVO.class);
return BeanUtils.toBean(machineDOS, MachineSimpleRespVO.class);
}
@Override
@OrganIgnore
public List<MachineSimpleRespVO> simpleList(Long organId,Long type) {
public List<MachineSimpleRespVO> simpleList(Long organId, Long type) {
List<MachineDO> machineDOS = machineMapper.selectList(new LambdaQueryWrapperX<MachineDO>()
.eqIfPresent(MachineDO::getOrganId, organId)
.eqIfPresent(MachineDO::getMachineType, type)
@@ -551,7 +543,6 @@ public class MachineServiceImpl implements MachineService {
}
@Override
public Map<Integer, List<MachineBrandModelRespVO>> getTemplateAuth(MachinePageReqVO pageParam) {
@@ -561,53 +552,51 @@ public class MachineServiceImpl implements MachineService {
return machineBrandModelRespVOS.stream().collect(Collectors.groupingBy(MachineBrandModelRespVO::getMachineType));
}
// 校验机台是否存在和机台名称是否重复
private void validateExists(Long id,String name,Integer machineType,Long machineId) {
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());
MachineDO machine = machineMapper.selectMachine(name, machineType, machineId, getUserOrganId());
if(machine != null){
if (machine != null) {
throw exception(MACHINE_NAME_ERROR);
}
}
// 校验当前组织当前类型的机台是否达到最大创建数量
private void validateMachineNum(Integer machineType, Long organId){
private void validateMachineNum(Integer machineType, Long organId) {
Integer machineNum = machineMapper.selectByOrganId(machineType,organId).size()+1;
Integer machineNum = machineMapper.selectByOrganId(machineType, organId).size() + 1;
MachineLimitDO machineLimitDO = machineLimitMapper.selectById(organId);
Integer authMachineNum = 0;
switch (machineType){
switch (machineType) {
case 1 :
case 1:
authMachineNum = machineLimitDO.getCutLimit();
break;
case 2 :
case 2:
authMachineNum = machineLimitDO.getDrillLimit();
break;
case 3 :
case 3:
authMachineNum = machineLimitDO.getSawLimit();
break;
case 4 :
case 4:
authMachineNum = machineLimitDO.getLabelLimit();
break;
case 5 :
case 5:
authMachineNum = machineLimitDO.getSealedgeLimit();
break;
}
if(machineNum >= authMachineNum){
if (machineNum >= authMachineNum) {
throw exception(MACHINE_NUM_ERROR);
}
@@ -73,27 +73,26 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
private OrganMapper organMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createCuttingTemplate(CuttingTemplateSaveReqVO reqVO) {
// todo 测试时的判断,测试完毕后删除
if(reqVO.getNowBrandId() == null){
if (reqVO.getNowBrandId() == null) {
throw exception(THE_CURRENT_BRAND);
}
validateMachineTemplate(reqVO.getName(),reqVO.getMachineType());
validateMachineTemplate(reqVO.getName(), reqVO.getMachineType());
MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO);
if(reqVO.getMachineId()!=null) {
if (reqVO.getMachineId() != null) {
MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachine(reqVO.getBrandId(), reqVO.getMachineId());
String updatedJsonString = handleMachineType(templateDO.getName(),machineTemplateDO.getMachineType(),machineTemplateDO.getSetting());
String updatedJsonString = handleMachineType(templateDO.getName(), machineTemplateDO.getMachineType(), machineTemplateDO.getSetting());
templateDO.setSetting(updatedJsonString == null ? machineTemplateDO.getSetting() : JsonUtils.zipString(updatedJsonString));
@@ -119,17 +118,17 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
// todo 测试时的判断,测试完毕后删除
MachineBrandDO machineBrandDO = machineBrandMapper.selectById(reqVO.getNowBrandId());
if(machineBrandDO == null){
if (machineBrandDO == null) {
throw exception(THE_CURRENT_BRAND);
}
// 校验机台模板是否存在和名称是否重复
validateMachineTemplateExists(reqVO.getName(),reqVO.getMachineType(),reqVO.getId());
validateMachineTemplateExists(reqVO.getName(), reqVO.getMachineType(), reqVO.getId());
MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO);
if(!reqVO.getSetting().isEmpty()){
if (!reqVO.getSetting().isEmpty()) {
templateDO.setSetting(JsonUtils.zipString(templateDO.getSetting()));
}
machineTemplateMapper.updateById(templateDO);
@@ -187,7 +186,7 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
// 将机台的配置进行解压
.stream()
// todo 目前需要写上,等数据清一波后,应该不需要了
.filter(m -> !Objects.equals(m.getBrandId(),null))
.filter(m -> !Objects.equals(m.getBrandId(), null))
.map(m -> m.setSetting(unzipString(m.getSetting()))).toList();
for (MachineTemplateRespVO machineTemplateRespVO : machineTemplateRespVOS) {
@@ -229,11 +228,11 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
List<Long> organIds = organTemplateRespPageRecords.stream().map(OrganTemplateResp::getOrganId).toList();
if(organIds.isEmpty()){
if (organIds.isEmpty()) {
return null;
}
List<MachineTemplateBrandReqVO> machineTemplateBrandReqVOS = machineTemplateLimitMapper.selectMachineList(organIds,page.getTemplateName());
List<MachineTemplateBrandReqVO> machineTemplateBrandReqVOS = machineTemplateLimitMapper.selectMachineList(organIds, page.getTemplateName());
// 查询品牌名称
@@ -243,14 +242,14 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
for (MachineTemplateBrandReqVO machineTemplateBrandReqVO : machineTemplateBrandReqVOS) {
machineTemplateBrandReqVO.setBrand(machineBrandDOS.stream()
.filter(f->f.getId().equals(machineTemplateBrandReqVO.getId()))
.filter(f -> f.getId().equals(machineTemplateBrandReqVO.getId()))
.map(MachineBrandDO::getBrand)
.findAny().orElse(null));
}
for (OrganTemplateResp organTemplateRespPageRecord : organTemplateRespPageRecords) {
organTemplateRespPageRecord.setMachineTemplateBrandReqVOS(machineTemplateBrandReqVOS.stream()
.filter(f->f.getOrganId().equals(organTemplateRespPageRecord.getOrganId()))
.filter(f -> f.getOrganId().equals(organTemplateRespPageRecord.getOrganId()))
.toList());
}
@@ -269,7 +268,7 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
MachineBrandDO machineBrandDO = machineBrandMapper.selectBrand(reqVO.getBrand(), reqVO.getMachineType());
if(machineBrandDO != null){
if (machineBrandDO != null) {
throw exception(THE_CURRENT_BRAND_OF_THE_MACHINE_EXISTS);
}
@@ -307,7 +306,7 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
List<Long> machineIds;
if(organId != null){
if (organId != null) {
List<MachineTemplateLimitDO> machineTemplateLimitDOS = machineTemplateLimitMapper.selectListByOrganId(organId);
@@ -333,15 +332,15 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
List<MachineTemplateDO> machineTemplateDoS = machineTemplateMapper
.selectList( new MPJLambdaWrapperX<MachineTemplateDO>()
.in(MachineTemplateDO::getBrandId, brandIds)
.select(MachineTemplateDO::getId, MachineTemplateDO::getBrandId, MachineTemplateDO::getName));
.selectList(new MPJLambdaWrapperX<MachineTemplateDO>()
.in(MachineTemplateDO::getBrandId, brandIds)
.select(MachineTemplateDO::getId, MachineTemplateDO::getBrandId, MachineTemplateDO::getName));
List<TemplateAutoResp.MachineTemplate> machineTemplates = BeanUtils.toBean(machineTemplateDoS, TemplateAutoResp.MachineTemplate.class);
if(!machineIds.isEmpty()) {
if (!machineIds.isEmpty()) {
for (TemplateAutoResp.MachineBrand machineBrand : templateAutoResp.getMachineBrand()) {
@@ -377,7 +376,6 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
}
@Override
public Boolean updateTemplateAuth(MachineOrgAuthReq vo) {
@@ -476,19 +474,14 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
}
// 判断机台模板的类型
private String handleMachineType(String machineName,Integer machineType,String machineSetting) {
private String handleMachineType(String machineName, Integer machineType, String machineSetting) {
String updatedJsonString = null;
if(machineType.equals(MachineTypeEnum.CUTTING.getType())) {
if (machineType.equals(MachineTypeEnum.CUTTING.getType())) {
updatedJsonString = handleCuttingMachine(machineName, machineSetting);
} else if(machineType.equals(MachineTypeEnum.BANDING.getType())) {
} else if (machineType.equals(MachineTypeEnum.BANDING.getType())) {
updatedJsonString = handleBandingMachine(machineName, machineSetting);
}
return updatedJsonString;
@@ -503,50 +496,50 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
JsonNode advancedConfigsRef = cuttingSetting.get("advancedConfigsRef");
if(advancedConfigsRef.get("isAutoLabelEnabled") != null) {
boolean isAutoLabelEnabled = advancedConfigsRef.get("isAutoLabelEnabled").asBoolean();
if (isAutoLabelEnabled && advancedConfigsRef.get("autoLabelBrand") != null && advancedConfigsRef.get("autoLabelModel") != null) {
boolean isAutoLabelEnabled = advancedConfigsRef.get("isAutoLabelEnabled") != null && advancedConfigsRef.get("isAutoLabelEnabled").asBoolean();
Integer autoLabelModelId = advancedConfigsRef.get("autoLabelModel").asInt();
if (isAutoLabelEnabled && advancedConfigsRef.get("autoLabelBrand") != null && advancedConfigsRef.get("autoLabelModel") != null) {
try {
Integer autoLabelModelId = advancedConfigsRef.get("autoLabelModel").asInt();
MachineTemplateDO labelingMachineTemplateDO = machineTemplateMapper.selectById(autoLabelModelId);
try {
MachineTemplateDO labelingMachineDO = MachineTemplateDO.builder()
.machineType(labelingMachineTemplateDO.getMachineType())
.brandId(labelingMachineTemplateDO.getBrandId())
.setting(labelingMachineTemplateDO.getSetting())
.name("开料" + machineName + "-贴标机")
.build();
MachineTemplateDO labelingMachineTemplateDO = machineTemplateMapper.selectById(autoLabelModelId);
machineTemplateMapper.insert(labelingMachineDO);
MachineTemplateDO labelingMachineDO = MachineTemplateDO.builder()
.machineType(labelingMachineTemplateDO.getMachineType())
.brandId(labelingMachineTemplateDO.getBrandId())
.setting(labelingMachineTemplateDO.getSetting())
.name("开料" + machineName + "-贴标机")
.build();
// 创建 ObjectMapper 对象
ObjectMapper mapper = new ObjectMapper();
machineTemplateMapper.insert(labelingMachineDO);
// 将 JSON 字符串解析为 Map
Map map = mapper.readValue(unzipString, Map.class);
// 创建 ObjectMapper 对象
ObjectMapper mapper = new ObjectMapper();
// 修改值
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("advancedConfigsRef");
advancedConfigs.put("autoLabelModel", labelingMachineDO.getId());
// 将 JSON 字符串解析为 Map
Map map = mapper.readValue(unzipString, Map.class);
// 将 Map 转换为 JSON 字符串
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
// 修改值
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("advancedConfigsRef");
advancedConfigs.put("autoLabelModel", labelingMachineDO.getId());
} catch (Exception e) {
// 将 Map 转换为 JSON 字符串
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
throw exception(LABELINGMACHINE_RELATED_DATA_ERROR);
}
} catch (Exception e) {
throw exception(LABELINGMACHINE_RELATED_DATA_ERROR);
}
}
return null;
}
private String handleBandingMachine(String machineName, String machineSetting){
private String handleBandingMachine(String machineName, String machineSetting) {
String unzipString = unzipString(machineSetting);
@@ -554,74 +547,73 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
JsonNode cuttingModuleRef = drillSetting.get("cuttingModuleRef");
if(cuttingModuleRef.get("isDrillEnabled") != null) {
boolean isDrillEnabled = cuttingModuleRef.get("isDrillEnabled").asBoolean();
if (isDrillEnabled && cuttingModuleRef.get("drillBrand") != null && cuttingModuleRef.get("drillModel") != null) {
boolean isDrillEnabled = cuttingModuleRef.get("isDrillEnabled") != null && cuttingModuleRef.get("isDrillEnabled").asBoolean();
Integer drillModelId = cuttingModuleRef.get("drillModel").asInt();
if (isDrillEnabled && cuttingModuleRef.get("drillBrand") != null && cuttingModuleRef.get("drillModel") != null) {
try {
Integer drillModelId = cuttingModuleRef.get("drillModel").asInt();
MachineTemplateDO drillMachineTemplateDO = machineTemplateMapper.selectById(drillModelId);
try {
MachineTemplateDO drillMachineDO = MachineTemplateDO.builder()
.machineType(drillMachineTemplateDO.getMachineType())
.brandId(drillMachineTemplateDO.getBrandId())
.setting(drillMachineTemplateDO.getSetting())
.name("封边" + machineName + "-钻孔机")
.build();
MachineTemplateDO drillMachineTemplateDO = machineTemplateMapper.selectById(drillModelId);
machineTemplateMapper.insert(drillMachineDO);
MachineTemplateDO drillMachineDO = MachineTemplateDO.builder()
.machineType(drillMachineTemplateDO.getMachineType())
.brandId(drillMachineTemplateDO.getBrandId())
.setting(drillMachineTemplateDO.getSetting())
.name("封边" + machineName + "-钻孔机")
.build();
// 创建 ObjectMapper 对象
ObjectMapper mapper = new ObjectMapper();
machineTemplateMapper.insert(drillMachineDO);
// 将 JSON 字符串解析为 Map
Map map = mapper.readValue(unzipString, Map.class);
// 创建 ObjectMapper 对象
ObjectMapper mapper = new ObjectMapper();
// 修改值
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("cuttingModuleRef");
advancedConfigs.put("drillModel", drillMachineDO.getId());
// 将 JSON 字符串解析为 Map
Map map = mapper.readValue(unzipString, Map.class);
// 将 Map 转换为 JSON 字符串
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
// 修改值
Map<String, Object> advancedConfigs = (Map<String, Object>) map.get("cuttingModuleRef");
advancedConfigs.put("drillModel", drillMachineDO.getId());
} catch (Exception e) {
// 将 Map 转换为 JSON 字符串
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
throw exception(DRILLMACHINE_RELATED_DATA_ERROR);
}
} catch (Exception e) {
throw exception(DRILLMACHINE_RELATED_DATA_ERROR);
}
}
return null;
}
private void validateMachineTemplateExists(String name,Integer machineType,Long machineId) {
private void validateMachineTemplateExists(String name, Integer machineType, Long machineId) {
MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectById(machineId);
if(machineTemplateDO == null){
if (machineTemplateDO == null) {
throw exception(MACHINE_TEMPLATE_NOT_EXISTS);
}
MachineTemplateDO machineTemplate = machineTemplateMapper.selectMachineTemplate(name, machineType,machineId);
MachineTemplateDO machineTemplate = machineTemplateMapper.selectMachineTemplate(name, machineType, machineId);
if(machineTemplate != null){
if (machineTemplate != null) {
throw exception(MACHINETEMPLATE_NAME_ERROR);
}
}
private void validateMachineTemplate(String name,Integer machineType) {
private void validateMachineTemplate(String name, Integer machineType) {
MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachineTemplateName(name, machineType);
if(machineTemplateDO != null){
if (machineTemplateDO != null) {
throw exception(MACHINETEMPLATE_NAME_ERROR);
}
@@ -33,7 +33,8 @@
from system_machine_brand smb
left join system_machine_template smt on smb.id = smt.brand_id
where smt.deleted = false and smb.machine_type = #{type}
where smt.deleted = false and smt.is_enabled = true and smt.is_default = true and smb.machine_type = #{type}
</select>