From 5efd01db698683e95a63053da43aaa08fa35a185 Mon Sep 17 00:00:00 2001
From: 叶松 <2217086471@qq.com>
Date: 星期五, 01 十二月 2023 11:20:28 +0800
Subject: [PATCH] Merge branch 'master' of http://111.30.93.211:10101/r/supipe
---
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/concret/controller/MixingPlantNewScheduled.java | 35 +
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MouldDto.java | 15
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/impl/WeighServiceImpl.java | 61 ++
web/src/views/GoodManage/MixingScreen.vue | 202 +++++++
web/src/router/index.js | 16
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/WeighService.java | 12
web/src/assets/mixing/container_40.png | 0
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MaterialStockRecordDto.java | 14
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/controller/WeighController.java | 30 +
web/src/assets/mixing/container_10.png | 0
web/src/assets/mixing/list_r_bg.png | 0
web/src/assets/mixing/list_bg.png | 0
web/src/assets/mixing/container_100.png | 0
web/src/views/GoodManage/MixRatioScreen.vue | 11
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/SteelDto.java | 16
web/src/views/MixingInfo/mixRatio.vue | 247 +++++++++
web/src/assets/mixing/header.png | 0
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/AssistGoodDto.java | 16
web/src/api/modules/mixing.js | 5
web/src/assets/mixing/container_90.png | 0
web/src/assets/mixing/name_bg.png | 0
web/src/views/MixingInfo/mixing.vue | 314 ++++++++++++
web/src/assets/mixing/container_60.png | 0
hd/pipe/materialsManage/src/main/resources/mapping/WeighMapper.xml | 312 ++++++++++++
web/src/assets/mixing/list_l_bg.png | 0
web/src/assets/mixing/container_20.png | 0
web/src/assets/mixing/container_80.png | 0
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/TSuMaterialWarehouseRecord.java | 103 +++
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/mapper/WeighMapper.java | 28 +
web/src/views/MixingInfo/components/List.vue | 91 +++
30 files changed, 1,523 insertions(+), 5 deletions(-)
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/concret/controller/MixingPlantNewScheduled.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/concret/controller/MixingPlantNewScheduled.java
index c70f37a..e52fa33 100644
--- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/concret/controller/MixingPlantNewScheduled.java
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/concret/controller/MixingPlantNewScheduled.java
@@ -1,6 +1,7 @@
package com.thhy.materials.modules.biz.concret.controller;
+import com.thhy.materials.modules.biz.concret.entity.SysSteel;
import com.thhy.materials.modules.biz.concret.entity.dto.DicetName;
import com.thhy.materials.modules.biz.concret.entity.dto.TMinxingPlant;
import com.thhy.materials.modules.biz.concret.entity.dto.WeighDto;
@@ -238,5 +239,39 @@
}
+ //苏州项目------- 地磅入库 记录,及库存修改 钢筋
+ @Scheduled(fixedRate = 2000000) // 每隔3秒执行一次任务
+ public void weighbridgeSteel() {
+ //查询搅拌 所有类型
+ List<SysSteel> steels = weighService.steelType();
+
+ List<TWeighbridge> tWeighbridges = weighMapper.weighbridgeListType();
+ for (SysSteel steel : steels){
+ for (TWeighbridge weighbridge :tWeighbridges){
+ if(steel.getSteelName().equals(weighbridge.getMatname())&&steel.getSteelModel().equals(weighbridge.getMatmodel())){
+ //净重
+ String jweight = weighbridge.getJweight();
+ HashMap<String, Object> hashMap = new HashMap<>();
+ hashMap.put("id","");
+ hashMap.put("steelId",steel.getSteelId());
+ hashMap.put("stockType",1);
+ hashMap.put("changeStock",jweight);
+ hashMap.put("companyId","031e3dd577e8ed28e96aa69b");
+ BigDecimal b1 = new BigDecimal(jweight);
+ BigDecimal b2 = new BigDecimal(steel.getStock());
+ RLock lock = redissonclient.getLock("materlock");
+ if(!lock.isLocked()) {
+ lock.lock(10, TimeUnit.SECONDS);
+ //插入记录表//苏州项目(入库计入增加)
+ weighMapper.steelRecordIn(hashMap);
+ //更改记录值
+ weighMapper.steelUp(steel.getSteelId(),b1.add(b2).doubleValue());
+ lock.unlock();
+ }
+ weighMapper.weighbridgeUpdateType(weighbridge.getWeighbridgeId());
+ }
+ }
+ }
+ }
}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/controller/WeighController.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/controller/WeighController.java
index c782925..2797868 100644
--- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/controller/WeighController.java
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/controller/WeighController.java
@@ -8,10 +8,7 @@
import com.thhy.materials.modules.biz.weigh.service.WeighService;
import org.omg.CORBA.StringHolder;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.Map;
@@ -40,6 +37,31 @@
return weighService.weighbridgeList(values);
}
+ //原料库存
+ @PostMapping("/headThingJsInventory")
+ public BasicResult headThingJsInventory(){
+ return weighService.headThingJsInventory();
+ }
+ //料仓列表
+ @PostMapping("/materialWarehouseRecordList")
+ public BasicResult materialWarehouseRecordList(@RequestBody Map<String,Object> values){
+ return weighService.materialWarehouseRecordList(values);
+ }
+ //料仓添加进仓
+ @PostMapping("/materialWarehouseRecordInsert")
+ public BasicResult materialWarehouseRecordInsert(@RequestBody Map<String,Object> values){
+ return weighService.materialWarehouseRecordInsert(values);
+ }
+ //料仓修改进仓
+ @PostMapping("/materialWarehouseRecordUpdate")
+ public BasicResult materialWarehouseRecordUpdate(@RequestBody Map<String,Object> values){
+ return weighService.materialWarehouseRecordUpdate(values);
+ }
+ //删除
+ @GetMapping("/materialWarehouseRecordDel")
+ public BasicResult materialWarehouseRecordDel(@RequestParam String id){
+ return weighService.materialWarehouseRecordDel(id);
+ }
}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/TSuMaterialWarehouseRecord.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/TSuMaterialWarehouseRecord.java
new file mode 100644
index 0000000..fcbef74
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/TSuMaterialWarehouseRecord.java
@@ -0,0 +1,103 @@
+package com.thhy.materials.modules.biz.weigh.entity;
+
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Getter
+@Setter
+@ToString
+public class TSuMaterialWarehouseRecord implements Serializable {
+ /**
+ *
+ */
+ private String id;
+
+ /**
+ * 桌号
+ */
+ private Integer tableNum;
+
+ /**
+ * 产地名称
+ */
+ private String nameOfOrigin;
+
+ /**
+ * 物料名称
+ */
+ private String materialName;
+
+ /**
+ * 进厂数量
+ */
+ private Double incomingQuantity;
+
+ /**
+ * 进厂日期
+ */
+ private Date inTime;
+
+ /**
+ * 检验状态
+ */
+ private Integer status;
+
+ /**
+ * 检验日期
+ */
+ private Date inspectionDate;
+
+ /**
+ * 报告编号
+ */
+ private String reportNumber;
+
+ /**
+ * 创建日期
+ */
+ private Date createTime;
+
+ /**
+ *
+ */
+ private String createUser;
+
+ /**
+ *
+ */
+ private Date updateTime;
+
+ /**
+ *
+ */
+ private String updateUser;
+
+ /**
+ *
+ */
+ private Integer isUse;
+
+ /**
+ *
+ */
+ private String companyId;
+
+ /**
+ * 入库方式 1手动 2自动
+ */
+ private Integer type;
+
+ /**
+ * This field was generated by MyBatis Generator.
+ * This field corresponds to the database table t_su_material_warehouse_record
+ *
+ * @mbg.generated Thu Nov 30 14:55:49 CST 2023
+ */
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/AssistGoodDto.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/AssistGoodDto.java
new file mode 100644
index 0000000..f317633
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/AssistGoodDto.java
@@ -0,0 +1,16 @@
+package com.thhy.materials.modules.biz.weigh.entity.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+@Data
+public class AssistGoodDto implements Serializable {
+ //辅材名称
+ private String assistName;
+ //辅材类型
+ private String assistType;
+ //辅材库存
+ private String stock;
+
+
+}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MaterialStockRecordDto.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MaterialStockRecordDto.java
new file mode 100644
index 0000000..a229fcc
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MaterialStockRecordDto.java
@@ -0,0 +1,14 @@
+package com.thhy.materials.modules.biz.weigh.entity.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+@Data
+public class MaterialStockRecordDto implements Serializable {
+ //原料名称
+ private String materialName;
+ //原料值
+ private String materialValue;
+
+
+}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MouldDto.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MouldDto.java
new file mode 100644
index 0000000..b3b9fbc
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MouldDto.java
@@ -0,0 +1,15 @@
+package com.thhy.materials.modules.biz.weigh.entity.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+@Data
+public class MouldDto implements Serializable {
+ //模具编号
+ private String mouldNum;
+ //使用状态
+ private String free;
+ //次数
+ private String currentCycleTime;
+
+}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/SteelDto.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/SteelDto.java
new file mode 100644
index 0000000..dbc5e11
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/SteelDto.java
@@ -0,0 +1,16 @@
+package com.thhy.materials.modules.biz.weigh.entity.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+@Data
+public class SteelDto implements Serializable {
+ //钢筋名
+ private String steelName;
+ //钢筋型号
+ private String steelModel;
+ //库存
+ private String stock;
+
+
+}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/mapper/WeighMapper.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/mapper/WeighMapper.java
index 9b87258..af60e21 100644
--- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/mapper/WeighMapper.java
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/mapper/WeighMapper.java
@@ -1,13 +1,19 @@
package com.thhy.materials.modules.biz.weigh.mapper;
import com.thhy.general.annotations.Idkey;
+import com.thhy.materials.modules.biz.concret.entity.SysSteel;
import com.thhy.materials.modules.biz.concret.entity.dto.DicetName;
import com.thhy.materials.modules.biz.concret.entity.dto.TMinxingPlant;
import com.thhy.materials.modules.biz.concret.entity.dto.WeighDto;
import com.thhy.materials.modules.biz.video.entity.TVideoNo;
import com.thhy.materials.modules.biz.weigh.dto.QueryWeighDto;
+import com.thhy.materials.modules.biz.weigh.entity.TSuMaterialWarehouseRecord;
import com.thhy.materials.modules.biz.weigh.entity.TWeighbridge;
import com.thhy.materials.modules.biz.weigh.entity.WeighVo;
+import com.thhy.materials.modules.biz.weigh.entity.dto.AssistGoodDto;
+import com.thhy.materials.modules.biz.weigh.entity.dto.MaterialStockRecordDto;
+import com.thhy.materials.modules.biz.weigh.entity.dto.MouldDto;
+import com.thhy.materials.modules.biz.weigh.entity.dto.SteelDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PostMapping;
@@ -81,4 +87,26 @@
void materialStockRecordIns(HashMap<String, Object> hashMap);
void weighbridgeUpdateType(Integer weighbridgeId);
+
+ List<MaterialStockRecordDto> materialStockInventory();
+
+ List<SteelDto> steelInventory();
+
+ List<AssistGoodDto> assistGoodInventory();
+
+ List<MouldDto> mouldInventory();
+
+ List<SysSteel> steelType();
+
+ void steelRecordIn(@Idkey("id") HashMap<String, Object> hashMap);
+
+ void steelUp(@Param("steelId") String steelId,@Param("doubleValue") double doubleValue);
+
+ List<TSuMaterialWarehouseRecord> materialWarehouseRecordList(Map<String, Object> values);
+
+ void materialWarehouseRecordInsert(@Idkey("id") Map<String, Object> values);
+
+ void materialWarehouseRecordUpdate(Map<String, Object> values);
+
+ void materialWarehouseRecordDel(String id);
}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/WeighService.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/WeighService.java
index 895dc22..1674876 100644
--- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/WeighService.java
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/WeighService.java
@@ -1,6 +1,7 @@
package com.thhy.materials.modules.biz.weigh.service;
import com.thhy.general.common.BasicResult;
+import com.thhy.materials.modules.biz.concret.entity.SysSteel;
import com.thhy.materials.modules.biz.concret.entity.dto.DicetName;
import com.thhy.materials.modules.biz.concret.entity.dto.TMinxingPlant;
import com.thhy.materials.modules.biz.concret.entity.dto.WeighDto;
@@ -40,4 +41,15 @@
BasicResult weighbridgeList(Map<String, Object> values);
+ BasicResult headThingJsInventory();
+
+ List<SysSteel> steelType();
+
+ BasicResult materialWarehouseRecordList(Map<String, Object> values);
+
+ BasicResult materialWarehouseRecordInsert(Map<String, Object> values);
+
+ BasicResult materialWarehouseRecordUpdate(Map<String, Object> values);
+
+ BasicResult materialWarehouseRecordDel(String id);
}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/impl/WeighServiceImpl.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/impl/WeighServiceImpl.java
index 3e1f773..b68da00 100644
--- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/impl/WeighServiceImpl.java
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/impl/WeighServiceImpl.java
@@ -3,18 +3,25 @@
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.thhy.general.common.BasicResult;
+import com.thhy.materials.modules.biz.concret.entity.SysSteel;
import com.thhy.materials.modules.biz.concret.entity.dto.DicetName;
import com.thhy.materials.modules.biz.concret.entity.dto.TMinxingPlant;
import com.thhy.materials.modules.biz.concret.entity.dto.WeighDto;
import com.thhy.materials.modules.biz.weigh.dto.QueryWeighDto;
+import com.thhy.materials.modules.biz.weigh.entity.TSuMaterialWarehouseRecord;
import com.thhy.materials.modules.biz.weigh.entity.TWeighbridge;
import com.thhy.materials.modules.biz.weigh.entity.WeighVo;
+import com.thhy.materials.modules.biz.weigh.entity.dto.AssistGoodDto;
+import com.thhy.materials.modules.biz.weigh.entity.dto.MaterialStockRecordDto;
+import com.thhy.materials.modules.biz.weigh.entity.dto.MouldDto;
+import com.thhy.materials.modules.biz.weigh.entity.dto.SteelDto;
import com.thhy.materials.modules.biz.weigh.mapper.WeighMapper;
import com.thhy.materials.modules.biz.weigh.service.WeighService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -95,4 +102,58 @@
PageInfo<TWeighbridge> tWeighbridgePageInfo = new PageInfo<>(weighbridges);
return BasicResult.success(tWeighbridgePageInfo);
}
+
+ @Override
+ public BasicResult headThingJsInventory() {
+
+ //原料库存
+ List<MaterialStockRecordDto> materialStockDtos =weighMapper.materialStockInventory();
+ //钢筋
+ List<SteelDto> steelDtos = weighMapper.steelInventory();
+ //辅材
+ List<AssistGoodDto> assistGoodDtos = weighMapper.assistGoodInventory();
+
+ //模具
+ List<MouldDto> mouldDtos = weighMapper.mouldInventory();
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("materialStockDtos",materialStockDtos);
+ map.put("steelDtos",steelDtos);
+ map.put("assistGoodDtos",assistGoodDtos);
+ map.put("mouldDtos",mouldDtos);
+ return BasicResult.success(map);
+ }
+
+ @Override
+ public List<SysSteel> steelType() {
+ return weighMapper.steelType();
+ }
+
+ @Override
+ public BasicResult materialWarehouseRecordList(Map<String, Object> values) {
+ Integer pageSize = Integer.valueOf(values.get("pageSize").toString());
+ Integer pageNum = Integer.valueOf(values.get("pageNum").toString());
+ PageHelper.startPage(pageNum,pageSize);
+ List<TSuMaterialWarehouseRecord> records = weighMapper.materialWarehouseRecordList(values);
+ PageInfo<TSuMaterialWarehouseRecord> recordPageInfo = new PageInfo<>(records);
+ return BasicResult.success(recordPageInfo);
+ }
+
+ @Override
+ public BasicResult materialWarehouseRecordInsert(Map<String, Object> values) {
+ values.put("id","");
+ weighMapper.materialWarehouseRecordInsert(values);
+ return BasicResult.success();
+ }
+
+ @Override
+ public BasicResult materialWarehouseRecordUpdate(Map<String, Object> values) {
+ weighMapper.materialWarehouseRecordUpdate(values);
+ return BasicResult.success();
+ }
+
+ @Override
+ public BasicResult materialWarehouseRecordDel(String id) {
+ weighMapper.materialWarehouseRecordDel(id);
+ return BasicResult.success();
+ }
}
diff --git a/hd/pipe/materialsManage/src/main/resources/mapping/WeighMapper.xml b/hd/pipe/materialsManage/src/main/resources/mapping/WeighMapper.xml
index 55cbeb7..ea28f6e 100644
--- a/hd/pipe/materialsManage/src/main/resources/mapping/WeighMapper.xml
+++ b/hd/pipe/materialsManage/src/main/resources/mapping/WeighMapper.xml
@@ -711,4 +711,316 @@
types=2
where weighbridge_id=#{weighbridgeId}
</update>
+
+ <select id="materialStockInventory" resultType="com.thhy.materials.modules.biz.weigh.entity.dto.MaterialStockRecordDto">
+ SELECT
+ s.dict_name AS materialName,
+ t.material_value AS materialValue
+FROM
+ t_material_stock t
+ LEFT JOIN sys_dict s ON t.material_name = s.dict_id
+ </select>
+ <select id="steelInventory" resultType="com.thhy.materials.modules.biz.weigh.entity.dto.SteelDto">
+ select
+ steel_name as steelName,
+ steel_model as steelModel,
+ stock as stock
+ from sys_steel
+ </select>
+ <select id="assistGoodInventory" resultType="com.thhy.materials.modules.biz.weigh.entity.dto.AssistGoodDto">
+ select s.assist_name as s.assistName,
+ d.dict_name as assistType,
+ s.stock as stock
+ from sys_assist_good s left join sys_dict d on s.assist_type=d.dict_id
+ </select>
+ <select id="mouldInventory" resultType="com.thhy.materials.modules.biz.weigh.entity.dto.MouldDto">
+ select
+ mould_num as mouldNum,
+ free as free,
+ current_cycle_time as currentCycleTime
+ from sys_mould
+ </select>
+ <select id="steelType" resultType="com.thhy.materials.modules.biz.concret.entity.SysSteel">
+ select
+ steel_id as steelId,
+ steel_name as steelName,
+ steel_model as steelModel,
+ stock as stock
+ from
+ sys_steel
+ </select>
+ <insert id="steelRecordIn" >
+ insert into sys_steel_record
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="steelId != null">
+ steel_id,
+ </if>
+ <if test="stockType != null">
+ stock_type,
+ </if>
+ <if test="createTime != null">
+ create_time,
+ </if>
+ <if test="changeStock != null">
+ change_stock,
+ </if>
+ <if test="supplierId != null">
+ supplier_id,
+ </if>
+ <if test="factoryName != null">
+ factory_name,
+ </if>
+ <if test="brand != null">
+ brand,
+ </if>
+ <if test="lineCode != null">
+ line_code,
+ </if>
+ <if test="proId != null">
+ pro_id,
+ </if>
+ <if test="createUser != null">
+ create_user,
+ </if>
+ <if test="companyId != null">
+ company_id,
+ </if>
+ <if test="carName != null">
+ car_name,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=VARCHAR},
+ </if>
+ <if test="steelId != null">
+ #{steelId,jdbcType=VARCHAR},
+ </if>
+ <if test="stockType != null">
+ #{stockType,jdbcType=INTEGER},
+ </if>
+ <if test="createTime != null">
+ #{createTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="changeStock != null">
+ #{changeStock,jdbcType=DOUBLE},
+ </if>
+ <if test="supplierId != null">
+ #{supplierId,jdbcType=VARCHAR},
+ </if>
+ <if test="factoryName != null">
+ #{factoryName,jdbcType=VARCHAR},
+ </if>
+ <if test="brand != null">
+ #{brand,jdbcType=VARCHAR},
+ </if>
+ <if test="lineCode != null">
+ #{lineCode,jdbcType=VARCHAR},
+ </if>
+ <if test="proId != null">
+ #{proId,jdbcType=VARCHAR},
+ </if>
+ <if test="createUser != null">
+ #{createUser,jdbcType=VARCHAR},
+ </if>
+ <if test="companyId != null">
+ #{companyId,jdbcType=VARCHAR},
+ </if>
+ <if test="carName != null">
+ #{carName,jdbcType=VARCHAR},
+ </if>
+ </trim>
+ </insert>
+ <update id="steelUp" >
+ update sys_steel set
+ stock=#{doubleValue}
+ where steel_id=#{steelId}
+ </update>
+
+ <select id="materialWarehouseRecordList" resultType="com.thhy.materials.modules.biz.weigh.entity.TSuMaterialWarehouseRecord">
+ select
+ id,
+ table_num as tableNum,
+ name_of_origin as nameOfOrigin,
+ material_name as materialName,
+ incoming_quantity as incomingQuantity,
+ in_time as inTime,
+ status as status,
+ inspection_date as inspectionDate,
+ report_number as reportNumber,
+ create_time as createTime,
+ `type`
+ from t_su_material_warehouse_record
+ where 1=1
+ <if test="tableNum!=null and tableNum!='' ">
+ and table_num=#{tableNum}
+ </if>
+ <if test="type!=null and type!='' ">
+ and `type`=#{type}
+ </if>
+ <if test="strTime!=null and strTime!='' and endTime!=null and endTime!='' ">
+ and create_time between #{strTime} and #{endTime}
+ </if>
+ order by create_time desc
+ </select>
+ <insert id="materialWarehouseRecordInsert" >
+ insert into t_su_material_warehouse_record
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ id,
+ </if>
+ <if test="tableNum != null">
+ table_num,
+ </if>
+ <if test="nameOfOrigin != null">
+ name_of_origin,
+ </if>
+ <if test="materialName != null">
+ material_name,
+ </if>
+ <if test="incomingQuantity != null">
+ incoming_quantity,
+ </if>
+ <if test="inTime != null">
+ in_time,
+ </if>
+ <if test="status != null">
+ status,
+ </if>
+ <if test="inspectionDate != null">
+ inspection_date,
+ </if>
+ <if test="reportNumber != null">
+ report_number,
+ </if>
+ <if test="createTime != null">
+ create_time,
+ </if>
+ <if test="createUser != null">
+ create_user,
+ </if>
+ <if test="updateTime != null">
+ update_time,
+ </if>
+ <if test="updateUser != null">
+ update_user,
+ </if>
+ <if test="isUse != null">
+ is_use,
+ </if>
+ <if test="companyId != null">
+ company_id,
+ </if>
+ <if test="type != null">
+ type,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">
+ #{id,jdbcType=VARCHAR},
+ </if>
+ <if test="tableNum != null">
+ #{tableNum,jdbcType=INTEGER},
+ </if>
+ <if test="nameOfOrigin != null">
+ #{nameOfOrigin,jdbcType=VARCHAR},
+ </if>
+ <if test="materialName != null">
+ #{materialName,jdbcType=VARCHAR},
+ </if>
+ <if test="incomingQuantity != null">
+ #{incomingQuantity,jdbcType=DOUBLE},
+ </if>
+ <if test="inTime != null">
+ #{inTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="status != null">
+ #{status,jdbcType=INTEGER},
+ </if>
+ <if test="inspectionDate != null">
+ #{inspectionDate,jdbcType=TIMESTAMP},
+ </if>
+ <if test="reportNumber != null">
+ #{reportNumber,jdbcType=VARCHAR},
+ </if>
+ <if test="createTime != null">
+ #{createTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="createUser != null">
+ #{createUser,jdbcType=VARCHAR},
+ </if>
+ <if test="updateTime != null">
+ #{updateTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="updateUser != null">
+ #{updateUser,jdbcType=VARCHAR},
+ </if>
+ <if test="isUse != null">
+ #{isUse,jdbcType=INTEGER},
+ </if>
+ <if test="companyId != null">
+ #{companyId,jdbcType=VARCHAR},
+ </if>
+ <if test="type != null">
+ #{type,jdbcType=INTEGER},
+ </if>
+ </trim>
+ </insert>
+ <update id="materialWarehouseRecordUpdate" >
+ update t_su_material_warehouse_record
+ <set>
+ <if test="tableNum != null">
+ table_num = #{tableNum,jdbcType=INTEGER},
+ </if>
+ <if test="nameOfOrigin != null">
+ name_of_origin = #{nameOfOrigin,jdbcType=VARCHAR},
+ </if>
+ <if test="materialName != null">
+ material_name = #{materialName,jdbcType=VARCHAR},
+ </if>
+ <if test="incomingQuantity != null">
+ incoming_quantity = #{incomingQuantity,jdbcType=DOUBLE},
+ </if>
+ <if test="inTime != null">
+ in_time = #{inTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="status != null">
+ status = #{status,jdbcType=INTEGER},
+ </if>
+ <if test="inspectionDate != null">
+ inspection_date = #{inspectionDate,jdbcType=TIMESTAMP},
+ </if>
+ <if test="reportNumber != null">
+ report_number = #{reportNumber,jdbcType=VARCHAR},
+ </if>
+ <if test="createTime != null">
+ create_time = #{createTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="createUser != null">
+ create_user = #{createUser,jdbcType=VARCHAR},
+ </if>
+ <if test="updateTime != null">
+ update_time = #{updateTime,jdbcType=TIMESTAMP},
+ </if>
+ <if test="updateUser != null">
+ update_user = #{updateUser,jdbcType=VARCHAR},
+ </if>
+ <if test="isUse != null">
+ is_use = #{isUse,jdbcType=INTEGER},
+ </if>
+ <if test="companyId != null">
+ company_id = #{companyId,jdbcType=VARCHAR},
+ </if>
+ <if test="type != null">
+ type = #{type,jdbcType=INTEGER},
+ </if>
+ </set>
+ where id = #{id,jdbcType=VARCHAR}
+ </update>
+ <delete id="materialWarehouseRecordDel" parameterType="java.lang.String">
+ delete from t_su_material_warehouse_record where id=#{id}
+ </delete>
</mapper>
\ No newline at end of file
diff --git a/web/src/api/modules/mixing.js b/web/src/api/modules/mixing.js
index c017b66..d91fa20 100644
--- a/web/src/api/modules/mixing.js
+++ b/web/src/api/modules/mixing.js
@@ -6,5 +6,8 @@
// H5搅拌站大屏展示数据信息
showHmixings: params =>
axios.get('/materials/suMaterialWarehouse/selectNewOneByTableNum', {params}),
-
+ getMixing: params =>
+ axios.get('/materials/materialRelease/siloList', {params}),
+ getMixRatio: params =>
+ axios.post('/materials/materialRelease/mixingConsumeList', params),
}
\ No newline at end of file
diff --git a/web/src/assets/mixing/container_10.png b/web/src/assets/mixing/container_10.png
new file mode 100644
index 0000000..15291b0
--- /dev/null
+++ b/web/src/assets/mixing/container_10.png
Binary files differ
diff --git a/web/src/assets/mixing/container_100.png b/web/src/assets/mixing/container_100.png
new file mode 100644
index 0000000..5b73dda
--- /dev/null
+++ b/web/src/assets/mixing/container_100.png
Binary files differ
diff --git a/web/src/assets/mixing/container_20.png b/web/src/assets/mixing/container_20.png
new file mode 100644
index 0000000..2bbe0dc
--- /dev/null
+++ b/web/src/assets/mixing/container_20.png
Binary files differ
diff --git a/web/src/assets/mixing/container_40.png b/web/src/assets/mixing/container_40.png
new file mode 100644
index 0000000..d2f52d3
--- /dev/null
+++ b/web/src/assets/mixing/container_40.png
Binary files differ
diff --git a/web/src/assets/mixing/container_60.png b/web/src/assets/mixing/container_60.png
new file mode 100644
index 0000000..5ced4a7
--- /dev/null
+++ b/web/src/assets/mixing/container_60.png
Binary files differ
diff --git a/web/src/assets/mixing/container_80.png b/web/src/assets/mixing/container_80.png
new file mode 100644
index 0000000..38348d1
--- /dev/null
+++ b/web/src/assets/mixing/container_80.png
Binary files differ
diff --git a/web/src/assets/mixing/container_90.png b/web/src/assets/mixing/container_90.png
new file mode 100644
index 0000000..47ee2ac
--- /dev/null
+++ b/web/src/assets/mixing/container_90.png
Binary files differ
diff --git a/web/src/assets/mixing/header.png b/web/src/assets/mixing/header.png
new file mode 100644
index 0000000..be0a727
--- /dev/null
+++ b/web/src/assets/mixing/header.png
Binary files differ
diff --git a/web/src/assets/mixing/list_bg.png b/web/src/assets/mixing/list_bg.png
new file mode 100644
index 0000000..462f5e3
--- /dev/null
+++ b/web/src/assets/mixing/list_bg.png
Binary files differ
diff --git a/web/src/assets/mixing/list_l_bg.png b/web/src/assets/mixing/list_l_bg.png
new file mode 100644
index 0000000..d8c7dc5
--- /dev/null
+++ b/web/src/assets/mixing/list_l_bg.png
Binary files differ
diff --git a/web/src/assets/mixing/list_r_bg.png b/web/src/assets/mixing/list_r_bg.png
new file mode 100644
index 0000000..63add79
--- /dev/null
+++ b/web/src/assets/mixing/list_r_bg.png
Binary files differ
diff --git a/web/src/assets/mixing/name_bg.png b/web/src/assets/mixing/name_bg.png
new file mode 100644
index 0000000..cf1da41
--- /dev/null
+++ b/web/src/assets/mixing/name_bg.png
Binary files differ
diff --git a/web/src/router/index.js b/web/src/router/index.js
index 2d80873..fe7eda0 100644
--- a/web/src/router/index.js
+++ b/web/src/router/index.js
@@ -15,6 +15,22 @@
}
},
{
+ path: '/mixing/*',
+ name: 'mixing',
+ meta: {
+ title: '管片场拌合站'
+ },
+ component: () => import('../views/MixingInfo/mixing.vue'),
+ },
+ {
+ path: '/mixratio/*',
+ name: 'mixratio',
+ meta: {
+ title: '管片场拌合站表格'
+ },
+ component: () => import('../views/MixingInfo/mixRatio.vue'),
+ },
+ {
path: `/mixingInfo/num=1`,
name: 'mixingInfo',
meta: {
diff --git a/web/src/views/GoodManage/MixRatioScreen.vue b/web/src/views/GoodManage/MixRatioScreen.vue
new file mode 100644
index 0000000..74753ca
--- /dev/null
+++ b/web/src/views/GoodManage/MixRatioScreen.vue
@@ -0,0 +1,11 @@
+<template>
+ <div>222222222222222</div>
+</template>
+
+<script>
+
+</script>
+
+<style lang="sass" scoped>
+@import '../../style/layout-main.scss';
+</style>
\ No newline at end of file
diff --git a/web/src/views/GoodManage/MixingScreen.vue b/web/src/views/GoodManage/MixingScreen.vue
new file mode 100644
index 0000000..5e6d786
--- /dev/null
+++ b/web/src/views/GoodManage/MixingScreen.vue
@@ -0,0 +1,202 @@
+<!-- 设备管理 ==> 拌合站屏管理-->
+<template>
+ <div class="main">
+ <div class="main_header">
+ <div class="header_item">
+ <span class="header_label">拌合站屏:</span>
+ <el-select size="mini" v-model="queryInfo.screen" placeholder="请选择拌合站屏">
+ <el-option v-for="item in queryInfoScreens" :key="item.value" :label="item.label"
+ :value="item.value"></el-option>
+ </el-select>
+ </div>
+ <div class="header_item">
+ <span class="header_label">录入方式:</span>
+ <el-select size="mini" v-model="queryInfo.inmode" placeholder="请选择录入方式">
+ <el-option v-for="item in queryInfoInmodes" :key="item.value" :label="item.label"
+ :value="item.value"></el-option>
+ </el-select>
+ </div>
+ <div class="header_item">
+ <span class="header_label">创建时间:</span>
+ <el-date-picker type="daterange" v-model="times" value-format="yyyy-MM-dd" start-placeholder="起始时间"
+ end-placeholder="结束时间" @change="changeTime" clear></el-date-picker>
+ </div>
+ <div class="header_item">
+ <el-button icon="el-icon-search" v-permission="'search'" @click="queryReset">查询</el-button>
+ <el-button icon="el-icon-plus" v-permission="'insert'" @click="addRow">新增</el-button>
+ </div>
+ </div>
+ <div class="main_content">
+ <div class="main_content_item" v-for="(item, index) in ['', '', '', '', '',]" :key="index">
+
+ </div>
+ </div>
+
+ <!-- 详情dialog -->
+ <el-dialog width="400px" class="prop_dialog" v-if="isRenderDialog" title="详情" :visible.sync="asyncVisible">
+
+ <el-form class="rule_form" label-width="auto">
+
+ <div class="divider"></div>
+
+ <el-form-item label="巡检任务:">{{ info.task }}</el-form-item>
+
+ <el-form-item label="巡检标准:">{{ info.standard }}</el-form-item>
+
+ <el-form-item label="巡检人员:">{{ info.name }}</el-form-item>
+
+ <div class="divider"><span>巡检路线</span></div>
+
+ <div class="regions">
+ <div class="region" v-for=" item in info.regions " :key="item.regionId">{{
+ item.region }}
+ </div>
+ </div>
+ </el-form>
+ </el-dialog>
+
+ </div>
+</template>
+<script>
+export default {
+ data() {
+ return {
+ loading: false,
+ isRenderDialog: false,
+ asyncVisible: false,
+
+ info: { // 详情信息
+ task: '',
+ standard: '',
+ name: '',
+ regions: [],
+ },
+ userId: '', // 存储点击后的用户id
+ taskId: '', // 存储点击后的巡检任务id
+ times: [], // 时间范围
+ queryInfo: {
+ pageNum: 1,
+ pageSize: 10,
+ inmode: '', // 录入方式
+ screen: '', // 拌合站屏
+ startTime: '',
+ endTime: '',
+ },
+ regionInfos: { // 巡检路线详情
+ isRenderDialog: false,
+ asyncVisible: false,
+ time: '', // 巡检时间
+ region: '', // 巡检区域
+ res: '', // 巡检结果
+ img: '', // 上传的图片
+ location: '', // 位置
+ }
+ }
+ },
+ beforeCreate() {
+ this.queryInfoInmodes = [
+ {value: '0', label: '手动'},
+ {value: '1', label: '自动'},
+ ]
+ this.queryInfoScreens = [
+ {value: '0', label: '1-1'},
+ {value: '1', label: '1-2'},
+ ]
+ this.$http = this.$api.Safety.RiskGrad.polling
+ },
+ created() {
+ this.setTableColumn()
+ this.getLists()
+ },
+ methods: {
+ // 获取table列表数据
+ getLists() {
+ let params = this.queryInfo
+ this.loading = true
+ this.$http.taskcardGetlists(params).then(res => {
+ if (res.statusMsg === 'ok') {
+ console.log(res)
+ }
+ this.loading = false
+ })
+ },
+ // 初始化 table 配置
+ setTableColumn() {
+ },
+ addRow() { },
+ // 查询按钮列表信息
+ queryReset() {
+ this.queryInfo.pageNum = 1
+ this.queryInfo.pageSize = 10
+ this.getLists()
+ },
+ changeTime(times) {
+ times = times || ['', '']
+ this.queryInfo.startTime = times[0]
+ this.queryInfo.endTime = times[1]
+ },
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+@import '@/style/layout-main.scss';
+
+.rule_form {
+ color: #fff;
+
+ ::v-deep .el-form-item__content {
+ display: block;
+ }
+
+ .image {
+ flex: none;
+ width: 91px;
+ height: 120px;
+ margin-right: 15px;
+ border-radius: 5px;
+ border: 1px solid #0c5983;
+
+ img {
+ width: 100%;
+ }
+ }
+}
+
+.regions {
+ text-align: center;
+
+ .region {
+ line-height: 34px;
+ margin-bottom: 16px;
+ background: rgba(56, 175, 247, .25);
+ cursor: pointer;
+ }
+}
+
+.divider {
+ position: relative;
+ margin-bottom: 30px;
+ text-indent: 10px;
+ color: #fff;
+ border-left: 3px solid #18F6F8;
+
+ &::after {
+ content: "";
+ position: absolute;
+ left: 0;
+ bottom: -8px;
+ width: 100%;
+ padding: 20px 0;
+ border-bottom: 1px solid #0C4D6F;
+ }
+}
+
+.main_content .main_content_item {
+ float: left;
+ width: 48%;
+ height: 200px;
+ margin: 1%;
+ border: 1px solid red;
+}
+</style>
\ No newline at end of file
diff --git a/web/src/views/MixingInfo/components/List.vue b/web/src/views/MixingInfo/components/List.vue
new file mode 100644
index 0000000..4642226
--- /dev/null
+++ b/web/src/views/MixingInfo/components/List.vue
@@ -0,0 +1,91 @@
+<template>
+ <div class="list">
+ <div class="item" v-for="item in fieldMap" :key="item.name">
+ <span class="name">{{ item.name }}:</span>
+ <template v-if="item.formatter">
+ <span class="value" :class="item.class(data)">{{ item.formatter(data) }}</span>
+ </template>
+ <template v-else>
+ <span class="value">{{ data && data[item.type] || '' }}</span>
+ </template>
+
+ </div>
+ </div>
+</template>
+<script>
+export default {
+ data() {
+ return {}
+ },
+ props: {
+ data: {
+ type: Object,
+ default: () => { }
+ }
+ },
+ beforeCreate() {
+ // 字段映射表
+ this.fieldMap = [
+ {name: '规格型号', type: 'spec'},
+ {name: '产地名称', type: 'producer'},
+ {name: '炉(批)号', type: 'stove'},
+ {name: '进场数量', type: 'inNum'},
+ {name: '进场日期', type: 'inDate'},
+ {name: '检验日期', type: 'inspectDate'},
+ {
+ name: '检验状态', class(row) {
+ let state = row && row.inspectState
+ return {1: 'style1', 2: 'style2', 3: 'style3'}[state] || ''
+ }, formatter(row) {
+ let state = row && row.inspectState || ''
+ return {1: '合格', 2: '不合格', 3: '待检测'}[state] || ''
+ }
+ },
+ {name: '报告编号', type: 'reportNumber'},
+ ]
+ },
+}
+</script>
+
+<style scoped>
+.list {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+
+ .item {
+ display: flex;
+ flex: 1;
+ margin-top: 4px;
+
+ .name {
+ margin-right: 4px;
+ text-indent: 6px;
+ white-space: nowrap;
+ }
+
+ .value {
+ color: #03F1FF;
+
+ &.style1 {
+ font-size: 1.5rem;
+ line-height: 1.2rem;
+ color: #16F849;
+ }
+
+ &.style2 {
+ font-size: 1.5rem;
+ line-height: 1.2rem;
+ color: red;
+ }
+
+ &.style3 {
+ font-size: 1.5rem;
+ line-height: 1.2rem;
+ color: #FF6600;
+ }
+ }
+
+ }
+}
+</style>
diff --git a/web/src/views/MixingInfo/mixRatio.vue b/web/src/views/MixingInfo/mixRatio.vue
new file mode 100644
index 0000000..075a28a
--- /dev/null
+++ b/web/src/views/MixingInfo/mixRatio.vue
@@ -0,0 +1,247 @@
+<template>
+ <div class="wrap">
+ <div class="header">
+ <div class="header_name">中铁十四局通甬站前I标管片场拌合站</div>
+ </div>
+ <div class="table">
+ <div class="row title">{{ info.signboardName }}</div>
+
+ <div class="row">
+ <div class="name">工程名称</div>
+ <div class="value">{{ info.proName }}</div>
+ </div>
+
+ <div class="row">
+ <div class="name">施工单位</div>
+ <div class="value">{{ info.constructionUnit }}</div>
+ </div>
+
+ <div class="row line">
+ <div>
+ <div class="name">施工日期</div>
+ <div class="value">{{ info.saveStamp }}</div>
+ </div>
+ <div>
+ <div class="name">施工部位</div>
+ <div class="value">{{ info.construction }}</div>
+ </div>
+ </div>
+
+ <div class="row" v-for="item in dataLists" :key="item.name">
+ <div class="name">{{ item.name }}</div>
+ <div class="column">
+ <div class="column-item" v-for="(sub, index) in item.value" :key="index">{{ sub }}</div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+</template>
+
+<script>
+const interval = function (fn, Vue) {
+ let timer = setInterval(
+ (() => {
+ fn()
+ return fn
+ })(),
+ 1000 * 60 * 1
+ )
+ if (Vue) {
+ Vue.$once('hook:beforeDestroy', function () {
+ timer && clearInterval(timer)
+ })
+ }
+}
+export default {
+ name: 'Page2',
+ data() {
+ return {
+ info: {
+ signboardName: '', // 标识排
+ proName: '', // 工程名称
+ constructionUnit: '', // 施工单位
+ saveStamp: '', // 施工日期
+ construction: '', // 施工部位
+ },
+ dataLists: [
+ {name: '材料名称', type: 'dictName', value: []}, // 材料名称
+ {name: '规格型号', type: 'spec', value: []}, // 规格型号
+ {name: '生产厂家', type: 'manufacturer', value: []}, // 生产厂家
+ {name: '材料含水率(%)', type: 'watFull', value: []}, // 含水率
+ {name: '理论用量(kg/m³)', type: 'planAmnt', value: []}, // 理论用量
+ {name: '实际用量(kg/m³)', type: 'factAmnt', value: []}, // 实际用量
+ ]
+ }
+ },
+ beforeCreate() {
+ this.$http = this.$api.Infos
+ },
+ beforeRouteEnter(to, form, next) {
+ const {path} = to
+
+ const type = path.slice(-1)
+
+ next(vm => {
+ vm.type = type
+ interval(vm.getLists, vm)
+ })
+ },
+ mounted() {
+ let width = document.getElementsByClassName('wrap')[0].clientWidth
+ let $html = document.getElementsByTagName('html')[0]
+ let fontsize = width / 1920 * 35.2
+ $html.style.fontSize = `${fontsize}px`
+ window.onresize = () => {
+ let width = document.getElementById('app').clientWidth
+ let fontsize = width / 1920 * 35.2
+ $html.style.fontSize = `${fontsize}px`
+ }
+ },
+ beforeDestroy() {
+ let $html = document.getElementsByTagName('html')[0]
+ $html.style.fontSize = ''
+ },
+ methods: {
+ async getLists() {
+ const params = {
+ pageNum: --this.type, // 传 0 1对应两个页面
+ pageSize: 1,
+ }
+ this.$api.Infos.getMixRatio(params).then(res => {
+ if (res.statusMsg === 'ok' && res.data) {
+ const {list} = res.data
+ if (list && list.length) {
+ const item = list[0]
+ const {tmixingConsumes} = item
+
+ this.info.signboardName = item.signboardName
+ this.info.proName = item.proName
+ this.info.constructionUnit = item.constructionUnit
+
+ if (tmixingConsumes && tmixingConsumes.length) {
+ this.info.saveStamp = tmixingConsumes[0].saveStamp
+ this.info.construction = tmixingConsumes[0].construction
+
+ tmixingConsumes.forEach(item => {
+ this.dataLists.forEach(val => {
+ item[val.type] && val.value.push(item[val.type])
+ })
+ })
+ }
+ }
+ } else {
+ this.$message.warning('请检查网络或联系管理员!!!')
+ }
+ })
+
+ },
+ }
+}
+</script>
+<style scoped>
+.wrap {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ font-size: 1rem;
+ background: #040A3F;
+ overflow: hidden;
+}
+
+.header {
+ position: absolute;
+ top: 0;
+ width: 100%;
+ height: 3rem;
+ text-align: center;
+ color: #fff;
+ background: url('../../assets/mixing/header.png') no-repeat center center;
+ background-size: 100% auto;
+
+ .header_name {
+ font-size: 1.6rem;
+ font-weight: bold;
+ line-height: 3.2rem;
+ letter-spacing: 2px;
+ text-shadow: 0px 3px 3px rgba(25, 63, 95, 0.05);
+ background: -webkit-linear-gradient(90deg, #2AC0FF 0%, #FFFFFF 70%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+}
+
+.table {
+ display: flex;
+ flex-direction: column;
+ position: absolute;
+ top: 4rem;
+ bottom: 2rem;
+ left: 2rem;
+ right: 2rem;
+ font-size: 0.8rem;
+ color: #fff;
+
+ .title {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: #BEE2F0;
+ background: rgba(1, 142, 196, .35);
+ }
+
+ .row {
+ flex: 1;
+ width: 100%;
+ height: 2rem;
+ margin: 0 -1px -1px 0;
+ text-align: center;
+ line-height: 2rem;
+ border: 1px solid #01B3EF;
+
+ .name {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ float: left;
+ width: 8rem;
+ height: 100%;
+ margin: -1px -1px -1px 0;
+ color: #BEE2F0;
+ border: 1px solid #01B3EF;
+ background: rgba(1, 142, 196, .75);
+ box-sizing: unset;
+ }
+
+ .value {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 100%;
+ overflow: hidden;
+ }
+
+ .column {
+ display: flex;
+ height: 100%;
+
+ .column-item {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex: 1;
+ margin: -1px -1px -1px 0;
+ border: 1px solid #01B3EF;
+ }
+ }
+ }
+
+ .row.line {
+ display: flex;
+
+ >div {
+ flex: 1;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/web/src/views/MixingInfo/mixing.vue b/web/src/views/MixingInfo/mixing.vue
new file mode 100644
index 0000000..55d42a7
--- /dev/null
+++ b/web/src/views/MixingInfo/mixing.vue
@@ -0,0 +1,314 @@
+<template>
+ <div class="wrap">
+ <div class="header">
+ <div class="header_name">中铁十四局通甬站前I标管片场拌合站</div>
+ </div>
+ <div class="container">
+ <div class="con_name">
+ <div class="line left"></div>
+ <div class="name">
+ <p class="p">{{ infoL.siloName }}</p>
+ <p class="p">{{ infoR.siloName }}</p>
+ </div>
+ <div class="line right"></div>
+ </div>
+ <div class="con_main">
+ <div class="con_main_item con_main_l">
+ <div class="placeholder"></div>
+ <div class="list_wrap">
+ <list :data="infoL.mixing"></list>
+ </div>
+ </div>
+ <div class="con_main_item con_main_c">
+ <div :class="`image ${infoL.percentImgName || ''}`">
+ <p>{{ infoL.siloName }}</p>
+ </div>
+ <div :class="`image ${infoR.percentImgName || ''}`">
+ <p>{{ infoR.siloName }}</p>
+ </div>
+ </div>
+ <div class="con_main_item con_main_r">
+ <div class="placeholder"></div>
+ <div class="list_wrap">
+ <list :data="infoR.mixing"></list>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import List from './components/List'
+const interval = function (fn, Vue) {
+ let timer = setInterval(
+ (() => {
+ fn()
+ return fn
+ })(),
+ 1000 * 60 * 1
+ )
+ if (Vue) {
+ Vue.$once('hook:beforeDestroy', function () {
+ timer && clearInterval(timer)
+ })
+ }
+}
+export default {
+ name: 'mixing',
+ data() {
+ return {
+ type: '',
+ infoL: {},
+ infoR: {},
+ percents: {
+ 0: 'container_10',
+ 10: 'container_10',
+ 20: 'container_20',
+ 40: 'container_40',
+ 60: 'container_60',
+ 80: 'container_80',
+ 90: 'container_90',
+ 100: 'container_100',
+ }
+ };
+ },
+ components: {
+ List
+ },
+ beforeCreate() {
+ this.$http = this.$api.Infos
+ },
+ beforeRouteEnter(to, form, next) {
+ const {path} = to
+
+ const type = path.slice(-1)
+
+ next(vm => {
+ vm.type = type
+ interval(vm.getLists, vm)
+ })
+ },
+ mounted() {
+ let width = document.getElementsByClassName('wrap')[0].clientWidth
+ let $html = document.getElementsByTagName('html')[0]
+ let fontsize = width / 1920 * 35.2
+ $html.style.fontSize = `${fontsize}px`
+ window.onresize = () => {
+ let width = document.getElementById('app').clientWidth
+ let fontsize = width / 1920 * 35.2
+ $html.style.fontSize = `${fontsize}px`
+ }
+ },
+ beforeDestroy() {
+ let $html = document.getElementsByTagName('html')[0]
+ $html.style.fontSize = ''
+ },
+ methods: {
+ getLists() {
+ const percentArr = Object.keys(this.percents)
+ this.$api.Infos.getMixing({types: this.type}).then(res => {
+ if (res.statusMsg === 'ok' && res.data && res.data.length) {
+ res.data.forEach((item, index) => {
+ if (item && item.mixing && item.mixing.percentage) {
+ let targetVal = +item.mixing.percentage
+ for (let index = 0; index < percentArr.length - 1; index++) {
+ const val = percentArr[index]
+ const valNext = percentArr[index + 1]
+ if (val <= targetVal && targetVal <= valNext) {
+ item.percentImgName = this.percents[val]
+ break
+ }
+ }
+ } else {
+ item.percentImgName = this.percents[0]
+ }
+ index === 0 && (this.infoL = item)
+ index === 1 && (this.infoR = item)
+ })
+ } else {
+ this.$message.warning('请检查网络或联系管理员!!!')
+ }
+ })
+
+
+
+ },
+ }
+}
+</script>
+<style scoped>
+li {
+ list-style: none;
+}
+
+.wrap {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ font-size: 1rem;
+ background: #040A3F;
+ overflow: hidden;
+}
+
+.header {
+ position: absolute;
+ width: 100%;
+ height: 3rem;
+ text-align: center;
+ font-family: 'Microsoft YaHei';
+ color: #fff;
+ background: url('../../assets/mixing/header.png') no-repeat center center;
+ background-size: 100% auto;
+
+ .header_name {
+ font-size: 1.6rem;
+ font-weight: bold;
+ line-height: 3.2rem;
+ letter-spacing: 2px;
+ text-shadow: 0px 3px 3px rgba(25, 63, 95, 0.05);
+ background: -webkit-linear-gradient(90deg, #2AC0FF 0%, #FFFFFF 70%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+}
+
+.container {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ position: absolute;
+ left: 20px;
+ right: 20px;
+ top: 3.6rem;
+ bottom: 20px;
+ color: #fff;
+
+ .con_name {
+ display: flex;
+ align-items: center;
+ height: 2.2rem;
+
+ .name {
+ width: 20rem;
+ display: flex;
+ justify-content: space-evenly;
+
+ .p {
+ height: 2rem;
+ padding: 0 2rem;
+ line-height: 2rem;
+ font-size: 1.2rem;
+ font-weight: bold;
+ white-space: nowrap;
+ background: url(../../assets/mixing/name_bg.png) no-repeat;
+ background-size: 100% 100%;
+ }
+ }
+
+ .line {
+ flex: 1;
+ height: 14px;
+
+ &.left {
+ background: -webkit-linear-gradient(right, rgba(18, 99, 162, 1) 0, rgba(18, 99, 162, 0) 100%);
+ }
+
+ &.right {
+ background: -webkit-linear-gradient(left, rgba(18, 99, 162, 1) 0, rgba(18, 99, 162, 0) 100%);
+ }
+ }
+ }
+
+ .con_main {
+ margin-top: 10px;
+ flex: 1;
+ display: flex;
+
+ .con_main_item {
+ padding: 15px 15px 0 15px;
+ position: relative;
+ flex: 1;
+
+ &.con_main_l,
+ &.con_main_r {
+ background: url(../../assets/mixing/list_bg.png) no-repeat;
+ background-size: 100% 100%;
+ }
+
+ &.con_main_l .placeholder {
+ width: 100%;
+ height: 8%;
+ background: url(../../assets/mixing/list_l_bg.png) no-repeat;
+ background-size: 100% 100%;
+ }
+
+ &.con_main_r .placeholder {
+ width: 100%;
+ height: 8%;
+ background: url(../../assets/mixing/list_r_bg.png) no-repeat;
+ background-size: 100% 100%;
+ }
+
+ &.con_main_c .image {
+ position: relative;
+ float: left;
+ width: 50%;
+ height: 100%;
+ min-height: 480px;
+ text-align: center;
+
+ >p {
+ position: absolute;
+ left: 50%;
+ top: 21%;
+ white-space: nowrap;
+ transform: translate(-50%, -50%);
+ }
+
+ &.container_10 {
+ background: url(../../assets/mixing/container_10.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+
+ &.container_20 {
+ background: url(../../assets/mixing/container_20.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+
+ &.container_40 {
+ background: url(../../assets/mixing/container_40.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+
+ &.container_60 {
+ background: url(../../assets/mixing/container_60.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+
+ &.container_80 {
+ background: url(../../assets/mixing/container_80.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+
+ &.container_90 {
+ background: url(../../assets/mixing/container_90.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+
+ &.container_100 {
+ background: url(../../assets/mixing/container_100.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+ }
+
+ .list_wrap {
+ position: absolute;
+ top: 12%;
+ bottom: 0;
+ }
+
+ }
+ }
+}
+</style>
\ No newline at end of file
--
Gitblit v1.9.3