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/ContractServiceImpl.java | 71 ++++++++++++++++++++++++++++++++--- 1 files changed, 64 insertions(+), 7 deletions(-) diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java index 930e4e9..4f4e358 100644 --- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java @@ -3,10 +3,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.by4cloud.platformx.device.entity.Contract; -import com.by4cloud.platformx.device.entity.ContractItem; -import com.by4cloud.platformx.device.mapper.ContractItemMapper; -import com.by4cloud.platformx.device.mapper.ContractMapper; +import com.by4cloud.platformx.common.core.util.R; +import com.by4cloud.platformx.device.constant.CommonStatusContant; +import com.by4cloud.platformx.device.entity.*; +import com.by4cloud.platformx.device.mapper.*; import com.by4cloud.platformx.device.service.ContractService; import org.springframework.stereotype.Service; import cn.hutool.core.collection.CollUtil; @@ -27,11 +27,16 @@ @RequiredArgsConstructor public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> implements ContractService { private final ContractItemMapper contractItemMapper; + private final DeviceLeasingLedgerMapper leasingLedgerMapper; + private final DeviceLeasingLedgerItemMapper ledgerItemMapper; + private final DeviceInventoryMapper inventoryMapper; + private final InventoryFlowWaterMapper flowWaterMapper; + private final DeviceMapper deviceMapper; @Override @Transactional(rollbackFor = Exception.class) public Boolean saveDeep(Contract contract) { - contract.setStatus(0); + contract.setStatus(CommonStatusContant.CONTRACT_STATUS_PENDING_APPROVAL); baseMapper.insert(contract); for (ContractItem contractItem : contract.getContractItemList()) { contractItem.setContractId(contract.getId()); @@ -87,7 +92,7 @@ @Override public Boolean approved(Long id) { Contract contract = baseMapper.selectById(id); - contract.setStatus(1); + contract.setStatus(CommonStatusContant.CONTRACT_STATUS_APPROVED); baseMapper.updateById(contract); return Boolean.TRUE; } @@ -95,8 +100,60 @@ @Override public List<Contract> getApprovedContractList() { QueryWrapper<Contract> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("status",1); + queryWrapper.eq("status",CommonStatusContant.CONTRACT_STATUS_APPROVED); List<Contract> list = baseMapper.selectList(queryWrapper); return list; } + + @Override + public R approvelInvalid(Long id) { + Contract contract = baseMapper.selectById(id); + contract.setStatus(CommonStatusContant.CONTRACT_STATUS_INVALID_PENDING_APPROVAL); + baseMapper.updateById(contract); + return R.ok(); + } + + @Override + public R invalidById(Long id) { + Contract contract = baseMapper.selectById(id); + contract.setStatus(CommonStatusContant.CONTRACT_STATUS_INVALID); + baseMapper.updateById(contract); + //鏍规嵁鍚堝悓鏌ユ壘鐩稿叧绉熻祦鍙拌处 + QueryWrapper<DeviceLeasingLedger> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("contract_id",id); + DeviceLeasingLedger ledger = leasingLedgerMapper.selectOne(queryWrapper); + if (ledger!=null){ + //鏌ユ壘鐩稿叧鍙拌处鏄庣粏 + QueryWrapper<DeviceLeasingLedgerItem> ledgerItemQueryWrapper = new QueryWrapper<>(); + ledgerItemQueryWrapper.eq("ledger_id",ledger.getId()); + List<DeviceLeasingLedgerItem> ledgerItemList = ledgerItemMapper.selectList(ledgerItemQueryWrapper); + if(ledgerItemList.size()>0){ + //鏍规嵁鍙拌处鏄庣粏鏌ヨ璁惧搴撳瓨 + ledgerItemList.stream().forEach(deviceLeasingLedgerItem -> { + QueryWrapper<DeviceInventory> inventoryQueryWrapper = new QueryWrapper<>(); + inventoryQueryWrapper.eq("ledger_item_id",deviceLeasingLedgerItem.getId()); + List<DeviceInventory> inventoryList = inventoryMapper.selectList(inventoryQueryWrapper); + //灏嗚澶囧簱瀛樼姸鎬佹洿涓哄彲鐢� + if (inventoryList.size()>0){ + inventoryList.stream().forEach(deviceInventory -> { + deviceInventory.setInventoryStatus(CommonStatusContant.DEVICE_INVENTORY_USABLE); + inventoryMapper.updateById(deviceInventory); + //搴撳瓨娴佹按 + InventoryFlowWater flowWater = new InventoryFlowWater(); + flowWater.setDeviceId(deviceInventory.getDeviceId()); + Device device = deviceMapper.selectById(deviceInventory.getDeviceId()); + if (device!=null){ + flowWater.setClassId(device.getClassId()); + } + flowWater.setInventoryId(deviceInventory.getId()); + flowWater.setSerialNo(deviceInventory.getSerialNo()); + flowWater.setOperateType(CommonStatusContant.DEVICE_INVENTORY_FLOW_WATER_IN); + flowWaterMapper.insert(flowWater); + }); + } + }); + } + } + return R.ok(); + } } -- Gitblit v1.9.1