手动切库清空数据源

master
ShiChangzhou 5 months ago
parent 3e57028c76
commit fdbb3fba08

@ -289,7 +289,9 @@ public class BoardServiceImpl implements IBoardService {
result.put("equipmentNumber", equipmentNumber);
} catch (Exception e) {
logger.error("service == parkEquipmentNumber == exception:" + e.getMessage());
}
}finally {
DynamicDataSourceContextHolder.poll();
}
return result;
}
@ -339,6 +341,8 @@ public class BoardServiceImpl implements IBoardService {
}
} catch (Exception e) {
logger.error("service == parkEnergyRanking == exception:" + e.getMessage());
} finally {
DynamicDataSourceContextHolder.poll();
}
return result;
}

@ -76,16 +76,16 @@ public class EmsAPIServiceImpl implements IEmsApiService {
poolName = loginUser.getPoolName();
}
DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key
// 多房间抄表, roomCode逗号分割
if (StringUtils.isNotEmpty(emsApiVo.getRoomCode())) {
CbsMonitorReport monitorReport = new CbsMonitorReport();
monitorReport.setRoomCode(emsApiVo.getRoomCode());
List<CbsMonitorReport> cbsMonitorReports = cbsMonitorReportMapper.selectCbsMonitorReportList(monitorReport);
List<String> monitorIdList = cbsMonitorReports.stream().map(CbsMonitorReport::getMonitorId).collect(Collectors.toList());
emsApiVo.setMonitorIdList(monitorIdList);
}
try {
// 多房间抄表, roomCode逗号分割
if (StringUtils.isNotEmpty(emsApiVo.getRoomCode())) {
CbsMonitorReport monitorReport = new CbsMonitorReport();
monitorReport.setRoomCode(emsApiVo.getRoomCode());
List<CbsMonitorReport> cbsMonitorReports = cbsMonitorReportMapper.selectCbsMonitorReportList(monitorReport);
List<String> monitorIdList = cbsMonitorReports.stream().map(CbsMonitorReport::getMonitorId).collect(Collectors.toList());
emsApiVo.setMonitorIdList(monitorIdList);
}
//获取水电实时数据
List<CbsMonitorReport> cbsMonitorReportList = this.getRealTimeData(emsApiVo);
Date nowDate = DateUtils.getNowDate();
@ -132,6 +132,8 @@ public class EmsAPIServiceImpl implements IEmsApiService {
} catch (Exception e) {
logger.error("service == getMeterReadingData == exception:", e);
throw new BaseException("service == getMeterReadingData == exception:" + e);
}finally {
DynamicDataSourceContextHolder.poll();
}
}
@ -254,42 +256,45 @@ public class EmsAPIServiceImpl implements IEmsApiService {
poolName = loginUser.getPoolName();
}
DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key
BaseMonitorInfo monitorInfo = new BaseMonitorInfo();
monitorInfo.setPhysicalCode(physicalCode);
List<BaseMonitorInfo> monitorInfoList = monitorInfo1Mapper.selectBaseMonitorInfoList(monitorInfo);
if (monitorInfoList.size() == 0) {
throw new ServiceException("service == modifyDeviceInformation == exception:该物理编号:" + physicalCode + "能源系统未维护!");
try {
BaseMonitorInfo monitorInfo = new BaseMonitorInfo();
monitorInfo.setPhysicalCode(physicalCode);
List<BaseMonitorInfo> monitorInfoList = monitorInfo1Mapper.selectBaseMonitorInfoList(monitorInfo);
if (monitorInfoList.size() == 0) {
throw new ServiceException("service == modifyDeviceInformation == exception:该物理编号:" + physicalCode + "能源系统未维护!");
}
BaseMonitorInfo monitor = monitorInfoList.get(0);
StringBuilder buffer = new StringBuilder();
//0-新增
if (modifyType == 0L) {
monitor.setRoomCode(emsApiVo.getRoomCode());
monitor.setRoomName(emsApiVo.getRoomName());
monitorInfo1Mapper.updateBaseMonitorInfo(monitor);
buffer.append("新增CBS设备信息接口|物理编号:").append(physicalCode);
}
//1-删除
if (modifyType == 1L) {
monitor.setRoomCode("");
monitor.setRoomName("");
monitorInfo1Mapper.updateBaseMonitorInfo(monitor);
buffer.append("删除CBS设备信息接口|物理编号:").append(physicalCode);
}
//2-修改
if (modifyType == 2L) {
monitor.setRoomCode(emsApiVo.getRoomCode());
monitor.setRoomName(emsApiVo.getRoomName());
monitorInfo1Mapper.updateBaseMonitorInfo(monitor);
buffer.append("修改CBS设备信息接口|物理编号:").append(physicalCode);
}
logger.info("service == modifyDeviceInformation == Info:" + emsApiVo + monitor);
return buffer.append("|调用成功!").toString();
} finally {
DynamicDataSourceContextHolder.poll();
}
BaseMonitorInfo monitor = monitorInfoList.get(0);
StringBuilder buffer = new StringBuilder();
//0-新增
if (modifyType == 0L) {
monitor.setRoomCode(emsApiVo.getRoomCode());
monitor.setRoomName(emsApiVo.getRoomName());
monitorInfo1Mapper.updateBaseMonitorInfo(monitor);
buffer.append("新增CBS设备信息接口|物理编号:").append(physicalCode);
}
//1-删除
if (modifyType == 1L) {
monitor.setRoomCode("");
monitor.setRoomName("");
monitorInfo1Mapper.updateBaseMonitorInfo(monitor);
buffer.append("删除CBS设备信息接口|物理编号:").append(physicalCode);
}
//2-修改
if (modifyType == 2L) {
monitor.setRoomCode(emsApiVo.getRoomCode());
monitor.setRoomName(emsApiVo.getRoomName());
monitorInfo1Mapper.updateBaseMonitorInfo(monitor);
buffer.append("修改CBS设备信息接口|物理编号:").append(physicalCode);
}
logger.info("service == modifyDeviceInformation == Info:" + emsApiVo + monitor);
return buffer.append("|调用成功!").toString();
}

@ -36,17 +36,21 @@ public class MesBoradServiceImpl implements IMesBoradService {
@Override
public AjaxResult finishProductBoard(BoardDTO boardDTO) {
DynamicDataSourceContextHolder.push("ds_" + boardDTO.getFactory());// 这是数据源的key
Map map = new HashMap();
//当日成品计划数量
String sumplanquantity = mesMapper.sumPlanQuantity();
String sumFinshQuantity = mesMapper.sumFinshQuantity();
List<Map<String, String>> daySenvenProductionList = mesMapper.daySenvenProduction();
List<Map<String, String>> ProductionInProgress = mesMapper.ProductionInProgress();
map.put("sumplanquantity", sumplanquantity);
map.put("sumFinshQuantity", sumFinshQuantity);
map.put("daySenvenProductionList", daySenvenProductionList);
map.put("ProductionInProgress", ProductionInProgress);
return AjaxResult.success(map);
try {
Map map = new HashMap();
//当日成品计划数量
String sumplanquantity = mesMapper.sumPlanQuantity();
String sumFinshQuantity = mesMapper.sumFinshQuantity();
List<Map<String, String>> daySenvenProductionList = mesMapper.daySenvenProduction();
List<Map<String, String>> ProductionInProgress = mesMapper.ProductionInProgress();
map.put("sumplanquantity", sumplanquantity);
map.put("sumFinshQuantity", sumFinshQuantity);
map.put("daySenvenProductionList", daySenvenProductionList);
map.put("ProductionInProgress", ProductionInProgress);
return AjaxResult.success(map);
}finally {
DynamicDataSourceContextHolder.poll();
}
}
@Override

@ -30,12 +30,16 @@ public class MesInterfaceServiceImpl implements MesInterfaceService {
@Override
public List<MesBoard> getTechnologyBoard(MesBoard mesBoard) {
DynamicDataSourceContextHolder.push(mesBoard.getFactoryCode());
List<MesBoard> dtos = mesMapper.getTechnologyBoard(mesBoard);
for (MesBoard dto : dtos) {
//取附件
List<BaseFileData> files = mesMapper.getTechnologyFiles(dto);
dto.setFiles(files);
try {
List<MesBoard> dtos = mesMapper.getTechnologyBoard(mesBoard);
for (MesBoard dto : dtos) {
//取附件
List<BaseFileData> files = mesMapper.getTechnologyFiles(dto);
dto.setFiles(files);
}
return dtos;
}finally {
DynamicDataSourceContextHolder.poll();
}
return dtos;
}
}

@ -49,15 +49,19 @@ public class QuaController extends BaseController {
@PostMapping("/saveQcProCheck")
public R<Boolean> saveQcProCheck(@RequestBody QcProCheck qcProCheck) {
DynamicDataSourceContextHolder.push("ds_"+qcProCheck.getFactoryCode());
qcProCheckService.saveQcProCheck(qcProCheck);
if (qcProCheck.getIsqua()=="1") {
WCSDTO wcsdto = new WCSDTO();
wcsdto.setFactory(qcProCheck.getFactoryCode());
wcsdto.setRfidNo(qcProCheck.getRfid());
remoteMesService.requestDestinationStations(wcsdto);
return R.ok();
try {
qcProCheckService.saveQcProCheck(qcProCheck);
if (qcProCheck.getIsqua()=="1") {
WCSDTO wcsdto = new WCSDTO();
wcsdto.setFactory(qcProCheck.getFactoryCode());
wcsdto.setRfidNo(qcProCheck.getRfid());
remoteMesService.requestDestinationStations(wcsdto);
return R.ok();
}
return R.ok();
}finally {
DynamicDataSourceContextHolder.poll();
}
return R.ok();
}
/**
@ -270,13 +274,21 @@ public class QuaController extends BaseController {
@PostMapping(value = "getUserIdList")
public List<SysUser> getUserIdList(@RequestBody SysUser sysUser) {
DynamicDataSourceContextHolder.push("master");
return qcCheckTaskIncomeService.getUserIdList(sysUser);
try {
return qcCheckTaskIncomeService.getUserIdList(sysUser);
}finally {
DynamicDataSourceContextHolder.poll();
}
}
@PostMapping(value = "/getOaUserId")
public SysUser getOaUserId(@RequestBody SysUser sysUser) {
DynamicDataSourceContextHolder.push("master");
return qcCheckTaskIncomeService.getOaUserId(sysUser);
try {
return qcCheckTaskIncomeService.getOaUserId(sysUser);
}finally {
DynamicDataSourceContextHolder.poll();
}
}

@ -105,89 +105,90 @@ public class QcCheckTaskMarketServiceImpl implements IQcCheckTaskMarketService {
@Override
@DS("#header.poolName")
public int insertQcCheckTaskMarket(QcCheckTaskMarket qcCheckTaskMarket) {
String factoryCode = "";
if (StringUtils.isNotBlank(qcCheckTaskMarket.getFactoryCode())) {
DynamicDataSourceContextHolder.push("ds_" + qcCheckTaskMarket.getFactoryCode());
factoryCode = qcCheckTaskMarket.getFactoryCode();
} else {
//获取当前所选工厂
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
factoryCode = request.getHeader(key.substring(8)).replace("ds_", "");
}
qcCheckTaskMarket.setCreateTime(DateUtils.getNowDate());
String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate());
int liushuiNum = qcCheckTaskMarketMapper.getTodayMaxNum(qcCheckTaskMarket);
String liushuiStr = String.format("%04d", liushuiNum);
String createBy = SecurityUtils.getUsername();
Date nowDate = DateUtils.getNowDate();
qcCheckTaskMarket.setCheckNo(bpDD + liushuiStr);
/**取检测项**/
QcCheckTypeProject qctp = new QcCheckTypeProject();
qctp.setTypeId(qcCheckTaskMarket.getCheckType());//生产过程检验
qctp.setMaterialCode(qcCheckTaskMarket.getMaterialCode());//特性
/**qc_check_type_project**/
List<QcCheckTaskDetail> items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp);
if (CollectionUtils.isEmpty(items)) {
/**qc_material_group_detail**/
QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskMarket.getMaterialCode());
if (group == null) {
return 0;//没有找到检测项目
}
qctp.setGroupId(group.getGroupId());//共性
items = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp);
}
/**qc_check_task_detail**/
if (CollectionUtils.isEmpty(items)) {
return 0;//没有找到检测项目
}
/**qc_check_task**/
String beLongId = IdUtils.fastSimpleUUID();
qcCheckTaskMarket.setRecordId(beLongId);
qcCheckTaskMarket.setFactoryCode(factoryCode);
qcCheckTaskMarket.setCreateTime(nowDate);
qcCheckTaskMarket.setTypeCode("market");//大检验节点
/**qc_task_user start**/
if (StringUtils.isNotBlank(qcCheckTaskMarket.getCheckManName())) {
String checkManName = qcCheckTaskMarket.getCheckManName();
String checkManCode = qcCheckTaskMarket.getCheckManCode();
qcCheckTaskMarket.setCheckManName("");
qcCheckTaskMarket.setCheckManCode("");
String[] splitNames = checkManName.split(",");
String[] splitCodes = checkManCode.split(",");
List<QcCheckTaskUser> qcCheckTaskUserList = new ArrayList<>();
for (int i = 0; i < splitNames.length; i++) {
QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser();
qcCheckTaskUser.setCheckManName(splitNames[i]);
qcCheckTaskUser.setCheckManCode(splitCodes[i]);
qcCheckTaskUser.setCheckNo(qcCheckTaskMarket.getCheckNo());
qcCheckTaskUser.setBelongTo(beLongId);
qcCheckTaskUserList.add(qcCheckTaskUser);
}
//检验人插入
qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList);
}
/** 不良品数据插入 */
if(qcCheckTaskMarket.getNoOkQuality()==null){
BigDecimal noOkQuality = new BigDecimal(0);
List<QcCheckTaskDefect> defectList = qcCheckTaskMarket.getDefects();
if (!CollectionUtils.isEmpty(defectList)) {
for (QcCheckTaskDefect defect : defectList) {
defect.setBelongTo(beLongId);
//qcCheckTaskDefectService.insertQcCheckTaskDefect(defect);
noOkQuality = noOkQuality.add(defect.getNoOkQuality() == null ? new BigDecimal("0") : defect.getNoOkQuality());
}
}
qcCheckTaskMarket.setNoOkQuality(noOkQuality);
}
try {
String factoryCode = "";
if (StringUtils.isNotBlank(qcCheckTaskMarket.getFactoryCode())) {
DynamicDataSourceContextHolder.push("ds_" + qcCheckTaskMarket.getFactoryCode());
factoryCode = qcCheckTaskMarket.getFactoryCode();
} else {
//获取当前所选工厂
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
factoryCode = request.getHeader(key.substring(8)).replace("ds_", "");
}
qcCheckTaskMarket.setCreateTime(DateUtils.getNowDate());
String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate());
int liushuiNum = qcCheckTaskMarketMapper.getTodayMaxNum(qcCheckTaskMarket);
String liushuiStr = String.format("%04d", liushuiNum);
String createBy = SecurityUtils.getUsername();
Date nowDate = DateUtils.getNowDate();
qcCheckTaskMarket.setCheckNo(bpDD + liushuiStr);
/**取检测项**/
QcCheckTypeProject qctp = new QcCheckTypeProject();
qctp.setTypeId(qcCheckTaskMarket.getCheckType());//生产过程检验
qctp.setMaterialCode(qcCheckTaskMarket.getMaterialCode());//特性
/**qc_check_type_project**/
List<QcCheckTaskDetail> items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp);
if (CollectionUtils.isEmpty(items)) {
/**qc_material_group_detail**/
QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskMarket.getMaterialCode());
if (group == null) {
return 0;//没有找到检测项目
}
qctp.setGroupId(group.getGroupId());//共性
items = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp);
}
/**qc_check_task_detail**/
if (CollectionUtils.isEmpty(items)) {
return 0;//没有找到检测项目
}
/**qc_check_task**/
String beLongId = IdUtils.fastSimpleUUID();
qcCheckTaskMarket.setRecordId(beLongId);
qcCheckTaskMarket.setFactoryCode(factoryCode);
qcCheckTaskMarket.setCreateTime(nowDate);
qcCheckTaskMarket.setTypeCode("market");//大检验节点
/**qc_task_user start**/
if (StringUtils.isNotBlank(qcCheckTaskMarket.getCheckManName())) {
String checkManName = qcCheckTaskMarket.getCheckManName();
String checkManCode = qcCheckTaskMarket.getCheckManCode();
qcCheckTaskMarket.setCheckManName("");
qcCheckTaskMarket.setCheckManCode("");
String[] splitNames = checkManName.split(",");
String[] splitCodes = checkManCode.split(",");
List<QcCheckTaskUser> qcCheckTaskUserList = new ArrayList<>();
for (int i = 0; i < splitNames.length; i++) {
QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser();
qcCheckTaskUser.setCheckManName(splitNames[i]);
qcCheckTaskUser.setCheckManCode(splitCodes[i]);
qcCheckTaskUser.setCheckNo(qcCheckTaskMarket.getCheckNo());
qcCheckTaskUser.setBelongTo(beLongId);
qcCheckTaskUserList.add(qcCheckTaskUser);
}
//检验人插入
qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList);
}
/** 不良品数据插入 */
if(qcCheckTaskMarket.getNoOkQuality()==null){
BigDecimal noOkQuality = new BigDecimal(0);
List<QcCheckTaskDefect> defectList = qcCheckTaskMarket.getDefects();
if (!CollectionUtils.isEmpty(defectList)) {
for (QcCheckTaskDefect defect : defectList) {
defect.setBelongTo(beLongId);
//qcCheckTaskDefectService.insertQcCheckTaskDefect(defect);
noOkQuality = noOkQuality.add(defect.getNoOkQuality() == null ? new BigDecimal("0") : defect.getNoOkQuality());
}
}
qcCheckTaskMarket.setNoOkQuality(noOkQuality);
}
// /**qc_sample_rule**/
// QcCheckTaskIncome sampQua = new QcCheckTaskIncome();
// sampQua.setCheckType(qcCheckTaskMarket.getCheckType());
@ -196,20 +197,23 @@ public class QcCheckTaskMarketServiceImpl implements IQcCheckTaskMarketService {
// if(StringUtils.isNotBlank(sampNum)){
// qcCheckTaskMarket.setSampleQuality(new BigDecimal(sampNum));
// }
/**qc_check_task**/
qcCheckTaskMarketMapper.insertQcCheckTaskMarket(qcCheckTaskMarket);
/**qc_check_task_detail**/
for (QcCheckTaskDetail item : items) {
item.setRecordId(IdUtils.fastSimpleUUID());
item.setBelongTo(beLongId);
item.setCreateTime(nowDate);
item.setCreateBy(createBy);
item.setFactoryCode(factoryCode);
item.setStatus("N");
/**qc_check_task**/
qcCheckTaskMarketMapper.insertQcCheckTaskMarket(qcCheckTaskMarket);
/**qc_check_task_detail**/
for (QcCheckTaskDetail item : items) {
item.setRecordId(IdUtils.fastSimpleUUID());
item.setBelongTo(beLongId);
item.setCreateTime(nowDate);
item.setCreateBy(createBy);
item.setFactoryCode(factoryCode);
item.setStatus("N");
}
return qcCheckTaskDetailMapper.addBatch(items);
}finally {
DynamicDataSourceContextHolder.poll();
}
return qcCheckTaskDetailMapper.addBatch(items);
}
/**

@ -205,17 +205,22 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
public List<QcCheckTypeProject> getCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject) {
List<QcCheckTypeProject> dtos = qcCheckTypeProjectMapper.getCheckTypeProjectList(qcCheckTypeProject);
DynamicDataSourceContextHolder.push("master");
SysDictData sData = new SysDictData();
sData.setDictType("unit");
Map<String, SysDictData> dictMap = qcCheckTypeProjectMapper.getDictMap(sData);
if (dictMap != null) {
for (QcCheckTypeProject dto : dtos) {
if (StringUtils.isNotBlank(dto.getUnit())) {
dto.setUnit(dictMap.get(dto.getUnit()).getDictLabel());
}
}
try {
SysDictData sData = new SysDictData();
sData.setDictType("unit");
Map<String, SysDictData> dictMap = qcCheckTypeProjectMapper.getDictMap(sData);
if (dictMap != null) {
for (QcCheckTypeProject dto : dtos) {
if (StringUtils.isNotBlank(dto.getUnit())) {
dto.setUnit(dictMap.get(dto.getUnit()).getDictLabel());
}
}
}
return dtos;
}finally {
DynamicDataSourceContextHolder.poll();
}
return dtos;
}
private boolean hasChild(List<QcMaterialGroup> list, QcMaterialGroup t) {

Loading…
Cancel
Save