diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwBoxController.java b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwBoxController.java index ce33db6c0..48a69af09 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwBoxController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwBoxController.java @@ -6,8 +6,12 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.KwBox; +import com.iformall.domain.po.KwMeter; import com.iformall.enums.EnumBoxStatus; +import com.iformall.enums.EnumMeterBindStatus; +import com.iformall.enums.EnumMeterStatus; import com.iformall.service.kw.KwBoxService; +import com.iformall.service.kw.KwMeterService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -28,6 +32,9 @@ public class KwBoxController extends BaseController { @Autowired private KwBoxService kwBoxService; + @Autowired + private KwMeterService kwMeterService; + @ApiOperation("设备列表") @GetMapping("list") @ApiImplicitParams({ @@ -66,6 +73,9 @@ public class KwBoxController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); if (kwBox.getId() == null) return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + kwBox.setImei(null); + kwBox.setIccid(null); + kwBox.setComKey(null); kwBoxService.saveOrUpdate(kwBox); return new ResultData(kwBox); } @@ -94,6 +104,77 @@ public class KwBoxController extends BaseController { kwBox.setId(id); kwBox.setStatus(EnumBoxStatus.INVALID.getCode()); kwBoxService.saveOrUpdate(kwBox); - return new ResultData(kwBox); + kwMeterService.unbindBatch(id); + return new ResultData(); + } + + @ApiOperation("绑定设备") + @PostMapping("bind") + @SystemControllerLog(description = "电表设备-添加设备") + public Result bind(@RequestBody KwMeter kwMeter) { + + if (kwMeter == null) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + if (kwMeter.getBoxId() == null || + (kwMeter.getId() == null && kwMeter.getIds() == null)) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + + KwBox kwBox = kwBoxService.getById(kwMeter.getBoxId()); + if (kwBox == null || kwBox.getStatus().equals(EnumBoxStatus.INVALID.getCode())) + return new ResultData(ErrorCode.DEVICE_NOT_FOUND); + + + KwMeter record = new KwMeter(); + record.setBoxId(kwMeter.getBoxId()); + record.setBindStatus(EnumMeterBindStatus.BIND.getCode()); + record.setStatus(EnumMeterStatus.VALID.getCode()); + List KwMeters = kwMeterService.findList(record); + + if (kwMeter.getId() != null) { + if (KwMeters.size() >= kwBox.getMaxTagNum()) + return new ResultData(ErrorCode.DEVICE_REACHED_MAX_NUMBER); + record = kwMeterService.getById(kwMeter.getId()); + if (record == null) + return new ResultData(ErrorCode.DEVICE_NOT_FOUND); + if (record.getBoxId() != 0 && record.getBindStatus().equals(EnumMeterBindStatus.BIND.getCode())) + return new ResultData(ErrorCode.DEVICE_ALREADY_EXIST); + kwMeterService.bind(kwMeter.getBoxId(),kwMeter.getId()); + } else { + if (kwMeter.getIds() != null) { + if (KwMeters.size() + kwMeter.getIds().size() > kwBox.getMaxTagNum()) + return new ResultData(ErrorCode.DEVICE_REACHED_MAX_NUMBER); + } + kwMeterService.bindBatch(kwMeter.getBoxId(),kwMeter.getIds()); + } + + return new ResultData(); } + + @ApiOperation("绑定设备") + @PostMapping("unbind") + @SystemControllerLog(description = "电表设备-添加设备") + public Result unbind(@RequestBody KwMeter kwMeter) { + + if (kwMeter == null) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + if (kwMeter.getBoxId() == null && kwMeter.getId() == null) + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + + if (kwMeter.getId() != null) { + KwMeter record = kwMeterService.getById(kwMeter.getId()); + if (record == null) + return new ResultData(ErrorCode.DEVICE_NOT_FOUND); + kwMeterService.unbind(kwMeter.getId()); + } else { + if (kwMeter.getBoxId() != null) { + KwBox kwBox = kwBoxService.getById(kwMeter.getBoxId()); + if (kwBox == null) + return new ResultData(ErrorCode.DEVICE_NOT_FOUND); + kwMeterService.unbindBatch(kwMeter.getBoxId()); + } + } + + return new ResultData(); + } + } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java index cc4268b77..a05d63b40 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMerchantMeterController.java @@ -98,15 +98,13 @@ public class KwMerchantMeterController extends BaseController { if (kwMerchantMeter == null) return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); if (kwMerchantMeter.getMerchantId() == null - && kwMerchantMeter.getId() == null && kwMerchantMeter.getMeterId() == null) return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); - if (kwMerchantMeter.getId() != null) { - kwMerchantMeter.setStatus(EnumMerchantMeterStatus.INVALID.getCode()); - kwMerchantMeterService.saveOrUpdate(kwMerchantMeter); + if (kwMerchantMeter.getMeterId() != null) { + kwMerchantMeterService.unbind(kwMerchantMeter.getMeterId()); } else { - kwMerchantMeterService.unbindBatch(kwMerchantMeter); + kwMerchantMeterService.unbindBatch(kwMerchantMeter.getMerchantId()); } return new ResultData(); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterController.java b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterController.java index 406385ba2..1d757439a 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterController.java @@ -11,7 +11,9 @@ import com.iformall.domain.po.KwMeterData; import com.iformall.enums.EnumBoxStatus; import com.iformall.enums.EnumMeterBindStatus; import com.iformall.enums.EnumMeterStatus; +import com.iformall.exception.MallinkException; import com.iformall.service.kw.KwBoxService; +import com.iformall.service.kw.KwMerchantMeterService; import com.iformall.service.kw.KwMeterDataService; import com.iformall.service.kw.KwMeterService; import io.swagger.annotations.Api; @@ -22,7 +24,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; @@ -39,8 +44,7 @@ public class KwMeterController extends BaseController { private KwMeterDataService kwMeterDataService; @Autowired - private KwBoxService kwBoxService; - + private KwMerchantMeterService kwMerchantMeterService; @ApiOperation("设备列表") @GetMapping("list") @@ -80,64 +84,6 @@ public class KwMeterController extends BaseController { return new ResultData(kwMeter); } - @ApiOperation("绑定设备") - @PostMapping("bind") - @SystemControllerLog(description = "电表设备-添加设备") - public Result bind(@RequestBody KwMeter kwMeter) { - - if (kwMeter == null) - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); - if (kwMeter.getBoxId() == null) - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); - if (kwMeter.getId() == null) - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); - - KwBox kwBox = kwBoxService.getById(kwMeter.getBoxId()); - if (kwBox == null || kwBox.getStatus().equals(EnumBoxStatus.INVALID.getCode())) - return new ResultData(ErrorCode.DEVICE_NOT_FOUND); - - KwMeter record = new KwMeter(); - record.setBoxId(kwMeter.getBoxId()); - record.setStatus(EnumMeterStatus.VALID.getCode()); - List KwMeters = kwMeterService.findList(record); - if (KwMeters.size() >= kwBox.getMaxTagNum()) - return new ResultData(ErrorCode.DEVICE_REACHED_MAX_NUMBER); - - record = kwMeterService.getById(kwMeter.getId()); - if (record == null) - return new ResultData(ErrorCode.DEVICE_NOT_FOUND); - if (record.getBoxId() != 0) - return new ResultData(ErrorCode.DEVICE_ALREADY_EXIST); - - kwMeter.setBindStatus(EnumMeterBindStatus.BIND.getCode()); - kwMeterService.saveOrUpdate(kwMeter); - return new ResultData(kwMeter); - } - - @ApiOperation("绑定设备") - @PostMapping("unbind") - @SystemControllerLog(description = "电表设备-添加设备") - public Result unbind(@RequestBody KwMeter kwMeter) { - - if (kwMeter == null) - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); - if (kwMeter.getBoxId() == null) - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); - if (kwMeter.getId() == null) - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); - - KwBox kwBox = kwBoxService.getById(kwMeter.getBoxId()); - if (kwBox == null) - return new ResultData(ErrorCode.DEVICE_NOT_FOUND); - - KwMeter record = kwMeterService.getById(kwMeter.getId()); - if (record == null) - return new ResultData(ErrorCode.DEVICE_NOT_FOUND); - kwMeter.setBoxId(0L); - kwMeter.setBindStatus(EnumMeterBindStatus.UNBIND.getCode()); - kwMeterService.saveOrUpdate(kwMeter); - return new ResultData(kwMeter); - } @ApiOperation("更新设备") @PostMapping("update") @@ -147,6 +93,7 @@ public class KwMeterController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); if (kwMeter.getId() == null) return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + kwMeter.setAddress(null); kwMeterService.saveOrUpdate(kwMeter); return new ResultData(kwMeter); } @@ -173,7 +120,24 @@ public class KwMeterController extends BaseController { KwMeter kwMeter = new KwMeter(); kwMeter.setId(id); kwMeter.setStatus(EnumBoxStatus.INVALID.getCode()); + kwMeterService.unbind(id); + kwMerchantMeterService.unbind(id); kwMeterService.saveOrUpdate(kwMeter); + return new ResultData(kwMeter); } + + @ApiOperation("导入设备") + @PostMapping(value = "import", consumes = "multipart/*") + @SystemControllerLog(description = "电表管理-导入数据") + public Result importData(@RequestParam("file") MultipartFile mFile) { + return new ResultData(); + } + + @RequestMapping("导出模板") + @SystemControllerLog(description = "电表管理-导出模板") + public void exportTemplate(HttpServletRequest request, HttpServletResponse response) { + + } + } diff --git a/mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java b/mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java index 7500d700b..810b13aac 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java @@ -18,6 +18,6 @@ public interface KwMerchantMeterMapper extends CommonMapper { List findList(KwMeter param); int updateBatch(KwMeter param); + int bind(@Param("boxId")Long boxId,@Param("id")Long id); + int bindBatch(@Param("boxId")Long boxId, @Param("ids")List ids); + + int unbind(@Param("meterId")Long meterId); + int unbindBatch(@Param("boxId")Long boxId); + } diff --git a/mallinkService/src/main/java/com/iformall/service/kw/KwBoxService.java b/mallinkService/src/main/java/com/iformall/service/kw/KwBoxService.java index c60fbfb0d..c40738eae 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/KwBoxService.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/KwBoxService.java @@ -82,4 +82,5 @@ public interface KwBoxService { KwBox findByImei(String imei); void saveMeterData(KwBox record, List> metersData, Date deviceTime); + } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java b/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java index 98e300cc8..a7858d6a2 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/KwMerchantMeterService.java @@ -53,6 +53,6 @@ public interface KwMerchantMeterService { List findDataVoList(KwMerchantMeterDataDto record); int selectCount(KwMerchantMeter record); - int unbindBatch(KwMerchantMeter record); - + int unbind(Long meterId); + int unbindBatch(Long merchantId); } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/service/kw/KwMeterService.java b/mallinkService/src/main/java/com/iformall/service/kw/KwMeterService.java index 56f8114dc..d165192ec 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/KwMeterService.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/KwMeterService.java @@ -61,4 +61,12 @@ public interface KwMeterService { List findList(KwMeter record); int selectCount(KwMeter record); + + int bind(Long boxId, Long meterId); + + int bindBatch(Long boxId, List meterIds); + + int unbind(Long meterId); + + int unbindBatch(Long boxId); } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwBoxServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwBoxServiceImpl.java index 8f1b4b7d7..c7a18cf37 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwBoxServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwBoxServiceImpl.java @@ -10,6 +10,7 @@ import com.iformall.domain.po.KwMeter; import com.iformall.domain.po.KwMeterData; import com.iformall.enums.*; import com.iformall.mapper.KwBoxMapper; +import com.iformall.mapper.KwMeterMapper; import com.iformall.service.kw.KwBoxService; import com.iformall.service.kw.KwMeterDataService; import com.iformall.service.kw.KwMeterService; @@ -37,6 +38,9 @@ public class KwBoxServiceImpl implements KwBoxService { @Autowired KwMeterService kwMeterService; + @Autowired + KwMeterMapper kwMeterMapper; + @Override public PageInfo listAsPage(KwBox record, Integer pageIndex, Integer pageSize) { @@ -175,7 +179,7 @@ public class KwBoxServiceImpl implements KwBoxService { kwMeter.setBindStatus(EnumMeterBindStatus.BIND.getCode()); kwMeter.setStatus(EnumMeterStatus.VALID.getCode()); - return kwMeterService.findList(kwMeter); + return kwMeterMapper.findList(kwMeter); } } diff --git a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java index 2e0df06a4..b7e9089ae 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMerchantMeterServiceImpl.java @@ -78,13 +78,18 @@ public class KwMerchantMeterServiceImpl implements KwMerchantMeterService { } @Override - public int unbindBatch(KwMerchantMeter record) { - if (record == null) + public int unbind(Long meterId) { + if (meterId == null) return 0; - if (record.getMeterId() == null - && record.getMerchantId() == null) + return kwMerchantMeterMapper.unbind(meterId); + } + + + @Override + public int unbindBatch(Long merchantId) { + if (merchantId == null) return 0; - return kwMerchantMeterMapper.unbindBatch(record); + return kwMerchantMeterMapper.unbindBatch(merchantId); } } diff --git a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMeterServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMeterServiceImpl.java index 53b909c4e..f166eab22 100644 --- a/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMeterServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/kw/impl/KwMeterServiceImpl.java @@ -68,4 +68,34 @@ public class KwMeterServiceImpl implements KwMeterService { public int selectCount(KwMeter record) { return kwMeterMapper.selectCount(record); } + + @Override + public int bind(Long boxId, Long meterId) { + if (meterId == null || boxId == null) + return 0; + return kwMeterMapper.bind(boxId, meterId); + } + + @Override + public int bindBatch(Long boxId, List meterIds) { + if (meterIds == null || boxId == null) + return 0; + return kwMeterMapper.bindBatch(boxId, meterIds); + } + + + @Override + public int unbind(Long meterId) { + if (meterId == null) + return 0; + return kwMeterMapper.unbind(meterId); + } + + @Override + public int unbindBatch(Long boxId) { + if (boxId == null) + return 0; + return kwMeterMapper.unbindBatch(boxId); + } + } diff --git a/mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml b/mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml index 6435ab1f7..ec008392a 100644 --- a/mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml +++ b/mallinkService/src/main/resources/mapper/KwMerchantMeterMapper.xml @@ -250,18 +250,18 @@ where temp.merchant_id = id - + update kw_merchant_meter set status = 1 where status = 0 + and `merchant_id` = #{merchantId} + - - and `merchant_id` = #{merchantId} - - - - and `meter_id` = #{meterId} - + + update kw_merchant_meter set status = 1 + where status = 0 + and `meter_id` = #{meterId} + diff --git a/mallinkService/src/main/resources/mapper/KwMeterMapper.xml b/mallinkService/src/main/resources/mapper/KwMeterMapper.xml index 7b742a6ca..7cfdf43fa 100644 --- a/mallinkService/src/main/resources/mapper/KwMeterMapper.xml +++ b/mallinkService/src/main/resources/mapper/KwMeterMapper.xml @@ -104,4 +104,30 @@ + + update kw_merchant_meter set (bind_status = 1, box_id = 0) + where bind_status = 0 + and `box_id` = #{boxId} + + + + + update kw_merchant_meter set (bind_status = 1, box_id = 0) + where bind_status = 0 + and `id` = #{meterId} + + + + update kw_merchant_meter set (bind_status = 0, box_id = #{boxId}) + where id in + + #{idItem} + + + + + update kw_merchant_meter set (bind_status = 0, box_id = #{boxId}) + where `id` = #{id} + +