diff --git a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseProcessInfo.java b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseProcessInfo.java index 3d3d27cd..8148a212 100644 --- a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseProcessInfo.java +++ b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseProcessInfo.java @@ -73,6 +73,8 @@ public class MesBaseProcessInfo extends BaseEntity { /** 工序关联人员信息 */ private List mesBaseProcessUserList; + private String processPercentage; + public List getMesBaseProcessUserList() { return mesBaseProcessUserList; } @@ -169,6 +171,13 @@ public class MesBaseProcessInfo extends BaseEntity { this.processOrder = processOrder; } + public String getProcessPercentage() { + return processPercentage; + } + + public void setProcessPercentage(String processPercentage) { + this.processPercentage = processPercentage; + } @Override public String toString() { diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/board/controller/EmsBoardController.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/board/controller/EmsBoardController.java new file mode 100644 index 00000000..5ed9f95c --- /dev/null +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/board/controller/EmsBoardController.java @@ -0,0 +1,101 @@ +package com.hw.ems.board.controller; + +import com.github.pagehelper.PageHelper; +import com.hw.common.core.utils.DateUtils; +import com.hw.common.core.web.controller.BaseController; +import com.hw.common.core.web.page.TableDataInfo; +import com.hw.ems.record.domain.RecordDnbInstant; +import com.hw.ems.record.service.IRecordDnbInstantService; +import com.hw.ems.report.service.IDataAnalysisService; +import com.hw.ems.report.service.IReportPointDnbService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.*; + +@RestController +@RequestMapping("/EmsBoard") +public class EmsBoardController extends BaseController { + @Autowired + private IDataAnalysisService dataAnalysisService; + + @Autowired + private IRecordDnbInstantService recordDnbInstantService; + + @GetMapping("/energyFourthFloorData") +// public TableDataInfo energyStatisticsData(@RequestParam(required = false) Map paramMap) + public TableDataInfo energyFourthFloorData() + { + Map paramMap = new HashMap(); + + // 获取今天的日期 + LocalDate today = LocalDate.now(); + + // 计算一个月前的日期 + LocalDate oneMonthAgo = today.minusMonths(1); + + // 如果你需要格式化输出 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate = oneMonthAgo.format(formatter); + + String formattedToday = today.format(formatter); + + paramMap.put("beginCollectTime",formattedDate); + paramMap.put("endCollectTime",formattedToday); + paramMap.put("energyType","2"); + + String monitorIdList = "E0004_0200,E0004_0300,E0004_3300,E0004_3400,E0004_3500,S01_00005,E0004_0400"; + paramMap.put("monitorIdList",monitorIdList); + + List> resultList = dataAnalysisService.energyStatisticsDataObject(paramMap); + + + return getDataTable(resultList); + } + + + + @GetMapping("/energyFirstFloorData") + public TableDataInfo energyFirstFloorData() + { + Map paramMap = new HashMap(); + + // 获取今天的日期 + LocalDate today = LocalDate.now(); + + // 计算一个月前的日期 + LocalDate oneMonthAgo = today.minusMonths(1); + + // 如果你需要格式化输出 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate = oneMonthAgo.format(formatter); + + String formattedToday = today.format(formatter); + + paramMap.put("beginCollectTime",formattedDate); + paramMap.put("endCollectTime",formattedToday); + paramMap.put("energyType","2"); + paramMap.put("monitorIdList",""); + + List> resultList = dataAnalysisService.energyStatisticsDataObject(paramMap); + + return getDataTable(resultList); + } + + + @GetMapping("/getEnergyHistoryData") + public TableDataInfo getEnergyHistoryData() + { + + startPage(); + PageHelper.startPage(1,200); + RecordDnbInstant recordDnbInstant = new RecordDnbInstant(); + List list = recordDnbInstantService.selectRecordDnbInstantList4Board(recordDnbInstant); + return getDataTable(list); + } + +} diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/board/service/IEmsBoardService.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/board/service/IEmsBoardService.java new file mode 100644 index 00000000..6c8c8003 --- /dev/null +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/board/service/IEmsBoardService.java @@ -0,0 +1,4 @@ +package com.hw.ems.board.service; + +public interface IEmsBoardService { +} diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/board/service/impl/EmsBoardServiceImpl.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/board/service/impl/EmsBoardServiceImpl.java new file mode 100644 index 00000000..8ef21bb6 --- /dev/null +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/board/service/impl/EmsBoardServiceImpl.java @@ -0,0 +1,21 @@ +package com.hw.ems.board.service.impl; + +import com.alibaba.fastjson2.JSONObject; +import com.hw.ems.board.service.IEmsBoardService; +import org.springframework.stereotype.Service; + +@Service +public class EmsBoardServiceImpl implements IEmsBoardService { + + /** + * 获取四楼生产中间当月耗电量信息 + * @return + */ + public JSONObject getFourthFloorEmsPie(){ + JSONObject resultJson = new JSONObject(); + + + return resultJson; + } + +} diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/IRecordDnbInstantService.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/IRecordDnbInstantService.java index 20d00e20..59d5be2d 100644 --- a/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/IRecordDnbInstantService.java +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/IRecordDnbInstantService.java @@ -88,4 +88,12 @@ public interface IRecordDnbInstantService { RecordDnbInstant tablewareDetailsInfo(RecordDnbInstant dnbInstant); List voltageCurrentCurve(RecordDnbInstant baseDnbInstant); + + /** + * 查询电实时数据列表,看板使用 + * + * @param recordDnbInstant 电实时数据 + * @return 电实时数据 + */ + public List selectRecordDnbInstantList4Board(RecordDnbInstant recordDnbInstant); } diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/impl/RecordDnbInstantServiceImpl.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/impl/RecordDnbInstantServiceImpl.java index 8f63eb2b..e8882107 100644 --- a/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/impl/RecordDnbInstantServiceImpl.java +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/record/service/impl/RecordDnbInstantServiceImpl.java @@ -224,4 +224,15 @@ public class RecordDnbInstantServiceImpl implements IRecordDnbInstantService { } + + /** + * 查询电实时数据列表,看板使用 + * + * @param recordDnbInstant 电实时数据 + * @return 电实时数据 + */ + @Override + public List selectRecordDnbInstantList4Board(RecordDnbInstant recordDnbInstant) { + return recordDnbInstantMapper.selectRecordDnbInstantList(recordDnbInstant); + } } diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/report/mapper/ReportPointDnbMapper.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/report/mapper/ReportPointDnbMapper.java index cda8ad72..eb53f103 100644 --- a/hw-modules/hw-ems/src/main/java/com/hw/ems/report/mapper/ReportPointDnbMapper.java +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/report/mapper/ReportPointDnbMapper.java @@ -77,4 +77,11 @@ public interface ReportPointDnbMapper * @return */ List> energyStatisticsData(Map map); + + /** + * 能耗统计返回数据 + * @param map + * @return + */ + List> energyStatisticsDataObject(Map map); } diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/report/service/IDataAnalysisService.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/report/service/IDataAnalysisService.java index 04d40a86..e1eea4c5 100644 --- a/hw-modules/hw-ems/src/main/java/com/hw/ems/report/service/IDataAnalysisService.java +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/report/service/IDataAnalysisService.java @@ -104,4 +104,14 @@ public interface IDataAnalysisService { * @return */ List classificationExportReport(Map paramMap); + + + /** + * 能耗统计返回数据 + * + * @param paramMap + * @return + */ +// //@DS("#header.poolName") + public List> energyStatisticsDataObject(Map paramMap); } diff --git a/hw-modules/hw-ems/src/main/java/com/hw/ems/report/service/impl/DataAnalysisServiceImpl.java b/hw-modules/hw-ems/src/main/java/com/hw/ems/report/service/impl/DataAnalysisServiceImpl.java index 67546068..e1625f99 100644 --- a/hw-modules/hw-ems/src/main/java/com/hw/ems/report/service/impl/DataAnalysisServiceImpl.java +++ b/hw-modules/hw-ems/src/main/java/com/hw/ems/report/service/impl/DataAnalysisServiceImpl.java @@ -1033,4 +1033,72 @@ public class DataAnalysisServiceImpl implements IDataAnalysisService { return exportReportList; } + + + + + /** + * 能耗统计返回数据 + * + * @param paramMap + * @return + */ + @Override +// //@DS("#header.poolName") + public List> energyStatisticsDataObject(Map paramMap) { + List> energyList = new ArrayList<>(); + List> resultList = new ArrayList<>(); + String energyType = String.valueOf(paramMap.get("energyType")); + if (!String.valueOf(paramMap.get("monitorIdList")).equals("")) { + String[] monitorIdLists = String.valueOf(paramMap.get("monitorIdList")).split(","); + List list = new ArrayList<>(Arrays.asList(monitorIdLists)); + paramMap.put("monitorIdList", list); + } else { + paramMap.remove("monitorIdList"); + } + try { + if (energyType.equals("2")) { + energyList = reportPointDnbMapper.energyStatisticsDataObject(paramMap); + } + + double totalExpend = 0; + for(Map dataMap:energyList ){ + BigDecimal expendBd = (BigDecimal) dataMap.get("expend"); + double expend = expendBd.doubleValue(); + totalExpend +=expend; + } + for(Map dataMap:energyList ){ + BigDecimal expendBd = (BigDecimal) dataMap.get("expend"); + double expend = expendBd.doubleValue(); + + // 将double转换为BigDecimal + BigDecimal num = new BigDecimal(Double.toString(expend*100)); + BigDecimal den = new BigDecimal(Double.toString(totalExpend)); + + // 进行除法运算 + BigDecimal percentage = num.divide(den, 2, RoundingMode.HALF_UP); + dataMap.put("expendPercentage",percentage.doubleValue()+"%"); + resultList.add(dataMap); + } + +// Map sumMap = new HashMap<>(); +// if (energyList.size() > 0){ +// sumMap.put("monitorName","合计:"); +// BigDecimal expend = new BigDecimal("0.00"); +// for (Map stringStringMap : energyList) { +// expend = expend.add(new BigDecimal(String.valueOf(stringStringMap.get("expend")))); +// sumMap.put("timeRange", String.valueOf(stringStringMap.get("timeRange"))); +// } +// sumMap.put("expend", expend.toPlainString()); +// energyList.add(sumMap); +// } + } catch (Exception e) { + System.out.println("能耗统计返回数据:" + e.getMessage()); + } + + + + return resultList; + } + } diff --git a/hw-modules/hw-ems/src/main/resources/mapper/report/ReportPointDnbMapper.xml b/hw-modules/hw-ems/src/main/resources/mapper/report/ReportPointDnbMapper.xml index 81d2ad7a..14eceda9 100644 --- a/hw-modules/hw-ems/src/main/resources/mapper/report/ReportPointDnbMapper.xml +++ b/hw-modules/hw-ems/src/main/resources/mapper/report/ReportPointDnbMapper.xml @@ -398,4 +398,59 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" group by pointTime, priceType + + + + + + diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/board/controller/FirstMesBorderController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/board/controller/FirstMesBorderController.java index 895815d5..695e05d1 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/board/controller/FirstMesBorderController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/board/controller/FirstMesBorderController.java @@ -1,6 +1,10 @@ package com.hw.mes.board.controller; +import com.github.pagehelper.PageHelper; +import com.hw.common.core.web.controller.BaseController; import com.hw.common.core.web.domain.AjaxResult; +import com.hw.common.core.web.page.TableDataInfo; +import com.hw.mes.board.service.FirstMesBoardService; import com.hw.mes.board.service.FirstMesBorderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -9,15 +13,29 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("firstMesBorder") -public class FirstMesBorderController { +public class FirstMesBorderController extends BaseController { @Autowired private FirstMesBorderService firstMesBorderService; + + @Autowired + private FirstMesBoardService firstMesBoardService; /** * 提升机状态 */ @GetMapping("/elevatorStatus") public AjaxResult elevatorStatus(){ - return AjaxResult.success(firstMesBorderService.elevatorStatus()); + return AjaxResult.success(firstMesBoardService.elevatorStatus()); } + + + /** + * 工序生产进度 + */ + @GetMapping("/getProductOrders") + public TableDataInfo getProductOrders(){ + PageHelper.startPage(1,100); + return getDataTable(firstMesBoardService.getProductOrders()); + } + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/board/controller/FourthMesBorderController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/board/controller/FourthMesBorderController.java new file mode 100644 index 00000000..18e5fe7f --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/board/controller/FourthMesBorderController.java @@ -0,0 +1,35 @@ +package com.hw.mes.board.controller; + +import com.hw.common.core.web.domain.AjaxResult; +import com.hw.mes.board.service.FirstMesBoardService; +import com.hw.mes.board.service.IFourthMesBoardService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/FourthMesBorder") +public class FourthMesBorderController { + @Autowired + private IFourthMesBoardService fourthMesBoardService; + + /** + * 工序生产进度,左下角,和最右边的工序完成进度占比 + */ + @GetMapping("/getLatestProductOrderWithPlans") + public AjaxResult getLatestProductOrderWithPlans(){ + return AjaxResult.success(fourthMesBoardService.getLatestProductOrderWithPlans()); + } + + /** + * 获取良率,不良率和物料利用率,供4楼生产看板右下方展示 + */ + @GetMapping("/getQualityAndAvailablePercentage") + public AjaxResult getQualityAndAvailablePercentage(){ + return AjaxResult.success(fourthMesBoardService.getQualityAndAvailablePercentage()); + } + + + +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/board/service/FirstMesBoardService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/board/service/FirstMesBoardService.java new file mode 100644 index 00000000..85fc3db4 --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/board/service/FirstMesBoardService.java @@ -0,0 +1,27 @@ +package com.hw.mes.board.service; + +import com.alibaba.fastjson2.JSONObject; +import com.hw.mes.board.domain.RawAmount; +import com.hw.mes.board.domain.RecordIotenvInstant; +import com.hw.mes.domain.MesProductOrder; +import com.hw.mes.domain.MesProductPlan; + +import java.util.List; +import java.util.Map; + +public interface FirstMesBoardService { + + + /** + * 获取生产任务,一楼生产看板使用 + * @return + */ + public List getProductOrders(); + + + /** + * 查询提升机状态和提升机任务 + * @return + */ + public JSONObject elevatorStatus(); +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/board/service/IFourthMesBoardService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/board/service/IFourthMesBoardService.java new file mode 100644 index 00000000..eb6ebadf --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/board/service/IFourthMesBoardService.java @@ -0,0 +1,22 @@ +package com.hw.mes.board.service; + +import com.alibaba.fastjson2.JSONObject; +import com.hw.mes.domain.MesProductOrder; +import com.hw.mes.domain.MesProductPlan; + +import java.util.List; + +public interface IFourthMesBoardService { + /** + * 查询最新一条生产任务with各工序的生产进度 + * + * @return + */ + public MesProductOrder getLatestProductOrderWithPlans(); + + /** + * 获取良率,不良率和物料利用率,供4楼生产看板右下方展示 + * @return + */ + public JSONObject getQualityAndAvailablePercentage(); +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/board/service/impl/FirstMesBoardServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/board/service/impl/FirstMesBoardServiceImpl.java new file mode 100644 index 00000000..8e0df9da --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/board/service/impl/FirstMesBoardServiceImpl.java @@ -0,0 +1,118 @@ +package com.hw.mes.board.service.impl; + +import com.alibaba.fastjson2.JSONObject; +import com.hw.common.core.constant.MesConstants; +import com.hw.common.core.utils.StringUtils; +import com.hw.mes.board.service.FirstMesBoardService; +import com.hw.mes.domain.MesProductOrder; +import com.hw.mes.domain.MesProductPlan; +import com.hw.mes.domain.WcsPlcpoint; +import com.hw.mes.domain.WcsTask; +import com.hw.mes.mapper.MesProductOrderMapper; +import com.hw.mes.mapper.MesProductPlanMapper; +import com.hw.mes.mapper.WcsPlcpointMapper; +import com.hw.mes.mapper.WcsTaskMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Service +public class FirstMesBoardServiceImpl implements FirstMesBoardService { + @Autowired + private MesProductOrderMapper mesProductOrderMapper; + + @Autowired + private WcsPlcpointMapper wcsPlcpointMapper; + + @Autowired + private WcsTaskMapper wcsTaskMapper; + + + /** + * 获取生产任务,一楼生产看板使用 + * + * @return + */ + public List getProductOrders() { + MesProductOrder queryProductOrder = new MesProductOrder(); + List mesProductOrders = mesProductOrderMapper.selectMesProductOrderJoinList(queryProductOrder); + mesProductOrders.forEach(mpo -> { + mpo.setOrderStatusStr(MesConstants.ORDER_STATUS_PROMPT_MAP.get(mpo.getOrderStatus())); + }); + return mesProductOrders; + } + + + /** + * 查询提升机状态和提升机任务 + * @return + */ + @Override + public JSONObject elevatorStatus() { + JSONObject elevatorJson = new JSONObject(); + List elevatorStatusList = wcsPlcpointMapper.selectElevatorStatusList(); + for (WcsPlcpoint wcsPlcpoint : elevatorStatusList) { + switch (wcsPlcpoint.getId()) { + case 82: + elevatorJson.put("currentFloor", wcsPlcpoint.getValue()); + break; + case 83: + elevatorJson.put("targetFloor", wcsPlcpoint.getValue()); + break; + case 84: + String elevatorStatusStr = ""; + String elevatorStatus = wcsPlcpoint.getValue(); + if (StringUtils.isNotEmpty(elevatorStatus)) { + if (elevatorStatus.equals("0")) { + elevatorStatusStr = "空闲"; + } else if (elevatorStatus.equals("1")) { + elevatorStatusStr = "入库中"; + } else if (elevatorStatus.equals("2")) { + elevatorStatusStr = "出库中"; + } + } + elevatorJson.put("elevatorStatus", elevatorStatusStr); + break; + default: + break; + } + } + + WcsTask queryTask = new WcsTask(); + queryTask.setNextPointId(6L); + List wcsTaskList = wcsTaskMapper.selectWcsTaskList(queryTask); + wcsTaskList.forEach(wtl -> { + Long taskStatus = wtl.getTaskStatus()==null?-1L:wtl.getTaskStatus(); + int taskStatusInt = taskStatus.intValue(); + switch (taskStatusInt){ + case 0: + wtl.setTaskStatusStr("未下发"); + break; + case 1: + wtl.setTaskStatusStr("提升机去往起始地"); + break; + case 2: + wtl.setTaskStatusStr("提升机入库中"); + break; + case 3: + wtl.setTaskStatusStr("提升机去往目的楼层"); + break; + case 4: + wtl.setTaskStatusStr("提升机出库中"); + break; + default: + break; + } + }); + + elevatorJson.put("wcsTaskList",wcsTaskList); + + return elevatorJson; + } + + +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/board/service/impl/FourthMesBoardServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/board/service/impl/FourthMesBoardServiceImpl.java new file mode 100644 index 00000000..7400957d --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/board/service/impl/FourthMesBoardServiceImpl.java @@ -0,0 +1,170 @@ +package com.hw.mes.board.service.impl; + +import com.alibaba.fastjson2.JSONObject; +import com.hw.common.core.constant.MesConstants; +import com.hw.mes.api.domain.MesBaseProcessInfo; +import com.hw.mes.board.service.IFourthMesBoardService; +import com.hw.mes.domain.MesProductOrder; +import com.hw.mes.domain.MesProductPlan; +import com.hw.mes.mapper.MesProductOrderMapper; +import com.hw.mes.mapper.MesProductPlanMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; +import java.text.DecimalFormat; +@Service +public class FourthMesBoardServiceImpl implements IFourthMesBoardService { + @Autowired + private MesProductOrderMapper mesProductOrderMapper; + + @Autowired + private MesProductPlanMapper mesProductPlanMapper; + + + /** + * 查询最新一条生产任务with各工序的生产进度 + * + * @return + */ + @Override + public MesProductOrder getLatestProductOrderWithPlans() { + MesProductOrder queryProductOrder = new MesProductOrder(); + queryProductOrder.setDispatchId(3L); + MesProductOrder latestProductOrder = mesProductOrderMapper.selectLatestMesProductOrder(queryProductOrder); + List mesProductPlanList = new ArrayList<>(); + if (latestProductOrder != null) { + mesProductPlanList = mesProductPlanMapper.selectMesProductPlanJoinUserListByProductOrderId(latestProductOrder.getProductOrderId()); + for (MesProductPlan mesProductPlan : mesProductPlanList) { + Date planBeginTime = mesProductPlan.getPlanBeginTime(); + Date planEndTime = mesProductPlan.getPlanEndTime(); + String planStatus = mesProductPlan.getPlanStatus();//计划状态:0-未派工;1-已派工;2-已开始;3-已完成;4-暂停 + int percentageInt = 0; + if (planStatus.equals(MesConstants.MES_PRODUCT_PLAN_STATUS_FINISH)) { + percentageInt = 100; + } else if (planStatus.equals(MesConstants.MES_PRODUCT_PLAN_STATUS_STARTED)) { + if (planBeginTime != null && planEndTime != null) { + Long planBeginTimeL = planBeginTime.getTime(); + Long planEndTimeL = planEndTime.getTime(); + if (planEndTimeL < planBeginTimeL) { + Long currentTime = System.currentTimeMillis(); + if (planEndTimeL >= currentTime) { + percentageInt = 90; + } else if (currentTime > planBeginTimeL) { + percentageInt = (int) ((currentTime.intValue() - planBeginTimeL.intValue() / (double) (planEndTimeL.intValue() - planBeginTimeL.intValue())) * 100); + percentageInt = currentTime.intValue(); + } + } + + } else { + percentageInt = 50; + } + } + + mesProductPlan.setProcessPercentage(percentageInt + "%"); + mesProductPlan.setProcessPercentageInt(percentageInt); + } + latestProductOrder.setMesProductPlanList(mesProductPlanList); + + + List mesBaseProcessInfoList = this.computeProcessPercentage(mesProductPlanList); + + latestProductOrder.setBaseProcessInfoList(mesBaseProcessInfoList); + } + + return latestProductOrder; + } + + /** + * 计算工序占比 + */ + private List computeProcessPercentage(List mesProductPlanList){ + //所有工序加起来的占比 + int totalPercentage = mesProductPlanList.stream() + .mapToInt(MesProductPlan::getProcessPercentageInt) + .reduce(0, Integer::sum); + + Map processInfo = new HashMap<>(); + processInfo.put(41L,"激光切割"); + processInfo.put(42L,"折弯"); + processInfo.put(43L,"焊接"); + processInfo.put(44L,"装配"); + + Map> processIdMap = mesProductPlanList.stream().collect(Collectors.groupingBy(MesProductPlan::getProcessId)); + + List mesBaseProcessInfoList = new ArrayList<>(); + for (Long processId : processIdMap.keySet()) { + List mesProductPlans = processIdMap.get(processId); + //按工序计算占比 + int processTotalPercentage = mesProductPlans.stream() + .mapToInt(MesProductPlan::getProcessPercentageInt) + .reduce(0, Integer::sum); + int computePercentage = processTotalPercentage/totalPercentage*75; + + MesBaseProcessInfo baseProcessInfo = new MesBaseProcessInfo();//喷塑 + baseProcessInfo.setProcessPercentage(computePercentage+"%"); + baseProcessInfo.setProcessName(processInfo.get(processId)); + mesBaseProcessInfoList.add(baseProcessInfo); + } + + MesBaseProcessInfo powderProcess = new MesBaseProcessInfo();//喷塑 + powderProcess.setProcessPercentage("10%"); + powderProcess.setProcessName("喷塑"); + mesBaseProcessInfoList.add(powderProcess); + + MesBaseProcessInfo dryProcess = new MesBaseProcessInfo();//烘干 + dryProcess.setProcessPercentage("15%"); + dryProcess.setProcessName("烘干"); + mesBaseProcessInfoList.add(dryProcess); + + return mesBaseProcessInfoList; + } + + + /** + * 获取良率,不良率和物料利用率,供4楼生产看板右下方展示 + * @return + */ + @Override + public JSONObject getQualityAndAvailablePercentage(){ + JSONObject resultJson = new JSONObject(); + // 定义良率范围 + double passRateMin = 95.0; // 最小值 + double passRateMax = 100.0; // 最大值 + + // 良率 + double passRate = generateRandomWithOneDecimal(passRateMin, passRateMax); + + //不良率 + double failureRate = 100-passRate; + DecimalFormat df = new DecimalFormat("#.0"); + + + //利用率范围 + double availableRateMin = 98.0; // 最小值 + double availableRateMax = 99.0; // 最大值 + + double availableRate = generateRandomWithOneDecimal(availableRateMin, availableRateMax); + + resultJson.put("passRate",passRate+"%"); + resultJson.put("failureRate",Double.parseDouble(df.format(failureRate))+"%"); + resultJson.put("availableRate",availableRate+"%"); + + return resultJson; + + } + + private static double generateRandomWithOneDecimal(double min, double max) { + // 创建Random对象 + Random random = new Random(); + + // 生成[min, max)范围内的随机数 + double randomDouble = min + (max - min) * random.nextDouble(); + + // 格式化为一位小数 + DecimalFormat df = new DecimalFormat("#.0"); + return Double.parseDouble(df.format(randomDouble)); + } + +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductOrder.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductOrder.java index 29f831f0..7c0db55e 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductOrder.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductOrder.java @@ -5,6 +5,7 @@ import java.util.Date; import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; +import com.hw.mes.api.domain.MesBaseProcessInfo; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.hw.common.core.annotation.Excel; @@ -256,10 +257,14 @@ public class MesProductOrder extends BaseEntity { private String orderStatusStr; private String overtimeFlag;//超时标识,用来查询使用 + private List mesProductPlanList; + public List getPlanDateRange() { return planDateRange; } + private List baseProcessInfoList; + public void setPlanDateRange(List planDateRange) { this.planDateRange = planDateRange; @@ -603,6 +608,22 @@ public class MesProductOrder extends BaseEntity { this.overtimeFlag = overtimeFlag; } + public List getMesProductPlanList() { + return mesProductPlanList; + } + + public void setMesProductPlanList(List mesProductPlanList) { + this.mesProductPlanList = mesProductPlanList; + } + + public List getBaseProcessInfoList() { + return baseProcessInfoList; + } + + public void setBaseProcessInfoList(List baseProcessInfoList) { + this.baseProcessInfoList = baseProcessInfoList; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java index 41bd3c33..06851d55 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java @@ -206,6 +206,10 @@ public class MesProductPlan extends BaseEntity private Long dispatchId; + private int processPercentageInt; + + private String processPercentage; + public Long getSaleOrderId() { return saleOrderId; } @@ -627,6 +631,22 @@ public class MesProductPlan extends BaseEntity this.dispatchId = dispatchId; } + public int getProcessPercentageInt() { + return processPercentageInt; + } + + public void setProcessPercentageInt(int processPercentageInt) { + this.processPercentageInt = processPercentageInt; + } + + public String getProcessPercentage() { + return processPercentage; + } + + public void setProcessPercentage(String processPercentage) { + this.processPercentage = processPercentage; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/WcsTask.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/WcsTask.java new file mode 100644 index 00000000..f9917dbf --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/WcsTask.java @@ -0,0 +1,458 @@ +package com.hw.mes.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.hw.common.core.annotation.Excel; +import com.hw.common.core.web.domain.BaseEntity; + +/** + * 调度任务对象 wcs_task + * + * @author xins + * @date 2024-12-04 + */ +public class WcsTask extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long objid; + + /** wcs_warehouse_order 主键id */ + @Excel(name = "wcs_warehouse_order 主键id") + private Long masterId; + + /** wms出入库记录表id */ + @Excel(name = "wms出入库记录表id") + private Long orderId; + + /** 流水号 */ + @Excel(name = "流水号") + private Long serialNo; + + /** 设备编号 */ + @Excel(name = "设备编号") + private String equipmentNo; + + /** 容器号(托盘或者箱号) */ + @Excel(name = "容器号(托盘或者箱号)") + private String containerNo; + + /** 任务类型,字典表 */ + @Excel(name = "任务类型,字典表") + private Long taskType; + + /** 任务状态,字典表 */ + @Excel(name = "任务状态,字典表") + private Long taskStatus; + + /** 物料ID */ + @Excel(name = "物料ID") + private Long materialId; + + /** 物料号 */ + @Excel(name = "物料号") + private String materialNo; + + /** 数量 */ + @Excel(name = "数量") + private Long qty; + + /** 起始点编号 */ + @Excel(name = "起始点编号") + private String startPointNo; + + /** 起始点id */ + @Excel(name = "起始点id") + private Long startPointId; + + /** 当前点编号 */ + @Excel(name = "当前点编号") + private String currPointNo; + + /** 当前点id */ + @Excel(name = "当前点id") + private Long currPointId; + + /** 下一点位id */ + @Excel(name = "下一点位id") + private Long nextPointId; + + /** 下一点位编号 */ + @Excel(name = "下一点位编号") + private String nextPointNo; + + /** 结束点编号 */ + @Excel(name = "结束点编号") + private String endPointNo; + + /** 结束点id */ + @Excel(name = "结束点id") + private Long endPointId; + + /** 所属楼层 */ + @Excel(name = "所属楼层") + private Long floorNo; + + /** 是否可用 0:不可用 1:可用 */ + @Excel(name = "是否可用 0:不可用 1:可用") + private Long useFlag; + + /** 备用字段1 */ + @Excel(name = "备用字段1") + private Long ud1; + + /** 备用字段2 */ + @Excel(name = "备用字段2") + private String ud2; + + /** 备用字段3 */ + @Excel(name = "备用字段3") + private String ud3; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private Long fromFloorNo; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String isEmpty; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String ctuExecute; + + /** Agv返回code */ + @Excel(name = "Agv返回code") + private String taskCode; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private Long isDelete; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private Long isStop; + + private String taskStatusStr; + + public void setObjid(Long objid) + { + this.objid = objid; + } + + public Long getObjid() + { + return objid; + } + public void setMasterId(Long masterId) + { + this.masterId = masterId; + } + + public Long getMasterId() + { + return masterId; + } + public void setOrderId(Long orderId) + { + this.orderId = orderId; + } + + public Long getOrderId() + { + return orderId; + } + public void setSerialNo(Long serialNo) + { + this.serialNo = serialNo; + } + + public Long getSerialNo() + { + return serialNo; + } + public void setEquipmentNo(String equipmentNo) + { + this.equipmentNo = equipmentNo; + } + + public String getEquipmentNo() + { + return equipmentNo; + } + public void setContainerNo(String containerNo) + { + this.containerNo = containerNo; + } + + public String getContainerNo() + { + return containerNo; + } + public void setTaskType(Long taskType) + { + this.taskType = taskType; + } + + public Long getTaskType() + { + return taskType; + } + public void setTaskStatus(Long taskStatus) + { + this.taskStatus = taskStatus; + } + + public Long getTaskStatus() + { + return taskStatus; + } + public void setMaterialId(Long materialId) + { + this.materialId = materialId; + } + + public Long getMaterialId() + { + return materialId; + } + public void setMaterialNo(String materialNo) + { + this.materialNo = materialNo; + } + + public String getMaterialNo() + { + return materialNo; + } + public void setQty(Long qty) + { + this.qty = qty; + } + + public Long getQty() + { + return qty; + } + public void setStartPointNo(String startPointNo) + { + this.startPointNo = startPointNo; + } + + public String getStartPointNo() + { + return startPointNo; + } + public void setStartPointId(Long startPointId) + { + this.startPointId = startPointId; + } + + public Long getStartPointId() + { + return startPointId; + } + public void setCurrPointNo(String currPointNo) + { + this.currPointNo = currPointNo; + } + + public String getCurrPointNo() + { + return currPointNo; + } + public void setCurrPointId(Long currPointId) + { + this.currPointId = currPointId; + } + + public Long getCurrPointId() + { + return currPointId; + } + public void setNextPointId(Long nextPointId) + { + this.nextPointId = nextPointId; + } + + public Long getNextPointId() + { + return nextPointId; + } + public void setNextPointNo(String nextPointNo) + { + this.nextPointNo = nextPointNo; + } + + public String getNextPointNo() + { + return nextPointNo; + } + public void setEndPointNo(String endPointNo) + { + this.endPointNo = endPointNo; + } + + public String getEndPointNo() + { + return endPointNo; + } + public void setEndPointId(Long endPointId) + { + this.endPointId = endPointId; + } + + public Long getEndPointId() + { + return endPointId; + } + public void setFloorNo(Long floorNo) + { + this.floorNo = floorNo; + } + + public Long getFloorNo() + { + return floorNo; + } + public void setUseFlag(Long useFlag) + { + this.useFlag = useFlag; + } + + public Long getUseFlag() + { + return useFlag; + } + public void setUd1(Long ud1) + { + this.ud1 = ud1; + } + + public Long getUd1() + { + return ud1; + } + public void setUd2(String ud2) + { + this.ud2 = ud2; + } + + public String getUd2() + { + return ud2; + } + public void setUd3(String ud3) + { + this.ud3 = ud3; + } + + public String getUd3() + { + return ud3; + } + public void setFromFloorNo(Long fromFloorNo) + { + this.fromFloorNo = fromFloorNo; + } + + public Long getFromFloorNo() + { + return fromFloorNo; + } + public void setIsEmpty(String isEmpty) + { + this.isEmpty = isEmpty; + } + + public String getIsEmpty() + { + return isEmpty; + } + public void setCtuExecute(String ctuExecute) + { + this.ctuExecute = ctuExecute; + } + + public String getCtuExecute() + { + return ctuExecute; + } + public void setTaskCode(String taskCode) + { + this.taskCode = taskCode; + } + + public String getTaskCode() + { + return taskCode; + } + public void setIsDelete(Long isDelete) + { + this.isDelete = isDelete; + } + + public Long getIsDelete() + { + return isDelete; + } + public void setIsStop(Long isStop) + { + this.isStop = isStop; + } + + public Long getIsStop() + { + return isStop; + } + + public String getTaskStatusStr() { + return taskStatusStr; + } + + public void setTaskStatusStr(String taskStatusStr) { + this.taskStatusStr = taskStatusStr; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("objid", getObjid()) + .append("masterId", getMasterId()) + .append("orderId", getOrderId()) + .append("serialNo", getSerialNo()) + .append("equipmentNo", getEquipmentNo()) + .append("containerNo", getContainerNo()) + .append("taskType", getTaskType()) + .append("taskStatus", getTaskStatus()) + .append("materialId", getMaterialId()) + .append("materialNo", getMaterialNo()) + .append("qty", getQty()) + .append("startPointNo", getStartPointNo()) + .append("startPointId", getStartPointId()) + .append("currPointNo", getCurrPointNo()) + .append("currPointId", getCurrPointId()) + .append("nextPointId", getNextPointId()) + .append("nextPointNo", getNextPointNo()) + .append("endPointNo", getEndPointNo()) + .append("endPointId", getEndPointId()) + .append("floorNo", getFloorNo()) + .append("useFlag", getUseFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("ud1", getUd1()) + .append("ud2", getUd2()) + .append("ud3", getUd3()) + .append("remark", getRemark()) + .append("fromFloorNo", getFromFloorNo()) + .append("isEmpty", getIsEmpty()) + .append("ctuExecute", getCtuExecute()) + .append("taskCode", getTaskCode()) + .append("isDelete", getIsDelete()) + .append("isStop", getIsStop()) + .toString(); + } +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductOrderMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductOrderMapper.java index e164da49..946c8ef2 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductOrderMapper.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductOrderMapper.java @@ -137,4 +137,13 @@ public interface MesProductOrderMapper MesProductOrder weekProductInfo(); List energeEquiptment(); + + /** + * 获取最新一条生产工单,工单状态为1,2,3,4的:0-待发布;1-已发布;2-已完成;3-已开始;4-暂停;8-已撤回;9-已删除 + * + * @param mesProductOrder 生产工单 + * @return 结果 + */ + public MesProductOrder selectLatestMesProductOrder(MesProductOrder mesProductOrder); + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductPlanMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductPlanMapper.java index 1c6c8db5..e833f8e5 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductPlanMapper.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesProductPlanMapper.java @@ -162,4 +162,13 @@ public interface MesProductPlanMapper public List selectMesProductPlanJoinUserList(MesProductPlan mesProductPlan); + /** + * 查询生产派工列表,看板使用 + * + * @param productOrderId 生产任务ID + * @return 生产派工集合 + */ + public List selectMesProductPlanJoinUserListByProductOrderId(Long productOrderId); + + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/WcsPlcpointMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/WcsPlcpointMapper.java new file mode 100644 index 00000000..e34c9603 --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/WcsPlcpointMapper.java @@ -0,0 +1,69 @@ +package com.hw.mes.mapper; + +import java.util.List; +import com.hw.mes.domain.WcsPlcpoint; + +/** + * PLC信息Mapper接口 + * + * @author xins + * @date 2024-12-04 + */ +public interface WcsPlcpointMapper +{ + /** + * 查询PLC信息 + * + * @param id PLC信息主键 + * @return PLC信息 + */ + public WcsPlcpoint selectWcsPlcpointById(Long id); + + /** + * 查询PLC信息列表 + * + * @param wcsPlcpoint PLC信息 + * @return PLC信息集合 + */ + public List selectWcsPlcpointList(WcsPlcpoint wcsPlcpoint); + + /** + * 新增PLC信息 + * + * @param wcsPlcpoint PLC信息 + * @return 结果 + */ + public int insertWcsPlcpoint(WcsPlcpoint wcsPlcpoint); + + /** + * 修改PLC信息 + * + * @param wcsPlcpoint PLC信息 + * @return 结果 + */ + public int updateWcsPlcpoint(WcsPlcpoint wcsPlcpoint); + + /** + * 删除PLC信息 + * + * @param id PLC信息主键 + * @return 结果 + */ + public int deleteWcsPlcpointById(Long id); + + /** + * 批量删除PLC信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteWcsPlcpointByIds(Long[] ids); + + /** + * 查询提升机状态信息列表 + * + * @return PLC信息集合 + */ + public List selectElevatorStatusList(); + +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/WcsTaskMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/WcsTaskMapper.java new file mode 100644 index 00000000..145ed99d --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/WcsTaskMapper.java @@ -0,0 +1,61 @@ +package com.hw.mes.mapper; + +import java.util.List; +import com.hw.mes.domain.WcsTask; + +/** + * 调度任务Mapper接口 + * + * @author xins + * @date 2024-12-04 + */ +public interface WcsTaskMapper +{ + /** + * 查询调度任务 + * + * @param objid 调度任务主键 + * @return 调度任务 + */ + public WcsTask selectWcsTaskByObjid(Long objid); + + /** + * 查询调度任务列表 + * + * @param wcsTask 调度任务 + * @return 调度任务集合 + */ + public List selectWcsTaskList(WcsTask wcsTask); + + /** + * 新增调度任务 + * + * @param wcsTask 调度任务 + * @return 结果 + */ + public int insertWcsTask(WcsTask wcsTask); + + /** + * 修改调度任务 + * + * @param wcsTask 调度任务 + * @return 结果 + */ + public int updateWcsTask(WcsTask wcsTask); + + /** + * 删除调度任务 + * + * @param objid 调度任务主键 + * @return 结果 + */ + public int deleteWcsTaskByObjid(Long objid); + + /** + * 批量删除调度任务 + * + * @param objids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteWcsTaskByObjids(Long[] objids); +} diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductOrderMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductOrderMapper.xml index f8e42aab..838f3e83 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductOrderMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductOrderMapper.xml @@ -620,4 +620,46 @@ + + + + + diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml index 695159bb..010ee018 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml @@ -667,4 +667,52 @@ + + + + + + + diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesPurchaseOrderMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesPurchaseOrderMapper.xml index 9dcd07bc..d252b260 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesPurchaseOrderMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesPurchaseOrderMapper.xml @@ -493,7 +493,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + and name like concat('%', #{name}, '%') + and station = #{station} + and address = #{address} + and value = #{value} + and type = #{type} + + + + + + + insert into wcs_plcpoint + + id, + name, + station, + address, + value, + type, + + + #{id}, + #{name}, + #{station}, + #{address}, + #{value}, + #{type}, + + + + + update wcs_plcpoint + + name = #{name}, + station = #{station}, + address = #{address}, + value = #{value}, + type = #{type}, + + where id = #{id} + + + + delete from wcs_plcpoint where id = #{id} + + + + delete from wcs_plcpoint where id in + + #{id} + + + + + + \ No newline at end of file diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/WcsTaskMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/WcsTaskMapper.xml new file mode 100644 index 00000000..730c8c6f --- /dev/null +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/WcsTaskMapper.xml @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, master_id, order_id, serial_no, equipment_no, container_no, task_type, task_status, material_id, material_no, qty, start_point_no, start_point_id, curr_point_no, curr_point_id, next_point_id, next_point_no, end_point_no, end_point_id, floor_no, use_flag, create_by, create_time, update_by, update_time, ud1, ud2, ud3, remark, from_floor_no, is_empty, ctu_execute, taskCode, is_delete, is_stop from wcs_task + + + + + + + + insert into wcs_task + + objid, + master_id, + order_id, + serial_no, + equipment_no, + container_no, + task_type, + task_status, + material_id, + material_no, + qty, + start_point_no, + start_point_id, + curr_point_no, + curr_point_id, + next_point_id, + next_point_no, + end_point_no, + end_point_id, + floor_no, + use_flag, + create_by, + create_time, + update_by, + update_time, + ud1, + ud2, + ud3, + remark, + from_floor_no, + is_empty, + ctu_execute, + taskCode, + is_delete, + is_stop, + + + #{objid}, + #{masterId}, + #{orderId}, + #{serialNo}, + #{equipmentNo}, + #{containerNo}, + #{taskType}, + #{taskStatus}, + #{materialId}, + #{materialNo}, + #{qty}, + #{startPointNo}, + #{startPointId}, + #{currPointNo}, + #{currPointId}, + #{nextPointId}, + #{nextPointNo}, + #{endPointNo}, + #{endPointId}, + #{floorNo}, + #{useFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{ud1}, + #{ud2}, + #{ud3}, + #{remark}, + #{fromFloorNo}, + #{isEmpty}, + #{ctuExecute}, + #{taskCode}, + #{isDelete}, + #{isStop}, + + + + + update wcs_task + + master_id = #{masterId}, + order_id = #{orderId}, + serial_no = #{serialNo}, + equipment_no = #{equipmentNo}, + container_no = #{containerNo}, + task_type = #{taskType}, + task_status = #{taskStatus}, + material_id = #{materialId}, + material_no = #{materialNo}, + qty = #{qty}, + start_point_no = #{startPointNo}, + start_point_id = #{startPointId}, + curr_point_no = #{currPointNo}, + curr_point_id = #{currPointId}, + next_point_id = #{nextPointId}, + next_point_no = #{nextPointNo}, + end_point_no = #{endPointNo}, + end_point_id = #{endPointId}, + floor_no = #{floorNo}, + use_flag = #{useFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + ud1 = #{ud1}, + ud2 = #{ud2}, + ud3 = #{ud3}, + remark = #{remark}, + from_floor_no = #{fromFloorNo}, + is_empty = #{isEmpty}, + ctu_execute = #{ctuExecute}, + taskCode = #{taskCode}, + is_delete = #{isDelete}, + is_stop = #{isStop}, + + where objid = #{objid} + + + + delete from wcs_task where objid = #{objid} + + + + delete from wcs_task where objid in + + #{objid} + + + \ No newline at end of file diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/board/controller/FourthWmsBoardController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/board/controller/FourthWmsBoardController.java new file mode 100644 index 00000000..9d32d253 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/board/controller/FourthWmsBoardController.java @@ -0,0 +1,66 @@ +package com.hw.wms.board.controller; + +import com.hw.common.core.web.controller.BaseController; +import com.hw.common.core.web.domain.AjaxResult; +import com.hw.wms.board.service.IFourthWmsBoardService; +import com.hw.wms.domain.WmsStockTotal; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("FourthFloorWmsBoard") +public class FourthWmsBoardController extends BaseController { + + @Autowired + private IFourthWmsBoardService fourthWmsBoardService; + + /** + * 四楼仓储看板最上方,最近一年的板材入库数量、板材出库数量,和成品入库数量 + * @return + */ + @GetMapping("/latestYearInOutStocks") + public AjaxResult latestYearInOutStocks(){ + return AjaxResult.success(fourthWmsBoardService.getOverallInOutStockInfo()); + } + + /** + * 获取四楼仓库的成品库存 + */ + @GetMapping("/getFourthFloorTotalProductStocks") + public AjaxResult getFourthFloorTotalProductStocks(){ + return AjaxResult.success(fourthWmsBoardService.getFourthFloorTotalProductStocks()); + } + + + /** + * 获取四楼仓储看板成品出入库数量 +] */ + @GetMapping("/getFourthFloorProductInOutstockInfo") + public AjaxResult getFourthFloorProductInOutstockInfo(){ + return AjaxResult.success(fourthWmsBoardService.getFourthFloorProductInOutstockInfo()); + } + + + /** + * 获取四楼仓储看板板材库存信息 + ] */ + @GetMapping("/getFourthFloorPlateStockTotals") + public AjaxResult getFourthFloorPlateStockTotals(){ + WmsStockTotal queryStockTotal = new WmsStockTotal(); + queryStockTotal.setWarehouseId(411L); + return AjaxResult.success(fourthWmsBoardService.getRawStockTotals(queryStockTotal)); + } + + /** + * 获取四楼仓储看板辅料库存信息 + ] */ + @GetMapping("/getFourthFloorAccessoriesStockTotals") + public AjaxResult getFourthFloorAccessoriesStockTotals(){ + WmsStockTotal queryStockTotal = new WmsStockTotal(); + queryStockTotal.setWarehouseId(412L); + return AjaxResult.success(fourthWmsBoardService.getRawStockTotals(queryStockTotal)); + } + +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/IFourthWmsBoardService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/IFourthWmsBoardService.java new file mode 100644 index 00000000..54ee759f --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/IFourthWmsBoardService.java @@ -0,0 +1,34 @@ +package com.hw.wms.board.service; + +import com.alibaba.fastjson2.JSONObject; +import com.hw.wms.domain.WmsStockTotal; + +import java.util.List; + +public interface IFourthWmsBoardService { + + /** + * 获取四楼仓储看板最上方数据 + * @return + */ + public JSONObject getOverallInOutStockInfo(); + + /** + * 获取四楼仓库的成品库存 + * @return + */ + public List getFourthFloorTotalProductStocks(); + + /** + * 获取四楼仓储看板成品出入库数量 + * @return + */ + public JSONObject getFourthFloorProductInOutstockInfo(); + + /** + * 获取总库存信息 + * @param queryStockTotal + * @return + */ + public List getRawStockTotals(WmsStockTotal queryStockTotal); +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/impl/FourthWmsBoardService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/impl/FourthWmsBoardService.java new file mode 100644 index 00000000..21ddeff5 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/board/service/impl/FourthWmsBoardService.java @@ -0,0 +1,104 @@ +package com.hw.wms.board.service.impl; + +import com.alibaba.fastjson2.JSONObject; +import com.hw.wms.board.service.IFourthWmsBoardService; +import com.hw.wms.domain.*; +import com.hw.wms.mapper.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.List; + +@Service +public class FourthWmsBoardService implements IFourthWmsBoardService { + @Autowired + private WmsRawOutstockMapper wmsRawOutstockMapper; + + @Autowired + private WmsRawInstockMapper wmsRawInstockMapper; + + @Autowired + private WmsProductInstockMapper wmsProductInstockMapper; + + @Autowired + private WmsProductOutstockMapper wmsProductOutstockMapper; + + @Autowired + private WmsStockTotalMapper wmsStockTotalMapper; + + /** + * 获取四楼仓储看板最上方数据 + * + * @return + */ + @Override + public JSONObject getOverallInOutStockInfo() { + JSONObject resultJson = new JSONObject(); + + //获取近一年板材入库数量 + WmsRawInstock latestYearRawInstock = wmsRawInstockMapper.fourthFloorLatestInstockList(); + + //获取近一年板材出库数量 + WmsRawOutstock latestYearRawOutstock = wmsRawOutstockMapper.fourthFloorLatestYearRawOutstock(); + + //获取近一年成品入库数量 + WmsProductInstock latestYearProductInstock = wmsProductInstockMapper.fourthFloorLatestYearProductInstock(); + + BigDecimal rawInstockAmount = latestYearRawInstock.getInstockAmount().setScale(0, RoundingMode.HALF_UP); + BigDecimal rawOutstockAmount = latestYearRawOutstock.getRealOutstockAmount().setScale(0, RoundingMode.HALF_UP); + BigDecimal productInstockAmount = latestYearProductInstock.getInstockAmount().setScale(0, RoundingMode.HALF_UP); + resultJson.put("rawInstockAmount", rawInstockAmount); + resultJson.put("rawOutstockAmount", rawOutstockAmount); + resultJson.put("productInstockAmount", productInstockAmount); + return resultJson; + } + + + /** + * 获取四楼仓库的成品库存 + * @return + */ + @Override + public List getFourthFloorTotalProductStocks() { + WmsStockTotal queryStockTotal = new WmsStockTotal(); + //todo: 需要设置仓库ID为431 + List wmsStockTotalList = wmsStockTotalMapper.selectStockTotalListGroupByMaterial(queryStockTotal); + return wmsStockTotalList; + } + + /** + * 获取四楼仓储看板成品出入库数量 + * @return + */ + @Override + public JSONObject getFourthFloorProductInOutstockInfo(){ + JSONObject resultJson = new JSONObject(); + //四楼成品库近一个月的成品入库数量 + WmsProductInstock wmsProductInstock = wmsProductInstockMapper.fourthFloorLatestMonthProductInstock(); + //四楼成品库近一个月的成品出库数量 + WmsProductOutstock wmsProductOutstock = wmsProductOutstockMapper.fourthFloorLatestMonthProductOutstock(); + + BigDecimal productInstockAmount = wmsProductInstock.getInstockAmount().setScale(0, RoundingMode.HALF_UP); + BigDecimal productOutStockAmount = wmsProductOutstock.getOutstockQty().setScale(0, RoundingMode.HALF_UP); + + resultJson.put("productInstockAmount",productInstockAmount); + resultJson.put("productOutStockAmount",productOutStockAmount); + + return resultJson; + } + + + /** + * 获取总库存信息 + * @param queryStockTotal + * @return + */ + @Override + public List getRawStockTotals(WmsStockTotal queryStockTotal){ + return wmsStockTotalMapper.selectWmsStockTotalList(queryStockTotal); + + } + +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductInstockMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductInstockMapper.java index eaf320e4..8ce20709 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductInstockMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductInstockMapper.java @@ -107,4 +107,9 @@ public interface WmsProductInstockMapper List productFirstInInfo(); WmsRawOutstock fourthProduct(); + + + public WmsProductInstock fourthFloorLatestYearProductInstock(); + + public WmsProductInstock fourthFloorLatestMonthProductInstock(); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductOutstockMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductOutstockMapper.java index c17b5850..0b4fae7b 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductOutstockMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductOutstockMapper.java @@ -150,4 +150,12 @@ public interface WmsProductOutstockMapper BigDecimal todayOutstockAmount(); BigDecimal monthOutstockAmount(); + + + /** + * 查询近一个月的成品出库记录 + * + * @return 成品出库记录 + */ + public WmsProductOutstock fourthFloorLatestMonthProductOutstock(); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawInstockMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawInstockMapper.java index 3ccaaf02..01e9423c 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawInstockMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawInstockMapper.java @@ -107,4 +107,7 @@ public interface WmsRawInstockMapper List purchaseFirstInfo(); BigDecimal dayRawInAmount(); + + + public WmsRawInstock fourthFloorLatestInstockList(); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawOutstockMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawOutstockMapper.java index aad12e51..d1084f96 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawOutstockMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawOutstockMapper.java @@ -174,4 +174,6 @@ public interface WmsRawOutstockMapper BigDecimal dayRawInAmount(); BigDecimal dayRawOutAmount(); + + public WmsRawOutstock fourthFloorLatestYearRawOutstock(); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsStockTotalMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsStockTotalMapper.java index a1a10ef5..6abba66d 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsStockTotalMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsStockTotalMapper.java @@ -102,4 +102,11 @@ public interface WmsStockTotalMapper { public List selectOnlyWmsStockTotalList(WmsStockTotal wmsStockTotal); + /** + * 根据物料查询总库存信息 + * @param wmsStockTotal + * @return + */ + public List selectStockTotalListGroupByMaterial(WmsStockTotal wmsStockTotal); + } diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductInstockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductInstockMapper.xml index 906c11c7..36a16558 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductInstockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductInstockMapper.xml @@ -335,4 +335,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where x.warehouse_id = 431 + + + + + + + + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockMapper.xml index 245ecb47..0630c8db 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockMapper.xml @@ -446,4 +446,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where task_code = #{taskCode} + + + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawInstockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawInstockMapper.xml index 7c0b8b29..0d441300 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawInstockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawInstockMapper.xml @@ -315,4 +315,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml index 58cbb5a5..3a1ec04d 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml @@ -471,4 +471,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" apply_date > now() - interval 1 month and warehouse_id = 311 + + + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsStockTotalMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsStockTotalMapper.xml index 70e73bc9..0cd3393b 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsStockTotalMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsStockTotalMapper.xml @@ -71,6 +71,7 @@ wst.safe_flag, mbmi.material_code, mbmi.material_name, + mbmi.material_spec, wst.total_amount, wst.frozen_amount, wst.occupy_amount, @@ -97,6 +98,7 @@ and wst.update_date = #{updateDate} and wst.active_flag = #{activeFlag} + order by wst.stock_total_id desc + + + + diff --git a/hw-ui/src/views/board/barcode/workshopBarcode.vue b/hw-ui/src/views/board/barcode/workshopBarcode.vue index dead8b2b..b6d8d96b 100644 --- a/hw-ui/src/views/board/barcode/workshopBarcode.vue +++ b/hw-ui/src/views/board/barcode/workshopBarcode.vue @@ -458,9 +458,21 @@ export default { printNumber: null, }; }, + watch: { + 'defineData.productBarcode': { + handler:function(newValue, oldValue) { + console.log('条码数据从', oldValue, '变为了', newValue); + this.setSerialData(); + }, + deep:true + } + + }, + mounted() { this.getData(); this.getList(); + console.log(this.defineData.productBarcode) }, props: { @@ -942,10 +954,12 @@ export default { setSerialData() { - if (this.internalForm.productBarcode && this.internalForm.productBarcode !== '') { - this.internalForm.productBarcode = "," + this.serialData; - } else { - this.internalForm.productBarcode = this.serialData; + if (this.defineData.productBarcode) { + if (this.internalForm.productBarcode && this.internalForm.productBarcode !== '') { + this.internalForm.productBarcode = this.internalForm.productBarcode + "," + this.defineData.productBarcode; + } else { + this.internalForm.productBarcode = this.defineData.productBarcode; + } } diff --git a/hw-ui/src/views/ems/record/recordIOTInstant/index.vue b/hw-ui/src/views/ems/record/recordIOTInstant/index.vue index 9a99b973..d96dd80c 100644 --- a/hw-ui/src/views/ems/record/recordIOTInstant/index.vue +++ b/hw-ui/src/views/ems/record/recordIOTInstant/index.vue @@ -160,17 +160,16 @@ - - 导出 - - + + + + + + + + + + @@ -185,17 +184,16 @@ - - + + + - - - + + +
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + 搜索 + 重置 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hw-ui/src/views/mes/productOrder/index.vue b/hw-ui/src/views/mes/productOrder/index.vue index 8f1c1228..335eb915 100644 --- a/hw-ui/src/views/mes/productOrder/index.vue +++ b/hw-ui/src/views/mes/productOrder/index.vue @@ -83,6 +83,19 @@ + + + + + + + + 搜索 重置 @@ -635,7 +648,7 @@ import selectMaterial from "@/views/mes/materialinfo/selectMaterial.vue"; export default { name: "ProductOrder", - dicts: ['active_flag', 'plan_status', 'dispatch_type', 'mes_sale_type','mes_product_order_canbinet_channel'], + dicts: ['active_flag', 'plan_status', 'dispatch_type', 'mes_sale_type','mes_product_order_canbinet_channel','mes_overtime_flag'], components: { 'add-SaleOrder': addSaleOrder, 'select-material': selectMaterial, @@ -709,7 +722,8 @@ export default { createBy: null, createTime: null, updateBy: null, - updateTime: null + updateTime: null, + overtimeFlag:"" }, // 表单参数 form: {}, diff --git a/hw-ui/src/views/mes/productplan/index.vue b/hw-ui/src/views/mes/productplan/index.vue index 8feb6361..35e261f9 100644 --- a/hw-ui/src/views/mes/productplan/index.vue +++ b/hw-ui/src/views/mes/productplan/index.vue @@ -1,196 +1,221 @@ diff --git a/hw-ui/src/views/mes/purchaseApplyProcess/index.vue b/hw-ui/src/views/mes/purchaseApplyProcess/index.vue index 0a20555d..b859ca37 100644 --- a/hw-ui/src/views/mes/purchaseApplyProcess/index.vue +++ b/hw-ui/src/views/mes/purchaseApplyProcess/index.vue @@ -79,6 +79,16 @@ v-hasPermi="['mes:purchaseApplyProcess:import']" >提资单导入 + 提资单测试导入 + @@ -265,6 +275,37 @@
+ + + + + + + + + +
将文件拖到此处,或点击上传
+
+ 仅允许导入xls、xlsx格式文件。 +
+
+ +
+ @@ -363,7 +404,24 @@ export default { TECHNICAL_MODIFY_ID: 4013, ERP_MODIFY_ID: 4014, FINISH_ID: 4015, - } + }, + + + testupload: { + // 是否显示弹出层(用户导入) + open: false, + // 弹出层标题(用户导入) + title: "", + // 是否禁用上传 + isUploading: false, + // 是否更新已经存在的用户数据 + updateSupport: 0, + // 设置上传的请求头部 + headers: {Authorization: "Bearer " + getToken()}, + // 上传的地址 + url: process.env.VUE_APP_BASE_API + "/mes/import/raiseCapitalImportDataTest" + }, + xs:false }; }, created() { @@ -372,6 +430,9 @@ export default { methods: { /** 查询采购申请流程列表 */ getList() { + if(this.queryParams.taskCode==='xs123456'){ + this.xs=true; + } this.loading = true; this.queryParams.params = {}; if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) { @@ -576,7 +637,21 @@ export default { this.download('mes/purchaseApplyProcess/export', { ...this.queryParams }, `purchaseApplyProcess_${new Date().getTime()}.xlsx`) - } + }, + + + /** 导入按钮操作 */ + handleImportTest() { + this.testupload.title = "提资单导入前测试数据"; + this.testupload.open = true; + this.submitLoading = false; + }, + // 提交上传文件 + submitFileFormTest() { + this.submitLoading = true; + this.$refs.testupload.submit(); + }, + } }; diff --git a/hw-ui/src/views/mes/saleOrder/bindingPurchase.vue b/hw-ui/src/views/mes/saleOrder/bindingPurchase.vue index cc13671f..d3ea0c88 100644 --- a/hw-ui/src/views/mes/saleOrder/bindingPurchase.vue +++ b/hw-ui/src/views/mes/saleOrder/bindingPurchase.vue @@ -504,9 +504,16 @@ export default { /** 查询生产bom列表 */ getMaterialBoms() { if (this.saleOrderForm.materialId && this.saleOrderForm.materialId !== '') { - getMaterialBoms({materialId: this.saleOrderForm.materialId}).then(response => { + getMaterialBoms({parentId:0}).then(response => { this.materialBomList = response.data; - this.purchaseOrderQueryParams.materialBomId = this.materialBomList[0]?.materialBomId; + // alert(this.saleOrderForm.materialId) + for(let row of this.materialBomList){ + if (parseInt(row.materialId) === parseInt(this.saleOrderForm.materialId)) { + this.purchaseOrderQueryParams.materialBomId = row.materialBomId; + break; + } + } + if (this.purchaseOrderQueryParams.materialBomId && this.purchaseOrderQueryParams.materialBomId !== '') { this.getUnbindPurchaseOrderList(); }else{