zouyu
2023-11-15 54cce185f383849322d5cc309d2ee5d155d15915
mes-plan/src/main/java/com/chinaztt/mes/plan/service/impl/CustomerOrderServiceImpl.java
@@ -5,7 +5,6 @@
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.excel.EasyExcel;
@@ -37,7 +36,6 @@
import com.chinaztt.mes.common.oa.OAResult;
import com.chinaztt.mes.common.util.StateResult;
import com.chinaztt.mes.common.util.WechatMsgTips;
import com.chinaztt.mes.common.util.easyexcel.EasyExcelUtils;
import com.chinaztt.mes.common.wechat.WechatProperty;
import com.chinaztt.mes.plan.dto.*;
import com.chinaztt.mes.plan.entity.*;
@@ -398,18 +396,28 @@
         // }
         //保存主生产计划
         MasterProductionSchedule masterProductionSchedule = new MasterProductionSchedule();
         //主生产计划号
         masterProductionSchedule.setMpsNo(scheduleNumberGenerator.generateNumberWithPrefix(MasterProductionSchedule.DIGIT, MasterProductionSchedule.PREFIX, MasterProductionSchedule::getMpsNo));
         masterProductionSchedule.setPartId(customerOrderDTO.getPartId());
         Part part = partMapper.selectOne(Wrappers.<Part>lambdaQuery().eq(Part::getPartNo, customerOrderDTO.getPartNo()));
         //零件id
         masterProductionSchedule.setPartId(part.getId());
         //将审核状态和工艺文件的id同步给生产计划
         masterProductionSchedule.setIsAudit(customerOrderDTO.getIsAudit());
         masterProductionSchedule.setTechnologyDocumentId(customerOrderDTO.getTechnologyDocumentId());
         masterProductionSchedule.setManufactureAttr(customerOrderDTO.getManufactureAttr());
         masterProductionSchedule.setDocNumber(customerOrderDTO.getDocNumber());
         //需求数量
         masterProductionSchedule.setQtyRequired(qta);
         //需求日期
         masterProductionSchedule.setRequiredDate(customerOrderDTO.getDeliveryDate());
         //备注
         masterProductionSchedule.setRemark(customerOrderDTO.getRemark());
         masterProductionSchedule.setQtyRequired(qta);
         masterProductionSchedule.setRequiredDate(customerOrderDTO.getWantedDeliveryDate());
         masterProductionSchedule.setRemark(customerOrderDTO.getRemark());
         masterProductionSchedule.setSource("销售订单");
         masterProductionScheduleMapper.insert(masterProductionSchedule);
         customerOrderDTO.setRequireNumber(customerOrderDTO.getQtyPlaned());
         // if (CollectionUtil.isNotEmpty(operationTaskProduceList)) {
         //    for (OperationTaskProduce operationTaskProduce : operationTaskProduceList) {
@@ -436,6 +444,7 @@
      return true;
   }
   //多个销售订单创建一个主生产计划
   @Override
   public MasterProductionSchedule createOneMasterProductionScheduleByCustomerOrders(List<CustomerOrderDTO> customerOrders) {
      List<Long> ids = customerOrders.stream().map(CustomerOrderDTO::getId).collect(Collectors.toList());
@@ -597,17 +606,20 @@
         return R.failed("工艺文件缺失");
      }
      List<CustomerOrder> customerOrderList = baseMapper.selectBatchIds(ids);
      customerOrderList.forEach(l->{
         log.info("关联数据==============================>"+l);
      });
      String msg = "";
      for (CustomerOrder customerOrder : customerOrderList) {
         if (BooleanUtil.isTrue(customerOrder.getIsDocument())) {
            msg += customerOrder.getCustomerOrderNo() + "已关联工艺文件!";
         }
         if (StringUtils.isBlank(customerOrder.getSalesPartNo())) {
         if (StringUtils.isBlank(customerOrder.getPartNo())) {
            msg += customerOrder.getCustomerOrderNo() + "未选择销售件!";
         }
         if (StringUtils.isBlank(customerOrder.getPartNo())) {
            customerOrder.setPartNo(document.getPartNo());
         }
         //if (StringUtils.isBlank(customerOrder.getPartNo())) {
         //   customerOrder.setPartNo(document.getPartNo());
         //}
         customerOrder.setIsDocument(true);
         customerOrder.setCoState(CustomerOrderStateStringValues.PLAN);
         customerOrder.setTechnologyDocumentId(docId);
@@ -697,9 +709,6 @@
               .contentType("application/json")
               .header("Authorization", "Bearer " + token).form(map).execute().body();
         JSONObject result = JSONObject.parseObject(str);
         //JSONArray jsonArray = result.getJSONArray("data");
         //jsonArray.forEach();
         //return null;
         //主表参数表
         List<OrderParam> orderParams = orderParamService.list();
         if (result.getInteger("code") == 0) {
@@ -824,7 +833,7 @@
                  customerOrder = new CustomerOrder();
               }
               //如果这个单子在OTC中取消状态 那就删除
               if (otcOrderStatus.equals("已取消")) {
               if (otcOrderStatus.equals(OTC_MAIN_STATUS_CANCEL)) {
                  if (customerOrder.getId() != null) {
                     baseMapper.deleteById(customerOrder.getId());
                  }
@@ -912,7 +921,7 @@
                  } else {
                     customerOrder.setCoState(CustomerOrderStateStringValues.PARTUNCHECKED);
                  }
                  if (org.apache.commons.lang3.StringUtils.equals("已下达", otcMainStatus)) {
                  if (org.apache.commons.lang3.StringUtils.equals(OTC_MAIN_STATUS_TRANSMIT, otcMainStatus)) {
                     customerOrder.setCoState(CustomerOrderStateStringValues.TECHNOLOGYUNCHECK);
                     customerOrder.setOtcPartSync(Boolean.TRUE);
                  }
@@ -921,8 +930,8 @@
                     customerOrder.setCoState(CustomerOrderStateStringValues.TECHNOLOGYUNCHECK);
                     customerOrder.setOtcPartSync(Boolean.TRUE);
                  }
                  //审核状态为 01draft 草稿
                  customerOrder.setIsAudit(AuditStateStringValues.DRAFT);
                  //审核状态为 03accepted 通过
                  customerOrder.setIsAudit(AuditStateStringValues.ACCEPTED);
                  baseMapper.insert(customerOrder);
               }
               addCustomerPara(customerJSONObject, customerOrderJSONObject, customerOrder, orderParamList);
@@ -1913,7 +1922,6 @@
      try {
         String path = FileSaveUtil.FILE_PATH + bucket;
         InputStream inputStream = new FileInputStream(path);
//         EasyExcel.write(path).sheet().doWrite(null);
         response.setContentType("application/octet-stream; charset=UTF-8");
         IoUtil.copy(inputStream, response.getOutputStream());
      } catch (Exception e) {