新增榄菊质量管理平台报表和生产质量看板公开接口

master
ghm 4 weeks ago
parent da7a117645
commit 3979fddd85

@ -115,5 +115,11 @@ public class MesBoardController extends BaseController {
return success(iMesBoradService.getProductionLineData());
}
/**获取包装产线看板数据(免登录)*/
@GetMapping("/getProductionLineDataPublic")
public AjaxResult getProductionLineDataPublic() {
return success(iMesBoradService.getProductionLineDataPublic());
}
}

@ -186,4 +186,10 @@ public class WCSInterfaceController extends BaseController {
public AjaxResult changeTransferResultTask() {
return wCInterfaceService.changeTransferResultTask();
}
/**获取工厂下拉列表(免登录)*/
@PostMapping("/getBoardFactoryPublic")
public AjaxResult getBoardFactoryPublic() {
return success(wCInterfaceService.getBoardFactoryPublic());
}
}

@ -26,4 +26,6 @@ public interface IMesBoradService {
public Map getProductionNumberPLC(BoardDTO mesBoard);
List<Map<String, Object>> getProductionLineData();
List<Map<String, Object>> getProductionLineDataPublic();
}

@ -48,4 +48,6 @@ public interface IWCSInterfaceService {
Map getWhiteBoardEquPro7Days(BoardDTO boardDTO);
Map getWhiteBoardProdDetails(Map paramMap);
List<SysDept> getBoardFactoryPublic();
}

@ -1336,6 +1336,15 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
}
@Override
public List<SysDept> getBoardFactoryPublic() {
DynamicDataSourceContextHolder.push("master");
try {
return mesMapper.getBoardFactory(new BoardDTO());
}finally {
DynamicDataSourceContextHolder.poll();
}
}
// public static void main(String args[]){
// List<String> days = new ArrayList<>();
// // 获取当前日期

@ -290,4 +290,14 @@ public class MesBoradServiceImpl implements IMesBoradService {
return mesMapper.getProductionLineData();
}
@Override
public List<Map<String, Object>> getProductionLineDataPublic() {
DynamicDataSourceContextHolder.push("ds_1000");
try {
return mesMapper.getProductionLineData();
} finally {
DynamicDataSourceContextHolder.poll();
}
}
}

@ -166,4 +166,39 @@ public class QcInterfaceController {
return qcInterfaceService.getBpMonthNoOk(queryDate);
}
/**检验统计(今日/本月产量、今日/本月不良数、合格率)(免登录)*/
@PostMapping("/getProduceStaticInfoPublic")
public Map<String, String> getProduceStaticInfoPublic(@RequestBody QcInterface qcInterface) {
return qcInterfaceService.getProduceStaticInfoPublic(qcInterface);
}
/**质量异常信息(滚动列表)(免登录)*/
@PostMapping("/getProduceNoOkListPublic")
public List<QcInterface> getProduceNoOkListPublic(@RequestBody QcInterface qcInterface) {
return qcInterfaceService.getProduceNoOkListPublic(qcInterface);
}
/**不良类型占比(饼图)(免登录)*/
@PostMapping("/getCheckProjectsPiePublic")
public List<QcInterface> getCheckProjectsPiePublic(@RequestBody QcInterface qcInterface) {
return qcInterfaceService.getCheckProjectsPiePublic(qcInterface);
}
/**本月每日线体异常趋势(柱状图)(免登录)*/
@PostMapping("/getLineDayNoOkPublic")
public QcInterface getLineDayNoOkPublic(@RequestBody QcInterface qcInterface) {
return qcInterfaceService.getLineDayNoOkPublic(qcInterface);
}
/**产品不合格率同期对比(双轴折线图)(免登录)*/
@PostMapping("/getMonthOfYearContrastPublic")
public Map getMonthOfYearContrastPublic(@RequestBody QcInterface qcInterface) {
return qcInterfaceService.getMonthOfYearContrastPublic(qcInterface);
}
/**白坯每月不合格数量对比(象形柱图)(免登录)*/
@GetMapping("/getBpMonthNoOkPublic")
public Map<String, List<String>> getBpMonthNoOkPublic(String queryDate) {
return qcInterfaceService.getBpMonthNoOkPublic(queryDate);
}
}

@ -41,4 +41,16 @@ public interface IQcInterfaceService {
List<QcInterface> getCheckProjectsPieLL(QcInterface qcInterface);
Map<String, List<String>> getBpMonthNoOk(String queryDate);
Map<String, String> getProduceStaticInfoPublic(QcInterface qcInterface);
List<QcInterface> getProduceNoOkListPublic(QcInterface qcInterface);
List<QcInterface> getCheckProjectsPiePublic(QcInterface qcInterface);
QcInterface getLineDayNoOkPublic(QcInterface qcInterface);
Map getMonthOfYearContrastPublic(QcInterface qcInterface);
Map<String, List<String>> getBpMonthNoOkPublic(String queryDate);
}

@ -476,5 +476,192 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
return dtoMap;
}
@Override
public Map<String, String> getProduceStaticInfoPublic(QcInterface qcInterface) {
DynamicDataSourceContextHolder.push("ds_1000");
try {
String nowYMD = DateUtils.getDate();
qcInterface.setYmd(nowYMD);
Map<String, String> dtoMap = new HashMap<>();
qcInterface.setYmdType("dd");
QcInterface hz0 = qcInterfaceMapper.getProduceHz1(qcInterface);
if (hz0 != null) {
dtoMap.put("todayPro", hz0.getQuality().replaceAll("\\..*", ""));
}else{
dtoMap.put("todayPro", "0");
}
QcInterface hz1 = qcInterfaceMapper.getProduceHz(qcInterface);
if (hz1 != null) {
dtoMap.put("todaySample", hz1.getSampleQuality().replaceAll("\\..*", ""));
dtoMap.put("todayNoOk", hz1.getNoOkQuality().replaceAll("\\..*", ""));
if(!hz1.getSampleQuality().equals("0.00")){
BigDecimal tOkRate = (new BigDecimal(hz1.getSampleQuality())
.subtract(new BigDecimal(hz1.getNoOkQuality()))
)
.multiply(new BigDecimal(100))
.divide(new BigDecimal(hz1.getSampleQuality()), 2, RoundingMode.HALF_UP);
dtoMap.put("todayOkRate", tOkRate + "%");
}else{
dtoMap.put("todayOkRate", "0%");
}
}
qcInterface.setYmdType("mm");
QcInterface hz20 = qcInterfaceMapper.getProduceHz1(qcInterface);
if (hz20 != null) {
dtoMap.put("monthPro", hz20.getQuality().replaceAll("\\..*", ""));
}else{
dtoMap.put("monthPro", "0");
}
QcInterface hz2 = qcInterfaceMapper.getProduceHz(qcInterface);
if (hz2 != null) {
dtoMap.put("monthNoOk", hz2.getNoOkQuality().replaceAll("\\..*", ""));
if(!hz2.getSampleQuality().equals("0.00")){
BigDecimal tOkRate2 = (new BigDecimal(hz2.getSampleQuality())
.subtract(new BigDecimal(hz2.getNoOkQuality()))
)
.multiply(new BigDecimal(100))
.divide(new BigDecimal(hz2.getSampleQuality()), 2, RoundingMode.HALF_UP);
dtoMap.put("monthOkRate", tOkRate2 + "%");
}else{
dtoMap.put("monthOkRate", "0%");
}
}
return dtoMap;
}finally {
DynamicDataSourceContextHolder.poll();
}
}
@Override
public List<QcInterface> getProduceNoOkListPublic(QcInterface qcInterface) {
DynamicDataSourceContextHolder.push("ds_1000");
try {
List<QcInterface> dtos = qcInterfaceMapper.getProduceNoOkList1(qcInterface);
return dtos;
}finally {
DynamicDataSourceContextHolder.poll();
}
}
@Override
public List<QcInterface> getCheckProjectsPiePublic(QcInterface qcInterface) {
DynamicDataSourceContextHolder.push("ds_1000");
try {
String nowYMD = DateUtils.getDate();
qcInterface.setYmd(nowYMD);
List<QcInterface> dtos = qcInterfaceMapper.getCheckProjectsPie1(qcInterface);
return dtos;
}finally {
DynamicDataSourceContextHolder.poll();
}
}
@Override
public QcInterface getLineDayNoOkPublic(QcInterface qcInterface) {
DynamicDataSourceContextHolder.push("ds_1000");
try {
QcInterface dto = new QcInterface();
Calendar calendar = Calendar.getInstance();
Date now = calendar.getTime();
calendar.set(Calendar.DAY_OF_MONTH, 1);
Date firstDayOfMonth = calendar.getTime();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String startTime = dateFormat.format(firstDayOfMonth);
String endTime = dateFormat.format(now);
//日期名称数组
List<String> xAxisDatas = getDays(startTime, endTime);
dto.setDayStr(xAxisDatas);//
//通过报工获取到真实参与生产的线体
List<QcProCheck> lines = qcInterfaceMapper.getLineNames(startTime.substring(0,7));
if (CollectionUtils.isEmpty(lines)) {
return null;
}
String nowYMD = DateUtils.getDate();
qcInterface.setYmd(nowYMD);
qcInterface.setYmdType("yyyy");
Map<String, QcInterface> noOkHzs = qcInterfaceMapper.getDayNoOkHz(qcInterface);
if (CollectionUtils.isEmpty(noOkHzs)) {
return null;
}
List<QcInterface> series = new ArrayList<>();
QcInterface serie = null;
for (QcProCheck line : lines) {
serie = new QcInterface();
List<String> data = new ArrayList<>();
serie.setMachineName(line.getMachineName());
for (String dayStr : xAxisDatas) {
QcInterface dayInfo = noOkHzs.get(line.getMachineCode() + dayStr);
if (dayInfo != null) {
data.add(dayInfo.getNoOkQuality());
} else {
data.add("0");
}
}
serie.setData(data);
series.add(serie);
}
dto.setSeries(series);//
return dto;
}finally {
DynamicDataSourceContextHolder.poll();
}
}
@Override
public Map getMonthOfYearContrastPublic(QcInterface qcInterface) {
Map map= new HashMap();
DynamicDataSourceContextHolder.push("ds_1000");
try {
int currentYear = Year.now().getValue();
int previousYear = currentYear - 1;
//今年数据
List<Map> mapListCurrentYear = qcInterfaceMapper.NoncompliantProduct(currentYear);
//去年数据
List<Map> mapListPreviousYear= qcInterfaceMapper.NoncompliantProduct(previousYear);
map.put("mapListCurrentYear",mapListCurrentYear);
map.put("mapListPreviousYear",mapListPreviousYear);
}catch (Exception e){
e.printStackTrace();
}finally {
DynamicDataSourceContextHolder.poll();
}
return map;
}
@Override
public Map<String, List<String>> getBpMonthNoOkPublic(String queryDate) {
DynamicDataSourceContextHolder.push("ds_1000");
try {
Map<String, List<String>> dtoMap = new HashMap<>();
String nowYMD = DateUtils.getDate();
String[] nowYMDs = nowYMD.split("-");
int nowMonth = Integer.parseInt(nowYMDs[1]);
List<String> monthNames = new ArrayList<>();
Map<String, QcInterface> noOkHzs = qcInterfaceMapper.getBpMonthNoOk(queryDate);
List<String> monthData = new ArrayList<>();
for (int mh = 1; mh <= nowMonth; mh++) {
String yyyymm = nowYMDs[0] + "-" + String.format("%02d", mh);
monthNames.add(yyyymm);
if (!CollectionUtils.isEmpty(noOkHzs)&&noOkHzs.get(yyyymm)!=null) {
monthData.add(noOkHzs.get(yyyymm).getNoOkQuality());
} else {
monthData.add("0");
}
}
dtoMap.put("month", monthNames);
dtoMap.put("monthData", monthData);
return dtoMap;
}finally {
DynamicDataSourceContextHolder.poll();
}
}
}

Loading…
Cancel
Save