diff --git a/youchain-system/src/main/java/com/youchain/basicdata/domain/Item.java b/youchain-system/src/main/java/com/youchain/basicdata/domain/Item.java index 5fc60c9..bf2ef03 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/domain/Item.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/domain/Item.java @@ -213,6 +213,18 @@ public class Item extends BaseEntity implements Serializable { @ApiModelProperty(value = "agv场景") private AgvScene agvScene; + public Item() { + } + + public Item(String code, String name, String unit,Dept dept,String sourceName,Long sourceId) { + this.code = code; + this.name = name; + this.unit = unit; + this.dept = dept; + this.sourceName = sourceName; + this.sourceId = sourceId; + } + public void copy(Item source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); } diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/ItemService.java b/youchain-system/src/main/java/com/youchain/basicdata/service/ItemService.java index 9dde0b5..c2c8d27 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/ItemService.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/ItemService.java @@ -28,6 +28,7 @@ import org.springframework.web.multipart.MultipartFile; import java.util.Map; import java.util.List; import java.io.IOException; +import java.util.Set; import javax.servlet.http.HttpServletResponse; /** @@ -111,5 +112,12 @@ public interface ItemService { * @return */ Item existItem(String itemCode); - -} \ No newline at end of file + + /** + * 根据物料编码查询物料信息 + * @param itemCodes + * @return + */ + Map findByItemCodes(Set itemCodes); + +} diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ItemServiceImpl.java b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ItemServiceImpl.java index 0eef6db..08090e6 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ItemServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ItemServiceImpl.java @@ -32,21 +32,19 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import java.util.List; -import java.util.Map; + +import java.util.*; import java.io.IOException; import javax.persistence.EntityManager; import javax.persistence.Query; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.LinkedHashMap; + import org.springframework.data.domain.Example; -import java.util.Optional; /** + * @author houjianlan * @website https://eladmin.vip * @description 服务实现 - * @author houjianlan * @date 2023-08-07 **/ @Service @@ -58,21 +56,21 @@ public class ItemServiceImpl implements ItemService { private final EntityManager entityMapper; @Override - public Map queryAll(ItemQueryCriteria criteria, Pageable pageable){ - Page page = itemRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); + public Map queryAll(ItemQueryCriteria criteria, Pageable pageable) { + Page page = itemRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); return PageUtil.toPage(page.map(itemMapper::toDto)); } @Override - public List queryAll(ItemQueryCriteria criteria){ - return itemMapper.toDto(itemRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); + public List queryAll(ItemQueryCriteria criteria) { + return itemMapper.toDto(itemRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder))); } @Override @Transactional public ItemDto findById(Long id) { Item item = itemRepository.findById(id).orElseGet(Item::new); - ValidationUtil.isNull(item.getId(),"Item","id",id); + ValidationUtil.isNull(item.getId(), "Item", "id", id); return itemMapper.toDto(item); } @@ -82,16 +80,17 @@ public class ItemServiceImpl implements ItemService { Item item = itemRepository.findById(id).orElseGet(Item::new); return item; } + @Override @Transactional public ItemDto findByCode(String itemCode) { Item itemExample = new Item(); itemExample.setCode(itemCode); Example example = Example.of(itemExample); - List its=itemRepository.findAll(example); - if(its.size()>0){ + List its = itemRepository.findAll(example); + if (its.size() > 0) { return itemMapper.toDto(its.get(0)); - }else { + } else { return null; } } @@ -106,7 +105,7 @@ public class ItemServiceImpl implements ItemService { @Transactional(rollbackFor = Exception.class) public void update(Item resources) { Item item = itemRepository.findById(resources.getId()).orElseGet(Item::new); - ValidationUtil.isNull( item.getId(),"Item","id",resources.getId()); + ValidationUtil.isNull(item.getId(), "Item", "id", resources.getId()); item.copy(resources); itemRepository.save(item); } @@ -122,7 +121,7 @@ public class ItemServiceImpl implements ItemService { public void download(List all, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (ItemDto item : all) { - Map map = new LinkedHashMap<>(); + Map map = new LinkedHashMap<>(); map.put("代码", item.getCode()); map.put("名称", item.getName()); map.put("规格", item.getSpecs()); @@ -163,14 +162,27 @@ public class ItemServiceImpl implements ItemService { @Override - public Item existItem(String itemCode){ - String hql=" from Item it where it.code='"+itemCode+"' and it.enabled=true "; - Query query=entityMapper.createQuery(hql); - List its=query.getResultList(); - if(its.size()>0){ + public Item existItem(String itemCode) { + String hql = " from Item it where it.code='" + itemCode + "' and it.enabled=true "; + Query query = entityMapper.createQuery(hql); + List its = query.getResultList(); + if (its.size() > 0) { return its.get(0); } - return null; + return null; + } + + @Override + public Map findByItemCodes(Set itemCodes) { + String hql = " from Item it where it.code in (:itemCodes) "; + Query query = entityMapper.createQuery(hql); + query.setParameter("itemCodes", itemCodes); + List its = query.getResultList(); + Map itemMap = new HashMap<>(); + for (Item item : its) { + itemMap.put(item.getCode(), item); + } + return itemMap; } } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/MoService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/MoService.java index 5b5db79..51caac0 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/MoService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/MoService.java @@ -19,9 +19,12 @@ import com.youchain.businessdata.domain.Mo; import com.youchain.businessdata.service.dto.MoDto; import com.youchain.businessdata.service.dto.MoQueryCriteria; import org.springframework.data.domain.Pageable; +import org.springframework.scheduling.annotation.Async; + import java.util.Map; import java.util.List; import java.io.IOException; +import java.util.Set; import javax.servlet.http.HttpServletResponse; /** @@ -95,4 +98,25 @@ public interface MoService { * @param mo MO票 */ void scanMo(String mo); + + /** + * 根据labelNos查询MO + * @param labelNos labelNos集合 + * @return Map + */ + Map findBylabelNos(Set labelNos); + + /** + * 批量创建MO + * @param mos MO集合 + */ + @Async + void batchCreateMos(List mos); + + /** + * 批量修改MO + * @param mos MO集合 + */ + @Async + void batchUpdateMos(List mos); } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MlsServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MlsServiceImpl.java index 027a6da..5102098 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MlsServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MlsServiceImpl.java @@ -19,10 +19,7 @@ import com.youchain.exception.handler.ApiResult; import com.youchain.modules.system.domain.Dept; import com.youchain.modules.system.service.DeptService; import com.youchain.modules.system.service.dto.DeptDto; -import com.youchain.utils.BizStatus; -import com.youchain.utils.HttpPostUtil; -import com.youchain.utils.StringUtils; -import com.youchain.utils.UrlApi; +import com.youchain.utils.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -265,88 +262,130 @@ public class MlsServiceImpl implements MlsService { if (details == null || details.size() == 0) { throw new RuntimeException("没有获取到MO票数据!"); } + + List mosToCreate = new ArrayList<>();//新增Mo集合 + List mosToUpdate = new ArrayList<>();//修改Mo集合 + + //获取所有物料编码 + Set itemCodes = details.stream() + .map(detail -> ((JSONObject) detail).getString("itemCode")) + .collect(Collectors.toSet()); + //获取已存在的物料 + Map existingItems = itemService.findByItemCodes(itemCodes); + + //获取所有MO票 + Set labelNos = details.stream() + .map(detail -> ((JSONObject) detail).getString("labelNo")) + .collect(Collectors.toSet()); + //获取已存在的MO票 + Map existingMos = moService.findBylabelNos(labelNos); + //循环处理每个MO票 for (int i = 0; i < details.size(); i++) { JSONObject detail = details.getJSONObject(i); - Integer selfWorkOrderId = detail.getInteger("selfWorkOrderId");//自制件工单id - String sourceSystem = detail.getString("sourceSystem");//来源系统 - String selfWorkOrderName = detail.getString("selfWorkOrderName");//自制件工单编号 - String itemCode = detail.getString("itemCode");//物料编码 - String labelType = detail.getString("labelType");//标签类型 - String goodsAreaCode = detail.getString("goodsAreaCode");//MLS货区 - String checkResult = detail.getString("checkResult");//检验状态 - String datetimeStockIn = detail.getString("datetimeStockin");//入库时间 - String deleteFlag = detail.getString("deleteFlag");//数据有效性;有效0,无效1 - String uom = detail.getString("uom");//单位 - String createUserCode = detail.getString("createUserCode");//创建人 - String mlsUpdateTime = detail.getString("updateTime");//修改时间 - String itemDesc = detail.getString("itemDesc");//物料描述 - String labelNo = detail.getString("labelNo");//MO票 - Long itemId = detail.getLong("itemId");//物料id - String updateUserCode = detail.getString("updateUserCode");//修改人 - String mlsCreateTime = detail.getString("createTime");//创建时间 - Double qty = detail.getDouble("qty") == null ? 0 : detail.getDouble("qty");//可用数量 String labelState = detail.getString("labelState");//标签状态 - Integer deliveryHeaderId = detail.getInteger("deliveryHeaderId");//送货单头ID;通过该字段能找到002接口送货单 - String workOrderName = detail.getString("workOrderName");//工单编号 - Integer workOrderId = detail.getInteger("workOrderId");//工单Id - String goodsLocationCode = detail.getString("goodsLocationCode");//MLS货位 - String invCode = detail.getString("invCode");//MLS子库 - if ("PRINTED".equals(labelState)) { - //判断物料是否存在;不存在新增; - ItemDto itemDto = itemService.findByCode(itemCode); - Item item = itemService.toEntity(itemDto); - if (item == null) { - item = new Item(); - item.setCode(itemCode); - item.setName(itemDesc); - item.setUnit(uom); - DeptDto deptDto = deptService.findById(7L); - Dept dept = deptService.toEntity(deptDto); - item.setDept(dept); - item.setSourceName(sourceSystem); - item.setSourceId(itemId); - itemService.create(item); + //物料编码 + String itemCode = detail.getString("itemCode"); + Item item = null; + if (existingItems.containsKey(itemCode)) { + item = existingItems.get(itemCode); + } else { + //新增物料 + item = createItem(detail); } - MoDto moDto = moService.findByLabelNo(labelNo); - if (moDto == null) { - Mo mo = new Mo(labelNo, labelType, labelState, deliveryHeaderId, sourceSystem, qty, - workOrderId, workOrderName, selfWorkOrderId, selfWorkOrderName, null, item, - checkResult, Boolean.parseBoolean(deleteFlag), null, null, null, null, invCode, goodsAreaCode, goodsLocationCode, - datetimeStockIn == null ? null : DateUtil.parse(datetimeStockIn).toTimestamp(), - mlsCreateTime == null ? null : DateUtil.parse(mlsCreateTime).toTimestamp(), - mlsUpdateTime == null ? null : DateUtil.parse(mlsUpdateTime).toTimestamp(), - createUserCode, updateUserCode - ); - moService.create(mo); + //MO票 + String labelNo = detail.getString("labelNo"); + //判断是否已存在MO票 + if (existingMos.containsKey(labelNo)) { + Mo existingMo = existingMos.get(labelNo); + //更新MO票信息 + mosToUpdate.add(updateMo(existingMo, detail)); } else { - Mo mo = moService.toEntity(moDto); - mo.setLabelType(labelType); - mo.setLabelState(labelState); - mo.setDeliveryHeaderId(deliveryHeaderId); - mo.setSourceSystem(sourceSystem); - mo.setQty(qty); - mo.setWorkOrderId(workOrderId); - mo.setWorkOrderName(workOrderName); - mo.setSelfWorkOrderId(selfWorkOrderId); - mo.setSelfWorkOrderName(selfWorkOrderName); - mo.setDatetimeStockIn(datetimeStockIn == null ? null : DateUtil.parse(datetimeStockIn).toTimestamp()); - mo.setItem(item); - mo.setCheckResult(checkResult); - mo.setDeleteFlag(Boolean.parseBoolean(deleteFlag)); - mo.setInvCode(invCode); - mo.setGoodsAreaCode(goodsAreaCode); - mo.setGoodsLocationCode(goodsLocationCode); - mo.setMlsUpdateTime(mlsUpdateTime == null ? null : DateUtil.parse(mlsUpdateTime).toTimestamp()); - mo.setUpdateUserCode(updateUserCode); - moService.update(mo); + //新增MO票 + mosToCreate.add(createMo(detail, item)); } } - - } + + + //批量新增Mo票 + if (!mosToCreate.isEmpty()) { + moService.batchCreateMos(mosToCreate); + } + //批量更新Mo票 + if (!mosToUpdate.isEmpty()) { + moService.batchUpdateMos(mosToUpdate); + } + } + + /** + * 创建订单 + * + * @param detail + * @return + */ + private Item createItem(JSONObject detail) { + + String itemCode = detail.getString("itemCode");//物料编码 + String itemDesc = detail.getString("itemDesc");//物料描述 + String uom = detail.getString("uom");//单位 + String sourceSystem = detail.getString("sourceSystem");//来源系统 + Long itemId = detail.getLong("itemId");//物料id + + //创建 + Item Item = new Item(itemCode, itemDesc, uom, UserUtils.getDept(), sourceSystem, itemId); + itemService.create(Item); + return Item; + } + + /** + * 创建Mo票信息 + * + * @param detail + */ + + private Mo createMo(JSONObject detail, Item item) { + Integer selfWorkOrderId = detail.getInteger("selfWorkOrderId");//自制件工单id + String sourceSystem = detail.getString("sourceSystem");//来源系统 + String selfWorkOrderName = detail.getString("selfWorkOrderName");//自制件工单编号 + String labelType = detail.getString("labelType");//标签类型 + String goodsAreaCode = detail.getString("goodsAreaCode");//MLS货区 + String checkResult = detail.getString("checkResult");//检验状态 + String datetimeStockIn = detail.getString("datetimeStockin");//入库时间 + String deleteFlag = detail.getString("deleteFlag");//数据有效性;有效0,无效1 + String createUserCode = detail.getString("createUserCode");//创建人 + String mlsUpdateTime = detail.getString("updateTime");//修改时间 + String labelNo = detail.getString("labelNo");//MO票 + String updateUserCode = detail.getString("updateUserCode");//修改人 + String mlsCreateTime = detail.getString("createTime");//创建时间 + Double qty = detail.getDouble("qty") == null ? 0 : detail.getDouble("qty");//可用数量 + String labelState = detail.getString("labelState");//标签状态 + Integer deliveryHeaderId = detail.getInteger("deliveryHeaderId");//送货单头ID;通过该字段能找到002接口送货单 + String workOrderName = detail.getString("workOrderName");//工单编号 + Integer workOrderId = detail.getInteger("workOrderId");//工单Id + String goodsLocationCode = detail.getString("goodsLocationCode");//MLS货位 + String invCode = detail.getString("invCode");//MLS子库 + + Mo mo = new Mo(labelNo, labelType, labelState, deliveryHeaderId, sourceSystem, qty, + workOrderId, workOrderName, selfWorkOrderId, selfWorkOrderName, null, item, + checkResult, Boolean.parseBoolean(deleteFlag), null, null, null, null, invCode, goodsAreaCode, goodsLocationCode, + datetimeStockIn == null ? null : DateUtil.parse(datetimeStockIn).toTimestamp(), + mlsCreateTime == null ? null : DateUtil.parse(mlsCreateTime).toTimestamp(), + mlsUpdateTime == null ? null : DateUtil.parse(mlsUpdateTime).toTimestamp(), + createUserCode, updateUserCode + ); + + return mo; + } + + private Mo updateMo(Mo mo, JSONObject detail) { + mo.setCheckResult(detail.getString("checkResult")); + mo.setDeleteFlag(Boolean.parseBoolean(detail.getString("deleteFlag"))); + mo.setMlsUpdateTime(detail.getString("updateTime") == null ? null : DateUtil.parse(detail.getString("updateTime")).toTimestamp()); + mo.setUpdateUserCode(detail.getString("updateUserCode")); + return mo; } @Override diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MoServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MoServiceImpl.java index 4f1ca09..4212a03 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MoServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MoServiceImpl.java @@ -15,9 +15,6 @@ */ package com.youchain.businessdata.service.impl; -import cn.hutool.core.date.DateUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; import com.youchain.basicdata.domain.Item; import com.youchain.basicdata.domain.Point; import com.youchain.basicdata.domain.Stock; @@ -27,8 +24,6 @@ import com.youchain.basicdata.service.StockService; import com.youchain.businessdata.domain.*; import com.youchain.businessdata.service.*; import com.youchain.businessdata.service.dto.OrderDto; -import com.youchain.exception.EntityExistException; -import com.youchain.exception.handler.ApiResult; import com.youchain.modules.system.service.DictService; import com.youchain.utils.*; import lombok.RequiredArgsConstructor; @@ -36,21 +31,16 @@ import com.youchain.businessdata.repository.MoRepository; import com.youchain.businessdata.service.dto.MoDto; import com.youchain.businessdata.service.dto.MoQueryCriteria; import com.youchain.businessdata.service.mapstruct.MoMapper; -import org.springframework.data.domain.Example; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; - import java.util.*; import java.io.IOException; import javax.persistence.EntityManager; import javax.persistence.Query; import javax.servlet.http.HttpServletResponse; -import static org.springframework.http.HttpStatus.BAD_REQUEST; /** * @author huojin @@ -68,13 +58,11 @@ public class MoServiceImpl implements MoService { private final OrderService orderService; private final ItemService itemService; private final StockService stockService; - private final InventoryService inventoryService; private final PointService pointService; private final AgvTaskService agvTaskService; private final TaskService taskService; private final AsnDetailService asnDetailService; private final ItemKeyService itemKeyService; - private final DictService dictService; @Override public Map queryAll(MoQueryCriteria criteria, Pageable pageable) { @@ -136,20 +124,20 @@ public class MoServiceImpl implements MoService { for (MoDto mo : all) { Map map = new LinkedHashMap<>(); map.put("送货单头ID", mo.getDeliveryHeaderId()); - map.put("MO票",mo.getLabelNo()); - map.put("物料编码",mo.getItem().getCode()); - map.put("物料描述",mo.getItem().getName()); - map.put("可用数量",mo.getQty()); - map.put("标签类型",mo.getLabelType()); - map.put("是否有效",mo.getDeleteFlag()); - map.put("标签状态",mo.getLabelState()); - map.put("检验状态",mo.getCheckResult()); - map.put("mls子库",mo.getInvCode()); - map.put("mls入库时间",mo.getDatetimeStockIn()); - map.put("mls修改时间",mo.getMlsUpdateTime()); - map.put("mls创建时间",mo.getMlsCreateTime()); - map.put("wms接收时间",mo.getCreateTime()); - map.put("wms修改时间",mo.getUpdateTime()); + map.put("MO票", mo.getLabelNo()); + map.put("物料编码", mo.getItem().getCode()); + map.put("物料描述", mo.getItem().getName()); + map.put("可用数量", mo.getQty()); + map.put("标签类型", mo.getLabelType()); + map.put("是否有效", mo.getDeleteFlag()); + map.put("标签状态", mo.getLabelState()); + map.put("检验状态", mo.getCheckResult()); + map.put("mls子库", mo.getInvCode()); + map.put("mls入库时间", mo.getDatetimeStockIn()); + map.put("mls修改时间", mo.getMlsUpdateTime()); + map.put("mls创建时间", mo.getMlsCreateTime()); + map.put("wms接收时间", mo.getCreateTime()); + map.put("wms修改时间", mo.getUpdateTime()); list.add(map); } FileUtil.downloadExcel(list, response); @@ -162,7 +150,7 @@ public class MoServiceImpl implements MoService { @Override @Transactional(rollbackFor = Exception.class) - public void scanMo(String mo) { + public void scanMo(String mo) { //条码格式;12227000016951-qth1847-240411422924 String[] arr = mo.split("-"); @@ -227,12 +215,56 @@ public class MoServiceImpl implements MoService { createTasks(item, stock, srcPoint, endPoint, moDto.getLabelNo(), moDto, orderDto); // 更新容器状态和目标点位状态 - updateStockAndEndPoint(stock,endPoint); + updateStockAndEndPoint(stock, endPoint); } - public void createTasks(Item item, Stock stock, Point srcPoint, Point endPoint, String propC1, MoDto moDto, OrderDto orderDto) { + @Override + public Map findBylabelNos(Set labelNos) { + String hql = "from Mo where labelNo in (:labelNos) "; + Query query = entityManager.createQuery(hql); + query.setParameter("labelNos", labelNos); + List list = query.getResultList(); + Map map = new HashMap<>(); + for (Mo mo : list) { + map.put(mo.getLabelNo(), mo); + } + return map; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void batchCreateMos(List mos) { + int batchSize = 50; // 根据需求调整批处理大小 + for (int i = 0; i < mos.size(); i++) { + entityManager.persist(mos.get(i)); + if (i % batchSize == 0 && i > 0) { + entityManager.flush(); // 批量提交 + entityManager.clear(); // 清理缓存 + } + } + entityManager.flush(); // 最后确保所有剩余的实体也被flush到数据库 + entityManager.clear(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void batchUpdateMos(List mos) { + int batchSize = 50; // 根据需求调整批处理大小 + for (int i = 0; i < mos.size(); i++) { + Mo mo = mos.get(i); + entityManager.merge(mo); // 更新实体 + if (i % batchSize == 0 && i > 0) { // 每处理50个实体执行一次flush和clear + entityManager.flush(); + entityManager.clear(); + } + } + entityManager.flush(); // 确保最后的更改也被写入数据库 + entityManager.clear(); // 清理持久化上下文以释放内存 + } + + public void createTasks(Item item, Stock stock, Point srcPoint, Point endPoint, String propC1, MoDto moDto, OrderDto orderDto) { // 生成AGV任务 AgvTask agvTask = new AgvTask(BizStatus.ASN, stock.getCode(), srcPoint.getCode(), endPoint.getCode(), BizStatus.OPEN, "RACK_MOVE_FULL"); agvTaskService.create(agvTask); @@ -253,7 +285,7 @@ public class MoServiceImpl implements MoService { } // 提取更新容器状态和目标点位状态的逻辑到单独方法 - private void updateStockAndEndPoint(Stock stock,Point point) { + private void updateStockAndEndPoint(Stock stock, Point point) { stock.setStatus(BaseStatus.USED); stock.setPoint(point); stockService.update(stock); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/OrderServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/OrderServiceImpl.java index 19b65e2..f9117e0 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/OrderServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/OrderServiceImpl.java @@ -139,7 +139,7 @@ public class OrderServiceImpl implements OrderService { @Override @Transactional(rollbackFor = Exception.class) public void batchUpdateOrders(List orders) { - int batchSize = 100; // 根据需求调整批处理大小 + int batchSize = 50; // 根据需求调整批处理大小 for (int i = 0; i < orders.size(); i++) { Order order = orders.get(i); entityManager.merge(order); // 更新实体 diff --git a/youchain-system/src/main/java/com/youchain/modules/quartz/task/moTask.java b/youchain-system/src/main/java/com/youchain/modules/quartz/task/moTask.java index 9403bce..9a063b3 100644 --- a/youchain-system/src/main/java/com/youchain/modules/quartz/task/moTask.java +++ b/youchain-system/src/main/java/com/youchain/modules/quartz/task/moTask.java @@ -23,16 +23,9 @@ public class moTask { public MlsService mlsService; public void moTask() { - - try { - log.info("获取mo信息"); - MoInfo moInfo = getMoInfo(); - String moJson = mlsService.getMoJson(moInfo); - mlsService.getMoInfo(moJson); - } catch (Exception e) { - throw new RuntimeException("MLS异常信息:" + e); - } - + MoInfo moInfo = getMoInfo(); + String moJson = mlsService.getMoJson(moInfo); + mlsService.getMoInfo(moJson); } public MoInfo getMoInfo() {