From 3a154bdb0a5aaa2c0ac3eac95a6ba747068bd454 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 13 一月 2026 10:00:37 +0800
Subject: [PATCH] 优化
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 221 insertions(+), 0 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java
new file mode 100644
index 0000000..20134ae
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java
@@ -0,0 +1,221 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.CarsMapper;
+import com.doumee.dao.business.model.Cars;
+import com.doumee.dao.business.model.JkCabinet;
+import com.doumee.dao.business.model.JkCabinetGrid;
+import com.doumee.service.business.third.model.LoginUserInfo;
+import com.doumee.service.business.third.model.PageData;
+import com.doumee.service.business.third.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.JkKeysMapper;
+import com.doumee.dao.business.model.JkKeys;
+import com.doumee.service.business.JkKeysService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.interfaces.MPJBaseJoin;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 閽ュ寵鍩烘湰淇℃伅琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkKeysServiceImpl implements JkKeysService {
+
+ @Autowired
+ private JkKeysMapper jkKeysMapper;
+
+ @Autowired
+ private CarsMapper carsMapper;
+
+ @Override
+ public Integer create(JkKeys jkKeys) {
+ if(Objects.isNull(jkKeys)
+ || Objects.isNull(jkKeys.getCarId())
+ || Objects.isNull(jkKeys.getRoleType())
+ || StringUtils.isBlank(jkKeys.getCode())
+ || StringUtils.isBlank(jkKeys.getRfidCode())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ //鏌ヨ缂栧彿鏄惁閲嶅
+ if(jkKeysMapper.selectCount(new QueryWrapper<JkKeys>().lambda().eq(JkKeys::getCode,jkKeys.getCode()).eq(JkKeys::getIsdeleted,Constants.ZERO))>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽ュ寵缂栧彿宸插瓨鍦紒");
+ }
+ Cars cars = carsMapper.selectById(jkKeys.getCarId());
+ if(Objects.isNull(cars)||Constants.equalsInteger(cars.getIsdeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"杞﹁締淇℃伅鏈煡璇㈠埌锛�");
+ }
+ JkKeys carsKeys = jkKeysMapper.selectOne(new QueryWrapper<JkKeys>().lambda().eq(JkKeys::getCarId,jkKeys.getCarId()).eq(JkKeys::getIsdeleted,Constants.ZERO).last("limit 1"));
+ if(Objects.nonNull(carsKeys)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠杞﹁締宸茶閽ュ寵["+carsKeys.getCode()+"]缁戝畾浣跨敤锛�");
+ }
+ JkKeys rfidKeys = jkKeysMapper.selectOne(new QueryWrapper<JkKeys>().lambda().eq(JkKeys::getRfidCode,jkKeys.getRfidCode()).eq(JkKeys::getIsdeleted,Constants.ZERO).last("limit 1"));
+ if(Objects.nonNull(rfidKeys)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠RFID鏍囩宸茶閽ュ寵["+rfidKeys.getCode()+"]浣跨敤锛�");
+ }
+ String lable = Constants.getRFIDNumber(jkKeys.getRfidCode());
+ if(StringUtils.isEmpty(lable)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"RFID鏍囩璁剧疆澶辫触銆愭牸寮忎笉姝g‘銆�");
+ }
+ jkKeys.setRfidLable(lable);
+ LoginUserInfo loginUserInfo = jkKeys.getLoginUserInfo();
+ jkKeys.setCreateDate(new Date());
+ jkKeys.setEditDate(jkKeys.getCreateDate());
+ jkKeys.setCreator(loginUserInfo.getId());
+ jkKeys.setEditor(loginUserInfo.getId());
+ jkKeys.setIsdeleted(Constants.ZERO);
+ jkKeys.setStatus(Constants.ZERO);
+ jkKeys.setCarCode(cars.getCode());
+ jkKeysMapper.insert(jkKeys);
+ return jkKeys.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ JkKeys jkKeys = jkKeysMapper.selectById(id);
+ if(Objects.isNull(jkKeys)||Constants.equalsInteger(jkKeys.getIsdeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!Constants.equalsInteger(jkKeys.getStatus(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽ュ寵宸茬粦瀹�,鏃犳硶杩涜鍒犻櫎");
+ }
+ jkKeysMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(JkKeys jkKeys) {
+ UpdateWrapper<JkKeys> deleteWrapper = new UpdateWrapper<>(jkKeys);
+ jkKeysMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkKeysMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkKeys jkKeys) {
+ if(Objects.isNull(jkKeys)
+ || Objects.isNull(jkKeys.getId())
+ || Objects.isNull(jkKeys.getCarId())
+ || Objects.isNull(jkKeys.getRoleType())
+ || StringUtils.isBlank(jkKeys.getCode())
+ || StringUtils.isBlank(jkKeys.getRfidCode())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ String lable = Constants.getRFIDNumber(jkKeys.getRfidCode());
+ if(StringUtils.isEmpty(lable)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"RFID鏍囩璁剧疆澶辫触銆愭牸寮忎笉姝g‘銆�");
+ }
+ jkKeys.setRfidLable(lable);
+ //鏌ヨ缂栧彿鏄惁閲嶅
+ if(jkKeysMapper.selectCount(new QueryWrapper<JkKeys>().lambda().ne(JkKeys::getId,jkKeys.getId()).eq(JkKeys::getCode,jkKeys.getCode()).eq(JkKeys::getIsdeleted,Constants.ZERO))>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽ュ寵缂栧彿宸插瓨鍦紒");
+ }
+ Cars cars = carsMapper.selectById(jkKeys.getCarId());
+ if(Objects.isNull(cars)||Constants.equalsInteger(cars.getIsdeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"杞﹁締淇℃伅鏈煡璇㈠埌锛�");
+ }
+ JkKeys carsKeys = jkKeysMapper.selectOne(new QueryWrapper<JkKeys>().lambda().ne(JkKeys::getId,jkKeys.getId()).eq(JkKeys::getCarId,jkKeys.getCarId()).eq(JkKeys::getIsdeleted,Constants.ZERO).last("limit 1"));
+ if(Objects.nonNull(carsKeys)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠杞﹁締宸茶閽ュ寵["+carsKeys.getCode()+"]缁戝畾浣跨敤锛�");
+ }
+ JkKeys rfidKeys = jkKeysMapper.selectOne(new QueryWrapper<JkKeys>().lambda().ne(JkKeys::getId,jkKeys.getId()).eq(JkKeys::getRfidLable,jkKeys.getRfidLable()).eq(JkKeys::getIsdeleted,Constants.ZERO).last("limit 1"));
+ if(Objects.nonNull(rfidKeys)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠RFID鏍囩宸茶閽ュ寵["+rfidKeys.getCode()+"]浣跨敤锛�");
+ }
+
+ LoginUserInfo loginUserInfo = jkKeys.getLoginUserInfo();
+ jkKeys.setEditDate(new Date());
+ jkKeys.setEditor(loginUserInfo.getId());
+ jkKeys.setCarCode(cars.getCode());
+ jkKeysMapper.updateById(jkKeys);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<JkKeys> jkKeyss) {
+ if (CollectionUtils.isEmpty(jkKeyss)) {
+ return;
+ }
+ for (JkKeys jkKeys: jkKeyss) {
+ this.updateById(jkKeys);
+ }
+ }
+
+ @Override
+ public JkKeys findById(Integer id) {
+ return jkKeysMapper.selectById(id);
+ }
+
+ @Override
+ public JkKeys findOne(JkKeys jkKeys) {
+ QueryWrapper<JkKeys> wrapper = new QueryWrapper<>(jkKeys);
+ return jkKeysMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkKeys> findList(JkKeys jkKeys) {
+
+
+
+
+ jkKeys.setIsdeleted(Constants.ZERO);
+ QueryWrapper<JkKeys> wrapper = new QueryWrapper<>(jkKeys);
+ return jkKeysMapper.selectList(new QueryWrapper<JkKeys>()
+ .lambda().eq(JkKeys::getIsdeleted,Constants.ZERO)
+
+ );
+ }
+
+ @Override
+ public PageData<JkKeys> findPage(PageWrap<JkKeys> pageWrap) {
+ IPage<JkKeys> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<JkKeys> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ JkKeys model = pageWrap.getModel();
+ MPJLambdaWrapper<JkKeys> wrapper = new MPJLambdaWrapper<JkKeys>()
+ .selectAll(JkKeys.class)
+ .select("j.code",JkKeys::getGridCode)
+ .select("j1.name",JkKeys::getCabinetName)
+ .leftJoin(Cars.class,Cars::getId,JkKeys::getCarId)
+ .leftJoin(" jk_cabinet_grid j on j.key_id = t.id and j.isdeleted = 0 ")
+ .leftJoin(" jk_cabinet j1 on j.CABINET_ID = j1.id ")
+ .eq(JkKeys::getIsdeleted,Constants.ZERO)
+// .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+ .like(StringUtils.isNotBlank(model.getCode()),JkKeys::getCode,model.getCode())
+ .like(StringUtils.isNotBlank(model.getCarCode()),JkKeys::getCarCode,model.getCode());
+ IPage<JkKeys> iPage = jkKeysMapper.selectJoinPage(page,JkKeys.class,wrapper);
+ for (JkKeys jkKeys:iPage.getRecords()) {
+ jkKeys.setIsBinding(StringUtils.isBlank(jkKeys.getGridCode())?Constants.ZERO:Constants.ONE);
+ }
+ return PageData.from(iPage);
+ }
+
+
+
+ @Override
+ public long count(JkKeys jkKeys) {
+ QueryWrapper<JkKeys> wrapper = new QueryWrapper<>(jkKeys);
+ return jkKeysMapper.selectCount(wrapper);
+ }
+}
--
Gitblit v1.9.3