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.dto.ReceivingNoteQueryDTO; import com.by4cloud.platformx.device.entity.*; import com.by4cloud.platformx.device.mapper.*; import com.by4cloud.platformx.device.service.ReceivingNoteService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.io.Serializable; import java.util.List; /** * 验收表 * * @author pig * @date 2025-03-13 11:03:52 */ @Service @AllArgsConstructor public class ReceivingNoteServiceImpl extends ServiceImpl implements ReceivingNoteService { private final ReceivingNoteItemMapper itemMapper; private final DeviceInventoryMapper inventoryMapper; private final InventoryFlowWaterMapper inventoryFlowWaterMapper; private final DeviceMapper deviceMapper; private final ContractMapper contractMapper; @Override public IPage pageNew(Page page, ReceivingNoteQueryDTO queryDTO) { return baseMapper.pageNew(page,queryDTO); } @Override public boolean saveDeep(ReceivingNote entity) { baseMapper.insert(entity); if (entity.getNoteItemList()!=null&&entity.getNoteItemList().size()>0){ for (ReceivingNoteItem item:entity.getNoteItemList() ) { item.setNoteId(entity.getId()); itemMapper.insert(item); //设备库存同步新增 if (item.getSerialNos()!=null&&item.getSerialNos().size()>0){ for (String serialNo:item.getSerialNos() ) { Device device = deviceMapper.selectById(item.getDeviceId()); Contract contract = contractMapper.selectById(entity.getContractId()); 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(1); inventory.setInventoryStatus(1); } if (contract!=null&&contract.getType()==0){ inventory.setSource(1); inventory.setInventoryStatus(2); } 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(1); } inventoryFlowWaterMapper.insert(flowWater); } } } } } return Boolean.TRUE; } @Override public boolean updateByIdDeep(ReceivingNote entity) { baseMapper.updateById(entity); QueryWrapper 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 queryWrapper = new QueryWrapper<>(); queryWrapper.eq("note_id",note.getId()); List itemList = itemMapper.selectList(queryWrapper); note.setNoteItemList(itemList); return note; } }