From fc8c86e7a365d5c6bdc37c2b05b9f83115ac2bc3 Mon Sep 17 00:00:00 2001 From: shiyunteng <shiyunteng@example.com> Date: 星期三, 23 四月 2025 17:30:52 +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