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 | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 175 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 4f159a1..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,13 +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.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.ReceivingNote;
-import com.by4cloud.platformx.device.mapper.ReceivingNoteMapper;
+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;
+
/**
* 楠屾敹琛�
*
@@ -15,9 +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