跟据新需求修改未排单,已排单,新增排单,优化生产等部分接口,禅道381,363,274Bug修改

This commit is contained in:
liuzhaotian
2024-08-26 18:28:12 +08:00
parent 7cf453050f
commit 3509debaf3
75 changed files with 2915 additions and 1057 deletions
@@ -2,10 +2,7 @@ package com.cf.imes.module.manage.controller.admin.pack;
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.excel.core.util.ExcelUtils;
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
import com.cf.imes.module.manage.controller.admin.pack.prePack.PrePackReqVO;
import com.cf.imes.module.manage.controller.admin.pack.vo.*;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO;
@@ -20,14 +17,10 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
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
@@ -80,15 +73,25 @@ public class PackController {
@GetMapping("/getOrderPack")
@Operation(summary = "查看生产订单对应的包裹信息")
@Operation(summary = "查看生产订单对应的包裹信息-未分页")
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<PageResult<OrderPackageVO>> getOrderPack(@Valid PackageDetailsReqVO reqVO) {
public CommonResult<List<OrderPackageVO>> getOrderPack(@Valid PackageDetailsReqVO reqVO) {
return success(packService.getOrderPack(reqVO));
}
@GetMapping("/getPageOrderPack")
@Operation(summary = "查看生产订单对应的包裹信息-分页")
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<PageResult<OrderPackageVO>> getPageOrderPack(@Valid PackageDetailsReqVO reqVO) {
return success(packService.getPageOrderPack(reqVO));
}
@GetMapping("/queryPackageDetails")
@Operation(summary = "查询包裹的详细信息")
@@ -4,6 +4,7 @@ package com.cf.imes.module.manage.dal.mysql.pack;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
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;
@@ -81,10 +82,16 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
// 删除当前生产单下所有的包裹
default void updateDelete(Long orderId) {
default void updateDelete(Long orderId,Long organId) {
LambdaUpdateWrapper<OrderPackageDO> wrapper = new LambdaUpdateWrapper<OrderPackageDO>()
.set(OrderPackageDO::getDeleted, true)
.eq(OrderPackageDO::getOrderId, orderId);
.eq(OrderPackageDO::getOrganId,organId)
.eq(OrderPackageDO::getOrderId, orderId)
.eq(OrderPackageDO::getType, OrderPackageTypeEnum.PLATE.getType());
update(wrapper);
}
List<OrderPackageVO> selectPackListByOrderId(@Param("orderId") Long orderId,@Param("organId") Long organId);
}
@@ -3,10 +3,8 @@ 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.patching.vo.PatchingDetailReqVO;
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.OrderPlateReqVO;
import com.cf.imes.module.manage.controller.admin.process.vo.PlateDetails;
import com.cf.imes.module.manage.dal.dataobject.plate.OrderPlateDO;
import org.apache.ibatis.annotations.Mapper;
@@ -38,4 +36,13 @@ public interface OrderPlateMapper extends BaseMapperX<OrderPlateDO> {
.in(OrderPlateDO::getPlateNo, plateNo));
}
default OrderPlateDO selectplateByPlateNo(Long plateNo, Long orderId, Long organId) {
return selectOne(new LambdaQueryWrapperX<OrderPlateDO>()
.eq(OrderPlateDO::getOrganId, organId)
.eq(OrderPlateDO::getOrderId, orderId)
.eqIfPresent(OrderPlateDO::getPlateNo, plateNo)
.select(OrderPlateDO::getId));
}
}
@@ -1,4 +1,4 @@
package com.cf.imes.module.manage.dal.mysql.query;
package com.cf.imes.module.manage.dal.mysql.process;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -9,17 +9,15 @@ import com.cf.imes.module.manage.controller.admin.pack.vo.PackPageReqVO;
import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO;
import com.cf.imes.module.manage.controller.admin.pack.vo.PrintOrderPackRespVO;
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlatePageReqVO;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.PrintOrderRespVO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
import org.apache.ibatis.annotations.Mapper;
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> {
public interface OrdersMapper extends BaseMapperX<OrderDO> {
default PageResult<OrderDO> selectProductionPage(OrderPlatePageReqVO pageReqVO) {
@@ -38,32 +36,24 @@ public interface ProductionStatusMapper extends BaseMapperX<OrderDO> {
List<PackRespVO> selectOrderIds( @Param("createTime") String createTime, @Param("organId") Long organId, @Param("orderId") Long orderId);
PrintOrderRespVO selectPrintOrder(@Param("orderNo") Long orderNo,@Param("organId")Long organId);
// default List<OrderDO> selectOrderIds(PackPageReqVO pageReqVO,Long organId) {
// return selectList(new LambdaQueryWrapperX<OrderDO>()
// .eq(OrderDO::getOrganId,organId)
// .eqIfPresent(OrderDO::getId, pageReqVO.getOrderId())
// .eqIfPresent(OrderDO::getCustomOrderNo, pageReqVO.getCustomOrderNo())
// .likeIfPresent(OrderDO::getCustomer, pageReqVO.getCustomer())
// .likeIfPresent(OrderDO::getAddress, pageReqVO.getAddress())
// .eqIfPresent(OrderDO::getStatus, pageReqVO.getStatus())
// .orderByDesc(OrderDO::getCreateTime));
// }
IPage<PackRespVO> selectOrderPlate( @Param("page") IPage page, @Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
List<PackRespVO> selectOrderIdsFalse( @Param("createTime") String createTime,@Param("organId") Long organId, @Param("orderId") Long orderId);
PrintOrderPackRespVO selectOrderPack(@Param("orderNo")Long orderNo,@Param("packageNo") Long packageNo, @Param("organId") Long organId);
IPage<PackRespVO> selectOrderPlate(@Param("page") IPage page, @Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
List<OrderDO> selectOrderIds(@Param("pageReqVO") PackPageReqVO pageReqVO,@Param("organId") Long organId);
PrintOrderPackRespVO selectOrderPack(@Param("orderNo")Long orderNo, @Param("packageNo") Long packageNo, @Param("organId") Long organId);
IPage<PackRespVO> selectOrderIdList(@Param("page") IPage page, @Param("pageReqVO") PackPageReqVO pageReqVO, @Param("organId") Long organId);
}
@@ -1,42 +0,0 @@
package com.cf.imes.module.manage.dal.mysql.process;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlatePageReqVO;
import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlateRespVO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDateTime;
import java.util.List;
/**
* 生产单表 order_{N} Mapper
*
* @author 晨丰科技
*/
@Mapper
public interface ProductionProcessMapper extends BaseMapperX<OrderDO> {
List<PatchingPlateRespVO> selectPatchingPlate(PatchingPlatePageReqVO pageReqVO);
OrderDO selectOrderIds(@Param("createTime") String createTime, @Param("organId") Long organId, @Param("orderId") Long orderId);
OrderDO selectOrderIdsFalse(@Param("createTime") String createTime,@Param("organId") Long organId, @Param("orderId") Long orderId);
// OrderDO selectOrderIds(@Param("orderId") Long orderId,@Param("organId") Long organId);
//
// OrderDO selectOrderIdsFalse(@Param("orderId") Long orderId,@Param("organId") Long userOrganId);
}
@@ -1,12 +1,11 @@
package com.cf.imes.module.manage.dal.mysql.query;
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.*;
import com.cf.imes.module.manage.controller.admin.process.vo.OrderPlateReqVO;
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;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO;
@@ -14,13 +13,10 @@ import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.Orde
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlateRespVO;
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.PlatePageVO;
import com.cf.imes.module.manage.dal.dataobject.query.OrderItemDO;
import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.stream.Collectors;
@Mapper
public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
@@ -98,4 +94,16 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
.eqIfPresent(OrderItemDO::getOrderId, orderId));
}
List<PackRespVO> selectPlateNum(@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
default List<OrderItemDO> selectPartsList(Long orderId, Long organId) {
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
.eq(OrderItemDO::getOrganId, organId)
.eqIfPresent(OrderItemDO::getOrderId, orderId)
.eq(OrderItemDO::getPackageId,0)
.select(OrderItemDO::getPartsId));
}
}
@@ -16,9 +16,11 @@ public interface PackService {
// 查看生产订单对应的包裹信息
PageResult<OrderPackageVO> getOrderPack(PackageDetailsReqVO reqVO);
List<OrderPackageVO> getOrderPack(PackageDetailsReqVO reqVO);
PageResult<OrderPackageVO> getPageOrderPack(PackageDetailsReqVO reqVO);
// 查看生产订单对应的板材信息
List<PlateDetailsRespVO> getOrderPlateList(Long orderId);
@@ -25,13 +25,10 @@ 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.process.ProcessStepItemMapper;
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepMapper;
import com.cf.imes.module.manage.dal.mysql.process.ProductionProcessMapper;
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;
import com.cf.imes.module.manage.dal.mysql.query.ProductionStatusMapper;
import com.cf.imes.module.manage.service.process.ProductionProcessServiceImpl;
import com.cf.imes.module.manage.util.SnowflakeIdWorker3rd;
import com.cf.imes.module.system.api.setting.SettingApi;
import com.cf.imes.module.system.api.setting.dto.PackageConfigDTO;
@@ -64,8 +61,6 @@ public class PackServiceImpl implements PackService {
@Resource
private OrderPackageMapper orderPackageMapper;
@Resource
private ProductionStatusMapper productionStatusMapper;
@Resource
private OrderItemMapper orderItemMapper;
@@ -80,16 +75,11 @@ public class PackServiceImpl implements PackService {
private OrderPlateMapper orderPlateMapper;
@Resource
private ProcessStepMapper processStepMapper;
private OrdersMapper ordersMapper;
@Resource
private ProductionProcessServiceImpl productionProcessService;
private PlateMapper plateMapper;
@Resource
private ProcessStepItemMapper processStepItemMapper;
@Resource
private ProductionProcessMapper productionProcessMapper;
@Resource
private SnowflakeIdWorker3rd idWorker;
@@ -110,48 +100,62 @@ public class PackServiceImpl implements PackService {
List<Long> orderIds = new ArrayList<>();
IPage<PackRespVO> packRespVOS = new PageDTO<>();
if(pageReqVO.getIsUp() != null){
OrderDO order = productionProcessMapper.selectById(pageReqVO.getOrderId());
OrderDO order = ordersMapper.selectById(pageReqVO.getOrderId());
OrderDO orderDO = pageReqVO.getIsUp() ?
productionProcessMapper.selectOrderIds(order.getCreateTime().toString(), getUserOrganId(),order.getId()) :
List<PackRespVO> packRespVOList = pageReqVO.getIsUp() ?
ordersMapper.selectOrderIds(order.getCreateTime().toString(), getUserOrganId(),order.getId()) :
productionProcessMapper.selectOrderIdsFalse(order.getCreateTime().toString(), getUserOrganId(),order.getId());
ordersMapper.selectOrderIdsFalse(order.getCreateTime().toString(), getUserOrganId(),order.getId());
if(orderDO == null){
if(packRespVOList.isEmpty()){
throw exception(NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE, pageReqVO.getIsUp() ?"" : "最后");
}
orderIds.add(orderDO.getId());
packRespVOS.setRecords(packRespVOList);
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
}else {
pageReqVO.setCustomer(insertSeparator(pageReqVO.getCustomer()));
pageReqVO.setCustomOrderNo(insertSeparator(pageReqVO.getCustomOrderNo()));
pageReqVO.setAddress(insertSeparator(pageReqVO.getAddress()));
// 根据生产状态查询生产单号
// List<Long> orderIds = productionStatusMapper.selectOrderIds(pageReqVO, getUserOrganId()).stream().map(OrderDO::getId).toList();
orderIds.addAll(productionStatusMapper.selectOrderIds(pageReqVO, getUserOrganId()).stream().map(OrderDO::getId).toList());
// 查询查询分页
packRespVOS = ordersMapper.selectOrderIdList(page,pageReqVO, getUserOrganId());
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
if (orderIds.isEmpty()) {
return null;
}
}
// 查询打包首页分页数据信息,总的板件数量信息
IPage<PackRespVO> packRespVOS = productionStatusMapper.selectOrderPlate(page,orderIds,getUserOrganId());
// 查询板材的总量
List<PackRespVO> packRespVOList = orderItemMapper.selectPlateNum(orderIds,getUserOrganId());
// 查询当前生产的包裹数量
List<PackRespVO> respVOS = orderPackageMapper.selectPackPage(orderIds,getUserOrganId());
// 查询当前生产单已经打包的板材数量
List<PackRespVO> plateNum = orderPackageMapper.selectPackPieceCount(orderIds, getUserOrganId());
for (PackRespVO record : packRespVOS.getRecords()) {
// 板材总数
record.setTotalPieceCount(packRespVOList.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getTotalPieceCount).sum());
// 已打包数
record.setPackCount(respVOS.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getPackCount).sum());
// 已打包片数
@@ -238,12 +242,50 @@ public class PackServiceImpl implements PackService {
}
// 查看生产订单对应的包裹信息
@Override
public PageResult<OrderPackageVO> getOrderPack(PackageDetailsReqVO reqVO) {
public List<OrderPackageVO> getOrderPack(PackageDetailsReqVO reqVO) {
List<OrderPackageVO> orderPackageVOS = orderPackageMapper.selectPackListByOrderId(reqVO.getOrderId(), getUserOrganId());
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
// for (OrderPackageVO orderPackageVO : orderPackageVOS) {
// orderPackageVO.setCustomOrderNo(orderDO.getCustomOrderNo());
// orderPackageVO.setCustomer(orderDO.getCustomer());
// orderPackageVO.setAddress(orderDO.getAddress());
// orderPackageVO.setDealer(orderDO.getDealer());
// orderPackageVO.setOrderRemark(orderDO.getRemark());
// }
return orderPackageVOS.stream().peek(m -> {
m.setCustomOrderNo(orderDO.getCustomOrderNo());
m.setCustomer(orderDO.getCustomer());
m.setAddress(orderDO.getAddress());
m.setDealer(orderDO.getDealer());
m.setOrderRemark(orderDO.getRemark());
}
).toList();
}
@Override
public PageResult<OrderPackageVO> getPageOrderPack(PackageDetailsReqVO reqVO) {
PageDTO<OrderPackageVO> page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize());
// if(reqVO.getPlateNo()!= null){
//
// orderPlateMapper.selectplateByPlateNo(reqVO.getPlateNo(),reqVO.getOrderId(),getUserOrganId());
//
// }
IPage<OrderPackageVO> orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page,reqVO, getUserOrganId());
@@ -261,9 +303,6 @@ public class PackServiceImpl implements PackService {
// 查看配件列表分页
@Override
public List<OrderPartsRespVO> getPartsList(OrderPartsReqVO reqVO) {
@@ -497,7 +536,7 @@ public class PackServiceImpl implements PackService {
@Transactional(rollbackFor = Exception.class)
public void updateOrderStatus(Long orderId) {
OrderDO orderDO = productionProcessMapper.selectById(orderId);
OrderDO orderDO = ordersMapper.selectById(orderId);
if(orderDO.getFinishTime() != null){
return;
@@ -525,7 +564,7 @@ public class PackServiceImpl implements PackService {
// 修改生产单的打包状态未已打包
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
productionProcessMapper.updateById(orderDO);
ordersMapper.updateById(orderDO);
}
@@ -549,7 +588,7 @@ public class PackServiceImpl implements PackService {
@Override
public PrintOrderPackRespVO printOrderPack(PrintOrderPackReqVO reqVO) {
PrintOrderPackRespVO printOrderPackRespVO = productionStatusMapper.selectOrderPack(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;
@@ -799,7 +838,8 @@ public class PackServiceImpl implements PackService {
if(!packageDOS.isEmpty()){
orderPackageMapper.updateDelete(reqVO.getOrderId());
// 删除除配件和其他配件外的所有包裹
orderPackageMapper.updateDelete(reqVO.getOrderId(),getUserOrganId());
}
@@ -828,6 +868,14 @@ public class PackServiceImpl implements PackService {
orderItemMapper.updateBatch(orderItemDOS);
List<OrderItemDO> orderItemDoPartsList = orderItemMapper.selectPartsList(reqVO.getOrderId(), getUserOrganId());
if(orderItemDoPartsList.isEmpty()) {
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
ordersMapper.updateById(orderDO);
}
}
@@ -1,22 +1,15 @@
package com.cf.imes.module.manage.service.patching;
import com.alibaba.nacos.shaded.com.google.gson.Gson;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.json.JsonUtils;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
import com.cf.imes.module.manage.controller.admin.patching.vo.*;
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlateRespVO;
import com.cf.imes.module.manage.dal.dataobject.patching.MachineDO;
import com.cf.imes.module.manage.dal.dataobject.patching.PatchDetailDO;
import com.cf.imes.module.manage.dal.dataobject.plate.OrderPlateDO;
import com.cf.imes.module.manage.dal.mysql.patching.MachineMapper;
import com.cf.imes.module.manage.dal.mysql.patching.PatchDetailMapper;
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.ProductionProcessMapper;
import com.cf.imes.module.manage.util.page.PageHelperUtil;
import com.cf.imes.module.manage.dal.dataobject.patching.MachineDO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
@@ -30,8 +23,7 @@ import java.util.List;
public class PatchingPlateServiceImpl implements PatchingPlateService{
@Resource
private ProductionProcessMapper productionProcessMapper;
@Resource
private OrderPlateMapper orderPlateMapper;
@@ -48,15 +40,7 @@ public class PatchingPlateServiceImpl implements PatchingPlateService{
@Override
public PageResult<PatchingPlateRespVO> patchingSearchPlate(PatchingPlatePageReqVO pageReqVO) {
// 查询板件和订单的基础信息
PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize());
List<PatchingPlateRespVO> patchingPlateRespVOS = productionProcessMapper.selectPatchingPlate(pageReqVO);
//
PageInfo<PatchingPlateRespVO> pageInfo = new PageInfo<>(patchingPlateRespVOS);
return PageHelperUtil.convertToPageResult(pageInfo);
return null;
}
@@ -2,8 +2,6 @@ package com.cf.imes.module.manage.service.process;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.log.Log;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cf.imes.framework.common.enums.OrderStatusEnum;
@@ -15,15 +13,14 @@ import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.module.manage.controller.admin.process.vo.*;
import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO;
import com.cf.imes.module.manage.dal.dataobject.pack.OrderBodyDO;
import com.cf.imes.module.manage.dal.dataobject.plate.OrderPlateDO;
import com.cf.imes.module.manage.dal.dataobject.plate.PlateDO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepItemNDO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO;
import com.cf.imes.module.manage.dal.mysql.pack.OrderBodyMapper;
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.*;
import com.cf.imes.module.manage.dal.mysql.process.OrdersMapper;
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper;
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepMapper;
import com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper;
import com.cf.imes.module.system.api.process.ProcessApi;
import com.cf.imes.module.system.enums.ErrorCodeConstants;
@@ -35,7 +32,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import java.util.List;
import java.util.stream.Collectors;
import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator;
@@ -73,7 +70,7 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
private OrderPlateMapper orderPlateMapper;
@Resource
private ProductionProcessMapper productionProcessMapper;
private OrdersMapper ordersMapper;
@Resource
@@ -161,10 +158,10 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
}
// 当前工序已全部加工,修改生产单的状态为生产完成
if(validateOrderStatus(processStepStatuses.getOrderId())){
OrderDO orderDO = productionProcessMapper.selectById(processStepStatuses.getOrderId());
OrderDO orderDO = ordersMapper.selectById(processStepStatuses.getOrderId());
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
orderDO.setFinishTime(LocalDateTime.now());
productionProcessMapper.updateById(orderDO);
ordersMapper.updateById(orderDO);
}
return;
@@ -192,10 +189,10 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
}
// 当前工序已全部加工,修改生产单的状态为生产完成
if(validateOrderStatus(processStepStatuses.getOrderId())){
OrderDO orderDO = productionProcessMapper.selectById(processStepStatuses.getOrderId());
OrderDO orderDO = ordersMapper.selectById(processStepStatuses.getOrderId());
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
orderDO.setFinishTime(LocalDateTime.now());
productionProcessMapper.updateById(orderDO);
ordersMapper.updateById(orderDO);
}
return;
@@ -211,19 +208,19 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
// 判断当前工序的状态是否为打包类型,如果是,修改生产的状态为生产完成
if(processStepStatuses.getType().equals(ProcessProcessingTypeEnum.PACK.getNumber())){
OrderDO orderDO = productionProcessMapper.selectById(processStepStatuses.getOrderId());
OrderDO orderDO = ordersMapper.selectById(processStepStatuses.getOrderId());
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
orderDO.setFinishTime(LocalDateTime.now());
productionProcessMapper.updateById(orderDO);
ordersMapper.updateById(orderDO);
return;
}
// 当前工序已全部加工,修改生产单的状态为生产完成
if(validateOrderStatus(processStepStatuses.getOrderId())){
OrderDO orderDO = productionProcessMapper.selectById(processStepStatuses.getOrderId());
OrderDO orderDO = ordersMapper.selectById(processStepStatuses.getOrderId());
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
orderDO.setFinishTime(LocalDateTime.now());
productionProcessMapper.updateById(orderDO);
ordersMapper.updateById(orderDO);
}
}catch (Exception e){
@@ -7,12 +7,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.module.manage.controller.admin.pack.vo.GroupNameList;
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.process.vo.ProcessRespVO;
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;
@@ -21,11 +17,12 @@ import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRatePageR
import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRateReqVO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO;
import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
import com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper;
import com.cf.imes.module.manage.dal.mysql.process.OrdersMapper;
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper;
import com.cf.imes.module.manage.dal.mysql.process.ProcessStepMapper;
import com.cf.imes.module.manage.dal.mysql.query.*;
import com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper;
import com.cf.imes.module.manage.dal.mysql.query.OrderPartsMapper;
import com.cf.imes.module.manage.util.page.PageHelperUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@@ -43,8 +40,7 @@ import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.ge
@Validated
public class ProductionStatusServiceImpl implements ProductionStatusService {
@Resource
private ProductionStatusMapper productionStatusMapper;
@Resource
private ProcessStepMapper processStepMapper;
@@ -56,6 +52,8 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
@Resource
private OrderPackageMapper orderPackageMapper;
@Resource
private OrdersMapper ordersMapper;
@Resource
private OrderItemMapper orderItemMapper;
@@ -69,7 +67,7 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
@Override
public PageResult<OrderDO> getProductionPage(OrderPlatePageReqVO pageReqVO) {
return productionStatusMapper.selectProductionPage(pageReqVO);
return ordersMapper.selectProductionPage(pageReqVO);
}
@@ -156,7 +154,7 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
@Override
public PageResult<OrderDO> queryPackage(OrderPlatePageReqVO pageReqVO) {
return productionStatusMapper.selectProductionPage(pageReqVO);
return ordersMapper.selectProductionPage(pageReqVO);
}
@@ -235,7 +233,9 @@ public class ProductionStatusServiceImpl implements ProductionStatusService {
@Override
public PrintOrderRespVO printOrder(Long orderNo) {
return productionStatusMapper.selectPrintOrder(orderNo,getUserOrganId());
// return productionStatusMapper.selectPrintOrder(orderNo,getUserOrganId());
return null;
}
@@ -15,42 +15,67 @@
resultMap="PackMap">
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
select
order_id as id,
count(id) as packCount
from order_package
where
oi.package_id != 0
and op.organ_id = #{organId}
and op.order_id in
organ_id = #{organId}
and status !=0
and order_id in
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id}
</foreach>
group by op.order_id;
group by order_id
</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
op.order_id as id,
count(distinct oi.plate_id ) as packPieceCount
select distinct
from order_package op
join order_item oi on op.id = oi.package_id and op.organ_id = oi.organ_id
op.order_id as id,
count(distinct oi.plate_id ) as packPieceCount
where oi.package_id !=0
from order_item oi
join order_package op on oi.package_id = op.id and oi.organ_id = op.organ_id
where
oi.organ_id = #{organId}
and oi.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
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;
@@ -197,5 +222,28 @@
</select>
<select id="selectPackListByOrderId"
resultType="com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO">
select distinct
id,
order_id,
package_no,
type,
status,
organ_id,
creator,
remark as packRemark,
updater,
update_time,
create_time
from order_package
where organ_id = #{organId} and order_id = #{orderId} and deleted = false
</select>
</mapper>
@@ -1,40 +1,64 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.manage.dal.mysql.query.ProductionStatusMapper">
<mapper namespace="com.cf.imes.module.manage.dal.mysql.process.OrdersMapper">
<resultMap id="printOrderMap" type="com.cf.imes.module.manage.controller.admin.query.vo.pack.PrintOrderRespVO">
<result property="orderNo" column="orderNo"/>
<result property="customOrderNo" column="customOrderNo"/>
<result property="dealer" column="dealer"/>
<result property="address" column="address"/>
<result property="customer" column="customer"/>
<result property="customerPhone" column="customerPhone"/>
<result property="packageQuantity" column="packageQuantity"/>
</resultMap>
<select id="selectPrintOrder"
parameterType="java.lang.Long"
resultMap="printOrderMap">
<select id="selectOrderIds" resultMap="PackMap">
select
o.id as orderNo ,
o.custom_order_no as customOrderNo,
o.dealer as dealer,
o.address as address,
o.customer as customer,
o.phone_number as customerPhone,
count(opn.order_id) as packageQuantity
from `orders` o
join order_package opn on o.id = opn.order_id and o.organ_id = opn.organ_id
SELECT
id as orderNo,
custom_order_no as customOrderNo,
dealer as dealer,
dealer_phone_number as dealerPhoneNumber,
order_date as orderDate,
create_time as createTime,
delivery_date as deliveryDate,
customer as customer,
phone_number as phoneNumber,
address as address,
salesman as salesman,
splitter as splitter,
packaged as packaged
FROM orders
WHERE organ_id = #{organId} and deleted = false and status != 0 and create_time &gt;= #{createTime} and id != #{orderId}
ORDER BY create_time
LIMIT 1 ;
where o.id = #{orderNo} and opn.status &lt;&gt; 0 and o.organ_id = #{organId} ;
</select>
<select id="selectOrderIdsFalse" resultMap="PackMap">
SELECT
id as orderNo,
custom_order_no as customOrderNo,
dealer as dealer,
dealer_phone_number as dealerPhoneNumber,
order_date as orderDate,
create_time as createTime,
delivery_date as deliveryDate,
customer as customer,
phone_number as phoneNumber,
address as address,
salesman as salesman,
splitter as splitter,
packaged as packaged
FROM orders
WHERE organ_id = #{organId} and deleted = false and status != 0 and create_time &lt;= #{createTime} and id != #{orderId}
ORDER BY create_time desc
LIMIT 1 ;
</select>
<resultMap id="PackMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO">
<result property="id" column="orderNo"/>
@@ -82,11 +106,11 @@
join order_item oi on o.id = oi.order_id and o.organ_id = oi.organ_id
WHERE
o.organ_id = #{organId} and
o.id in
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id}
</foreach>
o.organ_id = #{organId} and
o.id in
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id}
</foreach>
group by orderNo,customOrderNo,dealer,deliveryDate,customer,phoneNumber,address,salesman,splitter,packaged,dealerPhoneNumber,orderDate,o.create_time
@@ -110,14 +134,14 @@
resultMap="PrintMap">
select o.custom_order_no as customOrderNo,
o.dealer as dealer,
opn.id as packNo ,
o.id as orderNo,
o.address as address,
((SELECT COUNT(t2.id) FROM order_package t2 WHERE t2.create_time &lt;= opn.create_time and t2.order_id =#{orderNo})) as packNum
o.dealer as dealer,
opn.id as packNo ,
o.id as orderNo,
o.address as address,
((SELECT COUNT(t2.id) FROM order_package t2 WHERE t2.create_time &lt;= opn.create_time and t2.order_id =#{orderNo})) as packNum
from `orders` o
join order_package opn on o.id = opn.order_id and o.organ_id = opn.organ_id
join order_package opn on o.id = opn.order_id and o.organ_id = opn.organ_id
where opn.order_id =#{orderNo} and opn.id = #{packageNo} and opn.status &lt;&gt; 0 and opn.organ_id = #{organId}
order by opn.create_time ;
@@ -125,10 +149,25 @@
</select>
<select id="selectOrderIds" resultType="com.cf.imes.module.manage.dal.dataobject.process.OrderDO" parameterType="map">
<select id="selectOrderIdList" resultMap="PackMap" parameterType="map">
select * from orders
select
id as orderNo,
custom_order_no as customOrderNo,
dealer as dealer,
dealer_phone_number as dealerPhoneNumber,
order_date as orderDate,
create_time as createTime,
delivery_date as deliveryDate,
customer as customer,
phone_number as phoneNumber,
address as address,
salesman as salesman,
splitter as splitter,
packaged as packaged
from orders
<where>
organ_id =#{organId}
@@ -165,7 +204,9 @@
</select>
<!-- <if test="pageReqVO.status == true">
and status in (4)
</if>-->
</mapper>
@@ -1,194 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.manage.dal.mysql.process.ProductionProcessMapper">
<resultMap id="PatchingPlateMap" type="com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlateRespVO">
<result property="groupId" column="groupId"/>
<result property="orderId" column="orderId"/>
<result property="customOrderId" column="customOrderId"/>
<result property="customer" column="customer"/>
<result property="address" column="address"/>
<result property="orderStatus" column="orderStatus"/>
<result property="plateName" column="plateName"/>
<result property="plateNum" column="plateNum"/>
<result property="thickness" column="thickness"/>
<result property="material" column="material"/>
<result property="color" column="color"/>
</resultMap>
<select id="selectPatchingPlate"
resultMap="PatchingPlateMap"
parameterType="com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlatePageReqVO">
select
DISTINCT
p.goods_id,
o.id as orderId,
o.custom_order_no as customOrderId,
o.customer as customer,
o.address as address,
o.status as orderStatus,
oi.num as plateNum,
<![CDATA[
CONCAT(
TRIM(TRAILING '.' from TRIM(TRAILING '0' FROM p.thickness)),'mm-',p.material,'-',p.color) AS plateName,
]]>
p.thickness as thickness,
p.material as material,
p.color as color
from `orders` o
join order_item oi on o.id = oi.order_id
join order_plate op on oi.plate_id = op.id
join plate p on op.goods_id = p.goods_id
<where>
<choose>
<!-- 挖穿,挖孔,二维刀路判断 -->
<when test="isDigThrough == true">
(op.filter_type = 1
<if test="isDiggingHoles == true ">
or op.filter_type = 2
</if>
<if test="is2DCuttingPath == true ">
or op.filter_type = 4
</if>)
<!-- 其他的判断 -->
<if test="orderNo != null">
and o.id = #{orderNo}
</if>
<if test="customOrderNo != null">
and o.custom_order_no = #{customOrderNo}
</if>
<if test="customer != null">
and o.customer = #{customer}
</if>
<if test="address != null">
and o.address = #{address}
</if>
<if test="statusList != null">
and o.status in
<foreach item="id" collection="statusList" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="startTime != null and endTime != null">
and o.update_time between #{startTime} and #{endTime}
</if>
<if test="isRectangle == true ">
and op.unregular_point_count = 0
</if>
<if test="isSpecialShaped == true ">
and op.unregular_point_count &gt; 0
</if>
<if test="isProfiling == true ">
and front_model_count &gt; 0 or op.back_hole_count &gt; 0 or op.side_hole_count &gt; 0
</if>
<if test="isDoor == true ">
and op.is_door = 1
</if>
<!-- <if test="longRangeList != null and !longRangeList.isEmpty()">
AND (
&lt;!&ndash; 根据 DataRangeList 中的属性进行条件判断 &ndash;&gt;
<foreach collection="longRangeList" item="range" separator=" OR ">
(#{op.width} &lt;= #{range.maxaa} AND #{op.width} &gt;= #{range.minbb})
</foreach>
)
</if>-->
</when>
<!-- 不传入挖穿等判断,走另一个判断逻辑 -->
<otherwise>
<if test="orderNo != null">
and o.id = #{orderNo}
</if>
<if test="customOrderNo != null">
and o.custom_order_no = #{customOrderNo}
</if>
<if test="customer != null">
and o.customer = #{customer}
</if>
<if test="address != null">
and o.address = #{address}
</if>
<if test="statusList != null">
and o.status in
<foreach item="id" collection="statusList" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="startTime != null and endTime != null">
and o.update_time between #{startTime} and #{endTime}
</if>
<if test="isRectangle == true ">
and op.unregular_point_count = 0
</if>
<if test="isSpecialShaped == true ">
and op.unregular_point_count &gt; 0
</if>
<if test="isProfiling == true ">
and front_model_count &gt; 0 or op.back_hole_count &gt; 0 or op.side_hole_count &gt; 0
</if>
<if test="isDoor == true ">
and op.is_door = 1
</if>
<!--
<if test="longRangeList != null and !longRangeList.isEmpty()">
AND
&lt;!&ndash; 根据 DataRangeList 中的属性进行条件判断 &ndash;&gt;
<foreach collection="longRangeList" item="range" open="(" separator="," close=")">
op.width between #{range.minbb} AND #{range.maxaa}
</foreach>
</if>-->
</otherwise>
</choose>
</where>
group by p.goods_id,orderId,customOrderId,customer,address,orderStatus,plateNum,plateName,thickness,material,color
</select>
<select id="selectOrderIds" resultType="com.cf.imes.module.manage.dal.dataobject.process.OrderDO">
SELECT * FROM orders
WHERE organ_id = #{organId} and deleted = false and status != 0 and create_time &gt; #{createTime} and id != #{orderId}
ORDER BY create_time
LIMIT 1 ;
</select>
<select id="selectOrderIdsFalse" resultType="com.cf.imes.module.manage.dal.dataobject.process.OrderDO">
SELECT * FROM orders
WHERE organ_id = #{organId} and deleted = false and status != 0 and create_time &lt; #{createTime} and id != #{orderId}
ORDER BY create_time desc
LIMIT 1 ;
</select>
</mapper>
@@ -468,4 +468,27 @@
</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
</select>
</mapper>
@@ -76,7 +76,7 @@
from order_parts op
join order_item oi on op.id = oi.parts_id and op.organ_id = oi.organ_id
where op.organ_id = #{organId} and op.order_id = #{orderId} and oi.package_id = 0
where op.organ_id = #{organId} and op.order_id = #{orderId}
</select>