打包接口查询性能优化

This commit is contained in:
liuzhaotian
2024-09-11 17:16:19 +08:00
parent 406105ea0f
commit 9beaa203e0
16 changed files with 278 additions and 517 deletions
@@ -105,22 +105,6 @@ public class PackController {
// @GetMapping("/export")
// @Operation(summary = "导出缺板")
// @PreAuthorize("@ss.hasPermission('manage:pack:export')")
// @OperateLog(type = EXPORT)
// public void exportPlateExcel(@Valid OrderPartsReqVO pageReqVO,
// HttpServletResponse response) throws IOException {
// pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
// List<PlateDetailsRespVO> list = productionStatusService.getMissingBoard(pageReqVO).getList();
// // 导出 Excel
// ExcelUtils.write(response, "缺板信息表.xlsx", "数据", PlateDetailsRespVO.class, list);
//
// }
@GetMapping("/getParts")
@Operation(summary = "查看配件列表")
@@ -202,8 +186,7 @@ public class PackController {
// todo 是否使用和使用在什么地方带确认
@GetMapping("/print")
@Operation(summary = "包裹订单打印")
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
@@ -11,6 +11,9 @@ import lombok.ToString;
public class DeleteOtherPartsReqVO {
@Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
private Long orderId;
@Schema(description = "包裹Id", requiredMode = Schema.RequiredMode.REQUIRED)
private Long packageId;
@@ -1,7 +1,6 @@
package com.cf.imes.module.manage.controller.admin.pack.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
@@ -11,6 +10,9 @@ import lombok.ToString;
@ToString(callSuper = true)
public class PackReqVO {
@Schema(description = "生产单ID", requiredMode = Schema.RequiredMode.REQUIRED)
private Long orderId;
@Schema(description = "包裹ID", requiredMode = Schema.RequiredMode.REQUIRED)
private Long packageId;
@@ -82,11 +82,12 @@ public class PackRespVO {
private Long totalPieceCount;
@Schema(description = "待处理量")
private Long pendingNum;
@Schema(description = "生产单对应的板材ID")
private List<Long> plateId;
// @Schema(description = "生产单对应的板件信息", requiredMode = Schema.RequiredMode.REQUIRED)
// List<PlateDetailsRespVO> plateDetailsRespVO;
@@ -2,17 +2,10 @@ package com.cf.imes.module.manage.controller.admin.query;
import com.cf.imes.framework.common.pojo.CommonResult;
import com.cf.imes.framework.common.pojo.PageParam;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.excel.core.util.ExcelUtils;
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
import com.cf.imes.module.manage.controller.admin.pack.vo.OrderPartsReqVO;
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
import com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackagePageReqVO;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.PrintOrderRespVO;
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.*;
import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRatePageReqVO;
@@ -30,14 +23,10 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
import static com.cf.imes.framework.common.pojo.CommonResult.success;
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 生产查询")
@RestController
@@ -148,18 +137,6 @@ public class ProductionStatusController {
// @GetMapping("/queryPackageDetails")
// @Operation(summary = "查看包裹详情分页")
// @Parameter(name = "packId", description = "包裹Id", required = true)
// @PreAuthorize("@ss.hasPermission('manage:query:query')")
public CommonResult<List<PackageDetailsRespVO>> queryPackageDetails(@Valid @RequestParam("packId") Long packId){
return null;
// return CommonResult.success(productionStatusService.queryPackageDetails(packId));
}
@@ -177,20 +154,6 @@ public class ProductionStatusController {
// @GetMapping("/export")
// @Operation(summary = "导出缺板")
// @PreAuthorize("@ss.hasPermission('manage:query:export')")
// @OperateLog(type = EXPORT)
// public void exportPlateExcel(@Valid OrderPartsReqVO pageReqVO,
// HttpServletResponse response) throws IOException {
// pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
// List<PlateDetailsRespVO> list = productionStatusService.getMissingBoard(pageReqVO).getList();
// // 导出 Excel
// ExcelUtils.write(response, "缺板信息表.xls", "数据", PlateDetailsRespVO.class, list);
//
// }
}
@@ -54,18 +54,20 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
default OrderPackageDO selectByPackId(Long packId,Long organId) {
return selectOne(new LambdaQueryWrapperX<OrderPackageDO>()
.eq(OrderPackageDO::getOrganId, organId)
.eq(OrderPackageDO::getDeleted,false)
.eqIfPresent(OrderPackageDO::getId, packId));
}
void updateParts(@Param("packageId") Long packageId, @Param("packageNo") Long packageNo);
void updateParts(@Param("packageId") Long packageId,@Param("orderId") Long orderId,@Param("organId") Long organId);
default List<OrderPackageDO> selectPackStatus(Long orderId,Long organId) {
return selectList(new LambdaQueryWrapperX<OrderPackageDO>()
.eq(OrderPackageDO::getOrganId,organId)
.eq(OrderPackageDO::getDeleted,false)
.eqIfPresent(OrderPackageDO::getOrderId, orderId));
}
@@ -73,6 +75,7 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
default List<OrderPackageDO> selectPackList(Long orderId,Long organId) {
return selectList(new LambdaQueryWrapperX<OrderPackageDO>()
.eq(OrderPackageDO::getOrganId,organId)
.eq(OrderPackageDO::getDeleted,false)
.eqIfPresent(OrderPackageDO::getOrderId, orderId)
.eqIfPresent(OrderPackageDO::getStatus, OrderPackageStatusEnum.UNPACKED.getStatus()));
}
@@ -3,6 +3,7 @@ package com.cf.imes.module.manage.dal.mysql.plate;
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.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;
@@ -45,4 +46,6 @@ public interface OrderPlateMapper extends BaseMapperX<OrderPlateDO> {
.likeIfPresent(OrderPlateDO::getPlateNo, plateNo.toString())
.select(OrderPlateDO::getId));
}
List<PackRespVO> selectPlateNum(@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
}
@@ -3,8 +3,6 @@ package com.cf.imes.module.manage.dal.mysql.query;
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.OrderPlateDetailsRespVO;
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.process.vo.PlateDetails;
import com.cf.imes.module.manage.controller.admin.process.vo.ProcessPlateReqVO;
@@ -39,53 +37,47 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
void deleteOrderPack(@Param("packId") Long packId);
void deleteOrderPack(@Param("packId") Long packId,@Param("orderId") Long orderId,@Param("organId") Long organId);
void deleteOtherParts(@Param("partsId") Long partsId);
void deleteOtherParts(@Param("partsId") Long partsId,@Param("orderId") Long orderId,@Param("organId") Long organId);
void insertPackId(@Param("plateIdList") List<Long> plateIdList, @Param("packId") Long packId);
void insertPackId(@Param("plateIdList") List<Long> plateIdList, @Param("packId") Long packId,@Param("orderId") Long orderId,@Param("organId") Long organId);
void deletePackId(@Param("deletePlateIdList") List<Long> deletePlateIdList,@Param("packId") Long packId);
void deletePackId(@Param("deletePlateIdList") List<Long> deletePlateIdList,@Param("packId") Long packId,@Param("orderId") Long orderId,@Param("organId") Long organId);
void insertPartsId(@Param("packId") Long packId, @Param("addPartsIdList") List<Long> addPartsIdList);
String selectBodyName(@Param("plateId") Long plateId);
void insertPartsId(@Param("packId") Long packId, @Param("addPartsIdList") List<Long> addPartsIdList,@Param("orderId") Long orderId,@Param("organId") Long organId);
List<PlateDetails> selectByOrderId(@Param("reqVO") ProcessPlateReqVO reqVO, @Param("organId") Long organId );
OrderPlateDetailsRespVO selectOrderPlateDetails(@Param("orderId") Long orderId);
void insertParts(@Param("addPartsList") List<Long> addPartsList, @Param("packId")Long packId, @Param("orderId") Long orderId,@Param("organId") Long organId);
void insertParts(@Param("addPartsList") List<Long> addPartsList, @Param("packId")Long packId, @Param("orderNo") Long orderNo);
void deletePartsList(@Param("deletePartsList")List<Long> deletePartsList,@Param("packId") Long packId,@Param("orderNo") Long orderNo);
void deletePartsList(@Param("deletePartsList")List<Long> deletePartsList,@Param("packId") Long packId,@Param("orderId") Long orderId,@Param("organId") Long organId);
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 organId) {
default List<OrderItemDO> selectPackList(Long packId,Long orderId ,Long organId) {
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
.eq(OrderItemDO::getOrganId, organId)
.eqIfPresent(OrderItemDO::getOrderId,orderId)
.eqIfPresent(OrderItemDO::getPackageId, packId));
}
void deleteParts(@Param("packageId") Long packageId, @Param("partsIds") List<Long> partsIds);
void deleteParts(@Param("packageId") Long packageId,@Param("orderId") Long orderId ,@Param("partsIds") List<Long> partsIds,@Param("organId") Long organId);
void updateParts(@Param("partsId") Long partsId,@Param("packageId") Long packageId);
void updateParts(@Param("partsId") Long partsId,@Param("packageId") Long packageId,@Param("orderId") Long orderId,@Param("organId") Long organId);
default List<OrderItemDO> selectPackPlateList(Long orderId, Long organId) {
@@ -95,8 +87,6 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
}
List<PackRespVO> selectPlateNum(@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
default List<OrderItemDO> selectPartsList(Long orderId, Long organId) {
@@ -2,13 +2,9 @@ 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;
import com.cf.imes.module.manage.controller.admin.pack.vo.OrderPartsRespVO;
import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlatePageReqVO;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO;
import com.cf.imes.module.manage.dal.dataobject.plate.PlateDO;
import com.cf.imes.module.manage.dal.dataobject.query.OrderPartsNDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -26,16 +22,9 @@ public interface OrderPartsMapper extends BaseMapperX<OrderPartsNDO> {
void deleteOrderParts(@Param("partsIds") List<Long> partsIds);
void deleteOrderParts(@Param("partsIds") List<Long> partsIds,@Param("orderId") Long orderId,@Param("organId") Long organId);
default OrderPartsNDO selectOneParts(String otherPartsName,Long organId) {
return selectOne(new LambdaQueryWrapperX<OrderPartsNDO>()
.eq(OrderPartsNDO::getOrganId,organId)
.eqIfPresent(OrderPartsNDO::getName,otherPartsName));
}
void updateParts(@Param("partsId") Long partsId);
void updateParts(@Param("partsId") Long partsId,@Param("orderId") Long orderId,@Param("organId") Long organId);
}
@@ -26,7 +26,6 @@ import com.cf.imes.module.manage.dal.mysql.pack.OrderBodyMapper;
import com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper;
import com.cf.imes.module.manage.dal.mysql.pack.OrderPrepackagedMapper;
import com.cf.imes.module.manage.dal.mysql.plate.OrderPlateMapper;
import com.cf.imes.module.manage.dal.mysql.plate.PlateMapper;
import com.cf.imes.module.manage.dal.mysql.process.OrdersMapper;
import com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper;
import com.cf.imes.module.manage.dal.mysql.query.OrderPartsMapper;
@@ -78,9 +77,6 @@ public class PackServiceImpl implements PackService {
@Resource
private OrdersMapper ordersMapper;
@Resource
private PlateMapper plateMapper;
@Resource
private SnowflakeIdWorker3rd idWorker;
@@ -105,18 +101,20 @@ public class PackServiceImpl implements PackService {
IPage<PackRespVO> packRespVOS = new PageDTO<>();
if(pageReqVO.getIsUp() != null){
if (pageReqVO.getIsUp() != null) {
OrderDO order = ordersMapper.selectById(pageReqVO.getOrderId());
// 判断是否为空
// AssertUtils.notEmpty(order,ORDER_DATE_ERROR);
List<PackRespVO> packRespVOList = pageReqVO.getIsUp() ?
ordersMapper.selectOrderIds(order.getCreateTime().toString(), getUserOrganId(),order.getId()) :
ordersMapper.selectOrderIds(order.getCreateTime().toString(), getUserOrganId(), order.getId()) :
ordersMapper.selectOrderIdsFalse(order.getCreateTime().toString(), getUserOrganId(),order.getId());
ordersMapper.selectOrderIdsFalse(order.getCreateTime().toString(), getUserOrganId(), order.getId());
if(packRespVOList.isEmpty()){
throw exception(NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE, pageReqVO.getIsUp() ?"" : "最后");
if (packRespVOList.isEmpty()) {
throw exception(NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE, pageReqVO.getIsUp() ? "" : "最后");
}
packRespVOS.setRecords(packRespVOList);
@@ -125,7 +123,8 @@ public class PackServiceImpl implements PackService {
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
}else {
} else {
pageReqVO.setCustomer(insertSeparator(pageReqVO.getCustomer()));
pageReqVO.setCustomOrderNo(insertSeparator(pageReqVO.getCustomOrderNo()));
@@ -133,7 +132,7 @@ public class PackServiceImpl implements PackService {
// 查询查询分页
packRespVOS = ordersMapper.selectOrderIdList(page,pageReqVO, getUserOrganId());
packRespVOS = ordersMapper.selectOrderIdList(page, pageReqVO, getUserOrganId());
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
@@ -144,17 +143,29 @@ public class PackServiceImpl implements PackService {
// 查询板材的总量
List<PackRespVO> packRespVOList = orderItemMapper.selectPlateNum(orderIds,getUserOrganId());
List<PackRespVO> packRespVOList = orderPlateMapper.selectPlateNum(orderIds, getUserOrganId());
// AssertUtils.notEmpty(packRespVOList, ErrorCodeConstants.THE_CURRENT_BOARD_IS_NOT_SELECTED);
for (PackRespVO packRespVO : packRespVOList) {
packRespVO.setTotalPieceCount((long) packRespVO.getPlateId().size());
packRespVO.setPlateId(null);
}
// 查询当前生产的包裹数量
List<PackRespVO> respVOS = orderPackageMapper.selectPackPage(orderIds,getUserOrganId());
List<PackRespVO> respVOS = orderPackageMapper.selectPackPage(orderIds, getUserOrganId());
// 查询当前生产单已经打包的板材数量
List<PackRespVO> plateNum = orderPackageMapper.selectPackPieceCount(orderIds, getUserOrganId());
for (PackRespVO packRespVO : plateNum) {
packRespVO.setPackPieceCount((long) packRespVO.getPlateId().size());
packRespVO.setPlateId(null);
}
for (PackRespVO record : packRespVOS.getRecords()) {
// 板材总数
@@ -178,21 +189,20 @@ public class PackServiceImpl implements PackService {
}
// 查看生产订单对应的板材信息
@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());
List<PlateDetailsRespVO> plateDetailsRespVOS = orderItemMapper.selectOrderPlateList(orderId, getUserOrganId());
if(plateDetailsRespVOS.isEmpty()){
return null;
}
for (PlateDetailsRespVO plateDetailsRespVO : plateDetailsRespVOS) {
String name = "";
if(!plateDetailsRespVO.getProcessGroupNameList().isEmpty()) {
if (!plateDetailsRespVO.getProcessGroupNameList().isEmpty()) {
for (GroupNameList groupNameList : plateDetailsRespVO.getProcessGroupNameList()) {
// 去除最后的逗号
name += groupNameList.getName() + ",";
@@ -216,15 +226,22 @@ public class PackServiceImpl implements PackService {
List<PlateDetailsRespVO> plateDetailsRespVOS = orderItemMapper.selectOrdersPlateList(orderIds, getUserOrganId());
if (plateDetailsRespVOS.isEmpty()) {
return null;
}
List<Long> packageIds = plateDetailsRespVOS.stream().map(PlateDetailsRespVO::getPackageId).distinct().toList();
List<OrderPackageDO> orderPackageDOS = new ArrayList<>();
if(!packageIds.isEmpty()) {
if (!packageIds.isEmpty()) {
orderPackageDOS = orderPackageMapper.selectBatchIds(packageIds);
}
// AssertUtils.notEmpty(orderPackageDOS,ORDER_PLATE_ERROR);
for (PlateDetailsRespVO plateDetailsRespVO : plateDetailsRespVOS) {
String name = "";
if(!plateDetailsRespVO.getProcessGroupNameList().isEmpty()) {
if (!plateDetailsRespVO.getProcessGroupNameList().isEmpty()) {
for (GroupNameList groupNameList : plateDetailsRespVO.getProcessGroupNameList()) {
// 去除最后的逗号
name += groupNameList.getName() + ",";
@@ -245,7 +262,6 @@ public class PackServiceImpl implements PackService {
}
// 查看生产订单对应的包裹信息
@Override
public List<OrderPackageVO> getOrderPack(PackageDetailsReqVO reqVO) {
@@ -255,6 +271,8 @@ public class PackServiceImpl implements PackService {
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
// AssertUtils.notEmpty(orderPackageVOS,orderDO,ORDER_PLATE_ERROR);
// for (OrderPackageVO orderPackageVO : orderPackageVOS) {
// orderPackageVO.setCustomOrderNo(orderDO.getCustomOrderNo());
// orderPackageVO.setCustomer(orderDO.getCustomer());
@@ -276,7 +294,6 @@ public class PackServiceImpl implements PackService {
}
@Override
public PageResult<OrderPackageVO> getPageOrderPack(PackageDetailsReqVO reqVO) {
@@ -284,13 +301,13 @@ public class PackServiceImpl implements PackService {
List<Long> packId = null;
if(reqVO.getPlateNo()!= null){
if (reqVO.getPlateNo() != null) {
List<Long> plateId = orderPlateMapper.selectplateByPlateNo(reqVO.getPlateNo(), reqVO.getOrderId(), getUserOrganId())
.stream().map(OrderPlateDO::getId).toList();
if(plateId.isEmpty()){
if (plateId.isEmpty()) {
return null;
}
@@ -301,17 +318,17 @@ public class PackServiceImpl implements PackService {
QueryWrapperX<OrderPackageDO> queryWrapperX = new QueryWrapperX<>();
queryWrapperX
.eq("o.organ_id",getUserOrganId())
.eq("o.deleted",false)
.eq("op.deleted",false)
.eq("o.id",reqVO.getOrderId())
.likeIfPresent("op.package_no",reqVO.getPackageNo())
.inIfPresent("op.id",packId)
.eq("o.organ_id", getUserOrganId())
.eq("o.deleted", false)
.eq("op.deleted", false)
.eq("o.id", reqVO.getOrderId())
.likeIfPresent("op.package_no", reqVO.getPackageNo())
.inIfPresent("op.id", packId)
.eqIfPresent("op.status", reqVO.getPackStatus())
.orderByDesc("op.create_time");
IPage<OrderPackageVO> orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page,queryWrapperX);
IPage<OrderPackageVO> orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page, queryWrapperX);
if (CollectionUtil.isEmpty(orderPackageDOIPage.getRecords())) {
@@ -324,17 +341,12 @@ public class PackServiceImpl implements PackService {
}
// 查看配件列表分页
@Override
public List<OrderPartsRespVO> getPartsList(OrderPartsReqVO reqVO) {
List<OrderPartsRespVO> orderPartsRespVOS = orderPartsMapper.selectPartsList(reqVO.getOrderId(),getUserOrganId());
List<OrderPartsRespVO> orderPartsRespVOS = orderPartsMapper.selectPartsList(reqVO.getOrderId(), getUserOrganId());
return orderPartsRespVOS;
@@ -352,7 +364,6 @@ public class PackServiceImpl implements PackService {
}
// 更新配件
@Override
@Transactional(rollbackFor = Exception.class)
@@ -360,7 +371,7 @@ public class PackServiceImpl implements PackService {
// 判断包裹ID是否为空,为空,走新增,不为空,走更新
if(reqVO.getPackId()==null){
if (reqVO.getPackId() == null) {
OrderPackageDO orderPackageDO = new OrderPackageDO();
orderPackageDO.setOrderId(reqVO.getOrderId());
@@ -369,12 +380,12 @@ public class PackServiceImpl implements PackService {
orderPackageDO.setStatus((OrderPackageStatusEnum.PACKAGED.getStatus()));
orderPackageMapper.insert(orderPackageDO);
// 生产单明细表新增包裹 ID
if(reqVO.getAddPartsIdList()!=null) {
orderItemMapper.insertPartsId( orderPackageDO.getId(),reqVO.getAddPartsIdList());
if (reqVO.getAddPartsIdList() != null) {
orderItemMapper.insertPartsId(orderPackageDO.getId(), reqVO.getAddPartsIdList(), reqVO.getOrderId(), getUserOrganId());
}
// 判断当前生产单的板材和配件是否已全部打包且当前生产单的包裹已全部封包
if(validateOrderPack(reqVO.getOrderId())){
if (validateOrderPack(reqVO.getOrderId())) {
updateOrderStatus(reqVO.getOrderId());
@@ -388,20 +399,20 @@ public class PackServiceImpl implements PackService {
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackId(reqVO.getPackId(), getUserOrganId());
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(reqVO.getPackId(), getUserOrganId());
List<Long> partsList = orderItemDOS.stream().map(m -> m.getPartsId()).collect(Collectors.toList());
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(reqVO.getPackId(), reqVO.getOrderId(), getUserOrganId());
List<Long> partsList = orderItemDOS.stream().map(OrderItemDO::getPartsId).toList();
// 如果此时删除的包裹配件数量等于查询出来的配件数量,且新增的板材数量不为0,更改包裹的类型
if(reqVO.getDeletePartsIdList().size() == partsList.size() && !reqVO.getAddPlateIdList().isEmpty()){
if (reqVO.getDeletePartsIdList().size() == partsList.size() && !reqVO.getAddPlateIdList().isEmpty()) {
// 删除生产单明细表件对应的包裹ID
orderItemMapper.deletePackId(reqVO.getDeletePartsIdList(), reqVO.getPackId());
// 删除生产单明细表件对应的包裹ID
orderItemMapper.deletePartsList(reqVO.getDeletePartsIdList(), reqVO.getPackId(), reqVO.getOrderId(), getUserOrganId());
// 生产单明细表配件新增对应的包裹ID
orderItemMapper.insertParts(reqVO.getAddPlateIdList(),reqVO.getPackId(),reqVO.getOrderId());
// 生产单明细表板材新增对应的包裹ID
orderItemMapper.insertPackId(reqVO.getAddPlateIdList(), reqVO.getPackId(), reqVO.getOrderId(), getUserOrganId());
// 更新包裹类型和包裹的状态
@@ -414,12 +425,12 @@ public class PackServiceImpl implements PackService {
// 生产明细表新增的配件ID
if(!reqVO.getAddPartsIdList().isEmpty()) {
orderItemMapper.insertParts(reqVO.getAddPartsIdList(), reqVO.getPackId(), reqVO.getOrderId());
if (!reqVO.getAddPartsIdList().isEmpty()) {
orderItemMapper.insertParts(reqVO.getAddPartsIdList(), reqVO.getPackId(), reqVO.getOrderId(), getUserOrganId());
}
// 生产明细表删除的配件ID
if(!reqVO.getDeletePartsIdList().isEmpty()) {
orderItemMapper.deletePartsList(reqVO.getDeletePartsIdList(), reqVO.getPackId(), reqVO.getOrderId());
if (!reqVO.getDeletePartsIdList().isEmpty()) {
orderItemMapper.deletePartsList(reqVO.getDeletePartsIdList(), reqVO.getPackId(), reqVO.getOrderId(), getUserOrganId());
}
orderPackageDO.setStatus(OrderPackageStatusEnum.PACKAGED.getStatus());
@@ -427,24 +438,22 @@ public class PackServiceImpl implements PackService {
// 判断当前生产单的板材和配件是否已全部打包且当前生产单的包裹已全部封包
if(validateOrderPack(reqVO.getOrderId())){
if (validateOrderPack(reqVO.getOrderId())) {
updateOrderStatus(reqVO.getOrderId());
}
return typeConversion(orderPackageDO);
}
// 拆包
@Override
public OrderPackRespVO unpacking(Long packageID) {
OrderPackageDO packageDO = orderPackageMapper.selectById(packageID);
packageDO.setStatus((OrderPackageStatusEnum.UNPACKED.getStatus()));
packageDO.setStatus(OrderPackageStatusEnum.UNPACKED.getStatus());
orderPackageMapper.updateById(packageDO);
return typeConversion(packageDO);
@@ -452,8 +461,6 @@ public class PackServiceImpl implements PackService {
}
// 更新包裹
@Override
@Transactional(rollbackFor = Exception.class)
@@ -461,7 +468,7 @@ public class PackServiceImpl implements PackService {
// 判断包裹ID是否为空,为空,走新增,不为空,走更新
if(packageVO.getPackId()==null){
if (packageVO.getPackId() == null) {
OrderPackageDO orderPackageDO = new OrderPackageDO();
orderPackageDO.setOrderId(packageVO.getOrderId());
@@ -471,11 +478,11 @@ public class PackServiceImpl implements PackService {
orderPackageDO.setRemark(packageVO.getRemark());
orderPackageMapper.insert(orderPackageDO);
// 生产单明细表新增包裹 ID
if(packageVO.getAddPlateIdList()!=null) {
orderItemMapper.insertPackId(packageVO.getAddPlateIdList(), orderPackageDO.getId());
if (packageVO.getAddPlateIdList() != null) {
orderItemMapper.insertPackId(packageVO.getAddPlateIdList(), orderPackageDO.getId(), packageVO.getOrderId(), getUserOrganId());
}
if(validateOrderPack(packageVO.getOrderId())){
if (validateOrderPack(packageVO.getOrderId())) {
updateOrderStatus(packageVO.getOrderId());
}
@@ -484,21 +491,20 @@ public class PackServiceImpl implements PackService {
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackId(packageVO.getPackId(), getUserOrganId());
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(packageVO.getPackId(), getUserOrganId());
List<Long> plateList = orderItemDOS.stream().map(m -> m.getPlateId()).collect(Collectors.toList());
// List<Long> partsList = orderItemDOS.stream().map(m -> m.getPartsId()).collect(Collectors.toList());
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(packageVO.getPackId(), packageVO.getOrderId(), getUserOrganId());
List<Long> plateList = orderItemDOS.stream().map(OrderItemDO::getPlateId).toList();
// 如果此时删除的包裹板材数量等于查询出来的板材数量,且新增的配件数量不为0,更改包裹的类型
if(packageVO.getDeletePlateIdList().size() == plateList.size() && !packageVO.getAddPartsIdList().isEmpty()){
if (packageVO.getDeletePlateIdList().size() == plateList.size() && !packageVO.getAddPartsIdList().isEmpty()) {
// 删除生产单明细表板件对应的包裹ID
orderItemMapper.deletePackId(packageVO.getDeletePlateIdList(), packageVO.getPackId());
orderItemMapper.deletePackId(packageVO.getDeletePlateIdList(), packageVO.getPackId(), packageVO.getOrderId(), getUserOrganId());
// 生产单明细表配件新增对应的包裹ID
orderItemMapper.insertParts(packageVO.getAddPartsIdList(),packageVO.getPackId(),packageVO.getOrderId());
orderItemMapper.insertParts(packageVO.getAddPartsIdList(), packageVO.getPackId(), packageVO.getOrderId(), getUserOrganId());
// 更新包裹类型和包裹的状态
@@ -511,13 +517,13 @@ public class PackServiceImpl implements PackService {
// 生产明细表新增包裹ID
if(!packageVO.getAddPlateIdList().isEmpty()) {
orderItemMapper.insertPackId(packageVO.getAddPlateIdList(), packageVO.getPackId());
if (!packageVO.getAddPlateIdList().isEmpty()) {
orderItemMapper.insertPackId(packageVO.getAddPlateIdList(), packageVO.getPackId(), packageVO.getOrderId(), getUserOrganId());
}
// 移除生产明细表中板件对应的包裹ID
if(!packageVO.getDeletePlateIdList().isEmpty()) {
orderItemMapper.deletePackId(packageVO.getDeletePlateIdList(), packageVO.getPackId());
if (!packageVO.getDeletePlateIdList().isEmpty()) {
orderItemMapper.deletePackId(packageVO.getDeletePlateIdList(), packageVO.getPackId(), packageVO.getOrderId(), getUserOrganId());
}
orderPackageDO.setStatus(OrderPackageStatusEnum.PACKAGED.getStatus());
@@ -525,7 +531,7 @@ public class PackServiceImpl implements PackService {
// 判断当前生产单的板材和配件是否已全部打包且当前生产单的包裹已全部封包
if(validateOrderPack(packageVO.getOrderId())){
if (validateOrderPack(packageVO.getOrderId())) {
// 修改生产单的打包状态
updateOrderStatus(packageVO.getOrderId());
@@ -538,53 +544,31 @@ public class PackServiceImpl implements PackService {
// 判断当前生产单的板材和配件是否已全部打包且当前生产单的包裹已全部封包
public Boolean validateOrderPack(Long orderId){
public Boolean validateOrderPack(Long orderId) {
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackList(orderId, getUserOrganId());
if(!orderPackageDOS.isEmpty()){
if (!orderPackageDOS.isEmpty()) {
return false;
}
List<PlateAndPartIdList> plateAndPartIdLists = orderPackageMapper.selectOrderPack(orderId, getUserOrganId());
// List<Long> plateList = plateAndPartIdLists.stream().map(PlateAndPartIdList::getPlateId).toList();
//
// List<Long> partsList = plateAndPartIdLists.stream().map(PlateAndPartIdList::getPartsId).toList();
return plateAndPartIdLists.isEmpty() ;
return plateAndPartIdLists.isEmpty();
}
// 修改当前生产单的工序状态和生产单的状态
@Transactional(rollbackFor = Exception.class)
public void updateOrderStatus(Long orderId) {
public void updateOrderStatus(Long orderId) {
OrderDO orderDO = ordersMapper.selectById(orderId);
if(orderDO.getFinishTime() != null){
return;
}
// // 判断正确,修改当前生产单对应的打包的工序状态
// OrderProcessStepNDO orderProcessStepNDO = processStepMapper.selectOrderProcess(orderId, getUserOrganId(), ProcessProcessingTypeEnum.PACK.getNumber());
//
// if(orderProcessStepNDO == null){
// if(orderDO.getFinishTime() != null){
// return;
// }
//
//
// // 工序加工添加负责人
// String nickname = getLoginUser().getNickname();
//
//
// BigDecimal salary = productionProcessService.calculateSalary(orderProcessStepNDO.getId(), null);
//
// // 修改生产明细表和步骤表的工序状态
// processStepMapper.updateStatus(orderProcessStepNDO.getId(), nickname, salary);
//
// processStepItemMapper.updateStatus(orderProcessStepNDO.getId());
// 修改生产单的打包状态未已打包
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
@@ -599,54 +583,50 @@ public class PackServiceImpl implements PackService {
@Override
public List<OrderPackRespVO> selectPack(Long orderId) {
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatus(orderId,getUserOrganId());
// List<OrderPackageDO> collect = orderPackageDOS.stream().map(o -> o.setRemark(JsonUtils.unzipString(o.getRemark()))).collect(Collectors.toList());
return orderPackageDOS.stream().map(m -> typeConversion(m)).collect(Collectors.toList());
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatus(orderId, getUserOrganId());
return orderPackageDOS.stream().map(m -> typeConversion(m)).collect(Collectors.toList());
}
// 包裹订单打印
@Override
public PrintOrderPackRespVO printOrderPack(PrintOrderPackReqVO reqVO) {
PrintOrderPackRespVO printOrderPackRespVO = ordersMapper.selectOrderPack(reqVO.getOrderId(), reqVO.getPackageNo(),getUserOrganId());
printOrderPackRespVO.setPlateList(orderItemMapper.selectPrintPlateList(reqVO.getOrderId(), reqVO.getPackageNo(),getUserOrganId()));
PrintOrderPackRespVO printOrderPackRespVO = ordersMapper.selectOrderPack(reqVO.getOrderId(), reqVO.getPackageNo(), getUserOrganId());
printOrderPackRespVO.setPlateList(orderItemMapper.selectPrintPlateList(reqVO.getOrderId(), reqVO.getPackageNo(), getUserOrganId()));
return printOrderPackRespVO;
}
// 删除包裹及其关联的包裹信息(删除全部)
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteOrderPack(PackReqVO reqVO) {
// 判断包裹的类型是否为其他类型,如果是,则删除其包裹信息
if (reqVO.getIsOther() == true) {
if (reqVO.getIsOther()) {
List<Long> partsIds = orderItemMapper.selectPackList(reqVO.getPackageId(), getUserOrganId())
.stream().map(m -> m.getPartsId())
List<Long> partsIds = orderItemMapper.selectPackList(reqVO.getPackageId(), reqVO.getOrderId(), getUserOrganId())
.stream().map(OrderItemDO::getPartsId)
.distinct()
.collect(Collectors.toList());
.toList();
orderPartsMapper.deleteOrderParts(partsIds);
orderPartsMapper.deleteOrderParts(partsIds, reqVO.getOrderId(), getUserOrganId());
orderPackageMapper.updateParts(reqVO.getPackageId(), reqVO.getPackageNo());
orderPackageMapper.updateParts(reqVO.getPackageId(), reqVO.getOrderId(), getUserOrganId());
orderItemMapper.deleteParts(reqVO.getPackageId(),partsIds);
orderItemMapper.deleteParts(reqVO.getPackageId(), reqVO.getOrderId(), partsIds, getUserOrganId());
return;
}
orderPackageMapper.updateParts(reqVO.getPackageId(),reqVO.getPackageNo());
orderPackageMapper.updateParts(reqVO.getPackageId(), reqVO.getOrderId(), getUserOrganId());
orderItemMapper.deleteOrderPack(reqVO.getPackageId());
orderItemMapper.deleteOrderPack(reqVO.getPackageId(), reqVO.getOrderId(), getUserOrganId());
}
@@ -656,11 +636,6 @@ public class PackServiceImpl implements PackService {
@Transactional(rollbackFor = Exception.class)
public OrderPackRespVO addNewOtherPack(OtherPackReqVO reqVO) {
// 判断配件名称是否重复
// OrderPartsNDO orderPartsNDO = orderPartsMapper.selectOneParts(reqVO.getName(),getUserOrganId());
// if (orderPartsNDO != null) {
// throw exception(THE_ACCESSORY_NAME_CANNOT_BE_DUPLICATED);
// }
// 配件表新增数据
OrderPartsNDO orderParts = BeanUtils.toBean(reqVO, OrderPartsNDO.class);
@@ -679,7 +654,7 @@ public class PackServiceImpl implements PackService {
orderPackageMapper.insert(orderPackageDO);
// 在生产单明细表中添加数据(生产单号,配件ID,包裹ID,部件数量(目前一直为1
// 在生产单明细表中添加数据(生产单号,配件ID,包裹ID,部件数量)
OrderItemDO orderItemDO = new OrderItemDO();
orderItemDO.setOrderId(reqVO.getOrderId());
orderItemDO.setPartsId(orderParts.getId());
@@ -698,15 +673,13 @@ public class PackServiceImpl implements PackService {
}
// 新增外部配件
@Override
@Transactional(rollbackFor = Exception.class)
public OrderPartsRespVO addNewOtherParts(OtherPackReqVO reqVO) {
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackNo(reqVO.getPackNo(),getUserOrganId());
if(orderPackageDO.getType()!= OrderPackageTypeEnum.OTHER_ACCESSORIES.getType().longValue()){
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackNo(reqVO.getPackNo(), getUserOrganId());
if (orderPackageDO.getType() != OrderPackageTypeEnum.OTHER_ACCESSORIES.getType().longValue()) {
throw exception(THE_CURRENT_PACKAGE_TYPE_IS_INCORRECT);
}
@@ -727,34 +700,28 @@ public class PackServiceImpl implements PackService {
// 在生产单明细表中新增数据
orderItemMapper.insert(orderItemDO);
return BeanUtils.toBean(orderParts,OrderPartsRespVO.class);
return BeanUtils.toBean(orderParts, OrderPartsRespVO.class);
}
// 删除包裹中的外部配件
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteOtherParts(DeleteOtherPartsReqVO reqVO) {
if(reqVO.getIsOtherParts()) {
if (reqVO.getIsOtherParts()) {
// 更新配件表中配件为逻辑删除
orderPartsMapper.updateParts(reqVO.getPartsId());
orderItemMapper.deleteOtherParts(reqVO.getPartsId());
orderPartsMapper.updateParts(reqVO.getPartsId(), reqVO.getOrderId(), getUserOrganId());
orderItemMapper.deleteOtherParts(reqVO.getPartsId(), reqVO.getOrderId(), getUserOrganId());
}
orderItemMapper.updateParts(reqVO.getPartsId(),reqVO.getPackageId());
orderItemMapper.updateParts(reqVO.getPartsId(), reqVO.getPackageId(), reqVO.getOrderId(), getUserOrganId());
}
// 新增配件-即新增一个包裹
@Override
@Transactional(rollbackFor = Exception.class)
@@ -767,15 +734,13 @@ public class PackServiceImpl implements PackService {
orderPackageDO.setPackageNo(generatePackageNo());
orderPackageMapper.insert(orderPackageDO);
orderItemMapper.insertPartsId(orderPackageDO.getId(), reqVO.getAddPartsIdList());
orderItemMapper.insertPartsId(orderPackageDO.getId(), reqVO.getAddPartsIdList(), reqVO.getOrderId(), getUserOrganId());
return typeConversion(orderPackageDO);
}
// 查询预打包优化信息
@Override
public String getPrePackInfo(Long orderId) {
@@ -784,7 +749,7 @@ public class PackServiceImpl implements PackService {
OrderPrepackagedDO orderPrepackagedDO = orderPrepackagedMapper.selectOrder(orderId, getUserOrganId());
if(orderPrepackagedDO == null){
if (orderPrepackagedDO == null) {
return null;
}
@@ -794,8 +759,6 @@ public class PackServiceImpl implements PackService {
}
// 保存优化后的预打包信息
@Override
@Transactional(rollbackFor = Exception.class)
@@ -819,7 +782,7 @@ public class PackServiceImpl implements PackService {
String optimizeInfo = reqVO.getOptimizeInfo();
// 自动打包,包裹表新增
if(autoPack){
if (autoPack) {
ArrayList<OrderPackageDO> orderPackageDOS = new ArrayList<>();
@@ -829,12 +792,13 @@ public class PackServiceImpl implements PackService {
JsonNode jsonNode = JsonUtils.parseTree(reqVO.getOptimizeInfo());
List<PrePackOptimizeInfo> asJsonObject = objectMapper.convertValue(jsonNode, new TypeReference<>() {});
List<PrePackOptimizeInfo> asJsonObject = objectMapper.convertValue(jsonNode, new TypeReference<>() {
});
asJsonObject.forEach(value ->{
asJsonObject.forEach(value -> {
value.getList().forEach(prePackOptimizeInfo ->{
value.getList().forEach(prePackOptimizeInfo -> {
String packageNo = generatePackageNo();
prePackOptimizeInfo.setName(packageNo);
@@ -844,7 +808,7 @@ public class PackServiceImpl implements PackService {
.orderId(reqVO.getOrderId())
.status(OrderPackageStatusEnum.PACKAGED.getStatus())
.build());
prePackOptimizeInfo.getList().forEach(plate ->{
prePackOptimizeInfo.getList().forEach(plate -> {
List<String> list = plate.getList().stream().map(PrePackOptimizeInfo.PrerPlateData::getPlateId).toList();
list.forEach(a -> packPlateNoLists.add(PackPlateList.builder()
.packNo(packageNo)
@@ -861,51 +825,32 @@ public class PackServiceImpl implements PackService {
List<OrderPackageDO> packageDOS = orderPackageMapper.selectPackStatus(reqVO.getOrderId(), getUserOrganId());
if(!packageDOS.isEmpty()){
if (!packageDOS.isEmpty()) {
// 删除除配件和其他配件外的所有包裹
orderPackageMapper.updateDelete(reqVO.getOrderId(),getUserOrganId());
orderPackageMapper.updateDelete(reqVO.getOrderId(), getUserOrganId());
}
// 包裹表新增包裹
orderPackageMapper.insertBatch(orderPackageDOS);
orderPackageDOS.forEach(a->
// 根据包裹编号查找包裹ID
orderPackageDOS.forEach(a ->
packPlateNoLists.stream().filter(f -> Objects.equals(f.getPackNo(), a.getPackageNo()))
.forEach(f -> f.setPackId(a.getId())));
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackPlateList(reqVO.getOrderId(), getUserOrganId());
// List<String> plateNo = packPlateNoLists.stream().map(PackPlateList::getPlateNo).toList();
//
//
// List<OrderPlateDO> orderPlateDOS = orderPlateMapper.selectPlateList(plateNo, getUserOrganId());
//
// if(orderPlateDOS.isEmpty()){
// System.out.println("当前板材数据为空");
//
// }
//
// orderPlateDOS.forEach(a->
// packPlateNoLists.stream().filter(f->Objects.equals(f.getPlateNo(), a.getPlateNo()))
// .forEach(f -> f.setPlateId(a.getId())));
//
//
// System.out.println("啊哈哈哈哈哈哈1 "+packPlateNoLists);
packPlateNoLists.forEach(a->
orderItemDOS.stream().filter(f->Objects.equals(f.getPlateId(), a.getPlateId()))
.forEach(f->f.setPackageId(a.getPackId())));
packPlateNoLists.forEach(a ->
orderItemDOS.stream().filter(f -> Objects.equals(f.getPlateId(), a.getPlateId()))
.forEach(f -> f.setPackageId(a.getPackId())));
orderItemMapper.updateBatch(orderItemDOS);
// 查询配件是否为空,为空,修改生产单的状态为已打包
List<OrderItemDO> orderItemDoPartsList = orderItemMapper.selectPartsList(reqVO.getOrderId(), getUserOrganId());
if(orderItemDoPartsList.isEmpty()) {
if (orderItemDoPartsList.isEmpty()) {
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
ordersMapper.updateById(orderDO);
@@ -916,7 +861,7 @@ public class PackServiceImpl implements PackService {
OrderPrepackagedDO orderPackOptimizeDO = orderPrepackagedMapper.selectOrder(reqVO.getOrderId(), getUserOrganId());
if(orderPackOptimizeDO ==null){
if (orderPackOptimizeDO == null) {
OrderPrepackagedDO prepackagedDO = new OrderPrepackagedDO();
prepackagedDO.setOrderId(reqVO.getOrderId());
@@ -932,84 +877,6 @@ public class PackServiceImpl implements PackService {
}
//
// @Override
// @Transactional(rollbackFor = Exception.class)
// public void saveOptimizeInfo(PrePackReqVO reqVO) {
// if (reqVO.getIsAutoPack()) {
// List<OrderPackageDO> orderPackageDOS = new ArrayList<>();
// List<PackPlateList> packPlateNoLists = new ArrayList<>();
//
// reqVO.getOptimizeInfo().values().parallelStream().forEach(value -> {
// value.forEach(prePackOptimizeInfo -> {
// String packageNo = generatePackageNo();
// List<String> list = prePackOptimizeInfo.getOptimizeData().stream().map(m -> m.getPlateNo()).collect(Collectors.toList());
//
// list.forEach(a -> packPlateNoLists.add(PackPlateList.builder()
// .packNo(packageNo)
// .plateNo(a)
// .build()));
//
// orderPackageDOS.add(OrderPackageDO.builder()
// .packageNo(packageNo)
// .type(OrderPackageTypeEnum.PLATE.getType())
// .orderId(reqVO.getOrderId())
// .status(OrderPackageStatusEnum.PACKAGED.getStatus())
// .build());
//
// prePackOptimizeInfo.setPackNo(packageNo);
// });
// });
//
// List<OrderPackageDO> packageDOS = orderPackageMapper.selectPackStatus(reqVO.getOrderId(), getUserOrganId());
//
// if (!packageDOS.isEmpty()) {
// orderPackageMapper.updateDelete(reqVO.getOrderId());
// }
//
// orderPackageMapper.insertBatch(orderPackageDOS);
//
// Map<String, Long> packageNoToIdMap = orderPackageDOS.stream().collect(Collectors.toMap(OrderPackageDO::getPackageNo, OrderPackageDO::getId));
//
// packPlateNoLists.forEach(f -> f.setPackId(packageNoToIdMap.get(f.getPackNo())));
//
// List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackPlateList(reqVO.getOrderId(), getUserOrganId());
//
// List<String> plateNo = packPlateNoLists.stream().map(PackPlateList::getPlateNo).collect(Collectors.toList());
//
// List<OrderPlateDO> orderPlateDOS = orderPlateMapper.selectPlateList(plateNo, getUserOrganId());
//
// Map<String, Long> plateNoToIdMap = orderPlateDOS.stream().collect(Collectors.toMap(OrderPlateDO::getPlateNo, OrderPlateDO::getId));
//
// packPlateNoLists.forEach(f -> f.setPlateId(plateNoToIdMap.get(f.getPlateNo())));
//
// Map<Long, Long> plateIdToPackIdMap = packPlateNoLists.stream().collect(Collectors.toMap(PackPlateList::getPlateId, PackPlateList::getPackId));
//
// orderItemDOS.forEach(f -> f.setPackageId(plateIdToPackIdMap.get(f.getPlateId())));
//
// orderItemMapper.updateBatch(orderItemDOS);
// }
//
// String optimizeInfo = JsonUtils.toJsonString(reqVO.getOptimizeInfo());
//
// OrderPrepackagedDO orderPackOptimizeDO = orderPrepackagedMapper.selectOrder(reqVO.getOrderId(), getUserOrganId());
//
// if (orderPackOptimizeDO == null) {
// OrderPrepackagedDO newOrderPackOptimizeDO = new OrderPrepackagedDO();
// newOrderPackOptimizeDO.setOrderId(reqVO.getOrderId());
// newOrderPackOptimizeDO.setResult(JsonUtils.zipString(optimizeInfo));
// orderPrepackagedMapper.insert(newOrderPackOptimizeDO);
// return;
// }
//
// orderPackOptimizeDO.setResult(JsonUtils.zipString(optimizeInfo));
// orderPrepackagedMapper.updateById(orderPackOptimizeDO);
// }
// 日期格式转换
public static String convertTime(String input) {
@@ -1027,9 +894,8 @@ public class PackServiceImpl implements PackService {
}
// 生成包裹编号
private String generatePackageNo(){
private String generatePackageNo() {
long packNo = idWorker.nextId();
long obtainingTime = SnowflakeIdWorker3rd.obtainingTime();
@@ -1039,9 +905,8 @@ public class PackServiceImpl implements PackService {
}
// 类型转换
private OrderPackRespVO typeConversion(OrderPackageDO orderPackageDO){
private OrderPackRespVO typeConversion(OrderPackageDO orderPackageDO) {
return OrderPackRespVO.builder()
.id(orderPackageDO.getId())
.orderId(orderPackageDO.getOrderId())
@@ -1,32 +1,31 @@
package com.cf.imes.module.manage.service.plate;
import com.cf.imes.framework.common.pojo.CommonResult;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.organ.core.aop.OrganIgnore;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlateImportExcelVO;
import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlateImportRespVO;
import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlatePageReqVO;
import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlateSaveReqVO;
import com.cf.imes.module.manage.dal.dataobject.plate.PlateDO;
import com.cf.imes.module.manage.dal.mysql.plate.PlateMapper;
import com.cf.imes.module.system.api.organ.OrganApi;
import com.cf.imes.module.system.api.permission.PermissionApi;
import com.cf.imes.module.system.enums.ErrorCodeConstants;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import com.cf.imes.module.manage.dal.dataobject.plate.PlateDO;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.module.manage.dal.mysql.plate.PlateMapper;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
import static com.cf.imes.module.system.enums.ErrorCodeConstants.PLATE_NOT_EXISTS;
import static com.cf.imes.module.system.enums.ErrorCodeConstants.REMAIN_PLATE_NOT_EXISTS;
/**
* 板材信息表 plate_{N} Service 实现类
@@ -90,7 +89,7 @@ public class PlateServiceImpl implements PlateService {
private void validatePlateExists(Long id, Long organId) {
if (plateMapper.selectOneById(id, organId) == null) {
throw exception(PLATE_NOT_EXISTS);
throw exception(REMAIN_PLATE_NOT_EXISTS);
}
}
@@ -2,10 +2,7 @@ package com.cf.imes.module.manage.service.query;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.module.manage.controller.admin.pack.vo.OrderPartsReqVO;
import com.cf.imes.module.manage.controller.admin.pack.vo.PackDetailsReqVO;
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.controller.admin.query.vo.pack.PackageDetailsRespVO;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.PrintOrderRespVO;
@@ -13,7 +10,6 @@ import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.*;
import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRatePageReqVO;
import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRateReqVO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
import org.ehcache.shadow.org.terracotta.offheapstore.paging.Page;
import java.util.List;
@@ -58,7 +54,4 @@ public interface ProductionStatusService {
PrintOrderRespVO printOrder(Long orderNo);
// // 导出缺板
// PageResult<PlateDetailsRespVO> getMissingBoard(OrderPartsReqVO pageReqVO);
}
@@ -4,20 +4,21 @@
<resultMap id="PackMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO">
<result property="id" column="id"/>
<result property="id" column="orderId"/>
<result property="packCount" column="packCount"/>
<result property="packPieceCount" column="packPieceCount"/>
<collection property="plateId" ofType="java.lang.Long" column="plateId"/>
</resultMap>
<select id="selectPackPage" resultType="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO"
parameterType="java.util.List"
resultMap="PackMap">
<select id="selectPackPage" parameterType="java.util.List" resultMap="PackMap">
select
order_id as id,
order_id as orderId,
count(id) as packCount
from order_package
@@ -39,47 +40,30 @@
</select>
<!-- select-->
<!-- op.order_id as id,-->
<!-- count(distinct op.id) as packCount-->
<!-- from order_package op-->
<!-- join order_item oi on op.id = oi.package_id and op.organ_id = oi.organ_id-->
<!-- where-->
<!-- oi.package_id != 0-->
<!-- and op.organ_id = #{organId}-->
<!-- and op.order_id in-->
<!-- <foreach item="id" collection="orderIds" open="(" separator="," close=")">-->
<!-- #{id}-->
<!-- </foreach>-->
<!-- group by op.order_id;-->
<select id="selectPackPieceCount"
parameterType="java.util.List"
resultMap="PackMap">
select distinct
op.order_id as orderId,
oi.plate_id as plateId
op.order_id as id,
count(distinct oi.plate_id ) as packPieceCount
from order_item oi
join order_package op on oi.package_id = op.id and oi.organ_id = op.organ_id
from order_package op
left join order_item oi on op.organ_id = oi.organ_id and op.id = oi.package_id
where
oi.organ_id = #{organId}
and oi.order_id in
op.organ_id = #{organId}
and op.deleted = false
and op.order_id in
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id}
</foreach>
and op.status != 0
and oi.package_id !=0
and oi.plate_id != 0
group by op.order_id;
and op.type = 0
and oi.package_id != 0
and oi.plate_id != 0;
@@ -153,7 +137,7 @@
UPDATE order_package
SET deleted = true
WHERE id = #{packageId} AND package_no = #{packageNo};
WHERE organ_id = #{organId} and order_id = #{orderId} and id = #{packageId}
</update>
@@ -187,32 +171,6 @@
</select>
<!-- <where>
o.organ_id = #{organId}
<if test="reqVO.orderId !=null">
and o.id = #{reqVO.orderId}
</if>
<if test="packId !=null">
and op.id in
<foreach item="packId" collection="packId" open="(" separator="," close=")">
#{packId}
</foreach>
</if>
<if test="reqVO.packStatus !=null ">
and op.status= #{reqVO.packStatus}
</if>
<if test="reqVO.packageNo !=null and reqVO.packageNo != '' ">
and op.package_no like concat('%', #{reqVO.packageNo},'%')
</if>
</where>-->
<select id="selectOrderPack"
resultType="com.cf.imes.module.manage.controller.admin.pack.vo.PlateAndPartIdList">
@@ -220,11 +178,11 @@
select distinct oi.plate_id,
oi.parts_id
from order_package op
join order_item oi on op.order_id = oi.order_id and op.organ_id = oi.organ_id
where op.order_id = #{orderId} and op.organ_id = #{organId} and oi.package_id = 0
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id
where op.organ_id = #{organId} and op.order_id = #{orderId} and op.deleted = false and oi.package_id = 0
</select>
@@ -173,4 +173,37 @@
</select>
<resultMap id="PlateMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO">
<result property="id" column="orderId"/>
<collection property="plateId" ofType="java.lang.Long" column="plateId"/>
</resultMap>
<select id="selectPlateNum" resultMap="PlateMap">
select
order_id as orderId,
id as plateId
from order_plate
where organ_id = #{organId}
and deleted = false
and order_id in
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
#{orderIds}
</foreach>
</select>
</mapper>
@@ -54,13 +54,13 @@
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
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.package_id =#{packageId} and oi.organ_id = #{organId}
oi.organ_id = #{organId} and oi.package_id =#{packageId} and op.deleted = false
</select>
@@ -171,7 +171,7 @@
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
oi.order_id = #{orderNo} and oi.organ_id = #{organId} and oi.package_id = 0 and op.deleted = false;
</select>
@@ -212,7 +212,7 @@
SET package_id = 0
WHERE package_id = #{packId} ;
WHERE organ_id = #{organId} and order_id = #{orderId} and package_id = #{packId} ;
</update>
@@ -223,7 +223,10 @@
parameterType="java.lang.Long">
DELETE FROM order_item
WHERE parts_id = #{partsId}
WHERE organ_id = #{organId}
and order_id = #{orderId}
and parts_id = #{partsId}
</delete>
@@ -233,9 +236,11 @@
<delete id="deleteParts" parameterType="java.lang.Long">
delete from order_item
where package_id = #{packageId}
and parts_id in
where organ_id = #{organId}
and order_id = #{orderId}
and package_id = #{packageId}
and parts_id in
<foreach item="partsIds" collection="partsIds" open="(" separator="," close=")">
#{partsIds}
</foreach>
@@ -251,7 +256,9 @@
set package_id = #{packId}
where plate_id in
where organ_id = #{organId}
and order_id = #{orderId}
and plate_id in
<foreach item="id" collection="plateIdList" open="(" separator="," close=")">
#{id}
</foreach>
@@ -266,7 +273,11 @@
set package_id = 0
where package_id = #{packId} and plate_id in
where
organ_id = #{organId}
and order_id = #{orderId}
and package_id = #{packId}
and plate_id in
<foreach item="id" collection="deletePlateIdList" open="(" separator="," close=")">
#{id}
</foreach>
@@ -282,8 +293,9 @@
set package_id = #{packId}
where parts_id in
where organ_id = #{organId}
and order_id = #{orderId}
and parts_id in
<foreach item="id" collection="addPartsIdList" open="(" separator="," close=")">
#{id}
</foreach>
@@ -297,8 +309,9 @@
set package_id = #{packId}
where order_id = #{orderNo} and
parts_id in
where organ_id = #{organId}
and order_id = #{orderId}
and parts_id in
<foreach item="id" collection="addPartsList" open="(" separator="," close=")">
#{id}
</foreach>
@@ -312,7 +325,11 @@
set package_id = 0
where package_id = #{packId} and order_id = #{orderNo} plate_id in
where
organ_id = #{organId}
and order_id = #{orderId}
and package_id = #{packId}
and parts_id in
<foreach item="id" collection="deletePartsList" open="(" separator="," close=")">
#{id}
</foreach>
@@ -323,47 +340,18 @@
<update id="updateParts">
update order_item set package_id = 0 where parts_id =#{partsId} and package_id = #{packageId};
update order_item
set package_id = 0
where organ_id = #{organId}
and order_id = #{orderId}
and package_id = #{packageId}
and parts_id = #{partsId};
</update>
<select id="selectBodyName" resultType="java.lang.String" parameterType="java.lang.Long">
-- select ob.room_name
-- from order_item oi
-- join order_body ob on oi.body_id = ob.id
-- where oi.plate_id = #{plateId};
</select>
<resultMap id="OrderPlateDetailsMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.OrderPlateDetailsRespVO">
<result property="plateNum" column="plateNum"/>
<result property="plateProcessedNum" column="plateProcessedNum"/>
</resultMap>
<select id="selectOrderPlateDetails"
parameterType="java.lang.Long">
-- select
--
-- count(case
-- when oi.package_id !=0 and oi.parts_id = 0 then oi.plate_id end )as plateProcessedNum,
--
-- count(
-- case
-- when oi.plate_id !=0 then oi.plate_id end
-- )as plateNum
-- from order_item oi
-- where oi.order_id = #{orderId};
</select>
@@ -463,29 +451,7 @@
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
#{orderIds}
</foreach>
</select>
<select id="selectPlateNum" resultType="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO">
select order_id as id,
count(distinct plate_id ) as totalPieceCount
from order_item
where organ_id = #{organId}
and order_id in
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
#{orderIds}
</foreach>
and plate_id !=0
group by order_id
and op.deleted = false;
</select>
@@ -40,9 +40,9 @@
oi.num as num
from order_parts op
join order_item oi on op.id = oi.parts_id and op.organ_id = oi.organ_id
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.parts_id
where oi.package_id =#{packageId} and oi.organ_id = #{organId}
where op.organ_id =#{organId} and op.deleted = false and oi.package_id = #{packageId}
</select>
@@ -74,9 +74,9 @@
select distinct
op.id as partsId,op.name,op.model,op.spec,oi.num as num,op.unit,op.brand,op.factory,op.remark,op.type
from order_parts op
join order_item oi on op.id = oi.parts_id and op.organ_id = oi.organ_id
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.parts_id
where op.organ_id = #{organId} and op.order_id = #{orderId}
where op.organ_id = #{organId} and op.order_id = #{orderId} and op.deleted = false
</select>
@@ -89,8 +89,14 @@
parameterType="java.lang.Long">
update order_parts op set op.deleted = true where op.id in
update order_parts op
set op.deleted = true
where
op.organ_id = #{organId}
and op.order_id = #{orderId}
and op.deleted = false
and op.id in
<foreach item="id" collection="partsIds" open="(" separator="," close=")">
#{id}
</foreach>
@@ -103,8 +109,12 @@
parameterType="java.lang.Long">
UPDATE order_parts op
SET op.deleted = true
WHERE op.id = #{partsId};
WHERE op.organ_id = #{organId}
and op.order_id = #{orderId}
and op.id = #{partsId};
</update>