排单Bug修改-生产工序查询SQL增加组织ID

This commit is contained in:
liuzhaotian
2024-06-12 10:49:26 +08:00
parent f2c4b1f575
commit 40b78e6fcd
19 changed files with 141 additions and 180 deletions
@@ -117,4 +117,15 @@ public class SecurityFrameworkUtils {
return authenticationToken;
}
/**
* 获取当前用户的组织ID
*
*/
public static Long getUserOrganId(){
return SecurityFrameworkUtils.getLoginUser().getOrganId();
}
}
@@ -49,10 +49,10 @@ public class PlanSaveReqVO {
/*@Schema(description = "板件id列表")
private List<Long> plateIds;*/
@Schema(description = "生产单id与商品id 列表")
@Schema(description = "生产单id与商品id 列表",requiredMode = Schema.RequiredMode.REQUIRED)
private List<Item> itemList;
@Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
@Schema(description = "备注")
private String remark;
@Schema(description = "生产操作人", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -66,10 +66,9 @@ import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConsta
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.UNKNOWN;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cf.imes.framework.organ.core.context.OrganContextHolder.getOrganId;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_NOT_EXISTS;
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLAN_NOT_EXISTS;
import static com.cf.imes.module.executor.util.OrganIdUtils.getUserOrganId;
import org.springframework.transaction.annotation.Transactional;
/**
@@ -416,28 +415,28 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
public void saveOptimizationResults(SavePlanPlateResultReqVO req) {
// 判断当前的大板数据是否已经优化,有优化,更新,没有,新增
if (req.getOptimizeBoardModelDOS().get(0).getIsOptimized().equals(true)) {
try {
// 更新大板的优化数据
BulkResponse bulkResponse = esDocumentService.bulkUpdate(ORDER_REMAIN_PLATE_MODEL, req.getOptimizeBoardModelDOS());
boolean errors = bulkResponse.errors();
if (errors) {
log.error(bulkResponse.items().toString());
throw new ServiceException(500, "未知异常");
}
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
throw new RuntimeException(e);
}
}
else {
// // 判断当前的大板数据是否已经优化,有优化,更新,没有,新增
// if (req.getOptimizeBoardModelDOS().get(0).getIsOptimized().equals(true)) {
// try {
// // 更新大板的优化数据
// BulkResponse bulkResponse = esDocumentService.bulkUpdate(ORDER_REMAIN_PLATE_MODEL, req.getOptimizeBoardModelDOS());
// boolean errors = bulkResponse.errors();
// if (errors) {
// log.error(bulkResponse.items().toString());
// throw new ServiceException(500, "未知异常");
// }
// } catch (Exception e) {
// e.printStackTrace();
// log.error(e.getMessage());
// throw new RuntimeException(e);
// }
// }
// else {
// 保存优化后的大板数据
batchSaveBoardModel(req.getOptimizeBoardModelDOS());
}
// }
if (CollectionUtil.isNotEmpty(req.getOptimizeRemainPlates())) {
@@ -101,7 +101,7 @@ public class PlanServiceImpl implements PlanService {
plan.setIsPay(Boolean.FALSE);
plan.setSort(sort);
plan.setPlanNo(identifierGenerator.nextId(null).toString());
String orderNos = itemList.stream().map(i -> i.getOrderId()).collect(Collectors.toList()).toString();
String orderNos = itemList.stream().map(i -> i.getOrderId()).distinct().collect(Collectors.toList()).toString();
plan.setOrderNos(orderNos);
planMapper.insert(plan);
Long planId = plan.getId();
@@ -69,7 +69,7 @@ public class OrderProcessServiceImpl implements OrderProcessService {
private OrderBodyMapper orderBodyMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@Transactional
public Long createOrderProcess(OrderProcessSaveReqVO createReqVO) {
// 当生产不为删除时,校验生产单存在
if (orderMapper.selectOrder(createReqVO.getOrderId(), SecurityFrameworkUtils.getLoginUser().getOrganId()).isEmpty()) {
@@ -113,7 +113,7 @@
from order_goods a
left join order_plate b on a.goods_id = b.goods_id
left join order_item c on c.order_id = b.order_id
left join order_remain_plate d on a.goods_id = d.goods_id and d.plan_id = c.plan_id
left join order_remain_plate d on a.goods_id = d.goods_id and d.plan_id = c.plan_id
where c.plan_id = #{planId}
GROUP BY a.id, d.id
@@ -7,7 +7,7 @@
select a.id as plateId, a.name, a.width, a.height, a.thickness, a.area,
b.custom_order_no, b.customer, b.address, b.remark, b.id as orderId,
c.goods_name, c.material, c.color, c.goods_id,oi.num,a.is_special_shaped as specialShaped,a.is_sculpt as profiling
c.goods_name, c.material, c.color, a.goods_id,oi.num,a.is_special_shaped as specialShaped,a.is_sculpt as profiling
from order_plate a
LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id
@@ -60,6 +60,14 @@ public class PackController {
}
@GetMapping("/getOrderPlate")
@Operation(summary = "查看生产订单对应的板材信息")
@Parameter(name = "orderId", description = "生产单Id", required = true)
public CommonResult<List<PlateDetailsRespVO>> getOrderPlateList(@Valid @RequestParam("orderId") Long orderId) {
return success(packService.getOrderPlateList(orderId));
}
@GetMapping("/getOrderPack")
@@ -86,15 +94,7 @@ public class PackController {
// @GetMapping("/getOrderPlate")
// @Operation(summary = "查看生产订单对应的板材信息")
// @Parameter(name = "orderId", description = "生产单Id", required = true)
// @PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<OrderPlateDetailsRespVO> getOrderPlateList(@Valid @RequestParam("orderId") Long orderId) {
return success(packService.getOrderPlateList(orderId));
}
@@ -62,7 +62,6 @@ public class PackRespVO {
@Schema(description = "已打包数-包裹数", requiredMode = Schema.RequiredMode.REQUIRED)
private Long packCount;
@@ -76,16 +75,13 @@ public class PackRespVO {
@Schema(description = "待处理量", requiredMode = Schema.RequiredMode.REQUIRED)
private Long pendingNum;
// @Schema(description = "当前包裹的板件数", requiredMode = Schema.RequiredMode.REQUIRED)
// private Long currentPackNum;
@Schema(description = "生产单对应的板件信息", requiredMode = Schema.RequiredMode.REQUIRED)
List<PlateDetailsRespVO> plateDetailsRespVO;
// @Schema(description = "生产单对应的板件信息", requiredMode = Schema.RequiredMode.REQUIRED)
// List<PlateDetailsRespVO> plateDetailsRespVO;
}
@@ -61,15 +61,15 @@ public class PlateDetailsRespVO {
@Schema(description = "纹路", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("纹路")
private String texture;
private Integer texture;
@Schema(description = "异形", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("异形")
private String specialShaped;
private Boolean specialShaped;
@Schema(description = "造型", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("造型")
private String profiling;
private Boolean profiling;
@Schema(description = "排孔", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("排孔")
@@ -4,14 +4,10 @@ package com.cf.imes.module.manage.dal.mysql.pack;
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.OtherPackReqVO;
import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO;
import com.cf.imes.module.manage.controller.admin.pack.vo.PackageDetailsReqVO;
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO;
import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
import com.cf.imes.module.manage.dal.dataobject.query.OrderPartsNDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -29,7 +25,7 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
// }
List<OrderPackageDO> selectByOrderNo(PackageDetailsReqVO reqVO);
List<OrderPackageDO> selectByOrderNo(@Param("reqVO") PackageDetailsReqVO reqVO,@Param("organId") Long organId);
default OrderPackageDO selectByPackNo(String packNo) {
@@ -29,7 +29,7 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
List<OrderPlateRespVO> selectPlateList(PlatePageVO pageReqVO);
List<PlateDetailsRespVO> selectOrderPlateList(Long orderNo);
List<PlateDetailsRespVO> selectOrderPlateList(@Param("orderNo") Long orderNo,@Param("organId") Long organId);
@@ -1,6 +1,7 @@
package com.cf.imes.module.manage.dal.mysql.query;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -15,6 +16,8 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
@Mapper
public interface ProductionStatusMapper extends BaseMapperX<OrderDO> {
@@ -41,8 +44,10 @@ public interface ProductionStatusMapper extends BaseMapperX<OrderDO> {
PrintOrderRespVO selectPrintOrder(Long orderNo);
default List<OrderDO> selectPackPage(PackPageReqVO pageReqVO) {
default List<OrderDO> selectPackPage(PackPageReqVO pageReqVO,Long organId) {
return selectList(new LambdaQueryWrapperX<OrderDO>()
.eq(OrderDO::getOrganId,organId)
.eqIfPresent(OrderDO::getOrganId,getUserOrganId())
.eqIfPresent(OrderDO::getId, pageReqVO.getOrderNo())
.eqIfPresent(OrderDO::getCustomOrderNo, pageReqVO.getCustomOrderNo())
.likeIfPresent(OrderDO::getCustomer, pageReqVO.getCustomer())
@@ -51,7 +56,7 @@ public interface ProductionStatusMapper extends BaseMapperX<OrderDO> {
.orderByDesc(OrderDO::getCreateTime));
}
List<PackRespVO> selectOrderPlate(@Param("collect") List<Long> collect);
IPage<PackRespVO> selectOrderPlate( @Param("page") IPage page, @Param("collect") List<Long> collect, @Param("organId") Long organId);
@@ -21,7 +21,7 @@ public interface PackService {
// 查看生产订单对应的板材信息
OrderPlateDetailsRespVO getOrderPlateList(Long orderId);
List<PlateDetailsRespVO> getOrderPlateList(Long orderId);
@@ -2,6 +2,9 @@ package com.cf.imes.module.manage.service.pack;
import cn.hutool.core.collection.CollectionUtil;
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.enums.OrderPackageTypeEnum;
import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil;
@@ -34,6 +37,7 @@ import java.util.List;
import java.util.stream.Collectors;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
@Service
@@ -61,50 +65,58 @@ public class PackServiceImpl implements PackService {
@Override
public PageResult<PackRespVO> getPackPage(PackPageReqVO pageReqVO) {
// PageDTO<PackRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
PageDTO<PackRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
// 根据生产状态查询生产单号
List<Long> collect = productionStatusMapper.selectPackPage(pageReqVO).stream().map(OrderDO::getId).collect(Collectors.toList());
List<Long> collect = productionStatusMapper.selectPackPage(pageReqVO,getUserOrganId()).stream().map(OrderDO::getId).collect(Collectors.toList());
PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
// 查询打包首页分页数据信息,包裹数,板件数量信息
List<PackRespVO> packRespVOS = productionStatusMapper.selectOrderPlate(collect);
IPage<PackRespVO> packRespVOS = productionStatusMapper.selectOrderPlate(page,collect,getUserOrganId());
PageInfo<PackRespVO> pageInfo = new PageInfo<>(packRespVOS);
for (PackRespVO record : packRespVOS.getRecords()) {
// 转换成 PageResult 分页类型
PageResult<PackRespVO> priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
// 待处理量
record.setPendingNum(record.getTotalPieceCount() - record.getPackPieceCount());
}
if (CollectionUtil.isEmpty(packRespVOS.getRecords())) {
return new PageResult<>();
}
return priceRateReqVOPageResult;
return new PageResult<>(packRespVOS.getRecords(), packRespVOS.getTotal());
}
// 查看生产订单对应的板材信息
@Override
public List<PlateDetailsRespVO> getOrderPlateList(Long orderId) {
// 查询需要返回的其他信息
// OrderPlateDetailsRespVO orderPlateDetailsRespVO = orderItemMapper.selectOrderPlateDetails(orderId);
// orderPlateDetailsRespVO.setPendingNum(orderPlateDetailsRespVO.getPlateNum() - orderPlateDetailsRespVO.getPlateProcessedNum());
// 查询订单对应的板件信息
List<PlateDetailsRespVO> plateDetailsRespVOS = orderItemMapper.selectOrderPlateList(orderId,getUserOrganId());
return plateDetailsRespVOS;
}
// 查看生产订单对应的包裹信息
@Override
public List<OrderPackageDO> getOrderPack(PackageDetailsReqVO reqVO) {
return orderPackageMapper.selectByOrderNo(reqVO);
return orderPackageMapper.selectByOrderNo(reqVO,getUserOrganId());
}
// 查看生产订单对应的板材信息
@Override
public OrderPlateDetailsRespVO getOrderPlateList(Long orderId) {
// 查询需要返回的其他信息
OrderPlateDetailsRespVO orderPlateDetailsRespVO = orderItemMapper.selectOrderPlateDetails(orderId);
orderPlateDetailsRespVO.setPendingNum(orderPlateDetailsRespVO.getPlateNum() - orderPlateDetailsRespVO.getPlateProcessedNum());
// 查询订单对应的板件信息
List<PlateDetailsRespVO> plateDetailsRespVOS = orderItemMapper.selectOrderPlateList(orderId);
return orderPlateDetailsRespVO.setPlateDetailsRespVO(plateDetailsRespVOS);
}
// 查看板材列表分页
@@ -113,7 +125,7 @@ public class PackServiceImpl implements PackService {
PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
List<PlateDetailsRespVO> plateDetailsRespVOS = orderItemMapper.selectOrderPlateList(pageReqVO.getOrderNo());
List<PlateDetailsRespVO> plateDetailsRespVOS = orderItemMapper.selectOrderPlateList(pageReqVO.getOrderNo(),getUserOrganId());
PageInfo<PlateDetailsRespVO> pageInfo = new PageInfo<>(plateDetailsRespVOS);
PageResult<PlateDetailsRespVO> priceRateReqVOPageResult = PageHelperUtil.convertToPageResult(pageInfo);
@@ -137,6 +149,7 @@ public class PackServiceImpl implements PackService {
// 更新配件
@Override
@Transactional(rollbackFor = Exception.class)
public void updateParts(OrderPartsReqVO reqVO) {
// 生产明细表新增的配件ID
@@ -186,6 +199,7 @@ public class PackServiceImpl implements PackService {
// 新增包裹
@Override
@Transactional(rollbackFor = Exception.class)
public OrderPackageDO insertPack(OrderPackReqVO packageVO) {
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatus(packageVO.getOrderId());
@@ -227,6 +241,7 @@ public class PackServiceImpl implements PackService {
// 更新包裹
@Override
@Transactional(rollbackFor = Exception.class)
public OrderPackageDO updatePack(OrderPackReqVO packageVO) {
@@ -272,6 +287,7 @@ public class PackServiceImpl implements PackService {
// 删除包裹及其关联的包裹信息(删除全部)
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteOrderPack(PackReqVO reqVO) {
// 判断包裹的类型是否为其他类型,如果是,则删除其包裹信息
@@ -290,6 +306,7 @@ public class PackServiceImpl implements PackService {
// 新增外部配件包裹表
@Override
@Transactional(rollbackFor = Exception.class)
public OrderPackageDO addNewOtherPack(OtherPackReqVO reqVO) {
// 判断配件名称是否重复
@@ -337,6 +354,7 @@ public class PackServiceImpl implements PackService {
// 新增外部配件
@Override
@Transactional(rollbackFor = Exception.class)
public OrderPartsRespVO addNewOtherParts(OtherPackReqVO reqVO) {
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackNo(reqVO.getPackNo());
@@ -370,6 +388,7 @@ public class PackServiceImpl implements PackService {
// 删除配件包裹中的配件(删除某一个)
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteOtherParts(DeleteOtherPartsReqVO reqVO) {
// 更新配件表中配件为逻辑删除
@@ -383,6 +402,7 @@ public class PackServiceImpl implements PackService {
// 新增配件-即新增一个包裹
@Override
@Transactional(rollbackFor = Exception.class)
public OrderPackageDO addNewPartsPack(OrderPackReqVO reqVO) {
OrderPackageDO orderPackageDO = new OrderPackageDO();
@@ -1,6 +1,7 @@
package com.cf.imes.module.manage.service.query;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.module.manage.controller.admin.pack.vo.OrderPartsReqVO;
@@ -161,6 +162,7 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
@Override
public PageResult<PackageDetailsRespVO> queryPackageDetails(PackDetailsReqVO reqVO) {
PageDTO<PackageDetailsRespVO> page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize());
// 查看配件包裹
if(reqVO.getType() == 1 || reqVO.getType() == 2){
@@ -101,37 +101,35 @@
<select id="selectByOrderNo"
resultType="com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO"
parameterType="com.cf.imes.module.manage.controller.admin.pack.vo.PackageDetailsReqVO">
parameterType="map">
select distinct
opn.*
from order_package_n opn
join order_item oi on opn.id = oi.package_id
left join order_plate op on oi.plate_id = op.id
join order_item oi on opn.id = oi.package_id and opn.organ_id = oi.organ_id
left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
<where>
<if test="orderId !=null">
and opn.order_no = #{orderId}
<if test="reqVO.orderId !=null">
and opn.order_no = #{reqVO.orderId}
</if>
<if test="plateNo !=null ">
and op.plate_no = #{plateNo}
<if test="reqVO.plateNo !=null ">
and op.plate_no = #{reqVO.plateNo}
</if>
<if test="packStatus !=null ">
and opn.status= #{packStatus}
<if test="reqVO.packStatus !=null ">
and opn.status= #{reqVO.packStatus}
</if>
<if test="packageNo !=null and packageNo != '' ">
and opn.package_no= #{packageNo}
<if test="reqVO.packageNo !=null and reqVO.packageNo != '' ">
and opn.package_no= #{reqVO.packageNo}
</if>
and opn.organ_id = #{organId}
</where>
-- where opn.order_no and opn.package_no and opn.status and oi.plate_id
</select>
@@ -137,26 +137,26 @@
ob.name as bodyName,
op.id as plateId,
op.name as plateName,
p.material as plateMaterial,
p.color as plateColor,
p.height as plateHeight,
p.width as plateWidth,
p.thickness as plateThickness,
ogs.material as plateMaterial,
ogs.color as plateColor,
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,
CASE WHEN op.unregular_point_count = 0 THEN '否' ELSE '是' END AS specialShaped,
CASE WHEN front_model_count = 0 or op.back_hole_count or op.side_hole_count THEN '否' ELSE '是' END AS profiling,
CASE WHEN front_hole_count = 0 or op.back_model_count THEN '否' ELSE '是' END AS rowHole
CASE WHEN op.front_hole_count = 0 or op.back_model_count = 0 or op.side_hole_count = 0 THEN false ELSE true END AS rowHole
from order_item oi
join order_plate op on oi.plate_id = op.id
join plate p on op.goods_id = p.goods_id
join order_body ob on oi.body_id = ob.id
join order_group og on ob.id = og.body_id
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
join order_group og on ob.id = og.body_id and ob.organ_id = og.organ_id
where
oi.order_id =#{orderNo}
oi.order_id = #{orderNo} and oi.organ_id = #{organId}
</select>
@@ -47,60 +47,16 @@
<result property="createTime" column="createTime"/>
<result property="packId" column="packId"/>
<result property="packCount" column="packNum"/>
<result property="totalPieceCount" column="plateNum"/>
<result property="packPieceCount" column="plateProcessedNum"/>
<result property="packCount" column="packCount"/>
<result property="totalPieceCount" column="totalPieceCount"/>
<result property="packPieceCount" column="packPieceCount"/>
<collection property="plateDetailsRespVO" ofType="com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO">
<result property="roomId" column="roomId"/>
<result property="bodyId" column="bodyId"/>
<result property="roomName" column="roomName"/>
<result property="cabinetName" column="bodyName"/>
<result property="plateNo" column="plateId"/>
<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"/>
<result property="processGroup" column="name"/>
</collection>
</resultMap>
<select id="selectOrderPlate"
parameterType="java.util.List"
resultMap="PackMap">
<!-- SELECT-->
<!-- oi.num as num,-->
<!-- o.id as orderNo,-->
<!-- o.custom_order_no as customOrderNo,-->
<!-- o.dealer as dealer,-->
<!-- o.create_time as createTime,-->
<!-- o.delivery_date as deliveryDate,-->
<!-- o.customer as customer,-->
<!-- o.phone_number as phoneNumber,-->
<!-- o.address as address,-->
<!-- o.salesman as salesman,-->
<!-- o.splitter as splitter,-->
<!-- o.status as status-->
<!-- FROM `order` o-->
<!-- join order_item oi on o.id = oi.order_id-->
<!-- WHERE o.id in-->
<!-- <foreach item="id" collection="collect" open="(" separator="," close=")">-->
<!-- #{id}-->
<!-- </foreach>-->
<!-- group by num,orderNo,customOrderNo,dealer,createTime,deliveryDate,customer,phoneNumber,address,salesman,splitter,status;-->
SELECT distinct
o.id as orderNo,
@@ -118,47 +74,25 @@
count(distinct
case
when oi.package_id!=0 then oi.package_id end
) as packNum,
) as packCount,
count(distinct case
when oi.package_id !=0 and oi.parts_id = 0 then oi.plate_id end )as plateProcessedNum,
when oi.package_id !=0 and oi.parts_id = 0 then oi.plate_id end )as packPieceCount,
count(distinct
case
when oi.plate_id !=0 then oi.plate_id end
)as plateNum,
ob.room_id as roomId,
ob.id as bodyId,
og.name as name,
ob.room_name as roomName,
ob.name as bodyName,
op.name as plateName,
ogs.material as plateMaterial,
ogs.color as plateColor,
ogs.height as plateHeight,
ogs.width as plateWidth,
ogs.thickness as plateThickness,
op.area as plateArea,
op.texture as texture ,
op.remark as remark,
CASE WHEN op.unregular_point_count = 0 THEN '否' ELSE '是' END AS specialShaped,
CASE WHEN front_model_count = 0 or op.back_hole_count or op.side_hole_count THEN '否' ELSE '是' END AS profiling,
CASE WHEN front_hole_count = 0 or op.back_model_count THEN '否' ELSE '是' END AS rowHole
)as totalPieceCount
FROM `order` o
join order_item oi on o.id = oi.order_id
join order_plate op on oi.plate_id = op.id
join order_goods ogs on op.goods_id = ogs.id
join order_body ob on oi.body_id = ob.id
join order_group og on ob.id = og.body_id
join order_item oi on o.id = oi.order_id and o.organ_id = oi.organ_id
WHERE o.id in
WHERE
o.organ_id = #{organId} and
o.id in
<foreach item="id" collection="collect" open="(" separator="," close=")">
#{id}
</foreach>
group by orderNo,op.id,oi.package_id,name,roomId,bodyId,roomName,bodyName,plateName,plateMaterial,plateColor,plateHeight,plateWidth,plateThickness,plateArea,texture,remark;
group by orderNo,customOrderNo,dealer,createTime,deliveryDate,customer,phoneNumber,address,salesman,splitter,status,packId;
</select>