From 1eb6f4824c270de1a3d0bf766d44f1abb2c7f55d Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期四, 24 四月 2025 17:30:07 +0800
Subject: [PATCH] 巡检任务 设备维修新增是否生成工单字段 及 生成工单
---
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java | 102 ++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 92 insertions(+), 10 deletions(-)
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java
index a8673d5..beaf1ac 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java
@@ -4,15 +4,23 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.device.constant.CommonStatusContant;
+import com.by4cloud.platformx.device.constant.MaxSizeContant;
import com.by4cloud.platformx.device.dto.ReceivingNoteQueryDTO;
import com.by4cloud.platformx.device.entity.*;
import com.by4cloud.platformx.device.mapper.*;
+import com.by4cloud.platformx.device.service.JcMaxSizeService;
import com.by4cloud.platformx.device.service.ReceivingNoteService;
import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
+import java.util.stream.Collectors;
/**
* 楠屾敹琛�
@@ -22,13 +30,16 @@
*/
@Service
@AllArgsConstructor
+@Slf4j
public class ReceivingNoteServiceImpl extends ServiceImpl<ReceivingNoteMapper, ReceivingNote> implements ReceivingNoteService {
+ private final JcMaxSizeService maxSizeService;
private final ReceivingNoteItemMapper itemMapper;
private final DeviceInventoryMapper inventoryMapper;
private final InventoryFlowWaterMapper inventoryFlowWaterMapper;
private final DeviceMapper deviceMapper;
private final ContractMapper contractMapper;
+ private final ContractItemMapper contractItemMapper;
@Override
public IPage pageNew(Page page, ReceivingNoteQueryDTO queryDTO) {
@@ -36,19 +47,71 @@
}
@Override
- public boolean saveDeep(ReceivingNote entity) {
+ public R saveDeep(ReceivingNote entity) {
+ //鏄庣粏璁惧鏁伴噺涓庡悎鍚屼腑绛捐鏁版嵁姣斿
+ Contract contract = contractMapper.selectById(entity.getContractId());
+ if (contract == null) {
+ return R.failed("鍚堝悓涓嶅瓨鍦�");
+ }
+
+ //鏌ヨ鍚堝悓鏄庣粏涓澶囨儏鍐�
+ QueryWrapper<ContractItem> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("contract_id",contract.getId());
+ List<ContractItem> list = contractItemMapper.selectList(queryWrapper);
+//
+// //姣旇緝璁惧绉嶇被鏄惁涓�鑷�
+// if (list.size()!=entity.getNoteItemList().size()){
+// return R.failed("鍚堝悓涓澶囩绫讳笌楠屾敹鏄庣粏涓笉涓�鑷�");
+// }
+//
+ //姣旇緝鍗曚釜璁惧鍙拌处鏁伴噺鏄惁涓庡悎鍚屼腑涓�鑷�
+ for (ContractItem contractItem:list
+ ) {
+ for (ReceivingNoteItem item:entity.getNoteItemList()
+ ) {
+ if (contractItem.getDeviceId().equals(item.getDeviceId())){
+ if (contractItem.getNum() < item.getNum()) {
+ return R.failed("楠屾敹鏄庣粏涓�"+item.getDeviceName()+"璁惧鏁伴噺涓嶈兘瓒呰繃鍚堝悓鏄庣粏涓璁㈢殑璁惧鏁伴噺");
+ }
+ Integer deviceNum = itemMapper.selectDeviceNumByContractId(contractItem.getContractId(),item.getDeviceId());
+ if (contractItem.getNum()<(deviceNum+item.getNum())){
+ return R.failed("瀹為檯楠屾敹鏄庣粏涓�"+item.getDeviceName()+"璁惧鏁伴噺涓嶈兘瓒呰繃鍚堝悓鏄庣粏涓璁㈢殑璁惧鏁伴噺");
+ }
+ }
+ //璁惧搴忓垪鍙锋鏌ユ槸鍚︽湁鐩稿悓鐨勫瓨鍦�
+ List<String> serialArr = Arrays.stream(item.getSerialNos().split(",")).collect(Collectors.toList());
+ for (String serialNo:serialArr
+ ) {
+ QueryWrapper<DeviceInventory> inventoryQueryWrapper = new QueryWrapper<>();
+ inventoryQueryWrapper.eq("device_id",item.getDeviceId());
+ inventoryQueryWrapper.eq("serial_no",serialNo);
+ List<DeviceInventory> inventoryList = inventoryMapper.selectList(inventoryQueryWrapper);
+ if (inventoryList!=null&&inventoryList.size()>0){
+ return R.failed("鍚堝悓鏄庣粏涓澶囧簭鍒楀彿"+serialNo+"宸插瓨鍦紝璇锋鏌ュ簭鍒楀彿");
+ }
+ }
+ }
+ }
+
+ //鐢熸垚楠屾敹鍗曠紪鍙�
+ entity.setReleaseCode(maxSizeService.nextNo(MaxSizeContant.RELEASE_CODE));
+ //鍏ュ簱
baseMapper.insert(entity);
if (entity.getNoteItemList()!=null&&entity.getNoteItemList().size()>0){
for (ReceivingNoteItem item:entity.getNoteItemList()
) {
+ List<String> serialArr = new ArrayList<>();
+ if (item.getSerialNos()!=null&&!"".equals(item.getSerialNos())) {
+ item.setSerialNos(item.getSerialNos());
+ serialArr = Arrays.stream(item.getSerialNos().split(",")).collect(Collectors.toList());
+ }
item.setNoteId(entity.getId());
itemMapper.insert(item);
//璁惧搴撳瓨鍚屾鏂板
- if (item.getSerialNos()!=null&&item.getSerialNos().size()>0){
- for (String serialNo:item.getSerialNos()
+ if (serialArr.size()>0){
+ for (String serialNo:serialArr
) {
Device device = deviceMapper.selectById(item.getDeviceId());
- Contract contract = contractMapper.selectById(entity.getContractId());
if (device!=null) {
DeviceInventory inventory = new DeviceInventory();
inventory.setDeviceId(item.getDeviceId());
@@ -56,12 +119,12 @@
inventory.setName(device.getName());
inventory.setSerialNo(serialNo);
if (contract!=null&&(contract.getType()==1||contract.getType()==2)){
- inventory.setSource(1);
- inventory.setInventoryStatus(1);
+ inventory.setSource(CommonStatusContant.DEVICE_INVENTORY_RESOURCE_WAREHOUSE);
+ inventory.setInventoryStatus(CommonStatusContant.DEVICE_INVENTORY_USABLE);
}
if (contract!=null&&contract.getType()==0){
- inventory.setSource(1);
- inventory.setInventoryStatus(2);
+ inventory.setSource(CommonStatusContant.DEVICE_INVENTORY_RESOURCE_WAREHOUSE);
+ inventory.setInventoryStatus(CommonStatusContant.DEVICE_INVENTORY_RENTING);
}
inventoryMapper.insert(inventory);
//璁惧搴撳瓨娴佹按鍚屾鏂板
@@ -74,7 +137,7 @@
flowWater.setOperateType(2);
}
if (contract!=null&&contract.getType()==0){
- flowWater.setOperateType(1);
+ flowWater.setOperateType(CommonStatusContant.DEVICE_INVENTORY_FLOW_WATER_OUT);
}
inventoryFlowWaterMapper.insert(flowWater);
}
@@ -83,7 +146,20 @@
}
}
}
- return Boolean.TRUE;
+
+ //鍚堝悓鏄庣粏涓笌瀹為檯楠屾敹瀵规瘮
+ for (ContractItem contractItem:list
+ ) {
+ Integer deviceNum = itemMapper.selectDeviceNumByContractId(contractItem.getContractId(),contractItem.getDeviceId());
+ if (contractItem.getNum()!=deviceNum){
+ return R.ok();
+ }
+ }
+ //鏇存柊鍚堝悓鐘舵�佷负瀹屾垚
+ contract.setStatus(2);
+ contractMapper.updateById(contract);
+
+ return R.ok();
}
@Override
@@ -111,4 +187,10 @@
note.setNoteItemList(itemList);
return note;
}
+
+ public static void main(String[] args) {
+ int l1= 2;
+ int l2 = 3;
+ System.out.println(l1>=l2);
+ }
}
--
Gitblit v1.9.1