|  |  | 
 |  |  | 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.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.stereotype.Service; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  |  | 
 |  |  | import java.io.IOException; | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.Map; | 
 |  |  |  | 
 |  |  | 
 |  |  | 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"; | 
 |  |  |  | 
 |  |  | 
 |  |  |     public void setDao(PltStationMapper dao) { | 
 |  |  |         this.dao = dao; | 
 |  |  |     } | 
 |  |  |     @Autowired | 
 |  |  |     public void setLineDao(PltProductionLineMapper lineDao) { | 
 |  |  |         this.lineDao = lineDao; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Transactional | 
 |  |  |     public int save(PltStation station) throws RuntimeException { | 
 |  |  |  | 
 |  |  | //        if(dao.selectByCodeId(station.id,station.code)>0){ | 
 |  |  | //            throw new RuntimeException("工站编号已存在"); | 
 |  |  | //        } | 
 |  |  |         if(dao.selectByName(station.getName()).size() > 0){ | 
 |  |  |             throw new RuntimeException("工站名称("+station.getName()+")已存在,名称不允许重复添加,请变更"); | 
 |  |  |         } | 
 |  |  |         int count = 0; | 
 |  |  |         int flag=0; | 
 |  |  |         do { | 
 |  |  | 
 |  |  |         return this.dao.deleteLogicById(id); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Transactional | 
 |  |  |     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; | 
 |  |  |     } | 
 |  |  | 
 |  |  |         //查询符合条件的记录 | 
 |  |  |         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("该工站所属生产线已禁用,请先启用该生产线"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         PltStation station = new PltStation(); | 
 |  |  |         station.setId(id); | 
 |  |  |         station.setDisabled(disabled); | 
 |  |  | 
 |  |  |     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; | 
 |  |  |     } | 
 |  |  | } | 
 |  |  |  |