|
@@ -0,0 +1,167 @@
|
|
|
+package com.abi.qms.platform.service.impl;
|
|
|
+
|
|
|
+import com.abi.qms.platform.dao.entity.*;
|
|
|
+import com.abi.qms.platform.dao.mapper.*;
|
|
|
+import com.abi.qms.platform.dao.vo.result.QueryOrderFormDetailVO;
|
|
|
+import com.abi.qms.platform.dao.vo.result.QueryOrderFormLimitVO;
|
|
|
+import com.abi.qms.platform.dto.req.AssociateSapOrderReq;
|
|
|
+import com.abi.qms.platform.dto.req.QueryOrderFormDetailReq;
|
|
|
+import com.abi.qms.platform.dto.req.QueryOrderFormLimitReq;
|
|
|
+import com.abi.qms.platform.dto.req.SaveOrderFormReq;
|
|
|
+import com.abi.qms.platform.dto.res.ListQrVariableRes;
|
|
|
+import com.abi.qms.platform.dto.res.QueryOrderFormDetailRes;
|
|
|
+import com.abi.qms.platform.dto.res.QueryOrderFormLimitRes;
|
|
|
+import com.abi.qms.platform.infrastructure.util.PageUtil;
|
|
|
+import com.abi.qms.platform.service.QrPackageBookingOrderService;
|
|
|
+import com.abi.task.common.api.exception.BusinessException;
|
|
|
+import com.abi.task.common.utils.PojoConverterUtils;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import org.apache.commons.lang3.ObjectUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author ludashi
|
|
|
+ * @date 2021年06月04日 15:04
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class QrPackageBookingOrderServiceImpl implements QrPackageBookingOrderService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private QrPackageBookingOrderMapper qrPackageBookingOrderMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private BaseFactoryMapper baseFactoryMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private BaseMaterialMapper baseMaterialMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private QrPackageMapper qrPackageMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private QrPackageSapOrderItemMapper qrPackageSapOrderItemMapper;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增修改预订单
|
|
|
+ * @author ludashi
|
|
|
+ * @date 2021/6/4 18:50
|
|
|
+ * @param saveOrderFormReq
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void saveOrderForm(SaveOrderFormReq saveOrderFormReq) {
|
|
|
+ QrPackageBookingOrder qPackageBookingOrderCopy = PojoConverterUtils.copy(saveOrderFormReq, QrPackageBookingOrder.class);
|
|
|
+ if(null == qPackageBookingOrderCopy.getId() &&
|
|
|
+ !ObjectUtils.isEmpty(qPackageBookingOrderCopy.getBookingOrder())){
|
|
|
+ //新增
|
|
|
+ if(ObjectUtils.isEmpty(qPackageBookingOrderCopy.getBookingOrder())){
|
|
|
+ throw new BusinessException("预订单单号为空");
|
|
|
+ }
|
|
|
+ QueryWrapper<QrPackageBookingOrder> qrFormatQw = new QueryWrapper<>();
|
|
|
+ qrFormatQw.eq("booking_order",qPackageBookingOrderCopy.getBookingOrder());
|
|
|
+ Integer count = qrPackageBookingOrderMapper.selectCount(qrFormatQw);
|
|
|
+ if (!count.equals(0)) {
|
|
|
+ throw new BusinessException("预订单号已存在");
|
|
|
+ }
|
|
|
+ qrPackageBookingOrderMapper.insert(qPackageBookingOrderCopy);
|
|
|
+ } else {
|
|
|
+ //修改
|
|
|
+ if(!ObjectUtils.isEmpty(qPackageBookingOrderCopy.getBookingOrder())){
|
|
|
+ throw new BusinessException("预订单单号不可修改");
|
|
|
+ }
|
|
|
+ qPackageBookingOrderCopy.setBookingOrder(null);
|
|
|
+ qrPackageBookingOrderMapper.updateById(qPackageBookingOrderCopy);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查看预订单详情
|
|
|
+ * @author ludashi
|
|
|
+ * @date 2021/6/4 18:50
|
|
|
+ * @param queryOrderFormDetailReq
|
|
|
+ * @return com.abi.qms.platform.dto.res.QueryOrderFormDetailRes
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public QueryOrderFormDetailRes queryOrderFormDetail(QueryOrderFormDetailReq queryOrderFormDetailReq) {
|
|
|
+ QueryWrapper<QrPackageBookingOrder> qrFormatQw = new QueryWrapper<>();
|
|
|
+ qrFormatQw.eq("booking_order",queryOrderFormDetailReq.getBookingOrder());
|
|
|
+ qrFormatQw.eq("is_delete",0);
|
|
|
+ QrPackageBookingOrder qrPackageBookingOrder = qrPackageBookingOrderMapper.selectOne(qrFormatQw);
|
|
|
+ BaseFactory baseFactory = baseFactoryMapper.selectById(qrPackageBookingOrder.getFactoryCoverId());
|
|
|
+ List<QueryOrderFormDetailVO> queryQueryOrderFormDetailVO= qrPackageBookingOrderMapper.queryOrderFormDetail(queryOrderFormDetailReq);
|
|
|
+ // 封装出参
|
|
|
+ QueryOrderFormDetailRes orderFormDetailRes = PojoConverterUtils.copy(qrPackageBookingOrder, QueryOrderFormDetailRes.class);
|
|
|
+ if(!ObjectUtils.isEmpty(queryQueryOrderFormDetailVO)){
|
|
|
+ List<QueryOrderFormDetailRes.QueryPackageDetailBean> queryOrderFormDetailBeans = PojoConverterUtils.copyList(queryQueryOrderFormDetailVO, QueryOrderFormDetailRes.QueryPackageDetailBean.class);
|
|
|
+ orderFormDetailRes.setQueryPackageDetailBean(queryOrderFormDetailBeans);
|
|
|
+ }
|
|
|
+ if(!ObjectUtils.isEmpty(baseFactory)){
|
|
|
+ orderFormDetailRes.setFactoryCoverName(baseFactory.getFactoryName());
|
|
|
+ }
|
|
|
+ return orderFormDetailRes;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查看预订单查询分页
|
|
|
+ * @author ludashi
|
|
|
+ * @date 2021/6/7 9:45
|
|
|
+ * @param queryOrderFormLimitReq
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public QueryOrderFormLimitRes queryOrderFormLimit(QueryOrderFormLimitReq queryOrderFormLimitReq) {
|
|
|
+ IPage<QueryOrderFormLimitVO> iPage = qrPackageBookingOrderMapper.queryOrderFormLimit(PageUtil.createPage(queryOrderFormLimitReq), queryOrderFormLimitReq);
|
|
|
+ List<QueryOrderFormLimitVO> records = iPage.getRecords();
|
|
|
+ if(ObjectUtils.isEmpty(records)){
|
|
|
+ new BusinessException("查询列表为空");
|
|
|
+ }
|
|
|
+ QueryOrderFormLimitRes res= new QueryOrderFormLimitRes();
|
|
|
+ PageUtil.copyPageInfo(res, iPage);
|
|
|
+ List<QueryOrderFormLimitRes.QueryOrderFormLimitBean> queryOrderFormLimitBeans = PojoConverterUtils.copyList(records, QueryOrderFormLimitRes.QueryOrderFormLimitBean.class);
|
|
|
+ res.setQueryOrderFormLimitBean(queryOrderFormLimitBeans);
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 关联sap单号
|
|
|
+ * @author ludashi
|
|
|
+ * @date 2021/6/7 11:45
|
|
|
+ * @param associateSapOrderReq
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void associateSapOrder(AssociateSapOrderReq associateSapOrderReq) {
|
|
|
+ //1根据物料code查询id保存
|
|
|
+ QueryWrapper<BaseMaterial> baseMaterial = new QueryWrapper<>();
|
|
|
+ baseMaterial.eq("material_code",associateSapOrderReq.getMaterialCode());
|
|
|
+ baseMaterial.eq("is_delete",0);
|
|
|
+ BaseMaterial baseMaterials = baseMaterialMapper.selectOne(baseMaterial);
|
|
|
+ //关联SAP订单 校验
|
|
|
+ QueryWrapper<QrPackageSapOrderItem> qrPackageSapOrderItem = new QueryWrapper<>();
|
|
|
+ qrPackageSapOrderItem.eq("sap_order_no",associateSapOrderReq.getSapOrder());
|
|
|
+ qrPackageSapOrderItem.eq("sap_material_id",baseMaterials.getId());
|
|
|
+ QrPackageSapOrderItem queryQrPackageSapOrderItem = qrPackageSapOrderItemMapper.selectOne(qrPackageSapOrderItem);
|
|
|
+ if(ObjectUtils.isEmpty(queryQrPackageSapOrderItem)){
|
|
|
+ new BusinessException("该SAP订单号内未找到需要打码的物料,请维护物料数据后重试");
|
|
|
+ }
|
|
|
+ //2修改预订单名称
|
|
|
+ QrPackageBookingOrder qrPackageBookingOrder = qrPackageBookingOrderMapper.selectById(associateSapOrderReq.getId());
|
|
|
+ qrPackageBookingOrder.setMaterialName(baseMaterials.getMaterialName());
|
|
|
+
|
|
|
+ //修改码包
|
|
|
+ QueryWrapper<QrPackage> packageQuery = new QueryWrapper<>();
|
|
|
+ packageQuery.eq("booking_order",associateSapOrderReq.getBookingOrder());
|
|
|
+ QrPackage qrPackage = qrPackageMapper.selectOne(packageQuery);
|
|
|
+ qrPackage.setSapOrderNo(associateSapOrderReq.getSapOrder());
|
|
|
+ qrPackage.setMaterialId(baseMaterials.getId());
|
|
|
+ qrPackage.setMaterialCode(baseMaterials.getMaterialCode());
|
|
|
+ if(!queryQrPackageSapOrderItem.getSapCoverFactoryId().equals(qrPackage.getFactoryCoverId().toString())){
|
|
|
+ new BusinessException("关联的SAP订单内包材厂信息与原预订单不符,请确认后重试。");
|
|
|
+ }
|
|
|
+ qrPackageBookingOrderMapper.updateById(qrPackageBookingOrder);
|
|
|
+ qrPackageMapper.updateById(qrPackage);
|
|
|
+ }
|
|
|
+}
|