| | |
| | | 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; |
| | |
| | | import com.chinaztt.mes.plan.util.CustomerOrderClientConfigure; |
| | | import com.chinaztt.mes.plan.util.CustomerOrderUnitWhiteListConfig; |
| | | import com.chinaztt.mes.plan.util.CustomerOrderUtil; |
| | | import com.chinaztt.mes.plan.util.FileSaveUtil; |
| | | import com.chinaztt.mes.plan.vo.CustomerOrderVO1; |
| | | import com.chinaztt.mes.quality.dto.CustomOrderSyncDTO; |
| | | import com.chinaztt.mes.technology.entity.*; |
| | |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.FileInputStream; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.math.BigDecimal; |
| | |
| | | // } |
| | | //保存主生产计划 |
| | | 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) { |
| | |
| | | return true; |
| | | } |
| | | |
| | | //多个销售订单创建一个主生产计划 |
| | | @Override |
| | | public MasterProductionSchedule createOneMasterProductionScheduleByCustomerOrders(List<CustomerOrderDTO> customerOrders) { |
| | | List<Long> ids = customerOrders.stream().map(CustomerOrderDTO::getId).collect(Collectors.toList()); |
| | |
| | | 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); |
| | |
| | | .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) { |
| | |
| | | customerOrder = new CustomerOrder(); |
| | | } |
| | | //如果这个单子在OTC中取消状态 那就删除 |
| | | if (otcOrderStatus.equals("已取消")) { |
| | | if (otcOrderStatus.equals(OTC_MAIN_STATUS_CANCEL)) { |
| | | if (customerOrder.getId() != null) { |
| | | baseMapper.deleteById(customerOrder.getId()); |
| | | } |
| | |
| | | } 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); |
| | | } |
| | |
| | | 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); |
| | |
| | | |
| | | @Override |
| | | public R uploadProcessConfigFile(MultipartFile file, String orderNumber, String lineNumber) { |
| | | String fileName = IdUtil.simpleUUID() + StrUtil.DOT + FileUtil.extName(file.getOriginalFilename()); |
| | | String fileName = FileUtil.extName(file.getOriginalFilename()); |
| | | try { |
| | | minioTemplate.putObject(ossProperties.getBucketName(), fileName, file.getInputStream()); |
| | | OrderProcessConfigFile configFile = new OrderProcessConfigFile(); |
| | | configFile.setFileName(fileName); |
| | | configFile.setOriginalFileName(file.getOriginalFilename()); |
| | | configFile.setOrderNumber(orderNumber); |
| | | configFile.setLineNumber(lineNumber); |
| | | configFile.setBucketName(ossProperties.getBucketName()); |
| | | configFile.setBucketName(FileSaveUtil.StoreFile(file)); |
| | | orderProcessConfigFileMapper.insert(configFile); |
| | | ProcessConfigFileOrderMapping mapping = ProcessConfigFileOrderMapping.builder().configFileId(configFile.getId()) |
| | | .orderNumber(orderNumber).lineNumber(lineNumber).build(); |
| | |
| | | |
| | | @Override |
| | | public void getFile(String bucket, String fileName, HttpServletResponse response) { |
| | | try (InputStream inputStream = minioTemplate.getObject(bucket, fileName)) { |
| | | try { |
| | | String path = FileSaveUtil.FILE_PATH + bucket; |
| | | InputStream inputStream = new FileInputStream(path); |
| | | response.setContentType("application/octet-stream; charset=UTF-8"); |
| | | IoUtil.copy(inputStream, response.getOutputStream()); |
| | | } catch (Exception e) { |