From 4fb06a58ed5df46f29af1e9fa65cfd40335263ad Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 18 一月 2025 17:06:18 +0800
Subject: [PATCH] # 6. 大屏添加作业类型 (全盘,还是分拣 IOType) 10.平库出库时,当前平库ID是写死在Sql里,需修改 11.平库出库没有判断是否预约出库,且生成拣货单时没有锁定库存,需确认是否考虑回库问题 26. 已拣过货的任务明细,可以再次拣货,拣货明细需添加一个拣货状态 47. 确认发货前,需判断是否已绑定至集货区 48. CTU出库后,库位103不再删除原有库位信息
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/ViewLocDetlMapper.java | 2
zy-asrs-wms/src/main/resources/mapper/asrs/TaskMapper.xml | 4
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java | 57 +++++++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java | 60 +++++--
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java | 18 +-
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/dto/LargeScreenTaskDto.java | 10 +
zy-asrs-admin/src/components/orderDetl/edit.vue | 9
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java | 10
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java | 115 +++++++------
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java | 4
zy-asrs-admin/src/views/out/order/index.vue | 4
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/controller/OutStockController.java | 15 +
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/entity/domain/WaveTaskDetl.java | 2
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java | 38 +++-
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/BindPlatformParam.java | 6
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java | 65 ++++----
zy-asrs-wms/src/main/resources/mapper/asrs/ViewLocDetlMapper.xml | 2
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/LocDetlServiceImpl.java | 5
18 files changed, 279 insertions(+), 147 deletions(-)
diff --git a/zy-asrs-admin/src/components/orderDetl/edit.vue b/zy-asrs-admin/src/components/orderDetl/edit.vue
index cc22e0a..ef4ac13 100644
--- a/zy-asrs-admin/src/components/orderDetl/edit.vue
+++ b/zy-asrs-admin/src/components/orderDetl/edit.vue
@@ -156,6 +156,7 @@
const matChecked = ref([]);
const matQueryList = ref(null);
const matFetching = ref(false);
+const searchText = ref('')
const matSelectList = ref([]);
const addDetl = () => {
openAddDetl.value = true;
@@ -193,6 +194,7 @@
}
const handleSearch = debounce(val => {
+ searchText.value = val
matQuery(val);
}, 600)
@@ -221,6 +223,7 @@
}
matQuery(null);
+
function matQuery(condition) {
matFetching.value = true;
post('/api/mat/page', {
@@ -334,10 +337,10 @@
<a-modal v-model:open="openAddDetl" :title="formatMessage('component.orderDetl.edit.addDetl', '娣诲姞鏄庣粏')"
@ok="handleAddDetlOk" @cancel="handleAddDetlCancel">
- <a-select v-model:value="matChecked" :options="matQueryList" mode="multiple"
+ <a-select v-model:value="matChecked" :options="matQueryList" mode="multiple" :searchValue="searchText"
:placeholder="formatMessage('component.orderDetl.edit.selectMat', '璇烽�夋嫨鐗╂枡')" @search="handleSearch"
- :filter-option="false" :not-found-content="matFetching ? undefined : null" @select="handleSelect"
- @deselect="handleDeselect"></a-select>
+ :filter-option="false" :not-found-content="matFetching ? undefined : null" @select="handleSelect" allowClear
+ @deselect="handleDeselect" ></a-select>
</a-modal>
</div>
</template>
diff --git a/zy-asrs-admin/src/views/out/order/index.vue b/zy-asrs-admin/src/views/out/order/index.vue
index 1512140..d59c519 100644
--- a/zy-asrs-admin/src/views/out/order/index.vue
+++ b/zy-asrs-admin/src/views/out/order/index.vue
@@ -25,7 +25,5 @@
</script>
<style>
- .col {
- color: ;
- }
+
</style>
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/controller/OutStockController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/controller/OutStockController.java
index 0da930a..d595118 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/controller/OutStockController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/controller/OutStockController.java
@@ -7,6 +7,7 @@
import com.zy.asrs.wms.apis.wcs.entity.request.RfidSingalRequest;
import com.zy.asrs.wms.apis.wcs.entity.request.TasksStatusCallbackParam;
import com.zy.asrs.wms.apis.wcs.services.WcsApiService;
+import com.zy.asrs.wms.asrs.entity.param.BindPlatformParam;
import com.zy.asrs.wms.asrs.service.PlatformService;
import com.zy.asrs.wms.system.controller.BaseController;
import io.netty.util.internal.StringUtil;
@@ -24,6 +25,9 @@
@Autowired
private WcsApiService wcsApiService;
+
+ @Autowired
+ private PlatformService platformService;
/**
@@ -137,7 +141,16 @@
return wcsApiService.getPlatforms();
}
-
+// /**
+// * 缁戝畾璁㈠崟涓庨泦璐у尯鍏崇郴
+// * @param platform
+// * @return
+// */
+// @PostMapping("/bind/shipping/platform")
+// public R bindShippingAndPlatform(@RequestBody BindPlatformParam platform) {
+// return platformService.bindShippingPlatform(platform);
+// }
+//
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/entity/domain/WaveTaskDetl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/entity/domain/WaveTaskDetl.java
index 0bf1ef7..517fd88 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/entity/domain/WaveTaskDetl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/entity/domain/WaveTaskDetl.java
@@ -43,6 +43,8 @@
*/
private String batch;
+
+
/**
* 搴撳瓨
*/
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java
index 8940c76..b59a34e 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java
@@ -7,18 +7,12 @@
import com.zy.asrs.wms.apis.wcs.entity.domain.WaveTaskDetl;
import com.zy.asrs.wms.apis.wcs.entity.response.SowSeeds;
import com.zy.asrs.wms.apis.wcs.services.WaveManagentService;
-import com.zy.asrs.wms.asrs.entity.CacheSite;
-import com.zy.asrs.wms.asrs.entity.Order;
-import com.zy.asrs.wms.asrs.entity.OrderDetl;
-import com.zy.asrs.wms.asrs.entity.Task;
+import com.zy.asrs.wms.asrs.entity.*;
import com.zy.asrs.wms.asrs.entity.dto.LargeScreenTaskDto;
import com.zy.asrs.wms.asrs.entity.enums.OrderPickStatus;
import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
import com.zy.asrs.wms.asrs.entity.param.WaveSeedReviewParam;
-import com.zy.asrs.wms.asrs.mapper.CacheSiteMapper;
-import com.zy.asrs.wms.asrs.mapper.OrderDetlMapper;
-import com.zy.asrs.wms.asrs.mapper.OrderMapper;
-import com.zy.asrs.wms.asrs.mapper.TaskMapper;
+import com.zy.asrs.wms.asrs.mapper.*;
import com.zy.asrs.wms.asrs.service.TaskService;
import com.zy.asrs.wms.asrs.service.WaveSeedService;
import org.aspectj.weaver.ast.Or;
@@ -39,6 +33,9 @@
private TaskService taskService;
@Autowired
private TaskMapper taskMapper;
+
+ @Autowired
+ private TaskTypeMapper taskTypeMapper;
@Autowired
private OrderMapper orderMapper;
@Autowired
@@ -69,8 +66,9 @@
@Override
public R getTask() {
- List<LargeScreenTaskDto> taskDtos = taskMapper.getTaskIntegrateByTaskNo(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id));
- return R.ok(taskDtos);
+ List<LargeScreenTaskDto> taskDtos = taskMapper.getTaskIntegrateByTaskNo(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id).orderByAsc(Task::getUpdateTime).last("limit 1"));
+
+ return R.ok(taskDtos);
}
@Override
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
index 9d767e8..c3eb626 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
@@ -169,8 +169,7 @@
}
} else { //鍑哄簱浠诲姟
if (callbackParam.getEventType().equals(EssTaskStatus.TASK_EVENT_TOTE_LOAD.event)) { //涓婃姤鍙栫鐘舵��
- //TODO 瀹氭椂鍣ㄥ紑鍚悗锛岃鍒犻櫎 || task.getTaskType() == TaskStsType.GENERATE_OUT.id
- if (task.getTaskSts() == TaskStsType.WCS_EXECUTE_OUT.id || task.getTaskSts() == TaskStsType.GENERATE_OUT.id) {
+ if (task.getTaskSts() == TaskStsType.WCS_EXECUTE_OUT.id ) {
taskStsType = TaskStsType.WCS_EXECUTE_OUT_TOTE_LOAD;
} else {
String errMsg = "浠诲姟缂栧彿锛�" + task.getTaskNo() + "鐘舵�佷负涓嶅尮閰嶏紝" + "涓嶈兘鎵ц锛�" + TaskStsType.WCS_EXECUTE_OUT_TOTE_LOAD.desc + "浠诲姟";
@@ -197,7 +196,7 @@
}
//鏇存柊鍑哄簱鐘舵�佸強鐩稿叧瀛楁
- taskService.update(new LambdaUpdateWrapper<Task>()
+ boolean update = taskService.update(new LambdaUpdateWrapper<Task>()
.set(Task::getRobotCode, callbackParam.getRobotCode())
.set(Task::getSysTaskCode, callbackParam.getSysTaskCode())
.set(Task::getTaskSts, taskStsType.id)
@@ -205,6 +204,10 @@
.set(Task::getTaskDesc, callbackParam.getMessage())
.eq(Task::getBarcode, callbackParam.getContainerCode())
.eq(Task::getTaskNo, callbackParam.getTaskCode()));
+
+ if (!update) {
+ throw new CoolException("浠诲姟鏇存柊澶辫触锛侊紒");
+ }
}
@@ -300,6 +303,7 @@
* @param request
*/
@Override
+ @Transactional(rollbackFor = Exception.class)
public void slapLightLogic(Map<String, Object> request) {
String taskNo = request.get("taskNo").toString();
String orderNo = request.get("orderNo").toString();
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/dto/LargeScreenTaskDto.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/dto/LargeScreenTaskDto.java
index 46d1613..916cd6f 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/dto/LargeScreenTaskDto.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/dto/LargeScreenTaskDto.java
@@ -18,6 +18,11 @@
*/
private String waveNo;
+ /**
+ * 浠诲姟绫诲瀷
+ */
+ private String title;
+
private Long id;
/**
* 鎷栫洏鐮�
@@ -28,6 +33,11 @@
*/
private String taskNo;
/**
+ * 浠诲姟绫诲瀷
+ */
+ private String taskType;
+
+ /**
* 浠诲姟鐘舵��
*/
private Integer taskSts;
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/BindPlatformParam.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/BindPlatformParam.java
index 1e42a5e..add36d7 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/BindPlatformParam.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/param/BindPlatformParam.java
@@ -7,8 +7,10 @@
private Long platformId;
- private String siteNo;
+ private String waveId;
- private String orderNo;
+ private String orderId;
+
+ private String siteNo;
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
index e5e77a4..709c6a1 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
@@ -1015,7 +1015,7 @@
List<OrderOutMergeParam> mergeParam = params.stream().filter(par -> {
return !StringUtils.isNullOrEmpty(par.getLocNo());
}).collect(Collectors.toList());
- //鏁版嵁鍒嗙被 1.骞冲簱鏁版嵁 2. TUC鏁版嵁
+ //鏁版嵁鍒嗙被 1.骞冲簱鏁版嵁 2. CTU鏁版嵁
Map<Long, List<OrderOutMergeParam>> listMap = mergeParam.stream().collect(Collectors.groupingBy(OrderOutMergeParam::getTypeId));
listMap.keySet().forEach(key -> {
@@ -1198,6 +1198,10 @@
//閿佸畾搴撳瓨閲�
locDetl.setWorkQty(locDetl.getWorkQty() + outOder.getAnfme());
+ if (!locDetlService.updateById(locDetl)) {
+ throw new CoolException("搴撳瓨鍔犻攣澶辫触锛侊紒");
+ }
+
});
});
@@ -1338,7 +1342,7 @@
}
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void cancelWave(List<Long> waveIds) {
if (waveIds == null) {
throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
@@ -1361,6 +1365,14 @@
throw new CoolException("宸插瓨鍦ㄤ换鍔★紝绂佹鍙栨秷娉㈡");
}
+ List<PickSheet> pickSheets = pickSheetService.list(new LambdaQueryWrapper<PickSheet>()
+ .eq(PickSheet::getWaveNo, wave.getWaveNo())
+ .eq(PickSheet::getDeleted, 0)
+ .eq(PickSheet::getStatus, 1));
+ if (!pickSheets.isEmpty()) {
+ throw new CoolException("褰撳墠娉㈡鏈夋嫞璐у崟瀛樺湪锛侊紒");
+ }
+
List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getWaveId, wave.getId()));
for (Order order : orders) {
order.setWaveId(null);
@@ -1373,17 +1385,17 @@
throw new CoolException("璁㈠崟鍙嶅啓澶辫触");
}
- CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, order.getId()));
- if (cacheSite == null) {
- throw new CoolException("缂撳瓨绔欎笉瀛樺湪");
- }
- cacheSite.setSiteStatus(CacheSiteStatusType.O.id);
- cacheSite.setOrderId(null);
- cacheSite.setOrderNo(null);
- cacheSite.setUpdateTime(new Date());
- if (!cacheSiteService.updateById(cacheSite)) {
- throw new CoolException("缂撳瓨绔欐竻绌哄け璐�");
- }
+// CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, order.getId()));
+// if (cacheSite == null) {
+// throw new CoolException("缂撳瓨绔欎笉瀛樺湪");
+// }
+// cacheSite.setSiteStatus(CacheSiteStatusType.O.id);
+// cacheSite.setOrderId(null);
+// cacheSite.setOrderNo(null);
+// cacheSite.setUpdateTime(new Date());
+// if (!cacheSiteService.updateById(cacheSite)) {
+// throw new CoolException("缂撳瓨绔欐竻绌哄け璐�");
+// }
}
waveDetlService.removeById(waveDetl.getId());
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/ViewLocDetlMapper.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/ViewLocDetlMapper.java
index 12ff1e0..80e3d44 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/ViewLocDetlMapper.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/ViewLocDetlMapper.java
@@ -26,5 +26,5 @@
List<Map<String,Object>> listSuitableMat( @Param("param") List<FieldParam> param, @Param("sortParam") List<FieldSortParam> sortParam);
- List<Map<String, Object>> queryFlatStock(@Param("matnr") String matnr, @Param("batch") String batch,@Param("params") List<FieldParam> params);
+ List<Map<String, Object>> queryFlatStock(@Param("matnr") String matnr, @Param("batch") String batch, @Param("params") List<FieldParam> params, @Param("typeId") Long id);
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/LocDetlServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/LocDetlServiceImpl.java
index 1b35fc6..6e726af 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/LocDetlServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/LocDetlServiceImpl.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.*;
+import com.zy.asrs.wms.asrs.entity.enums.LocAreaTypeSts;
import com.zy.asrs.wms.asrs.entity.enums.LocStsType;
import com.zy.asrs.wms.asrs.entity.param.FieldParam;
import com.zy.asrs.wms.asrs.entity.param.FieldSortParam;
@@ -183,7 +184,7 @@
}
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void locDetlFreeze(LocDetlFreezeParam param) {
if (param == null) {
throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
@@ -230,7 +231,7 @@
@Override
public List<LocDetl> queryFlatStock(String matnr, String batch, List<FieldParam> params) {
//鑾峰彇骞冲簱涓鍚堟潯浠剁殑搴撲綅
- List<Map<String, Object>> list = viewLocDetlMapper.queryFlatStock(matnr, batch, params);
+ List<Map<String, Object>> list = viewLocDetlMapper.queryFlatStock(matnr, batch, params, LocAreaTypeSts.LOC_AREA_TYPE_FLAT.id);
List<LocDetl> detls = new ArrayList<>();
list.forEach(action -> {
LocDetl parseObject = JSONObject.parseObject(JSON.toJSONString(action), LocDetl.class);
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
index 16e47ac..dc72f46 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.*;
@@ -17,7 +18,6 @@
import com.zy.asrs.wms.system.entity.Host;
import com.zy.asrs.wms.system.service.HostService;
import io.netty.util.internal.StringUtil;
-import org.aspectj.weaver.ast.Or;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -81,6 +81,12 @@
private WaveSeedLogService waveSeedLogService;
@Autowired
private OrderDetlLogService orderDetlLogService;
+
+ @Autowired
+ private PlatformDetlService platformDetlService;
+ @Autowired
+ private PlatformDetlLogService platformDetlLogService;
+
@Override
@@ -257,10 +263,11 @@
.eq(PickSheet::getDeleted, 0)
.eq(PickSheet::getStatus, 1)
);
- BeanUtils.copyProperties(pickSheet, pickDetlDto);
- if (Objects.isNull(pickDetlDto)) {
- throw new CoolException("瀵硅薄澶嶅埗澶辫触锛侊紒");
+ if (Objects.isNull(pickSheet)) {
+ throw new CoolException("鎷h揣鍗曚笉瀛樺湪锛侊紒");
}
+ BeanUtils.copyProperties(pickSheet, pickDetlDto);
+
List<PickSheetDetl> sheetDetls = pickSheetDetlService.list(new LambdaQueryWrapper<PickSheetDetl>()
.eq(PickSheetDetl::getPickId, pickSheet.getId())
.eq(PickSheetDetl::getStatus, 1)
@@ -300,8 +307,8 @@
throw new CoolException("鏁版嵁閿欒锛侊紒");
}
//鏇存柊閿佸畾搴撳瓨
- BigDecimal workQty = BigDecimal.valueOf(detl.getAnfme()).subtract(pickDetl.getAnfme());
- detl.setWorkQty(workQty.doubleValue());
+// BigDecimal workQty = BigDecimal.valueOf(detl.getAnfme()).subtract(pickDetl.getAnfme());
+ detl.setWorkQty(0.0);
//璁$畻缁撴灉灏忎簬绛変簬闆讹紝绉诲嚭搴撳瓨鏄庣粏
BigDecimal qty = BigDecimal.valueOf(detl.getAnfme()).subtract(pickDetl.getAnfme());
detl.setAnfme(qty.doubleValue());
@@ -324,7 +331,7 @@
.set(Loc::getBarcode, null)
.set(Loc::getUpdateTime, new Date())
.set(Loc::getLocStsId, LocStsType.O.val()));
- if (update) {
+ if (!update) {
throw new CoolException("搴撳瓨鏇存柊澶辫触锛侊紒 ");
}
}
@@ -442,6 +449,18 @@
if (params.isEmpty()) {
throw new CoolException("鍙戣揣鍗曟嵁鏄庣粏涓虹┖锛屼笉鍙墽琛屽彂璐ф搷浣滐紒锛�");
}
+
+ //鑾峰彇褰撳墠涓婁紶鎵�鏈夎鍗曞彿
+ Set<String> orderNoSet = params.stream().map(ShippingOrderDetlDto::getOrderNo).collect(Collectors.toSet());
+ if (orderNoSet.isEmpty()) {
+ throw new CoolException("涓诲崟淇℃伅涓嶅瓨鍦紝璇锋牳瀵瑰嚭搴撹鍗曪紒锛�");
+ }
+
+ List<Order> orderList = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getOrderNo, orderNoSet));
+ if (orderList.isEmpty()) {
+ throw new CoolException("璁㈠崟涓嶅瓨鍦紒锛�");
+ }
+
params.forEach(order -> {
OrderDetl byId = orderDetlService.getById(order.getId());
if (Objects.isNull(byId)) {
@@ -489,16 +508,6 @@
}
});
- //鑾峰彇褰撳墠涓婁紶鎵�鏈夎鍗曞彿
- Set<String> orderNoSet = params.stream().map(ShippingOrderDetlDto::getOrderNo).collect(Collectors.toSet());
- if (orderNoSet.isEmpty()) {
- throw new CoolException("涓诲崟淇℃伅涓嶅瓨鍦紝璇锋牳瀵瑰嚭搴撹鍗曪紒锛�");
- }
-
- List<Order> orderList = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getOrderNo, orderNoSet));
- if (orderList.isEmpty()) {
- throw new CoolException("璁㈠崟涓嶅瓨鍦紒锛�");
- }
orderList.forEach(one -> {
OrderLog orderLog = new OrderLog();
BeanUtils.copyProperties(one, orderLog);
@@ -553,6 +562,23 @@
}
}
+ Set<Long> ordersSet = orderList.stream().map(Order::getId).collect(Collectors.toSet());
+ List<PlatformDetl> platDetls = platformDetlService.list(new LambdaQueryWrapper<PlatformDetl>().in(PlatformDetl::getOrderId, ordersSet));
+ if (platDetls.isEmpty()) {
+ throw new CoolException("璁㈠崟淇℃伅鏈繘闆嗚揣鍖猴紒锛�");
+ }
+ ArrayList<PlatformDetlLog> platformDetls = new ArrayList<>();
+ platDetls.forEach(plat -> {
+ PlatformDetlLog detl = new PlatformDetlLog();
+ BeanUtils.copyProperties(plat, detl);
+ detl.setId(null);
+ platformDetls.add(detl);
+ });
+ //闆嗚揣鍖鸿浆鍘嗗彶妗�
+ if (!platformDetlLogService.saveBatch(platformDetls)) {
+ throw new CoolException("闆嗚揣鍖鸿鍗曡浆鍘嗗彶妗eけ璐ワ紒锛�");
+ }
+
return R.ok("鍙戣揣瀹屾垚锛侊紒");
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java
index 98eba09..0e3f61e 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java
@@ -1,6 +1,7 @@
package com.zy.asrs.wms.asrs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.*;
@@ -11,6 +12,7 @@
import com.zy.asrs.wms.asrs.mapper.PlatformMapper;
import com.zy.asrs.wms.asrs.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -18,6 +20,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Objects;
@Service("platformService")
public class PlatformServiceImpl extends ServiceImpl<PlatformMapper, Platform> implements PlatformService {
@@ -42,6 +45,8 @@
private WaveLogService waveLogService;
@Autowired
private WaveDetlLogService waveDetlLogService;
+ @Autowired
+ private WaveSeedService waveSeedService;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -169,7 +174,57 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public R bindShippingPlatform(BindPlatformParam platform) {
- return null;
+ if (Objects.isNull(platform.getPlatformId())) {
+ throw new CoolException("闆嗚揣鍖烘爣璇嗕笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(platform.getOrderId())) {
+ throw new CoolException("璁㈠崟缂栫爜涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(platform.getWaveId())) {
+ throw new CoolException("娉㈡ID涓嶈兘涓虹┖锛侊紒");
+ }
+ Platform pl = this.getById(platform.getPlatformId());
+ if (Objects.isNull(pl)) {
+ throw new CoolException("闆嗚揣鍖轰笉瀛樺湪锛侊紒");
+ }
+ List<WaveSeed> waveSeeds = waveSeedService.list(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getWaveId, platform.getWaveId()).eq(WaveSeed::getOrderId, platform.getOrderId()));
+ if (waveSeeds.isEmpty()) {
+ throw new CoolException("鍒嗘嫞鏄庣粏淇℃伅涓嶅瓨鍦紝鏁版嵁閿欒锛侊紒");
+ }
+ ArrayList<PlatformDetl> detls = new ArrayList<>();
+ waveSeeds.forEach(waveSeed -> {
+ PlatformDetl platformDetl = new PlatformDetl();
+ BeanUtils.copyProperties(waveSeed, platformDetl);
+ platformDetl.setPlatformId(pl.getId());
+ platformDetl.setPlatformNo(pl.getPlatformNo());
+
+ List<PlatformDetl> list = platformDetlService.list(new LambdaQueryWrapper<PlatformDetl>().eq(PlatformDetl::getTaskDetlId, waveSeed.getTaskDetlId()).eq(PlatformDetl::getOrderDetlId, waveSeed.getOrderDetlId()).eq(PlatformDetl::getMatnr, waveSeed.getMatnr()));
+ if (!list.isEmpty()) {
+ throw new CoolException("璁㈠崟宸插叆闆嗚揣鍖猴紒锛�");
+ }
+ detls.add(platformDetl);
+ });
+
+ if (!platformDetlService.saveOrUpdateBatch(detls)) {
+ throw new CoolException("闆嗚揣鍖烘槑缁嗕繚瀛樺け璐ワ紒锛�");
+ }
+
+ List<CacheSite> list = cacheSiteService.list(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, platform.getOrderId()));
+ if (list.isEmpty()) {
+ throw new CoolException("璁㈠崟鏈粦瀹氭挱绉嶅簱浣嶏紝璇峰畬鎴愭嫞璐у悗锛屽啀鎵撳嵃璁㈠崟锛侊紒");
+ }
+
+ boolean update = cacheSiteService.update(new LambdaUpdateWrapper<CacheSite>()
+ .eq(CacheSite::getOrderId, platform.getOrderId())
+ .set(CacheSite::getPlatformId, pl.getId())
+ .set(CacheSite::getPlatformNo, pl.getPlatformNo()));
+
+ if (!update) {
+ throw new CoolException("鎾澧欑珯鐐圭粦瀹氶泦璐у尯澶辫触锛侊紒");
+ }
+
+ return R.ok("缁戝畾鎴愬姛锛侊紒");
}
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
index 190b579..b801644 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
@@ -90,7 +90,7 @@
@Override
public Loc generateEmptyLoc(Long taskType, Integer locTypeHeight) {
List<ShelvesRule> shelvesRules = shelvesRuleService.list(new LambdaQueryWrapper<ShelvesRule>().eq(ShelvesRule::getStatus, 1).orderByDesc(ShelvesRule::getCreateTime));
- if(shelvesRules.isEmpty()) {
+ if (shelvesRules.isEmpty()) {
throw new CoolException("鏈厤缃笂鏋惰鍒�");
}
ShelvesRule shelvesRule = shelvesRules.get(0);
@@ -114,7 +114,7 @@
}
List<ShelvesRuleDetl> ruleDetls = shelvesRule.getRuleDetl$();
- if(ruleDetls.isEmpty()) {
+ if (ruleDetls.isEmpty()) {
throw new CoolException("鏈厤缃笂鏋惰鍒欐槑缁�");
}
@@ -135,7 +135,7 @@
//鑾峰彇搴撲綅
if (!suggestLoc.isEmpty()) {
defaultLoc = locUtils.filterLoc(taskType, suggestLoc);
- if(defaultLoc != null) {
+ if (defaultLoc != null) {
return defaultLoc;
}
}
@@ -147,7 +147,7 @@
//鑾峰彇搴撲綅
if (!globalLoc.isEmpty()) {
defaultLoc = locUtils.filterAllLoc(globalLoc);
- if(defaultLoc != null) {
+ if (defaultLoc != null) {
return defaultLoc;
}
}
@@ -274,7 +274,7 @@
//鐢熸垚搴撲綅
Loc loc = this.generateLoc(param.getTaskType(), param.getBarcode(), param.getLocTypeHeight());
- if(loc == null) {
+ if (loc == null) {
throw new CoolException("娌℃湁绌哄簱浣�");
}
@@ -316,7 +316,7 @@
taskDetl.setMatId(waitPakin.getDetl$().getMatId());
taskDetl.setMatnr(waitPakin.getDetl$().getMat$().getMatnr());
boolean taskDetlSave = taskDetlService.save(taskDetl);
- if(!taskDetlSave){
+ if (!taskDetlSave) {
throw new CoolException("浠诲姟鏄庣粏鐢熸垚澶辫触");
}
@@ -329,7 +329,7 @@
taskDetlField.setDetlId(taskDetl.getId());
taskDetlField.setValue(orderDetlField.getValue());
boolean taskDetlFieldSave = taskDetlFieldService.save(taskDetlField);
- if(!taskDetlFieldSave){
+ if (!taskDetlFieldSave) {
throw new CoolException("鏄庣粏鎵╁睍鐢熸垚澶辫触");
}
}
@@ -338,26 +338,26 @@
waitPakin.setIoStatus(1);
waitPakin.setUpdateTime(new Date());
boolean waitPakinUpdate = waitPakinService.updateById(waitPakin);
- if(!waitPakinUpdate){
+ if (!waitPakinUpdate) {
throw new CoolException("缁勬墭閫氱煡妗f洿鏂板け璐�");
}
//鏇存柊璁㈠崟鏄庣粏鏁版嵁
OrderDetl orderDetl = orderDetlService.getById(taskDetl.getDetlId());
- if(orderDetl == null){
+ if (orderDetl == null) {
throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
}
orderDetl.setWorkQty(orderDetl.getWorkQty() + taskDetl.getAnfme());
orderDetl.setUpdateTime(new Date());
boolean orderDetlUpdate = orderDetlService.updateById(orderDetl);
- if(!orderDetlUpdate){
+ if (!orderDetlUpdate) {
throw new CoolException("璁㈠崟鏄庣粏鏇存柊澶辫触");
}
//鑾峰彇璁㈠崟
Order order = orderService.getById(taskDetl.getOrderId());
- if(order == null){
+ if (order == null) {
throw new CoolException("璁㈠崟涓嶅瓨鍦�");
}
@@ -375,7 +375,7 @@
loc.setLocStsId(LocStsType.S.val());
loc.setUpdateTime(new Date());
boolean locUpdate = locService.updateById(loc);
- if(!locUpdate){
+ if (!locUpdate) {
throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�");
}
@@ -391,7 +391,7 @@
//鐢熸垚搴撲綅
Loc loc = this.generateEmptyLoc(param.getTaskType(), param.getLocTypeHeight());
- if(loc == null) {
+ if (loc == null) {
throw new CoolException("娌℃湁绌哄簱浣�");
}
@@ -414,7 +414,7 @@
loc.setLocStsId(LocStsType.S.val());
loc.setUpdateTime(new Date());
boolean locUpdate = locService.updateById(loc);
- if(!locUpdate){
+ if (!locUpdate) {
throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�");
}
@@ -424,7 +424,7 @@
@Override
public boolean completeTask(Long taskId) {
Task task = taskService.getById(taskId);
- if(task == null){
+ if (task == null) {
throw new CoolException("浠诲姟涓嶅瓨鍦�");
}
@@ -436,12 +436,12 @@
if (task.getTaskType() < 100) {
//鍏ュ簱
task.setTaskSts(TaskStsType.COMPLETE_IN.id);//99.鍏ュ簱瀹屾垚
- }else {
+ } else {
//鍑哄簱
TaskDetl taskDetl = taskDetls.get(0); //TODO 鍑哄簱娴佺▼寰呯‘璁わ紝ESS鍙栬揣鍚庯紝杈撻�佺嚎娴佽浆鍒版壂鐮佸鐘舵��
if (taskDetl.getWaveId() == null) {
task.setTaskSts(TaskStsType.COMPLETE_OUT.id);//199.鍑哄簱瀹屾垚
- }else {
+ } else {
task.setTaskSts(TaskStsType.WAVE_SEED.id);//198.鎾涓�
}
}
@@ -458,7 +458,7 @@
@Transactional(rollbackFor = Exception.class)
public boolean cancelTask(Long taskId) {
Task task = taskService.getById(taskId);
- if(task == null){
+ if (task == null) {
throw new CoolException("浠诲姟涓嶅瓨鍦�");
}
@@ -471,15 +471,15 @@
case 54://骞舵澘
case 57://鐩樼偣
loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()));
- if(loc == null){
+ if (loc == null) {
throw new CoolException("搴撲綅涓嶅瓨鍦�");
}
- if(loc.getLocStsId() != LocStsType.S.val()){
+ if (loc.getLocStsId() != LocStsType.S.val()) {
throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬S.鍏ュ簱棰勭害");
}
loc.setLocStsId(LocStsType.O.val());
loc.setUpdateTime(new Date());
- if(!locService.updateById(loc)){
+ if (!locService.updateById(loc)) {
throw new CoolException("搴撲綅鐘舵�佸彉鏇村け璐�");
}
break;
@@ -489,15 +489,15 @@
case 107://鐩樼偣
case 110://绌烘澘
loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()));
- if(loc == null){
+ if (loc == null) {
throw new CoolException("搴撲綅涓嶅瓨鍦�");
}
- if(loc.getLocStsId() != LocStsType.R.val()){
+ if (loc.getLocStsId() != LocStsType.R.val()) {
throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬R.鍑哄簱棰勭害");
}
loc.setLocStsId(LocStsType.F.val());
loc.setUpdateTime(new Date());
- if(!locService.updateById(loc)){
+ if (!locService.updateById(loc)) {
throw new CoolException("搴撲綅鐘舵�佸彉鏇村け璐�");
}
@@ -509,7 +509,7 @@
String matUniqueKey = Utils.getMatUniqueKey(taskDetl.getMatnr(), taskDetl.getBatch(), taskDetl.getUniqueField());
WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, taskDetl.getWaveId()));
- if(waveDetl == null){
+ if (waveDetl == null) {
continue;
}
waveDetl.setWorkQty(waveDetl.getWorkQty() - taskDetl.getAnfme());
@@ -521,7 +521,7 @@
break;
case 11://搴撲綅绉昏浆
Loc originLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()));
- if(originLoc == null){
+ if (originLoc == null) {
throw new CoolException("婧愬簱浣嶄笉瀛樺湪");
}
if (originLoc.getLocStsId() != LocStsType.R.val()) {
@@ -529,22 +529,22 @@
}
loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()));
- if(loc == null){
+ if (loc == null) {
throw new CoolException("鐩爣搴撲綅涓嶅瓨鍦�");
}
- if(loc.getLocStsId() != LocStsType.S.val()){
+ if (loc.getLocStsId() != LocStsType.S.val()) {
throw new CoolException("鐩爣搴撲綅鐘舵�佷笉澶勪簬S.鍏ュ簱棰勭害");
}
originLoc.setLocStsId(LocStsType.F.val());
originLoc.setUpdateTime(new Date());
- if(!locService.updateById(originLoc)){
+ if (!locService.updateById(originLoc)) {
throw new CoolException("搴撲綅鐘舵�佸彉鏇村け璐�");
}
loc.setLocStsId(LocStsType.O.val());
loc.setUpdateTime(new Date());
- if(!locService.updateById(loc)){
+ if (!locService.updateById(loc)) {
throw new CoolException("搴撲綅鐘舵�佸彉鏇村け璐�");
}
break;
@@ -560,7 +560,7 @@
//鍒犻櫎浠诲姟
boolean removeTask = taskService.removeById(taskId);
- if(!removeTask){
+ if (!removeTask) {
throw new CoolException("鍥炴粴浠诲姟澶辫触");
}
@@ -579,14 +579,14 @@
//鍏ュ簱鍥炴粴缁勬墭閫氱煡妗�
if (task.getTaskType() == 1) {
WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getDetlId, taskDetl.getDetlId()).eq(WaitPakin::getBarcode, task.getBarcode()));
- if(waitPakin == null){
+ if (waitPakin == null) {
throw new CoolException("缁勬墭閫氱煡妗d笉瀛樺湪");
}
waitPakin.setIoStatus(0);
waitPakin.setUpdateTime(new Date());
boolean updateWaitPakin = waitPakinService.updateById(waitPakin);
- if(!updateWaitPakin){
+ if (!updateWaitPakin) {
throw new CoolException("缁勬墭閫氱煡妗e洖婊氬け璐�");
}
}
@@ -602,7 +602,7 @@
//鍒犻櫎鏄庣粏
boolean removeDetl = taskDetlService.removeById(taskDetl.getId());
- if(!removeDetl){
+ if (!removeDetl) {
throw new CoolException("鍥炴粴鏄庣粏澶辫触");
}
@@ -619,7 +619,7 @@
//鍒犻櫎鏄庣粏鎵╁睍
boolean removeField = taskDetlFieldService.removeById(detlField.getId());
- if(!removeField){
+ if (!removeField) {
throw new CoolException("鍥炴粴鎵╁睍鏄庣粏澶辫触");
}
}
@@ -633,7 +633,7 @@
@Transactional(rollbackFor = Exception.class)
public boolean pickTask(Long taskId) {
Task task = taskService.getById(taskId);
- if(task == null){
+ if (task == null) {
throw new CoolException("浠诲姟涓嶅瓨鍦�");
}
@@ -647,21 +647,23 @@
//鑾峰彇婧愬簱浣�
Loc originLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()));
- if(originLoc == null){
+ if (originLoc == null) {
throw new CoolException("婧愬簱浣嶄笉瀛樺湪");
}
//鑾峰彇婧愬簱浣嶉珮搴�
LocTypeBind locTypeBind = locTypeBindService.getOne(new LambdaQueryWrapper<LocTypeBind>().eq(LocTypeBind::getLocId, originLoc.getId()).in(LocTypeBind::getTypeId, LocBindType.HEIGHT.list()));
- if(locTypeBind == null){
+ if (locTypeBind == null) {
throw new CoolException("搴撲綅绫诲瀷涓嶅瓨鍦�");
}
LocType locType = locTypeService.getById(locTypeBind.getTypeId());
- if(locType == null){
+
+ if (locType == null) {
throw new CoolException("搴撲綅绫诲瀷涓嶅瓨鍦�");
}
LocTypeHeightType locTypeHeightType = LocTypeHeightType.get(locType.getFlag());
- if(locTypeHeightType == null){
+
+ if (locTypeHeightType == null) {
throw new CoolException("楂樹綆搴撲綅绫诲瀷涓嶅瓨鍦�");
}
@@ -672,27 +674,30 @@
throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�");
}
TaskDetl taskDetl = taskDetls.get(0);
-
//鐢熸垚鏂扮殑搴撲綅 !important
- Loc loc = this.generateLoc(taskType, taskDetl.getMatId(), taskDetl.getBatch(), taskDetl.getUniqueField(), locTypeHeightType.id);
-
- if(loc == null) {
+// Loc loc = this.generateLoc(taskType, taskDetl.getMatId(), taskDetl.getBatch(), taskDetl.getUniqueField(), locTypeHeightType.id);
+// if(loc == null) {
+// throw new CoolException("娌℃湁绌哄簱浣�");
+// }
+ Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getOriginLoc()));
+ if (loc == null) {
throw new CoolException("娌℃湁绌哄簱浣�");
}
//102鎷f枡姝ゅ闇�淇敼涓篧CS_CONTAINER_RECEIVE,瀹氭椂浠诲姟鏌ヨ鍚庯紝鑷姩涓嬪彂鍏ュ簱浠诲姟鑷矱SS
task.setTaskSts(TaskStsType.WCS_CONTAINER_RECEIVE.id);//1.鐢熸垚鍏ュ簱浠诲姟
task.setTaskType(taskType);
- task.setTargetLoc(loc.getLocNo());
+ //鍘熷簱浣嶅彉鐩爣搴撲綅, 鍘熺珯鐐瑰彉鐩爣绔欑偣
+ //todo 闇�纭鍘熺珯鐐逛负绌猴紝璇ユ�庝箞澶勭悊
+ task.setTargetLoc(task.getOriginLoc());
task.setUpdateTime(new Date());
if (!taskService.updateById(task)) {
throw new CoolException("鎷f枡澶辫触");
}
-
- //搴撲綅O => S
+ //搴撲綅鐘舵�佹敼涓洪绾﹀叆搴� R => S
loc.setLocStsId(LocStsType.S.val());
loc.setUpdateTime(new Date());
boolean locUpdate = locService.updateById(loc);
- if(!locUpdate){
+ if (!locUpdate) {
throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�");
}
@@ -700,7 +705,7 @@
}
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public boolean locAdjust(LocAdjustParam param) {
if (param == null) {
throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
@@ -792,7 +797,7 @@
throw new CoolException("鐩爣搴撲綅涓嶅瓨鍦�");
}
- if(targetLoc.getLocStsId() != LocStsType.O.val()){
+ if (targetLoc.getLocStsId() != LocStsType.O.val()) {
throw new CoolException("鐩爣搴撲綅闈炵┖鐘舵��");
}
@@ -817,7 +822,7 @@
}
List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, sourceLoc.getId()));
- if(locDetls.isEmpty()){
+ if (locDetls.isEmpty()) {
throw new CoolException("婧愬簱浣嶆槑缁嗕笉瀛樺湪");
}
@@ -833,7 +838,7 @@
taskDetl.setMatId(locDetl.getMatId());
taskDetl.setMatnr(locDetl.getMatnr());
boolean taskDetlSave = taskDetlService.save(taskDetl);
- if(!taskDetlSave){
+ if (!taskDetlSave) {
throw new CoolException("浠诲姟鏄庣粏鐢熸垚澶辫触");
}
@@ -846,7 +851,7 @@
taskDetlField.setDetlId(taskDetl.getId());
taskDetlField.setValue(locDetlField.getValue());
boolean taskDetlFieldSave = taskDetlFieldService.save(taskDetlField);
- if(!taskDetlFieldSave){
+ if (!taskDetlFieldSave) {
throw new CoolException("鏄庣粏鎵╁睍鐢熸垚澶辫触");
}
}
@@ -856,7 +861,7 @@
sourceLoc.setLocStsId(LocStsType.R.val());
sourceLoc.setUpdateTime(new Date());
boolean sourceLocUpdate = locService.updateById(sourceLoc);
- if(!sourceLocUpdate){
+ if (!sourceLocUpdate) {
throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�");
}
@@ -864,7 +869,7 @@
targetLoc.setLocStsId(LocStsType.S.val());
targetLoc.setUpdateTime(new Date());
boolean targetLocUpdate = locService.updateById(targetLoc);
- if(!targetLocUpdate){
+ if (!targetLocUpdate) {
throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�");
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java
index 07f0f35..f86ad18 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java
@@ -73,7 +73,7 @@
if (taskDetls.isEmpty()) {
throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�");
- } else { //TODO 鍏堟洿鏂拌鍗曪紝鍚庡垹闄や换鍔℃槑缁嗐�備换鍔′负53鏃讹紝闇�鏇存柊鏄庣粏銆�
+ } else {
//浠诲姟绫诲瀷涓�53锛屾牴鎹甒aveId淇敼璁㈠崟鏄庣粏
for (TaskDetl taskDetl : taskDetls) {
if (taskDetl.getDetlId() == null) {
@@ -214,7 +214,7 @@
taskLog.setId(null);
if (!taskLogService.save(taskLog)) {
throw new CoolException("淇濆瓨浠诲姟鍘嗗彶妗eけ璐�");
- } else { //fixme 鍘嗗彶浠诲姟妗d繚瀛樺悗锛屼慨鏀硅鍗曠姸鎬佷俊鎭悗锛屽啀鍒犻櫎浠诲姟妗�
+ } else {
//鏇存柊璁㈠崟淇℃伅
taskDetls.forEach(taskDetl -> {
if (taskDetl.getDetlId() != null) {
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
index 953f7f6..fb292e4 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
@@ -9,7 +9,6 @@
import com.zy.asrs.wms.asrs.entity.enums.LocStsType;
import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
import com.zy.asrs.wms.asrs.service.*;
-import io.jsonwebtoken.lang.Collections;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
@@ -17,11 +16,8 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import java.util.Collection;
import java.util.Date;
import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
@Slf4j
@Component
@@ -113,11 +109,12 @@
/**
+ * // fixme 鑸嶅純
* 1. 瀹氭椂鎷夊彇闇�瑕佹墽琛屽洖搴撲换鍔″垪琛ㄦ暟鎹紝
* 2. 鍒犻櫎鍘熷搴撲綅鏄庣粏锛屽師濮嬪簱浣嶇姸鎬佺疆鎴怬.绌哄簱
* 3.
*/
- @Scheduled(cron = "0/3 * * * * ? ")
+// @Scheduled(cron = "0/3 * * * * ? ")
@Transactional(rollbackFor = Exception.class)
public void rollbackStock() {
//鑾峰彇闇�瑕佹墽琛屽洖搴撶殑浠诲姟锛屾洿鏂板簱瀛樹俊鎭�
@@ -328,7 +325,6 @@
//鎷f枡鍐嶅叆搴�
private void executeTask53(Task task) {
Long hostId = task.getHostId();
- //fixme 灏嗕换鍔″綋鍓�
Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, task.getTargetLoc()).eq(Loc::getHostId, hostId));
if (loc == null) {
throw new CoolException("搴撲綅涓嶅瓨鍦�");
@@ -351,37 +347,35 @@
throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�");
}
- //娣诲姞搴撳瓨鏄庣粏
+ //淇敼搴撳瓨鏄庣粏
for (TaskDetl taskDetl : taskDetls) {
double anfme = taskDetl.getStock() - taskDetl.getAnfme();
if (anfme <= 0) {
- continue;
- }
+ LocDetl locdetl = locDetlService.getOne(new LambdaQueryWrapper<LocDetl>()
+ .eq(LocDetl::getLocId, loc.getId())
+ .eq(LocDetl::getBatch, taskDetl.getBatch())
+ .eq(LocDetl::getMatId, taskDetl.getMatId()));
- LocDetl locDetl = new LocDetl();
- locDetl.setLocId(loc.getId());
- locDetl.setLocNo(loc.getLocNo());
- locDetl.setMatId(taskDetl.getMatId());
- locDetl.setMatnr(taskDetl.getMat$().getMatnr());
- locDetl.setOrderNo(taskDetl.getOrderNo());
- locDetl.setBatch(taskDetl.getBatch());
- locDetl.setAnfme(anfme);
- locDetl.setHostId(hostId);
- if (!locDetlService.save(locDetl)) {
- throw new CoolException("鎻掑叆搴撳瓨鏄庣粏澶辫触");
- }
+ List<LocDetlField> detlFields = locDetlFieldService.list(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locdetl.getId()).eq(LocDetlField::getHostId, hostId));
+ if (!detlFields.isEmpty()) {
+ if (!locDetlFieldService.removeBatchByIds(detlFields)) {
+ throw new CoolException("鍒犻櫎鏄庣粏鎵╁睍瀛楁澶辫触");
+ }
+ }
- //娣诲姞搴撳瓨鏄庣粏鎵╁睍瀛楁
- List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()).eq(TaskDetlField::getHostId, hostId));
- for (TaskDetlField detlField : detlFields) {
- LocDetlField locDetlField = new LocDetlField();
- locDetlField.setDetlId(locDetl.getId());
- locDetlField.setFieldId(detlField.getFieldId());
- locDetlField.setName(detlField.getName());
- locDetlField.setValue(detlField.getValue());
- locDetlField.setHostId(hostId);
- if (!locDetlFieldService.save(locDetlField)) {
- throw new CoolException("鎻掑叆鏄庣粏鎵╁睍瀛楁澶辫触");
+ if (!locDetlService.removeById(locdetl)) {
+ throw new CoolException("搴撳瓨鏄庣粏鍒犻櫎澶辫触!!");
+ }
+ } else {
+ LocDetl locdetl = locDetlService.getOne(new LambdaQueryWrapper<LocDetl>()
+ .eq(LocDetl::getLocId, loc.getId())
+ .eq(LocDetl::getBatch, taskDetl.getBatch())
+ .eq(LocDetl::getMatId, taskDetl.getMatId()));
+ locdetl.setWorkQty(0.0);
+ locdetl.setAnfme(anfme);
+
+ if (!locDetlService.updateById(locdetl)) {
+ throw new CoolException("搴撳瓨鏄庣粏鏇存柊澶辫触锛侊紒");
}
}
}
@@ -423,6 +417,11 @@
}
}
+ /**
+ * 灏嗗師鏈夊簱瀛樻槑缁嗗垹闄�
+ * 搴撳瓨鐘舵�佽缃负绌哄簱鐘舵��
+ * @param task
+ */
//鎷f枡鍑哄簱
private void executeTask103(Task task) {
Long hostId = task.getHostId();
@@ -432,7 +431,7 @@
if (loc == null) {
throw new CoolException("搴撲綅涓嶅瓨鍦�");
}
- if (loc.getLocStsId() != LocStsType.R.val()) {
+ if (loc.getLocStsId() != LocStsType.S.val()) {
throw new CoolException("搴撲綅鐘舵�佷笉澶勪簬R.鍑哄簱棰勭害");
}
List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(task.getId());
diff --git a/zy-asrs-wms/src/main/resources/mapper/asrs/TaskMapper.xml b/zy-asrs-wms/src/main/resources/mapper/asrs/TaskMapper.xml
index 3a0916c..ca5b588 100644
--- a/zy-asrs-wms/src/main/resources/mapper/asrs/TaskMapper.xml
+++ b/zy-asrs-wms/src/main/resources/mapper/asrs/TaskMapper.xml
@@ -54,6 +54,9 @@
SELECT
mt.task_no,
mt.barcode,
+ mt.task_type,
+ mtt.title,
+ mt.update_time,
mtd.wave_no,
SUM( mtd.anfme ) anfme,
mt.id,
@@ -61,6 +64,7 @@
FROM
man_task mt
INNER JOIN man_task_detl mtd ON mt.id = mtd.task_id
+ INNER JOIN man_task_type mtt ON mt.task_type = mtt.id
GROUP BY
mt.task_no,
mtd.wave_no
diff --git a/zy-asrs-wms/src/main/resources/mapper/asrs/ViewLocDetlMapper.xml b/zy-asrs-wms/src/main/resources/mapper/asrs/ViewLocDetlMapper.xml
index d9f8a0c..ddae67c 100644
--- a/zy-asrs-wms/src/main/resources/mapper/asrs/ViewLocDetlMapper.xml
+++ b/zy-asrs-wms/src/main/resources/mapper/asrs/ViewLocDetlMapper.xml
@@ -92,7 +92,7 @@
view_man_loc_detl
WHERE
deleted = 0
- AND type_id IN ( SELECT type_id FROM man_loc_area_type WHERE parent_id = 7 OR id = 7 )
+ AND type_id IN ( SELECT type_id FROM man_loc_area_type WHERE parent_id = #{typeId} OR id = #{typeId} )
) t
WHERE 1 = 1
<if test="matnr != null and matnr != ''">
--
Gitblit v1.9.1