From a2093e0389656b3485303da48204f0939c95e8fb Mon Sep 17 00:00:00 2001
From: 刘小明 <liuxm_a@163.com>
Date: 星期五, 26 七月 2024 17:31:47 +0800
Subject: [PATCH] 静态常量整理

---
 pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/station/StationSv.java |   90 ++++++++++++++++++++++++++++++++++-----------
 1 files changed, 68 insertions(+), 22 deletions(-)

diff --git a/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/station/StationSv.java b/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/station/StationSv.java
index 34bddf4..fceba39 100644
--- a/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/station/StationSv.java
+++ b/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/station/StationSv.java
@@ -1,19 +1,20 @@
 package com.dy.pmsPlatform.station;
 
-import cn.hutool.core.codec.Base64;
+import com.alibaba.excel.util.StringUtils;
 import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pmsGlobal.daoPlt.PltProductionLineMapper;
 import com.dy.pmsGlobal.daoPlt.PltStationMapper;
-import com.dy.pmsGlobal.pojoPlt.PltProduct;
+import com.dy.pmsGlobal.pojoPlt.PltProductionLine;
 import com.dy.pmsGlobal.pojoPlt.PltStation;
+import com.dy.pmsGlobal.util.QrCodeConstant;
 import com.dy.pmsGlobal.util.QrCodeUtil;
-import com.google.zxing.WriterException;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
@@ -22,20 +23,56 @@
 public class StationSv {
 
     private PltStationMapper dao;
-    private static final String stationPrefix = "103" ;
+    private PltProductionLineMapper lineDao;
+//    private static final String stationPrefix = "103" ;
+    private static final String DEFAULT_CODE = "0001";
+    private static final String CODE_FORMAT = "%04d";
 
     @Autowired
     public void setDao(PltStationMapper dao) {
         this.dao = dao;
     }
+    @Autowired
+    public void setLineDao(PltProductionLineMapper lineDao) {
+        this.lineDao = lineDao;
+    }
 
     @Transactional
-    public int save(PltStation station) throws Exception {
-        if(dao.selectByCodeId(station.id,station.code)>0){
-            throw new Exception("宸ョ珯缂栧彿宸插瓨鍦�");
+    public int save(PltStation station) throws RuntimeException {
+
+        if(dao.selectByName(station.getName()).size() > 0){
+            throw new RuntimeException("宸ョ珯鍚嶇О("+station.getName()+")宸插瓨鍦�,鍚嶇О涓嶅厑璁搁噸澶嶆坊鍔�,璇峰彉鏇�");
         }
-        int count = dao.insertSelective(station);
+        int count = 0;
+        int flag=0;
+        do {
+            station.code = getNextCode();
+            try {
+                count = dao.insertSelective(station);
+                return count;
+            } catch (DuplicateKeyException e) {
+                // 濡傛灉鍑虹幇鍞竴绾︽潫杩濆弽寮傚父锛屽皾璇曡幏鍙栨柊鐨刢ode骞堕噸璇�
+                log.warn("鎻掑叆宸ョ珯鏃堕亣鍒板敮涓�绾︽潫寮傚父锛屽皾璇曡幏鍙栨柊鐨刢ode", e);
+            }
+            flag++;
+        } while (flag<5);
+
         return count;
+    }
+
+    private String getNextCode(){
+        log.info("鑾峰彇宸ョ珯缂栧彿");
+        String maxCode = dao.selectMaxCode();
+        if (StringUtils.isBlank(maxCode)) {
+            return DEFAULT_CODE;
+        } else {
+            int nextCode = Integer.parseInt(maxCode) + 1;
+            // 妫�鏌ユ孩鍑�
+            if (nextCode > 9999) {
+                throw new RuntimeException("宸ョ珯缂栧彿婧㈠嚭");
+            }
+            return String.format(CODE_FORMAT, nextCode);
+        }
     }
 
     /**
@@ -48,12 +85,21 @@
         return this.dao.deleteLogicById(id);
     }
 
-
-
     @Transactional
-    public int update(PltStation station) throws Exception {
-        if(dao.selectByCodeId(station.id,station.code)>0){
-            throw new Exception("宸ョ珯缂栧彿宸插瓨鍦�");
+    public int update(PltStation station) throws RuntimeException {
+//        if(dao.selectByCodeId(station.id,station.code)>0){
+//            throw new RuntimeException("宸ョ珯缂栧彿宸插瓨鍦�");
+//        }
+        boolean flag = false;
+        List<PltStation>  stations = dao.selectByName(station.getName());
+        for (int i = 0; i < stations.size(); i++) {
+            if(!stations.get(i).getId().equals(station.getId())){
+                flag = true;
+                break;
+            }
+        }
+        if(flag){
+            throw new RuntimeException("宸ョ珯鍚嶇О("+station.getName()+")宸插瓨鍦�,鍚嶇О涓嶅厑璁搁噸澶嶆坊鍔�,璇峰彉鏇�");
         }
         int count = dao.updateByPrimaryKeySelective(station);
         return count;
@@ -80,20 +126,20 @@
         //鏌ヨ绗﹀悎鏉′欢鐨勮褰�
         rsVo.obj = this.dao.selectSome(params) ;
         rsVo.obj.parallelStream().forEach(item->{
-            try {
-                byte[] codes = QrCodeUtil.genQrCode(stationPrefix+item.id);
-                item.qrCode = "data:image/jpeg;base64," + Base64.encode(codes);
-            } catch (IOException e) {
-                e.printStackTrace();
-            } catch (WriterException e) {
-                e.printStackTrace();
-            }
+            item.qrCode = QrCodeUtil.genQrCodeString(QrCodeConstant.TypeStation+item.id);
         });
         return rsVo ;
     }
 
     @Transactional
     public int disabled(Long id, Boolean disabled) {
+        if(!disabled){
+            PltStation station1 = dao.selectByPrimaryKey(id);
+            PltProductionLine line = lineDao.selectByPrimaryKey(station1.lineId);
+            if(line.disabled){
+                throw new RuntimeException("璇ュ伐绔欐墍灞炵敓浜х嚎宸茬鐢�,璇峰厛鍚敤璇ョ敓浜х嚎");
+            }
+        }
         PltStation station = new PltStation();
         station.setId(id);
         station.setDisabled(disabled);

--
Gitblit v1.8.0