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

This commit is contained in:
lym
2024-06-19 17:44:28 +08:00
24 changed files with 362 additions and 28 deletions
@@ -90,7 +90,7 @@ public class OptimizePlanController {
@GetMapping("/getOrderSource")
@Operation(summary = "获取生产单源数据")
@PreAuthorize("@ss.hasPermission('executor:optimize-plate:create')")
@PreAuthorize("@ss.hasPermission('production:manager-list:calculate')")
public CommonResult<OrderSource> getOrderSource(@Schema(description = "生产单id") @RequestParam(required = false) Long orderId,
@Schema(description = "排单id") @RequestParam(required = false) Long planId,
@Schema(description = "机台Id") @RequestParam("machineId") Long machineId
@@ -37,14 +37,14 @@ public class PlanController {
@PostMapping("/create")
@Operation(summary = "创建排单")
@PreAuthorize("@ss.hasPermission('executor:plan:create')")
@PreAuthorize("@ss.hasPermission('placeorder:create')")
public CommonResult<Long> createPlan(@Validated(CreateGroup.class) @RequestBody PlanSaveReqVO createReqVO) {
return success(planService.createPlan(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新排单")
@PreAuthorize("@ss.hasPermission('executor:plan:update')")
@PreAuthorize("@ss.hasPermission('placeorder:update')")
public CommonResult<Boolean> updatePlan(@Validated(UpdateGroup.class) @RequestBody PlanSaveReqVO updateReqVO) {
planService.updatePlan(updateReqVO);
return success(true);
@@ -53,7 +53,7 @@ public class PlanController {
@DeleteMapping("/delete")
@Operation(summary = "删除排单")
@Parameter(name = "id", description = "排单id", required = true)
@PreAuthorize("@ss.hasPermission('executor:plan:delete')")
@PreAuthorize("@ss.hasPermission('placeorder:delete')")
public CommonResult<Boolean> deletePlan(@RequestParam("id") Long id) {
return success(planService.deletePlan(id));
}
@@ -70,7 +70,7 @@ public class PlanController {
@GetMapping("/get")
@Operation(summary = "获得排单")
@Parameter(name = "id", description = "排单id", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
@PreAuthorize("@ss.hasPermission('placeorder:query')")
public CommonResult<PlanRespVO> getPlan(@RequestParam("id") Long id) {
PlanRespVO plan = planService.getPlan(id);
return success(BeanUtils.toBean(plan, PlanRespVO.class));
@@ -85,14 +85,14 @@ public class PlanController {
@GetMapping("getOrderByPlan")
@Operation(summary = "根据排单获取生产单分页")
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
@PreAuthorize("@ss.hasPermission('placeorder:orderlist')")
public CommonResult<PageResult<OrderRespVO>> getOrderByPlanId(@Valid PlanOrderPageReqVO pageReqVO) {
return success(planService.getOrderByPlanId(pageReqVO));
}
@GetMapping("/page")
@Operation(summary = "获得排单分页")
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
@PreAuthorize("@ss.hasPermission('placeorder:query')")
public CommonResult<PageResult<PlanRespVO>> getPlanPage(@Valid PlanPageReqVO pageReqVO) {
PageResult<PlanRespVO> pageResult = planService.getPlanPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, PlanRespVO.class));
@@ -100,14 +100,14 @@ public class PlanController {
@PostMapping("/setSort")
@Operation(summary = "设置排单优先级")
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
@PreAuthorize("@ss.hasPermission('placeorder:priority')")
public CommonResult<Boolean> setSort(@Valid @NotEmpty(message = "参数不能空") @RequestBody List<SortVO> list) {
return success(planService.setSort(list));
}
@GetMapping("getNotPlanOrderListPage")
@Operation(summary = "获取未排单的板材生产单板材分页列表")
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
@PreAuthorize("@ss.hasPermission('placeorder:query')")
public CommonResult<PageResult<OrderRespVOCopy>> getOrderPage(@Valid OrderPageReqVOCopy pageReqVO) {
return success(planService.getOrderPage(pageReqVO));
}
@@ -1,6 +1,8 @@
package com.cf.imes.module.executor.controller.admin.plan.bo;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.OptimizeRemainPlate;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPartsRespVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.GoodsReqVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateDetialRespVO;
import com.cf.imes.module.executor.dal.dataobject.goods.OptimizeBoardModelDO;
@@ -51,4 +53,12 @@ public class OrderSource {
private List<OrderModelDO> plateModels;
@Schema(description = "生产单配件信息")
private List<PrintOrderPartsRespVO> orderPartsRespVOS;
@Schema(description = "生产单包裹信息")
private List<PrintOrderPackReqVO> orderPackReqVOS;
}
@@ -0,0 +1,33 @@
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 生产单包裹信息")
@Data
public class PrintOrderPackReqVO {
@Schema(description = "生产单id")
private Long orderId;
@Schema(description = "板材ID")
private Long plateId;
@Schema(description = "包裹编号")
private String packNo;
@Schema(description = "包裹ID")
private Long packId;
@Schema(description = "包裹数量")
private Long packNum;
}
@@ -0,0 +1,54 @@
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 标签对应的生产单配件信息")
@Data
public class PrintOrderPartsRespVO {
@Schema(description = "房间名称", requiredMode = Schema.RequiredMode.REQUIRED)
private String roomName;
@Schema(description = "柜体名称", requiredMode = Schema.RequiredMode.REQUIRED)
private String bodyName;
@Schema(description = "配件 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29347")
@ExcelProperty("配件 ID")
private Long id;
@Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
private Long orderId;
@Schema(description = "配件数量", requiredMode = Schema.RequiredMode.REQUIRED)
private Long partsNum;
@Schema(description = "配件名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "晨丰")
private String name;
@Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED)
private String model;
@Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED)
private String spec;
@Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED)
private String brand;
@Schema(description = "厂家", requiredMode = Schema.RequiredMode.REQUIRED)
private String factory;
}
@@ -0,0 +1,61 @@
package com.cf.imes.module.executor.controller.admin.plan.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 排单对应的生产单数据")
@Data
public class PlanOrderRespVO {
@Schema(description = "生产单号,主键")
private Long id;
@Schema(description = "排单ID")
private Long planId;
@Schema(description = "生产单日期")
@NotNull(message = "交付日期不能为空")
private LocalDateTime orderDate;
@Schema(description = "交付日期")
@NotNull(message = "交付日期不能为空")
private LocalDateTime deliveryDate;
@Schema(description = "自定义单号")
private String customOrderNo;
@Schema(description = "客户")
private String customer;
@Schema(description = "客户地址")
private String address;
@Schema(description = "客户电话")
private String phoneNumber;
@Schema(description = "经销商")
private String dealer;
@Schema(description = "经销商电话")
private String dealerPhoneNumber;
@Schema(description = "业务员")
private String salesman;
@Schema(description = "拆单员")
private String splitter;
@Schema(description = "备注")
private String remark;
}
@@ -1,5 +1,6 @@
package com.cf.imes.module.executor.controller.admin.plan.vo;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@@ -53,6 +54,9 @@ public class PlanRespVO {
@ExcelProperty("生产单号")
private String orderNos;
@Schema(description = "排单对应的生产单的信息", requiredMode = Schema.RequiredMode.REQUIRED)
private List<PlanOrderRespVO> orderList;
@Schema(description = "板材信息列表", requiredMode = Schema.RequiredMode.REQUIRED)
private List<PlateInfoVO> plateInfoList;
@@ -21,6 +21,9 @@ public class PlateInfoVO {
@Schema(description = "材质:颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板", requiredMode = Schema.RequiredMode.REQUIRED)
private String material;
@Schema(description = "排单ID", requiredMode = Schema.RequiredMode.REQUIRED)
private Long planId;
@Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED)
private BigDecimal width;
@@ -3,6 +3,8 @@ package com.cf.imes.module.executor.controller.admin.plan.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class PlateResList {
@@ -28,6 +30,16 @@ public class PlateResList {
private String height;
@Schema(description = "小板厚")
private String thickness;
@Schema(description = "面积")
private BigDecimal area;
@Schema(description = "左封边厚度")
private BigDecimal sealLeft;
@Schema(description = "右封边厚度")
private BigDecimal sealRight;
@Schema(description = "上封边厚度")
private BigDecimal sealUp;
@Schema(description = "下封边厚度")
private BigDecimal sealDown;
@Schema(description = "是否异形")
private Boolean isSpecialShaped;
@Schema(description = "是否造型")
@@ -8,23 +8,12 @@ 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.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.cf.imes.framework.common.pojo.PageParam;
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 static com.cf.imes.framework.common.pojo.CommonResult.success;
import com.cf.imes.framework.excel.core.util.ExcelUtils;
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.cf.imes.module.executor.controller.admin.process.vo.*;
import com.cf.imes.module.executor.dal.dataobject.process.OrderProcessDO;
import com.cf.imes.module.executor.service.process.OrderProcessService;
@@ -40,7 +29,7 @@ public class OrderProcessController {
@PostMapping("/create")
@Operation(summary = "创建生产单工序组")
@PreAuthorize("@ss.hasPermission('executor:order-process:create')")
@PreAuthorize("@ss.hasPermission('production:manager-list:putInto')")
public CommonResult<Long> createOrderProcess(@Valid @RequestBody OrderProcessSaveReqVO createReqVO) {
return success(orderProcessService.createOrderProcess(createReqVO));
}
@@ -6,6 +6,7 @@ import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderModuleRe
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlatesDetailRespVO;
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.OptimizeRemainPlate;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailReqVO;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailRespVO;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
@@ -50,4 +51,6 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
void deleteByPlateId(@Param("deletePlateIds") List<Long> deletePlateIds);
List<PrintOrderPackReqVO> selectPackList(@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
}
@@ -9,6 +9,7 @@ import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPartsRespVO;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateGoodsRespVO;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
@@ -84,4 +85,7 @@ public interface OrderPartsMapper extends BaseMapperX<OrderPartsDO> {
}
void updateDeletedById(@Param("bodyId") Long bodyId, @Param("deleted") Integer deleted, @Param("organId") Long organId);
List<PrintOrderPartsRespVO> selectPartList( @Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
}
@@ -5,6 +5,8 @@ import java.util.*;
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.executor.controller.admin.order.vo.order.OrderRespVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.PlanOrderRespVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateInfoVO;
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
import org.apache.ibatis.annotations.Mapper;
@@ -20,4 +22,8 @@ public interface PlanItemMapper extends BaseMapperX<PlanItemDO> {
List<PlateInfoVO> selectGoodsList(@Param("planIds") List<Long> planIds, @Param("organId") Long organId);
List<PlanOrderRespVO> selectOrderList(@Param("planIds") List<Long> planIds, @Param("organId") Long userOrganId);
}
@@ -25,6 +25,8 @@ import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderSource;
import com.cf.imes.module.executor.controller.admin.plan.dto.Material;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.OptimizeRemainPlate;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPartsRespVO;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.SavePlanPlateResultReqVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailVO;
@@ -42,6 +44,7 @@ import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO;
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.orderItem.OrderItemMapper;
import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper;
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
import com.cf.imes.module.executor.dal.mysql.remainplaten.RemainPlateMapper;
@@ -113,6 +116,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
@Resource
private OrderItemMapper orderItemMapper;
@Resource
private OrderPartsMapper orderPartsMapper;
@Override
public List<PlateOptimize> getPlateListByPlanId(Long planId) {
return planMapper.selectPlateListByPlanId(planId,getUserOrganId());
@@ -397,6 +403,12 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
List<OptimizeRemainPlate> optimizeRemainPlates = BeanUtils.toBean(remainPlateDOS, OptimizeRemainPlate.class);
// 查询生产单对应的配件信息
List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId());
// 查询生产单对应的包裹信息
List<PrintOrderPackReqVO> printOrderPackReqVOS = orderItemMapper.selectPackList(orderIds, getUserOrganId());
return OrderSource.builder()
.orderList(orderDOS)
.plan(planDO)
@@ -405,6 +417,8 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
.plateModels(orderModelDOS)
.optimizeBoardModelDOS(optimizeBoardModelDOS)
.optimizeRemainPlates(optimizeRemainPlates)
.orderPartsRespVOS(printOrderPartsRespVOS)
.orderPackReqVOS(printOrderPackReqVOS)
.build();
}
@@ -269,6 +269,10 @@ public class PlanServiceImpl implements PlanService {
List<PlateInfoVO> plateInfoVOS = planItemMapper.selectGoodsList(planIds,getUserOrganId());
// 获取排单对应的生产单的信息
List<PlanOrderRespVO> planOrderRespVOS = planItemMapper.selectOrderList(planIds, getUserOrganId());
PageResult<PlanRespVO> planRespVOPageResult = BeanUtils.toBean(planDOPageResult, PlanRespVO.class);
// planRespVOPageResult.getList().forEach(e -> {
@@ -297,7 +301,12 @@ public class PlanServiceImpl implements PlanService {
.map(CuttingRespDTO::getName)
.findAny()
.orElse(null));
e.setPlateInfoList(plateInfoVOS);
e.setPlateInfoList(plateInfoVOS.stream()
.filter(f -> Objects.equals(f.getPlanId(), e.getId()))
.collect(Collectors.toList()));
e.setOrderList(planOrderRespVOS.stream()
.filter( f-> Objects.equals(f.getPlanId(), e.getId()))
.collect(Collectors.toList()));
});
return planRespVOPageResult;
@@ -456,7 +465,8 @@ public class PlanServiceImpl implements PlanService {
lambdaWrapperX.leftJoin(OrderItemDO.class, OrderItemDO::getOrderId, OrderDO::getId)
.leftJoin(PlanItemDO.class, PlanItemDO::getItemId, OrderItemDO::getId)
.eq(PlanItemDO::getOrganId,getUserOrganId())
.eq(PlanItemDO::getPlanId, pageReqVO.getPlanId());
.eq(PlanItemDO::getPlanId, pageReqVO.getPlanId())
.distinct();
PageResult<OrderDO> pageResult = orderMapper.selectJoinPage(pageReqVO, OrderDO.class, lambdaWrapperX);
return BeanUtils.toBean(pageResult, OrderRespVO.class);
@@ -149,6 +149,42 @@
</delete>
<resultMap id="PackListMap" type="com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO">
<result property="orderId" column="orderId"/>
<result property="plateId" column="plateId"/>
<result property="packId" column="packId"/>
<result property="packNo" column="packNo"/>
<result property="packNum" column="packNum"/>
</resultMap>
<select id="selectPackList"
parameterType="java.lang.Long"
resultMap="PackListMap">
select distinct oi.order_id as orderId,
oi.plate_id as plateId,
op.id as packId,
op.package_no as packNo,
(case when op.status !=0 then count(op.id) end) as packNum
from order_item oi
left join order_package op on oi.order_id = op.order_id and oi.organ_id = op.organ_id
where oi.parts_id = '' and oi.organ_id = #{organId}
and oi.order_id in
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
#{orderIds}
</foreach>
group by oi.order_id,oi.plate_id,op.id,op.package_no;
</select>
@@ -64,6 +64,7 @@
AND a.deleted = #{deleted}
</select>
<update id="updateDeletedById">
UPDATE order_parts
SET deleted = #{deleted}
@@ -72,4 +73,39 @@
WHERE body_id = #{bodyId} AND organ_id = #{organId}
)
</update>
<select id="selectPartList"
resultType="com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPartsRespVO">
select distinct oi.num as partsNum,
ob.name as bodyName,
ob.room_name as roomName,
op.id,
op.spec,
op.brand,
op.factory,
op.model,
op.name,
op.order_id
from order_parts op
join order_item oi on op.id = oi.parts_id and op.organ_id = oi.organ_id
join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
where op.organ_id = #{organId}
and op.order_id in
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
#{orderIds}
</foreach>
</select>
</mapper>
@@ -5,6 +5,7 @@
<resultMap id="GoodsListMap" type="com.cf.imes.module.executor.controller.admin.plan.vo.PlateInfoVO">
<result property="planId" column="planId"/>
<result property="material" column="material"/>
<result property="width" column="width"/>
<result property="height" column="height"/>
@@ -18,6 +19,7 @@
select distinct
opi.plan_id as planId,
og.material as material,
og.width as width,
og.height as height,
@@ -37,7 +39,32 @@
#{ids}
</foreach>
group by material,width,height,thickness,color;
group by planId,material,width,height,thickness,color;
</select>
<select id="selectOrderList"
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlanOrderRespVO">
select distinct
opi.plan_id as planId,
o.*
from order_plan_item opi
join order_item oi on opi.item_id = oi.id and opi.organ_id = oi.organ_id
join orders o on oi.order_id = o.id
where opi.organ_id = #{organId}
and
opi.plan_id in
<foreach collection="planIds" item="ids" open="(" close=")" separator=",">
#{ids}
</foreach>
</select>
</mapper>
@@ -29,7 +29,7 @@
<select id="selectPlateByPlanId"
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList">
select a.order_id, a.plate_no , a.name as plateName,a.is_special_shaped,a.is_sculpt, e.material, e.color, a.width, a.height, a.thickness, b.room_id, b.body_id
select a.order_id, a.plate_no , a.name as plateName,a.is_special_shaped,a.is_sculpt,a.area,a.seal_left,a.seal_right,a.seal_up,a.seal_down, e.material, e.color, a.width, a.height, a.thickness, b.room_id, b.body_id
from order_plate a
LEFT JOIN order_item b ON a.id = b.plate_id AND a.order_id = b.order_id and a.organ_id = b.organ_id
LEFT JOIN order_goods e ON e.id = a.goods_id AND e.order_id = a.order_id and e.organ_id = a.organ_id