shiyunteng
8 天以前 0ad13cb4bf387d4f2db2d62540ebb73a376087f5
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java
@@ -57,20 +57,36 @@
      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("合同中设备种类与验收明细中不一致");
      }
//
//      //比较设备种类是否一致
//      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()+"设备数量与验收明细中不一致");
               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+"已存在,请检查序列号");
               }
            }
         }
@@ -130,6 +146,14 @@
         }
      }
      //合同明细中与实际验收对比
      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);
@@ -164,8 +188,8 @@
   }
   public static void main(String[] args) {
      Long l1= 1905442028714270722l;
      long l2 = 1905442028714270722l;
      System.out.println(l1==l2);
      int l1= 2;
      int l2 = 3;
      System.out.println(l1>=l2);
   }
}