From 57391775d5f5ae8a93b308d0b261b2244eb7579a Mon Sep 17 00:00:00 2001
From: 刘小明 <liuxm_a@163.com>
Date: 星期四, 16 一月 2025 09:24:26 +0800
Subject: [PATCH] 追溯小程序:产品列表,产品详情接口
---
pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/station/StationSv.java | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 102 insertions(+), 15 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 f1b868f..202121f 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,25 @@
package com.dy.pmsPlatform.station;
-import cn.hutool.core.codec.Base64;
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+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.daoSta.StaAssemblyWorkLastMapper;
+import com.dy.pmsGlobal.pojoPlt.PltProductionLine;
import com.dy.pmsGlobal.pojoPlt.PltStation;
+import com.dy.pmsGlobal.pojoSta.StaAssemblyWorkLast;
+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.HashMap;
import java.util.List;
import java.util.Map;
@@ -22,20 +28,61 @@
public class StationSv {
private PltStationMapper dao;
- private static final String stationPrefix = "103" ;
+ private PltProductionLineMapper lineDao;
+ private StaAssemblyWorkLastMapper assemblyWorkLastDao;
+// 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;
+ }
+ @Autowired
+ public void setAssemblyWorkLastDao(StaAssemblyWorkLastMapper assemblyWorkLastDao) {
+ this.assemblyWorkLastDao = assemblyWorkLastDao;
+ }
@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);
+ }
}
/**
@@ -45,15 +92,25 @@
*/
@Transactional
public int delete(Long id) {
+ checkStationLogin(id);
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,13 +137,21 @@
//鏌ヨ绗﹀悎鏉′欢鐨勮褰�
rsVo.obj = this.dao.selectSome(params) ;
rsVo.obj.parallelStream().forEach(item->{
- item.qrCode = QrCodeUtil.genQrCodeString(stationPrefix+item.id);
+ 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("璇ュ伐绔欐墍灞炵敓浜х嚎宸茬鐢�,璇峰厛鍚敤璇ョ敓浜х嚎");
+ }
+ }
+ checkStationLogin(id);
PltStation station = new PltStation();
station.setId(id);
station.setDisabled(disabled);
@@ -96,5 +161,27 @@
public List<PltStation> selectAll() {
return dao.selectAll();
}
+
+ public JSONArray selectAllIdAndName() {
+ List<PltStation> list = dao.selectAll();
+ JSONArray child = new JSONArray();
+ list.forEach(item->{
+ child.add(new JSONObject().set("id", String.valueOf(item.getId())).set("name", item.getName()));
+ });
+ return child;
+ }
+ public void checkStationLogin(Long id){
+ //濡傛灉鏈夊伐绔欑櫥褰曚俊鎭�,鍒欐彁绀哄厛鍒拌Е灞忕鐧诲綍椤甸潰logout
+ Map<String, Object> params = new HashMap<>();
+ params.put("stationId", id);
+ List<StaAssemblyWorkLast> workLasts = assemblyWorkLastDao.selectSome(params);
+ if (workLasts.size() > 0) {
+ String stationStr = "(";
+ for (StaAssemblyWorkLast workLast:workLasts) {
+ stationStr += workLast.getStationName() +",";
+ }
+ throw new RuntimeException("璇�"+ stationStr +")宸ョ珯瀛樺湪鐧诲綍淇℃伅,璇峰厛鍒拌Е灞忕鐧诲綍椤甸潰logout,鎴栬仈绯荤鐞嗗憳鍒犻櫎");
+ }
+ }
}
--
Gitblit v1.8.0