@@ -161,7 +162,7 @@
@click="tjspxq(item.id,item.title2)"
>
@@ -189,7 +190,7 @@
@click="tjspxq(item.id,item.title2)"
>
-
+
{{ item.title1 }}|{{ item.title2 }}
@@ -948,23 +949,31 @@
min-width: 270px;
flex-direction: column;
align-items: center;
- padding-bottom: 30px;
+ padding-bottom: 10px;
+ padding-top: 10px;
margin-bottom: 30px;
margin-right: 11px;
}
.section5 .tabs .jz .item img {
- width: 80%;
+ width: 90%;
+ height: 309px;
+ object-fit: cover;
}
.section5 .tabs .jz .item p {
width: 100%;
box-sizing: border-box;
text-overflow: ellipsis;
- padding-left: 28px;
- padding-right: 28px;
+ padding: 15px;
overflow: hidden;
text-align: left;
white-space: nowrap;
}
+ .section5 .tabs .jz .item p.title_6{
+ border-bottom: 1px dashed rgba(116,105,87,0.3) ;
+ color: #333;
+ font-size: 20px;
+ padding: 20px;
+ }
.section5 .tabs .jz .item p .line {
margin-left: 8px;
margin-right: 8px;
@@ -973,8 +982,8 @@
width: 100%;
padding-left: 28px;
box-sizing: border-box;
- margin-top: 30px;
- margin-bottom: 20px;
+ /*margin-top: 30px;*/
+ /*margin-bottom: 20px;*/
}
.section5 .tabs .jz .item div .el-tag {
margin-right: 10px;
diff --git a/ant-design-vue-jeecg/src/views/team/modules/StationModal1.vue b/ant-design-vue-jeecg/src/views/team/modules/StationModal1.vue
new file mode 100644
index 00000000..d75be23d
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/team/modules/StationModal1.vue
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/zyplanprocess/ZyPlanProcessList.vue b/ant-design-vue-jeecg/src/views/zyplanprocess/ZyPlanProcessList.vue
index 6a1b745f..0b17493c 100644
--- a/ant-design-vue-jeecg/src/views/zyplanprocess/ZyPlanProcessList.vue
+++ b/ant-design-vue-jeecg/src/views/zyplanprocess/ZyPlanProcessList.vue
@@ -55,6 +55,12 @@
+
+ {{text}}
+
+
+ {{text}}
+
无
{{record.proProcessName}}
@@ -103,6 +109,8 @@
+
+
@@ -113,12 +121,17 @@
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import ZyPlanProcessModal from './modules/ZyPlanProcessModal'
import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
+ import StationModal1 from "../team/modules/StationModal1";
+ import WorkOrderModal from "../workorder/modules/WorkOrderModal";
+ import {deleteAction, getAction} from "@api/manage";
export default {
name: 'ZyPlanProcessList',
mixins:[JeecgListMixin, mixinDevice],
components: {
- ZyPlanProcessModal
+ ZyPlanProcessModal,
+ StationModal1,
+ WorkOrderModal
},
data () {
return {
@@ -135,6 +148,17 @@
return parseInt(index)+1;
}
},
+ {
+ title:'工单编号',
+ align:"center",
+ dataIndex: 'productNo',
+ scopedSlots: {customRender: 'gd'}
+ },
+ {
+ title:'产品名称',
+ align:"center",
+ dataIndex: 'productCode_dictText'
+ },
{
title:'工序名称',
align:"center",
@@ -143,7 +167,8 @@
{
title:'工位名称',
align:"center",
- dataIndex: 'stationName'
+ dataIndex: 'stationName',
+ scopedSlots: {customRender: 'gw'}
},
{
title:'工位序号',
@@ -223,6 +248,25 @@
},
},
methods: {
+ gw(stationId){
+ getAction("/team/station/queryById", {id: stationId}).then((res) => {
+ if (res.success) {
+ this.$refs.modalFormgw.edit(res.result);
+ this.$refs.modalFormgw.title="详情";
+ } else {
+ }
+ })
+ },
+ gd(orderCode){
+ getAction("/workOrder/workOrder/queryByOrderCode", {orderCode: orderCode}).then((res) => {
+ if (res.success) {
+ this.$refs.modalFormgd.edit(res.result);
+ this.$refs.modalFormgd.title="详情";
+ this.$refs.modalFormgd.disableSubmit = true;
+ } else {
+ }
+ })
+ },
initDictConfig(){
},
}
diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
index 0fdc2539..58ea92f9 100644
--- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
+++ b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
@@ -128,7 +128,10 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/zyShopOrder/shopOrder/**","anon");
//大屏数据
filterChainDefinitionMap.put("/largeScreen/**","anon");
+
+ //生产大屏
filterChainDefinitionMap.put("/productionLargeScreen/**","anon");
+ filterChainDefinitionMap.put("/org.jeecg.modules.message/zySpeechMessage/**","anon");
//人员管理
filterChainDefinitionMap.put("/zyPerson/**","anon");
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/controller/ProductionLargeScreenController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/controller/ProductionLargeScreenController.java
index 1cd28b6b..3b9d3ba3 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/controller/ProductionLargeScreenController.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/controller/ProductionLargeScreenController.java
@@ -26,18 +26,25 @@ public class ProductionLargeScreenController {
*
* @return
*/
- @ApiOperation(value = "获取生产设备大屏数据", notes = "获取生产设备大屏数据")
- @GetMapping("/getData")
- public Result> getData() {
- Map
data = productionLargeService.getData();
- return Result.OK(data);
- }
+// @ApiOperation(value = "获取生产设备大屏数据", notes = "获取生产设备大屏数据")
+// @GetMapping("/getData")
+// public Result> getData() {
+// Map data = productionLargeService.getData();
+// return Result.OK(data);
+// }
- @ApiOperation(value = "获取生产设备大屏数据", notes = "获取生产设备大屏数据")
+ @ApiOperation(value = "生产大屏-生产线实时状态", notes = "生产线实时状态")
@GetMapping("/shengchanxian_data")
public Result> shengchanxian_data() {
Map data = productionLargeService.shengchanxian_data();
return Result.OK(data);
}
+ @ApiOperation(value = "生产大屏-设备信息&吊挂&裁床", notes = "生产大屏-设备信息&吊挂&裁床")
+ @GetMapping("/shebeixinxi_data")
+ public Result> shebeixinxi_data() {
+ Map data = productionLargeService.shebeixinxi_data();
+ return Result.OK(data);
+ }
+
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/service/ProductionLargeService.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/service/ProductionLargeService.java
index cc38e88c..0c85ddfa 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/service/ProductionLargeService.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/service/ProductionLargeService.java
@@ -4,7 +4,7 @@ import java.util.Map;
public interface ProductionLargeService {
- Map getData();
+ Map shebeixinxi_data();
Map shengchanxian_data();
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/service/impl/ProductionLargeServiceImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/service/impl/ProductionLargeServiceImpl.java
index 6e814ac7..f20c0055 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/service/impl/ProductionLargeServiceImpl.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/service/impl/ProductionLargeServiceImpl.java
@@ -1,31 +1,41 @@
package org.jeecg.modules.largeScreen.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import org.jeecg.common.exception.JeecgBootException;
-import org.jeecg.modules.demo.productrecord.entity.ProductRecord;
-import org.jeecg.modules.demo.productrecord.service.IProductRecordService;
-import org.jeecg.modules.hanger.service.IHangRecordService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import io.swagger.models.auth.In;
+import org.jeecg.modules.demo.base.entity.ZyProcess;
+import org.jeecg.modules.demo.base.service.IZyProcessService;
+import org.jeecg.modules.device.entity.ZyDevice;
+import org.jeecg.modules.device.service.IZyDeviceService;
import org.jeecg.modules.largeScreen.service.ProductionLargeService;
import org.jeecg.modules.largeScreen.vo.ProductRecordVo;
import org.jeecg.modules.productplan.entity.ZyPlanProcess;
import org.jeecg.modules.productplan.entity.ZyProductPlan;
+import org.jeecg.modules.productplan.entity.vo.ZyPlanProcessVo;
import org.jeecg.modules.productplan.service.IZyPlanProcessService;
import org.jeecg.modules.productplan.service.IZyProductPlanService;
import org.jeecg.modules.system.entity.SysDepart;
import org.jeecg.modules.system.service.ISysDepartService;
+import org.jeecg.modules.team.entity.Groupx;
import org.jeecg.modules.team.entity.Station;
+import org.jeecg.modules.team.service.IGroupxService;
import org.jeecg.modules.team.service.IStationService;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
+import java.math.RoundingMode;
+import java.text.DecimalFormat;
+import java.time.LocalDate;
import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
@Service
public class ProductionLargeServiceImpl implements ProductionLargeService {
@Autowired
- private IHangRecordService iHangRecordService;
+ private IZyProcessService iZyProcessService;
@Autowired
private IZyProductPlanService iZyProductPlanService;
@@ -34,94 +44,117 @@ public class ProductionLargeServiceImpl implements ProductionLargeService {
private IZyPlanProcessService iZyPlanProcessService;
@Autowired
- private IProductRecordService iProductRecordService;
+ private IGroupxService iGroupxService;
@Autowired
private IStationService iStationService;
+ @Autowired
+ private IZyDeviceService iZyDeviceService;
@Autowired
private ISysDepartService iSysDepartService;
+ // D00010:智能定制生产吊挂系统
+ private static final String DIAOGUA = "D00010";
+
+ // D00002:智能定制裁床
+ private static final String CAICHUANG = "D00002";
+
+
+ /**
+ * 获取百分率 含%
+ *
+ * @param number
+ * @param denominator
+ * @return eg:33.33%
+ */
+ public static String getRatioStr(double number, double denominator) {
+ String ratio = "0.0%";
+ if (denominator != 0) {
+ DecimalFormat decimalFormat = new DecimalFormat("#0.0%");
+ decimalFormat.setRoundingMode(RoundingMode.HALF_UP);
+ ratio = decimalFormat.format(number / denominator);
+ }
+ return ratio;
+ }
+
+ public static void main(String[] args) {
+ String ratioStr = getRatioStr(78, 100);
+ System.out.println("ratioStr = " + ratioStr);
+ }
+
+ /**
+ * 1,统计当天时间内生产工序 zy_plan_process
+ * 2,根据工序确定该工序所属工位
+ * 3,根据工位确定所需设备(各类设备、吊挂、裁床)信息
+ *
+ * @return
+ */
@Override
- public Map getData() {
+ public Map shebeixinxi_data() {
- Map resultMap = new HashMap<>();
- /*//1,吊挂
- // 分组统计,获取最新时间5条吊挂运行记录
- List recordList = iHangRecordService.list(new LambdaQueryWrapper().groupBy(HangRecord::getHangCode));
- Map diaoguaData = new HashMap<>();
- if (!ObjectUtils.isEmpty(recordList)) {
- recordList.stream().forEach(e -> {
- List records = iHangRecordService.list(new LambdaQueryWrapper()
- .eq(HangRecord::getHangCode, e.getHangCode())
- .orderByDesc(HangRecord::getCreateTime)
- .last("limit 5")
- );
- diaoguaData.put(e.getHangCode(), records);
- });
+ Map resultMap = new HashMap<>();
+// List productPlanList = iZyProductPlanService.list(new QueryWrapper().eq("DATE_FORMAT (create_time,'%Y-%m-%d ')", LocalDate.now()));
+ List productPlanList = iZyProductPlanService.list(new QueryWrapper().eq("DATE_FORMAT (create_time,'%Y-%m-%d ')", "2023-06-03"));
+ if (!ObjectUtils.isEmpty(productPlanList)) {
+ Map diaoguaData = new HashMap<>();
+ Map caichuangData = new HashMap<>();
+ //1,吊挂
+ ZyDevice diaogua = iZyDeviceService.getOne(new LambdaQueryWrapper().eq(ZyDevice::getTypeCode, DIAOGUA).last("limit 1"));
+ //当天生产计划列表
+ diaoguaData.put("productPlanList", productPlanList);
+ //吊挂编码
+ diaoguaData.put("code", diaogua.getCode());
+ //负载
+ String ratioStr = getRatioStr(productPlanList.size(), diaogua.getVal());
+ diaoguaData.put("ratio", ratioStr);
+ resultMap.put("diaogua_", diaoguaData);
+
+ //2,裁床
+ ZyDevice caichuang = iZyDeviceService.getOne(new LambdaQueryWrapper().eq(ZyDevice::getTypeCode, CAICHUANG).last("limit 1"));
+ //当天生产计划列表
+ caichuangData.put("productPlanList", productPlanList);
+ //吊挂编码
+ caichuangData.put("code", caichuang.getCode());
+ //负载
+ caichuangData.put("ratio", getRatioStr(productPlanList.size(), caichuang.getVal()));
+ resultMap.put("caichuang_", caichuangData);
}
- resultMap.put("diaogua_data", diaoguaData);*/
-
-
-// //2,生产线实时状态
-// List stationGroup = iStationService.list(new LambdaQueryWrapper().groupBy(Station::getDepartId));
-// Map shengchanxianMap = new LinkedHashMap<>();
-// if (!ObjectUtils.isEmpty(stationGroup)) {
-// stationGroup.stream().forEach(station -> {
-// Map departMap = new LinkedHashMap<>();
-// //每个车间的工位
-// List stationList = iStationService.list(new LambdaQueryWrapper()
-// .eq(Station::getDepartId, station.getDepartId())
-// .orderByAsc(Station::getStationNum)
-// );
-// /**
-// * 取每个工位的,生产记录状态0(生产中)的最新一条数据
-// */
-// List productRecordVos = new LinkedList<>();
-// Optional.ofNullable(stationList).orElse(new LinkedList<>()).forEach(obj -> {
-// ProductRecord productRecord = iProductRecordService.getOne(new LambdaQueryWrapper()
-// .eq(ProductRecord::getStationId, obj.getId())
-// .eq(ProductRecord::getStatus, "0")
-// .orderByDesc(ProductRecord::getCreateTime)
-// .last("limit 1")
-// );
-// if (!ObjectUtils.isEmpty(productRecord)) {
-// ZyProductPlan productPlan = iZyProductPlanService.getOne(new LambdaQueryWrapper().eq(ZyProductPlan::getProductCode, productRecord.getOrderCode()));
-// Optional.ofNullable(productPlan).orElseThrow(() -> new JeecgBootException("工单编号:" + productRecord.getOrderCode() + "不存在!"));
-// List zyPlanProcessList = iZyPlanProcessService.list(new LambdaQueryWrapper()
-// .eq(ZyPlanProcess::getPlanId, productPlan.getId())
-// .eq(ZyPlanProcess::getStationId, obj.getId())
-// );
-// if (!ObjectUtils.isEmpty(zyPlanProcessList)) {
-// ZyPlanProcess zyPlanProcess = zyPlanProcessList.get(0);
-// ProductRecordVo vo = new ProductRecordVo();
-// vo.setProductCode(productRecord.getOrderCode());
-// vo.setProcessName(zyPlanProcess.getProcessName());
-// vo.setStationName(zyPlanProcess.getStationName());
-// vo.setMachineNames(zyPlanProcess.getMachineNames());
-// vo.setStationNum(zyPlanProcess.getStationNum());
-// productRecordVos.add(vo);
-// } else {
-// ProductRecordVo vo = new ProductRecordVo();
-// vo.setStationName(obj.getStationName());
-// vo.setStationNum(obj.getStationNum());
-// productRecordVos.add(vo);
-// }
-// } else {
-// ProductRecordVo vo = new ProductRecordVo();
-// vo.setStationName(obj.getStationName());
-// vo.setStationNum(obj.getStationNum());
-// productRecordVos.add(vo);
-// }
-// });
-// SysDepart depart = iSysDepartService.getOne(new LambdaQueryWrapper().eq(SysDepart::getId, station.getDepartId()));
-//// productRecordVos.stream().map(o -> o.getStationNum()).collect(Collectors.toList());
-// departMap.put(depart.getDepartName(), productRecordVos);
-// shengchanxianMap.putAll(departMap);
-// });
-// }
-// resultMap.put("shengchanxian_data", shengchanxianMap);
+
+
+// List zyPlanProcessList = iZyPlanProcessService.list(new QueryWrapper().eq("DATE_FORMAT (create_time,'%Y-%m-%d ')", LocalDate.now()));
+ List zyPlanProcessList = iZyPlanProcessService.list(new QueryWrapper().eq("DATE_FORMAT (create_time,'%Y-%m-%d ')", "2023-06-03"));
+ Map countMachineIdMap = new HashMap<>();
+ Map deviceData = new HashMap<>();
+ Optional.ofNullable(zyPlanProcessList).orElse(new LinkedList<>()).forEach(e -> {
+ String machineIds = e.getMachineIds();
+ if (machineIds.contains(",")) {
+ //该工序有多个设备
+ String[] machineIdArrs = machineIds.split(",");
+ for (String machineId : machineIdArrs) {
+ Integer countByMachineId = countMachineIdMap.getOrDefault(machineId, 0);
+ countMachineIdMap.put(machineId, countByMachineId.intValue() + 1);
+ }
+ } else {
+ Integer countByMachineIds = countMachineIdMap.getOrDefault(machineIds, 0);
+ countMachineIdMap.put(machineIds, countByMachineIds.intValue() + 1);
+ }
+ });
+
+ countMachineIdMap.forEach((k, v) -> {
+ ZyDevice zyDevice = iZyDeviceService.getById(k);
+ if (!ObjectUtils.isEmpty(zyDevice)) {
+ Map deviceMap = new LinkedHashMap<>();
+ deviceMap.put("code", zyDevice.getCode());
+ deviceMap.put("name", zyDevice.getName());
+ deviceMap.put("status", "正常");
+ //负载
+ deviceMap.put("ratio", getRatioStr(v, zyDevice.getVal()));
+ deviceData.put(zyDevice.getCode(), deviceMap);
+ }
+ });
+ resultMap.put("shebeixinxi_", deviceData);
return resultMap;
}
@@ -139,21 +172,11 @@ public class ProductionLargeServiceImpl implements ProductionLargeService {
.eq(Station::getDepartId, station.getDepartId())
.orderByAsc(Station::getStationNum)
);
- /**
- * 取每个工位的,生产记录状态0(生产中)的最新一条数据
- */
List productRecordVos = new LinkedList<>();
Optional.ofNullable(stationList).orElse(new LinkedList<>()).forEach(obj -> {
-// ProductRecord productRecord = iProductRecordService.getOne(new LambdaQueryWrapper()
-// .eq(ProductRecord::getStationId, obj.getId())
-// .eq(ProductRecord::getStatus, "0")
-// .orderByDesc(ProductRecord::getCreateTime)
-// .last("limit 1")
-// );
- //查询生产计划工序表,对应设备状态 为生产中的数据
+ //取每个工位上最新一条工序信息
ZyPlanProcess zyPlanProcess = iZyPlanProcessService.getOne(new LambdaQueryWrapper()
.eq(ZyPlanProcess::getStationId, obj.getId())
-// .eq(ZyPlanProcess::getStatus,"1"))
.orderByDesc(ZyPlanProcess::getUpdateTime)
.last("limit 1"));
if (!ObjectUtils.isEmpty(zyPlanProcess)) {
@@ -162,15 +185,23 @@ public class ProductionLargeServiceImpl implements ProductionLargeService {
ProductRecordVo vo = new ProductRecordVo();
if (!ObjectUtils.isEmpty(productPlan)) {
vo.setWorkOrder(productPlan.getProductNo());
+ Groupx groupx = iGroupxService.getById(productPlan.getTeamId());
+ vo.setTeamName(groupx.getGroupName());
}
vo.setProcessName(zyPlanProcess.getProcessName());
vo.setStationName(zyPlanProcess.getStationName());
vo.setMachineNames(zyPlanProcess.getMachineNames());
vo.setStationNum(zyPlanProcess.getStationNum());
vo.setProcessStatus(zyPlanProcess.getStatus());
- vo.setPlanProcessInfo(zyPlanProcess);
+ ZyPlanProcessVo zyPlanProcessVo = new ZyPlanProcessVo();
+ BeanUtils.copyProperties(zyPlanProcess, zyPlanProcessVo);
+ ZyProcess zyProcess = iZyProcessService.getById(zyPlanProcess.getProcessId());
+ if (!ObjectUtils.isEmpty(zyProcess)) {
+ zyPlanProcessVo.setImage(zyProcess.getImage());
+ }
+ vo.setZyPlanProcessVo(zyPlanProcessVo);
productRecordVos.add(vo);
- } else {
+ } else { //没有工序返回工位信息
ProductRecordVo vo = new ProductRecordVo();
vo.setStationName(obj.getStationName());
vo.setStationNum(obj.getStationNum());
@@ -182,7 +213,7 @@ public class ProductionLargeServiceImpl implements ProductionLargeService {
shengchanxianMap.putAll(departMap);
});
}
- resultMap.put("shengchanxian_data", shengchanxianMap);
+ resultMap.put("shengchanxian_", shengchanxianMap);
return resultMap;
}
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/vo/ProductRecordVo.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/vo/ProductRecordVo.java
index 9be807c2..7f1aa8ce 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/vo/ProductRecordVo.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/largeScreen/vo/ProductRecordVo.java
@@ -3,7 +3,7 @@ package org.jeecg.modules.largeScreen.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import org.jeecg.modules.productplan.entity.ZyPlanProcess;
+import org.jeecg.modules.productplan.entity.vo.ZyPlanProcessVo;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
@@ -50,11 +50,14 @@ public class ProductRecordVo implements Serializable {
@ApiModelProperty(value = "工单编号")
private String workOrder;
+ @ApiModelProperty(value = "班组")
+ private String teamName;
+
private Integer stationNum;
@ApiModelProperty(value = "工位工序状态")
private Integer processStatus;
- @ApiModelProperty(value = "工序信息")
- private ZyPlanProcess planProcessInfo;
+ @ApiModelProperty(value = "工序信息Vo")
+ private ZyPlanProcessVo zyPlanProcessVo;
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/controller/ZySpeechMessageController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/controller/ZySpeechMessageController.java
index 443391ac..2121bd4f 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/controller/ZySpeechMessageController.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/controller/ZySpeechMessageController.java
@@ -52,7 +52,7 @@ public class ZySpeechMessageController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(zySpeechMessage, req.getParameterMap());
- queryWrapper.orderByAsc("create_time");
+ queryWrapper.orderByDesc("create_time");
Page page = new Page(pageNo, pageSize);
IPage pageList = zySpeechMessageService.page(page, queryWrapper);
return Result.OK(pageList);
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyPlanProcessController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyPlanProcessController.java
index d5008bfa..bed70015 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyPlanProcessController.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/controller/ZyPlanProcessController.java
@@ -19,8 +19,10 @@ import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.productplan.entity.ZyPlanProcess;
+import org.jeecg.modules.productplan.entity.ZyProductPlan;
import org.jeecg.modules.productplan.entity.vo.ProcessDataVo;
import org.jeecg.modules.productplan.service.IZyPlanProcessService;
+import org.jeecg.modules.productplan.service.IZyProductPlanService;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.team.entity.Station;
@@ -59,6 +61,8 @@ public class ZyPlanProcessController extends JeecgController useridstationid = new HashMap(){{
put("GW01","1600683844590194690");
@@ -379,6 +383,11 @@ public class ZyPlanProcessController extends JeecgController page = new Page(pageNo, pageSize);
IPage pageList = zyPlanProcessService.page(page, queryWrapper);
+ for(int i = 0 ; i < pageList.getRecords().size() ; i++){
+ ZyProductPlan zyProductPlan = zyProductPlanService.getById(pageList.getRecords().get(i).getPlanId());
+ pageList.getRecords().get(i).setProductCode(zyProductPlan.getProductNo());
+ pageList.getRecords().get(i).setProductNo(zyProductPlan.getProductCode());
+ }
return Result.OK(pageList);
}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/ZyPlanProcess.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/ZyPlanProcess.java
index 73e5e3f6..1e695d68 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/ZyPlanProcess.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/ZyPlanProcess.java
@@ -96,6 +96,15 @@ public class ZyPlanProcess implements Serializable {
@TableField(exist = false)
private List userIdList;
+
+ @TableField(exist = false)
+ private String productNo;
+
+ @TableField(exist = false)
+ @Dict(dictTable = "zy_product", dicText = "product_name", dicCode = "product_code")
+ private String productCode;
+
+
/**
* 设备id列表
*/
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/vo/ZyPlanProcessVo.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/vo/ZyPlanProcessVo.java
new file mode 100644
index 00000000..1a548a6c
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/productplan/entity/vo/ZyPlanProcessVo.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.productplan.entity.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.jeecg.modules.productplan.entity.ZyPlanProcess;
+
+@Data
+@ApiModel(value="ZyPlanProcessVo", description="ZyPlanProcessVo")
+public class ZyPlanProcessVo extends ZyPlanProcess {
+
+ @ApiModelProperty(value = "工序图片")
+ private String image;
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/workorder/controller/WorkOrderController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/workorder/controller/WorkOrderController.java
index 49a12936..5a01ef36 100644
--- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/workorder/controller/WorkOrderController.java
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/workorder/controller/WorkOrderController.java
@@ -112,7 +112,7 @@ public class WorkOrderController extends JeecgController pageList = workOrderService.page(page, queryWrapper);
return Result.OK(pageList);
}
-
+
/**
* 添加
*
@@ -126,7 +126,7 @@ public class WorkOrderController extends JeecgController queryByOrderCode(@RequestParam(name="orderCode",required=true) String orderCode,HttpServletRequest req) {
+ WorkOrder workOrder = new WorkOrder();
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(workOrder, req.getParameterMap());
+ queryWrapper.eq("product_code",orderCode);
+ workOrder = workOrderService.list(queryWrapper).get(0);
+ if(workOrder==null) {
+ return Result.error("未找到对应数据");
+ }
+ return Result.OK(workOrder);
+ }
+
/**
* 导出excel
*