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 | 184 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 182 insertions(+), 2 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 0d6d1da..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 @@ -1,10 +1,27 @@ package com.by4cloud.platformx.device.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.device.entity.ReceivingNote; -import com.by4cloud.platformx.device.mapper.ReceivingNoteMapper; +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; + /** * 楠屾敹琛� * @@ -12,5 +29,168 @@ * @date 2025-03-13 11:03:52 */ @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) { + return baseMapper.pageNew(page,queryDTO); + } + + @Override + 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 (serialArr.size()>0){ + for (String serialNo:serialArr + ) { + Device device = deviceMapper.selectById(item.getDeviceId()); + if (device!=null) { + DeviceInventory inventory = new DeviceInventory(); + inventory.setDeviceId(item.getDeviceId()); + inventory.setDeviceNumber(item.getDeviceCode()); + inventory.setName(device.getName()); + inventory.setSerialNo(serialNo); + if (contract!=null&&(contract.getType()==1||contract.getType()==2)){ + inventory.setSource(CommonStatusContant.DEVICE_INVENTORY_RESOURCE_WAREHOUSE); + inventory.setInventoryStatus(CommonStatusContant.DEVICE_INVENTORY_USABLE); + } + if (contract!=null&&contract.getType()==0){ + inventory.setSource(CommonStatusContant.DEVICE_INVENTORY_RESOURCE_WAREHOUSE); + inventory.setInventoryStatus(CommonStatusContant.DEVICE_INVENTORY_RENTING); + } + inventoryMapper.insert(inventory); + //璁惧搴撳瓨娴佹按鍚屾鏂板 + InventoryFlowWater flowWater = new InventoryFlowWater(); + flowWater.setDeviceId(item.getDeviceId()); + flowWater.setSerialNo(serialNo); + flowWater.setInventoryId(inventory.getId()); + flowWater.setClassId(device.getClassId()); + if (contract!=null&&(contract.getType()==1||contract.getType()==2)){ + flowWater.setOperateType(2); + } + if (contract!=null&&contract.getType()==0){ + flowWater.setOperateType(CommonStatusContant.DEVICE_INVENTORY_FLOW_WATER_OUT); + } + inventoryFlowWaterMapper.insert(flowWater); + } + } + + } + } + } + + //鍚堝悓鏄庣粏涓笌瀹為檯楠屾敹瀵规瘮 + 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 + public boolean updateByIdDeep(ReceivingNote entity) { + baseMapper.updateById(entity); + QueryWrapper<ReceivingNoteItem> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("note_id",entity.getId()); + itemMapper.delete(queryWrapper); + if (entity.getNoteItemList()!=null&&entity.getNoteItemList().size()>0){ + for (ReceivingNoteItem item:entity.getNoteItemList() + ) { + item.setNoteId(entity.getId()); + itemMapper.insert(item); + } + } + return Boolean.TRUE; + } + + @Override + public ReceivingNote getByIdDeep(Long id) { + ReceivingNote note = baseMapper.selectById(id); + QueryWrapper<ReceivingNoteItem> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("note_id",note.getId()); + List<ReceivingNoteItem> itemList = itemMapper.selectList(queryWrapper); + 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