shiyunteng
8 天以前 0ad13cb4bf387d4f2db2d62540ebb73a376087f5
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java
@@ -68,8 +68,13 @@
         for (DeviceLeasingLedgerItem item:deviceLeasingLedger.getLedgerItemList()
         ) {
            if (contractItem.getDeviceId().equals(item.getDeviceId())){
               if (contractItem.getNum()!=item.getNum()) {
                  return R.failed("合同中"+item.getDeviceName()+"设备数量与台账明细中不一致");
               if (contractItem.getNum()<item.getNum()) {
                  return R.failed("合同中"+item.getDeviceName()+"设备数量与台账明细中不一致,无法建立台账");
               }
               Integer deviceNum = itemMapper.selectDeviceNumByContractId(contract.getId(),contractItem.getDeviceId());
               //查询是否有历史出账
               if (contractItem.getNum()<(item.getNum()+deviceNum)) {
                  return R.failed("合同中"+item.getDeviceName()+"设备数量出租台账已超出设备实际库存,无法建立台账");
               }
            }
         }
@@ -84,26 +89,15 @@
         for (String serialNo:item.getSerialNos()
         ) {
            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(1);
                  //入库操作 库存状态为 可用
                  inventory.setInventoryStatus(1);
               }
               //根据合同类型 租赁 合同类型为出库操作
               if (contract!=null&&contract.getType()==0){
                  inventory.setSource(0);
                  //出库操作 库存状态为  租赁中
                  inventory.setInventoryStatus(2);
               }
            QueryWrapper<DeviceInventory> inventoryQueryWrapper = new QueryWrapper<>();
            inventoryQueryWrapper.eq("device_id",item.getDeviceId());
            inventoryQueryWrapper.eq("serial_no",serialNo);
            DeviceInventory inventory = inventoryMapper.selectOne(inventoryQueryWrapper);
            if (device!=null&&inventory!=null) {
               inventory.setInventoryStatus(2);
               inventory.setLedgerItemId(item.getId());
               //库存调整
               inventoryMapper.insert(inventory);
               inventoryMapper.updateById(inventory);
               //设备库存流水同步新增
               InventoryFlowWater flowWater = new InventoryFlowWater();
@@ -124,7 +118,15 @@
            }
         }
      }
      //合同明细中与台账对比
      for (ContractItem contractItem:list
      ) {
         Integer deviceNum = itemMapper.selectDeviceNumByContractId(contract.getId(),contractItem.getDeviceId());
         //查询是否有历史出账
         if (contractItem.getNum()!=deviceNum) {
            return R.ok();
         }
      }
      //更新合同状态为完成
      contract.setStatus(2);
      contractMapper.updateById(contract);