Răsfoiți Sursa

fix:更新生产订单详情信息表

hmc 7 luni în urmă
părinte
comite
158ab0b328
36 a modificat fișierele cu 2799 adăugiri și 1197 ștergeri
  1. 18 0
      kdwebapi.properties
  2. 8 0
      kdwebapi1111.properties
  3. 1 1
      zkqy-custom-business/src/main/java/com/zkqy/business/controller/SaleProductsController.java
  4. 3 5
      zkqy-custom-business/src/main/resources/mapper/business/SaleProductsMapper.xml
  5. 45 14
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/RingScanInformationController.java
  6. 225 224
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/MaterialRetentionLog.java
  7. 75 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/PlanTaskDetails.java
  8. 32 6
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/RingScanInformation.java
  9. 12 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/RingScanInformationFirst.java
  10. 71 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/vo/PlanTaskDetailsVo.java
  11. 125 25
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/vo/RingScanInformationVo.java
  12. 40 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/vo/ScanStatistics.java
  13. 25 19
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/domain/JdProductionOrder.java
  14. 49 41
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/impl/JdProductionOrderServiceImpl.java
  15. 9 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/MaterialRetentionLogMapper.java
  16. 29 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/RingScanInformationMapper.java
  17. 56 43
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/scheduling/ScheduledBean.java
  18. 2 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IMaterialInfoService.java
  19. 14 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IRingScanInformationService.java
  20. 2 1
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/MaterialInfoServiceImpl.java
  21. 29 26
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/RingScanInformationServiceImpl.java
  22. 982 638
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/StationInformationServiceImpl.java
  23. 84 0
      zkqy-fujian-amichi/src/main/resources/mapper/MaterialRetentionLogMapper.xml
  24. 18 4
      zkqy-fujian-amichi/src/main/resources/mapper/PlanTaskDetailsMapper.xml
  25. 1 0
      zkqy-fujian-amichi/src/main/resources/mapper/RingScanInformationFirstMapper.xml
  26. 157 9
      zkqy-fujian-amichi/src/main/resources/mapper/RingScanInformationMapper.xml
  27. 125 0
      zkqy-fujian-amichi/src/main/resources/processReport.json
  28. 82 0
      zkqy-fujian-amichi/src/main/resources/storage.json
  29. 2 1
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/controller/BpmExecuteProcessController.java
  30. 13 34
      zkqy-ui/src/views/amichi/MaterialRetentionLog/index.vue
  31. 4 4
      zkqy-ui/src/views/amichi/dialogCompments/customizedVersion/processDisplay.vue
  32. 168 0
      zkqy-ui/src/views/amichi/dialogCompments/customizedVersion/processDisplay2.vue
  33. 93 43
      zkqy-ui/src/views/amichi/ringScanInformation/index.vue
  34. 46 39
      zkqy-ui/src/views/amichi/ringScanInformation/indexTwo.vue
  35. 146 9
      zkqy-ui/src/views/amichi/stationInformation/indexCopyV4.vue
  36. 8 11
      zkqy-ui/src/views/orderMange/planTable/index.vue

+ 18 - 0
kdwebapi.properties

@@ -0,0 +1,18 @@
+# 第三方系统登录授权的账套ID
+X-KDApi-AcctID = 66b0f368397bae
+# 第三方系统登录授权的用户
+X-KDApi-UserName= 王金明
+# 第三方系统登录授权的应用ID
+X-KDApi-AppID = 297800_541D3ztu3Oq50ewJ3ZwMTb/FVsQX6OMG
+# 第三方系统登录授权的应用密钥
+X-KDApi-AppSec = fae1bbc9a75643fdba58af17289f6edb
+# 服务Url地址(公有云统一走网关sdk底层已处理,无需传X-KDApi-ServerUrl,下面这行需要注释)X-KDApi-ServerUrl =http://192.168.2.134/K3Cloud/
+X-KDApi-ServerUrl =http://192.168.2.134/K3Cloud/
+# 账套语系,默认2052
+X-KDApi-LCID = 2052
+# 组织编码,启用多组织时配置对应的组织编码才有效
+# X-KDApi-OrgNum = 100
+# 允许的最大连接延时,单位为秒
+X-KDApi-ConnectTimeout=10000000
+# 允许的最大读取延时,单位为秒
+X-KDApi-RequestTimeout=10000000

+ 8 - 0
kdwebapi1111.properties

@@ -0,0 +1,8 @@
+X-KDApi-AcctID = 61c7dd2d0ff564
+X-KDApi-UserName = 王金明
+X-KDApi-AppID = 291472_5Z6q2/Ho6roeQaXv0d5PS61FQrTa0PNs
+X-KDApi-AppSec = 18d80a2709c7446ea44aa14b7d94e86e
+X-KDApi-ServerUrl =http://192.168.2.134/K3Cloud/
+X-KDApi-LCID = 2052
+X-KDApi-ConnectTimeout=10000000
+X-KDApi-RequestTimeout=10000000

+ 1 - 1
zkqy-custom-business/src/main/java/com/zkqy/business/controller/SaleProductsController.java

@@ -48,7 +48,7 @@ public class SaleProductsController extends BaseController {
         //销售单什么状态为3的(待生产)
         SaleProducts saleProducts=new SaleProducts();
 //        saleProducts.setStatus("3");
-        saleProducts.setProductionLineNo(productionLineNo); //不查在当前产线投产过的产品了
+//        saleProducts.setProductionLineNo(productionLineNo); //不查在当前产线投产过的产品了
         List<SaleProductsVo> list = saleProductsService.selectSaleProductsListAndCustomerName(saleProducts);
         return AjaxResult.success(list);
     }

+ 3 - 5
zkqy-custom-business/src/main/resources/mapper/business/SaleProductsMapper.xml

@@ -559,16 +559,14 @@
         inner join {DBNAME}.materiel as m on sp.colour_number= m.materiel_code
         inner join {DBNAME}.production as pd on sp.product_no= pd.product_no
         left join {DBNAME}.production_line as pl on sp.production_line_no=pl.id
-        where sp.del_flag = '0' and cs.del_flag = '0' and m.del_flag = '0' and sp.status!=6 and so.order_type=2
+        where sp.del_flag = '0' and cs.del_flag = '0' and m.del_flag = '0'  and so.order_type=2
         <if test="saleProductNo != null  and saleProductNo != ''">and sale_product_no = #{saleProductNo}</if>
         <if test="saleOrderNo != null  and saleOrderNo != ''">and sale_order_no = #{saleOrderNo}</if>
         <if test="productNo != null  and productNo != ''">and product_no = #{productNo}</if>
-        <if test="productName != null  and productName != ''">and product_name like concat('%', #{productName}, '%')
-        </if>
+        <if test="productName != null  and productName != ''">and product_name like concat('%', #{productName}, '%')</if>
         <if test="productNumber != null ">and product_number = #{productNumber}</if>
         <if test="productWeight != null  and productWeight != ''">and product_weight = #{productWeight}</if>
-        <if test="productUnitPrice != null  and productUnitPrice != ''">and product_unit_price = #{productUnitPrice}
-        </if>
+        <if test="productUnitPrice != null  and productUnitPrice != ''">and product_unit_price = #{productUnitPrice}</if>
         <if test="productAmounts != null  and productAmounts != ''">and product_amounts = #{productAmounts}</if>
         <if test="productNotes != null  and productNotes != ''">and product_notes = #{productNotes}</if>
         <if test="createById != null ">and create_by_id = #{createById}</if>

+ 45 - 14
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/RingScanInformationController.java

@@ -13,6 +13,7 @@ import com.zkqy.amichi.domain.RingScanInformationFirst;
 import com.zkqy.amichi.domain.vo.RingScanInformationLogVo;
 import com.zkqy.amichi.domain.vo.RingScanInformationQueryVo;
 import com.zkqy.amichi.domain.vo.RingScanInformationVo;
+import com.zkqy.amichi.domain.vo.ScanStatistics;
 import com.zkqy.amichi.mapper.RingScanInformationFirstMapper;
 import com.zkqy.amichi.mapper.RingScanInformationMapper;
 import com.zkqy.amichi.service.IRingScanInformationService;
@@ -103,29 +104,53 @@ public class RingScanInformationController extends BaseController
             hashMap.put("Stime",item.getScanningTime());
             hashMap.put("SContent",item.getContentInformation());
             hashMap.put("Sresult",item.getExecutionMessage());
-            list1.add(hashMap);
+            if(item.getProcessName().equals("焊接")){
+                if(item.getContentInformation().contains("D")){
+                    item.setProcessName("焊接D");
+                }else {
+                    item.setProcessName("焊接Z");
+                }
+            }
+            if(null!=item.getProductionOrderNumber()&&item.getProductionOrderNumber()!=""){
+                ScanStatistics scanStatistics = ringScanInformationMapper.selectScanStatistics(item);
+                hashMap.put("Dorder",scanStatistics.getdOrder());
+                hashMap.put("Dfcount",scanStatistics.getDfCount());
+                if(StringUtils.isNull(item.getOverNumber())){
+                    hashMap.put("Dscount","失败");
+                }else {
+                    hashMap.put("Dscount",item.getOverNumber());
+                }
+                hashMap.put("Dcount",scanStatistics.getdCount());
+                list1.add(hashMap);
+            }else {
+                hashMap.put("Dorder","无");
+                hashMap.put("Dfcount","0");
+                hashMap.put("Dscount","0");
+                hashMap.put("Dcount",0);
+                list1.add(hashMap);
+            }
         });
         return AjaxResult.success(list1);
     }
 
     /**
-     * 测试分页失效问题
+     * 手持机日志Table表格日志
      */
     @Anonymous
-    @GetMapping("/scfylist2")
-    public  AjaxResult scfylist2(RingScanInformation ringScanInformation)
+    @GetMapping("/handHeldJournal")
+    public  AjaxResult handHeldJournal(RingScanInformation ringScanInformation)
     {
-
-        startPage();
-        List<RingScanInformation> list = ringScanInformationService.selectRingScanInformationList(ringScanInformation);
+        //用户名,工位,生产订单总数,成功数量,失败数量,订单号
+        List<Map> list = ringScanInformationService.handHeldJournal(ringScanInformation);
         List<Map> list1=new ArrayList<>();
         list.forEach(item->{
             HashMap hashMap=new HashMap();
-            hashMap.put("Uname",item.getPersonnelName());
-            hashMap.put("Ugw",item.getStationName());
-            hashMap.put("Stime",item.getScanningTime());
-            hashMap.put("SContent",item.getContentInformation());
-            hashMap.put("Sresult",item.getExecutionMessage());
+            hashMap.put("Uname",item.get("uname"));
+            hashMap.put("Ugw",item.get("ugw"));
+            hashMap.put("Dcount",item.get("dcount"));
+            hashMap.put("Dscount",item.get("dsCount"));
+            hashMap.put("Dfcount",item.get("dfCount"));
+            hashMap.put("Dorder",item.get("dorder"));
             list1.add(hashMap);
         });
         return AjaxResult.success(list1);
@@ -243,8 +268,14 @@ public class RingScanInformationController extends BaseController
     @PostMapping("/export")
     public void export(HttpServletResponse response, RingScanInformation ringScanInformation)
     {
-        List<RingScanInformation> list = ringScanInformationService.selectRingScanInformationList(ringScanInformation);
-        ExcelUtil<RingScanInformation> util = new ExcelUtil<RingScanInformation>(RingScanInformation.class);
+        List<RingScanInformationVo> list = ringScanInformationService.selectRingScanInformationDownload(ringScanInformation);
+//        List<RingScanInformationVo> collect = list.stream().map(item -> {
+//            item.setMaterialCode("1");
+//            item.setModel("ddd");
+//            item.setMaterialName("ddd");
+//            return item;
+//        }).collect(Collectors.toList());
+        ExcelUtil<RingScanInformationVo> util = new ExcelUtil<RingScanInformationVo>(RingScanInformationVo.class);
         util.exportExcel(response, list, "指环王扫描日志信息数据");
     }
 

+ 225 - 224
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/MaterialRetentionLog.java

@@ -1,9 +1,15 @@
 package com.zkqy.amichi.domain;
 
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zkqy.common.annotation.Excel;
 import com.zkqy.common.core.domain.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.StringJoiner;
 
 
 /**
@@ -22,6 +28,12 @@ public class MaterialRetentionLog extends BaseEntity
     private  String  process;
 
 
+    @Excel(name = "订单号")
+    private String orderNumber;
+
+    @Excel(name = "生产订单号")
+    private String productionOrderNumber;
+
 
     /** 物料编码 */
     @Excel(name = "物料编码")
@@ -36,13 +48,13 @@ public class MaterialRetentionLog extends BaseEntity
     private String specification;
 
     /**流转卡序列号*/
-    @Excel(name = "流转卡序列号")
+//    @Excel(name = "流转卡序列号")
     private String flowSequenceNumber;
 
 
 
     /** 型号 */
-    @Excel(name = "型号")
+//    @Excel(name = "型号")
     private String model;
 
     /** 单位 */
@@ -64,13 +76,7 @@ public class MaterialRetentionLog extends BaseEntity
     @Excel(name = "型号")
     private String productModel;
 
-    public String getProductModel() {
-        return productModel;
-    }
 
-    public void setProductModel(String productModel) {
-        this.productModel = productModel;
-    }
 
     @Excel(name = "规格")
     private String productSpecification;
@@ -85,75 +91,105 @@ public class MaterialRetentionLog extends BaseEntity
     @Excel(name = "仓库仓库编码")
     private String ckNumber;
 
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "扣料时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
     /** 单据备注 */
-    @Excel(name = "单据备注")
+//    @Excel(name = "单据备注")
     private String documentRemarks;
 
     /** 单据类型 */
-    @Excel(name = "单据类型")
+//    @Excel(name = "单据类型")
     private String documentType;
 
     /** 库存组织 */
-    @Excel(name = "库存组织")
+//    @Excel(name = "库存组织")
     private String inventoryOrganization;
 
     /** 库存组织 */
-    @Excel(name = "库存组织")
+//    @Excel(name = "库存组织")
     private String receivingTissue;
 
     /** 库存方向 */
-    @Excel(name = "库存方向")
+//    @Excel(name = "库存方向")
     private String inventoryDirection;
 
     /** 出库日期 */
-    @Excel(name = "出库日期")
+//    @Excel(name = "出库日期")
     private String dateOfDelivery;
 
     /** 领料部门 */
-    @Excel(name = "领料部门")
+//    @Excel(name = "领料部门")
     private String materialsRequisitionDepartment;
 
     /** 领料人 */
-    @Excel(name = "领料人")
+//    @Excel(name = "领料人")
     private String materialTaker;
 
     /** 业务类型 */
-    @Excel(name = "业务类型")
+//    @Excel(name = "业务类型")
     private String businessType;
 
     /** 货主类型 */
-    @Excel(name = "货主类型")
+//    @Excel(name = "货主类型")
     private String ownerType;
 
     /** 货主 */
-    @Excel(name = "货主")
+//    @Excel(name = "货主")
     private String owner;
 
     /** 单据状态 */
-    @Excel(name = "单据状态")
+//    @Excel(name = "单据状态")
     private String documentStatus;
 
     /** 明细备注 */
-    @Excel(name = "明细备注")
+//    @Excel(name = "明细备注")
     private String detailedRemarks;
 
     /** 创建者id  */
-    @Excel(name = "创建者id ")
+//    @Excel(name = "创建者id ")
     private Long createById;
 
     /** 更新者id */
-    @Excel(name = "更新者id")
+//    @Excel(name = "更新者id")
     private Long updateById;
 
-    @Excel(name = "子项类型")
+    //    @Excel(name = "子项类型")
     private String materialType;
 
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
 
-    @Excel(name = "订单号")
-    private String orderNumber;
+    @Override
+    public Date getCreateTime() {
+        return createTime;
+    }
 
-    @Excel(name = "生产订单号")
-    private String productionOrderNumber;
+    @Override
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getProcess() {
+        return process;
+    }
+
+    public void setProcess(String process) {
+        this.process = process;
+    }
 
     public String getOrderNumber() {
         return orderNumber;
@@ -171,30 +207,28 @@ public class MaterialRetentionLog extends BaseEntity
         this.productionOrderNumber = productionOrderNumber;
     }
 
-    public String getMaterialType() {
-        return materialType;
+    public String getMaterialCode() {
+        return materialCode;
     }
 
-    public void setMaterialType(String materialType) {
-        this.materialType = materialType;
+    public void setMaterialCode(String materialCode) {
+        this.materialCode = materialCode;
     }
 
-    /** 删除标志(0代表存在 2代表删除) */
-    private String delFlag;
-
-
-    public String getProcess() {
-        return process;
+    public String getMaterialName() {
+        return materialName;
     }
 
-    public void setProcess(String process) {
-        this.process = process;
+    public void setMaterialName(String materialName) {
+        this.materialName = materialName;
     }
-    public MaterialRetentionLog(String productModel) {
-        this.productModel = productModel;
+
+    public String getSpecification() {
+        return specification;
     }
 
-    public MaterialRetentionLog() {
+    public void setSpecification(String specification) {
+        this.specification = specification;
     }
 
     public String getFlowSequenceNumber() {
@@ -205,6 +239,30 @@ public class MaterialRetentionLog extends BaseEntity
         this.flowSequenceNumber = flowSequenceNumber;
     }
 
+    public String getModel() {
+        return model;
+    }
+
+    public void setModel(String model) {
+        this.model = model;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public String getActualQuantityIssued() {
+        return actualQuantityIssued;
+    }
+
+    public void setActualQuantityIssued(String actualQuantityIssued) {
+        this.actualQuantityIssued = actualQuantityIssued;
+    }
+
     public String getProductCode() {
         return productCode;
     }
@@ -221,7 +279,13 @@ public class MaterialRetentionLog extends BaseEntity
         this.productName = productName;
     }
 
+    public String getProductModel() {
+        return productModel;
+    }
 
+    public void setProductModel(String productModel) {
+        this.productModel = productModel;
+    }
 
     public String getProductSpecification() {
         return productSpecification;
@@ -230,264 +294,201 @@ public class MaterialRetentionLog extends BaseEntity
     public void setProductSpecification(String productSpecification) {
         this.productSpecification = productSpecification;
     }
-    public void setId(Long id) 
-    {
-        this.id = id;
-    }
-
-    public Long getId() 
-    {
-        return id;
-    }
-    public void setMaterialCode(String materialCode) 
-    {
-        this.materialCode = materialCode;
-    }
-
-    public String getMaterialCode() 
-    {
-        return materialCode;
-    }
-    public void setMaterialName(String materialName) 
-    {
-        this.materialName = materialName;
-    }
-
-    public String getMaterialName() 
-    {
-        return materialName;
-    }
-    public void setSpecification(String specification) 
-    {
-        this.specification = specification;
-    }
 
-    public String getSpecification() 
-    {
-        return specification;
-    }
-    public void setModel(String model) 
-    {
-        this.model = model;
-    }
-
-    public String getModel() 
-    {
-        return model;
-    }
-    public void setUnit(String unit) 
-    {
-        this.unit = unit;
-    }
-
-    public String getUnit() 
-    {
-        return unit;
-    }
-    public void setActualQuantityIssued(String actualQuantityIssued) 
-    {
-        this.actualQuantityIssued = actualQuantityIssued;
+    public String getDeliveryWarehouse() {
+        return deliveryWarehouse;
     }
 
-    public String getActualQuantityIssued() 
-    {
-        return actualQuantityIssued;
-    }
-    public void setDeliveryWarehouse(String deliveryWarehouse) 
-    {
+    public void setDeliveryWarehouse(String deliveryWarehouse) {
         this.deliveryWarehouse = deliveryWarehouse;
     }
 
-    public String getDeliveryWarehouse() 
-    {
-        return deliveryWarehouse;
+    public String getCkNumber() {
+        return ckNumber;
     }
-    public void setCkNumber(String ckNumber) 
-    {
+
+    public void setCkNumber(String ckNumber) {
         this.ckNumber = ckNumber;
     }
 
-    public String getCkNumber() 
-    {
-        return ckNumber;
+    public String getDocumentRemarks() {
+        return documentRemarks;
     }
-    public void setDocumentRemarks(String documentRemarks) 
-    {
+
+    public void setDocumentRemarks(String documentRemarks) {
         this.documentRemarks = documentRemarks;
     }
 
-    public String getDocumentRemarks() 
-    {
-        return documentRemarks;
+    public String getDocumentType() {
+        return documentType;
     }
-    public void setDocumentType(String documentType) 
-    {
+
+    public void setDocumentType(String documentType) {
         this.documentType = documentType;
     }
 
-    public String getDocumentType() 
-    {
-        return documentType;
+    public String getInventoryOrganization() {
+        return inventoryOrganization;
     }
-    public void setInventoryOrganization(String inventoryOrganization) 
-    {
+
+    public void setInventoryOrganization(String inventoryOrganization) {
         this.inventoryOrganization = inventoryOrganization;
     }
 
-    public String getInventoryOrganization() 
-    {
-        return inventoryOrganization;
+    public String getReceivingTissue() {
+        return receivingTissue;
     }
-    public void setReceivingTissue(String receivingTissue) 
-    {
+
+    public void setReceivingTissue(String receivingTissue) {
         this.receivingTissue = receivingTissue;
     }
 
-    public String getReceivingTissue() 
-    {
-        return receivingTissue;
+    public String getInventoryDirection() {
+        return inventoryDirection;
     }
-    public void setInventoryDirection(String inventoryDirection) 
-    {
+
+    public void setInventoryDirection(String inventoryDirection) {
         this.inventoryDirection = inventoryDirection;
     }
 
-    public String getInventoryDirection() 
-    {
-        return inventoryDirection;
+    public String getDateOfDelivery() {
+        return dateOfDelivery;
     }
-    public void setDateOfDelivery(String dateOfDelivery) 
-    {
+
+    public void setDateOfDelivery(String dateOfDelivery) {
         this.dateOfDelivery = dateOfDelivery;
     }
 
-    public String getDateOfDelivery() 
-    {
-        return dateOfDelivery;
+    public String getMaterialsRequisitionDepartment() {
+        return materialsRequisitionDepartment;
     }
-    public void setMaterialsRequisitionDepartment(String materialsRequisitionDepartment) 
-    {
+
+    public void setMaterialsRequisitionDepartment(String materialsRequisitionDepartment) {
         this.materialsRequisitionDepartment = materialsRequisitionDepartment;
     }
 
-    public String getMaterialsRequisitionDepartment() 
-    {
-        return materialsRequisitionDepartment;
+    public String getMaterialTaker() {
+        return materialTaker;
     }
-    public void setMaterialTaker(String materialTaker) 
-    {
+
+    public void setMaterialTaker(String materialTaker) {
         this.materialTaker = materialTaker;
     }
 
-    public String getMaterialTaker() 
-    {
-        return materialTaker;
+    public String getBusinessType() {
+        return businessType;
     }
-    public void setBusinessType(String businessType) 
-    {
+
+    public void setBusinessType(String businessType) {
         this.businessType = businessType;
     }
 
-    public String getBusinessType() 
-    {
-        return businessType;
+    public String getOwnerType() {
+        return ownerType;
     }
-    public void setOwnerType(String ownerType) 
-    {
+
+    public void setOwnerType(String ownerType) {
         this.ownerType = ownerType;
     }
 
-    public String getOwnerType() 
-    {
-        return ownerType;
+    public String getOwner() {
+        return owner;
     }
-    public void setOwner(String owner) 
-    {
+
+    public void setOwner(String owner) {
         this.owner = owner;
     }
 
-    public String getOwner() 
-    {
-        return owner;
+    public String getDocumentStatus() {
+        return documentStatus;
     }
-    public void setDocumentStatus(String documentStatus) 
-    {
+
+    public void setDocumentStatus(String documentStatus) {
         this.documentStatus = documentStatus;
     }
 
-    public String getDocumentStatus() 
-    {
-        return documentStatus;
+    public String getDetailedRemarks() {
+        return detailedRemarks;
     }
-    public void setDetailedRemarks(String detailedRemarks) 
-    {
+
+    public void setDetailedRemarks(String detailedRemarks) {
         this.detailedRemarks = detailedRemarks;
     }
 
-    public String getDetailedRemarks() 
-    {
-        return detailedRemarks;
+    @Override
+    public Long getCreateById() {
+        return createById;
     }
-    public void setCreateById(Long createById) 
-    {
+
+    @Override
+    public void setCreateById(Long createById) {
         this.createById = createById;
     }
 
-    public Long getCreateById() 
-    {
-        return createById;
+    @Override
+    public Long getUpdateById() {
+        return updateById;
     }
-    public void setUpdateById(Long updateById) 
-    {
+
+    @Override
+    public void setUpdateById(Long updateById) {
         this.updateById = updateById;
     }
 
-    public Long getUpdateById() 
-    {
-        return updateById;
+    public String getMaterialType() {
+        return materialType;
     }
-    public void setDelFlag(String delFlag) 
-    {
-        this.delFlag = delFlag;
+
+    public void setMaterialType(String materialType) {
+        this.materialType = materialType;
     }
 
-    public String getDelFlag() 
-    {
+    public String getDelFlag() {
         return delFlag;
     }
 
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("materialCode", getMaterialCode())
-            .append("materialName", getMaterialName())
-            .append("specification", getSpecification())
-            .append("model", getModel())
-            .append("unit", getUnit())
-            .append("actualQuantityIssued", getActualQuantityIssued())
-            .append("deliveryWarehouse", getDeliveryWarehouse())
-            .append("ckNumber", getCkNumber())
-            .append("documentRemarks", getDocumentRemarks())
-            .append("documentType", getDocumentType())
-            .append("inventoryOrganization", getInventoryOrganization())
-            .append("receivingTissue", getReceivingTissue())
-            .append("inventoryDirection", getInventoryDirection())
-            .append("dateOfDelivery", getDateOfDelivery())
-            .append("materialsRequisitionDepartment", getMaterialsRequisitionDepartment())
-            .append("materialTaker", getMaterialTaker())
-            .append("businessType", getBusinessType())
-            .append("ownerType", getOwnerType())
-            .append("owner", getOwner())
-            .append("documentStatus", getDocumentStatus())
-            .append("detailedRemarks", getDetailedRemarks())
-            .append("createById", getCreateById())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateById", getUpdateById())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("delFlag", getDelFlag())
-            .toString();
+        return new StringJoiner(", ", MaterialRetentionLog.class.getSimpleName() + "[", "]")
+                .add("id=" + id)
+                .add("process='" + process + "'")
+                .add("orderNumber='" + orderNumber + "'")
+                .add("productionOrderNumber='" + productionOrderNumber + "'")
+                .add("materialCode='" + materialCode + "'")
+                .add("materialName='" + materialName + "'")
+                .add("specification='" + specification + "'")
+                .add("flowSequenceNumber='" + flowSequenceNumber + "'")
+                .add("model='" + model + "'")
+                .add("unit='" + unit + "'")
+                .add("actualQuantityIssued='" + actualQuantityIssued + "'")
+                .add("productCode='" + productCode + "'")
+                .add("productName='" + productName + "'")
+                .add("productModel='" + productModel + "'")
+                .add("productSpecification='" + productSpecification + "'")
+                .add("deliveryWarehouse='" + deliveryWarehouse + "'")
+                .add("ckNumber='" + ckNumber + "'")
+                .add("createTime=" + createTime)
+                .add("documentRemarks='" + documentRemarks + "'")
+                .add("documentType='" + documentType + "'")
+                .add("inventoryOrganization='" + inventoryOrganization + "'")
+                .add("receivingTissue='" + receivingTissue + "'")
+                .add("inventoryDirection='" + inventoryDirection + "'")
+                .add("dateOfDelivery='" + dateOfDelivery + "'")
+                .add("materialsRequisitionDepartment='" + materialsRequisitionDepartment + "'")
+                .add("materialTaker='" + materialTaker + "'")
+                .add("businessType='" + businessType + "'")
+                .add("ownerType='" + ownerType + "'")
+                .add("owner='" + owner + "'")
+                .add("documentStatus='" + documentStatus + "'")
+                .add("detailedRemarks='" + detailedRemarks + "'")
+                .add("createById=" + createById)
+                .add("updateById=" + updateById)
+                .add("materialType='" + materialType + "'")
+                .add("delFlag='" + delFlag + "'")
+                .toString();
     }
 }

+ 75 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/PlanTaskDetails.java

@@ -1,5 +1,6 @@
 package com.zkqy.amichi.domain;
 
+import com.alibaba.fastjson2.annotation.JSONField;
 import com.zkqy.common.core.domain.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -24,10 +25,35 @@ public class PlanTaskDetails extends BaseEntity
     /** 描述信息 */
     private Long description;
 
+
+
     /** 当前生产订单的状态*/
     private  String status;
 
 
+
+
+    /** 单据编号 */
+    @Excel(name = "单据主键")
+    private String fid;
+    /** 单据编号 */
+    @Excel(name = "单据编号")
+    private String fbillno;
+
+    @Excel(name = "BOM版本")
+    private String fbomIdFnumber;
+
+    @Excel(name = "单位编号")
+    private String funitidfNumber;
+
+    /** 订单号 */
+    @Excel(name = "订单号")
+    private String fsrcbillno;
+
+    /** 订单号 */
+    @Excel(name = "源单分录内码")
+    private String ftreeEntityFentryid;
+
     /** 物料编码 */
     @Excel(name = "物料编码")
     private String materialId;
@@ -150,6 +176,23 @@ public class PlanTaskDetails extends BaseEntity
     @Excel(name = "计划完工")
     private String scheduledCompletion;
 
+
+
+    public String getFbomIdFnumber() {
+        return fbomIdFnumber;
+    }
+
+    public void setFbomIdFnumber(String fbomIdFnumber) {
+        this.fbomIdFnumber = fbomIdFnumber;
+    }
+
+    public String getFunitidfNumber() {
+        return funitidfNumber;
+    }
+
+    public void setFunitidfNumber(String funitidfNumber) {
+        this.funitidfNumber = funitidfNumber;
+    }
     public String getScheduledCommencement() {
         return scheduledCommencement;
     }
@@ -202,6 +245,38 @@ public class PlanTaskDetails extends BaseEntity
         return power;
     }
 
+    public String getFbillno() {
+        return fbillno;
+    }
+
+    public void setFbillno(String fbillno) {
+        this.fbillno = fbillno;
+    }
+
+    public String getFid() {
+        return fid;
+    }
+
+    public void setFid(String fid) {
+        this.fid = fid;
+    }
+
+    public String getFsrcbillno() {
+        return fsrcbillno;
+    }
+
+    public void setFsrcbillno(String fsrcbillno) {
+        this.fsrcbillno = fsrcbillno;
+    }
+
+    public String getFtreeEntityFentryid() {
+        return ftreeEntityFentryid;
+    }
+
+    public void setFtreeEntityFentryid(String ftreeEntityFentryid) {
+        this.ftreeEntityFentryid = ftreeEntityFentryid;
+    }
+
     public void setPower(String power) {
         this.power = power;
     }

+ 32 - 6
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/RingScanInformation.java

@@ -2,11 +2,14 @@ package com.zkqy.amichi.domain;
 
 import java.time.LocalDateTime;
 import java.util.Date;
+import java.util.List;
+
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zkqy.common.annotation.Excel;
 import com.zkqy.common.core.domain.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
+import org.springframework.format.annotation.DateTimeFormat;
 
 
 /**
@@ -23,11 +26,23 @@ public class RingScanInformation extends BaseEntity
     private Long id;
 
     /** 扫描人 */
+    @Excel(name = "人员姓名")
     private String personnelName;
 
 
+    @Excel(name = "人员姓名")
+    private String overNumber;
+
+    public String getOverNumber() {
+        return overNumber;
+    }
+
+    public void setOverNumber(String overNumber) {
+        this.overNumber = overNumber;
+    }
+
     /** 设备编号 */
-    @Excel(name = "设备编号")
+//    @Excel(name = "设备编号")
     private String deviceNumber;
 
     /** 设备名称 */
@@ -39,17 +54,20 @@ public class RingScanInformation extends BaseEntity
     @Excel(name = "扫描时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime scanningTime;
 
+    /** 区间范围时间查询,扫描时间 */
+    private List<String> scanningTimes;
+
     /** 扫描内容 */
     @Excel(name = "扫描内容")
     private String contentInformation;
 
 
     /** 原生编号 */
-    @Excel(name = "原生编号")
+//    @Excel(name = "原生编号")
     private String nativeNumbering;
 
     /** 工序编号 */
-    @Excel(name = "工序编号")
+//    @Excel(name = "工序编号")
     private String process;
 
 
@@ -62,7 +80,7 @@ public class RingScanInformation extends BaseEntity
     private String orderNumber;
 
     /** 工位id*/
-    @Excel(name = "工位id")
+//    @Excel(name = "工位id")
     private String stationId;
 
     /** 工位名称 */
@@ -70,11 +88,11 @@ public class RingScanInformation extends BaseEntity
     private String stationName;
 
     /** 生产订单号 */
-    @Excel(name = "生订单号")
+    @Excel(name = "生订单号")
     private String productionOrderNumber;
 
     /** 扫描标记 */
-    @Excel(name = "扫描标记 1 成功 2 失败")
+//    @Excel(name = "扫描标记 1 成功 2 失败")
     private String executionMark;
 
     /** 扫描信息 */
@@ -163,6 +181,14 @@ public class RingScanInformation extends BaseEntity
     }
 
 
+    public List<String> getScanningTimes() {
+        return scanningTimes;
+    }
+
+    public void setScanningTimes(List<String> scanningTimes) {
+        this.scanningTimes = scanningTimes;
+    }
+
 
     public String getProcess() {
         return process;

+ 12 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/RingScanInformationFirst.java

@@ -34,6 +34,18 @@ public class RingScanInformationFirst extends BaseEntity
     @Excel(name = "生产订单的总数")
     private  String  productionOrderTotalQuantity;
 
+
+    @Excel(name = "入库的总数")
+    private  String  rks;
+
+    public String getRks() {
+        return rks;
+    }
+
+    public void setRks(String rks) {
+        this.rks = rks;
+    }
+
     public String getProductionOrderTotalQuantity() {
         return productionOrderTotalQuantity;
     }

+ 71 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/vo/PlanTaskDetailsVo.java

@@ -9,6 +9,77 @@ public class PlanTaskDetailsVo extends BaseEntity {
     /** 主键 */
     private Long id;
 
+
+
+    /** 单据编号 */
+    @Excel(name = "单据主键")
+    private String fid;
+    /** 单据编号 */
+    @Excel(name = "单据编号")
+    private String fbillno;
+
+    @Excel(name = "BOM版本")
+    private String fbomIdFnumber;
+
+    @Excel(name = "单位编号")
+    private String funitidfNumber;
+
+    /** 订单号 */
+    @Excel(name = "订单号")
+    private String fsrcbillno;
+
+    /** 订单号 */
+    @Excel(name = "源单分录内码")
+    private String ftreeEntityFentryid;
+
+    public String getFid() {
+        return fid;
+    }
+
+    public void setFid(String fid) {
+        this.fid = fid;
+    }
+
+    public String getFbillno() {
+        return fbillno;
+    }
+
+    public void setFbillno(String fbillno) {
+        this.fbillno = fbillno;
+    }
+
+    public String getFbomIdFnumber() {
+        return fbomIdFnumber;
+    }
+
+    public void setFbomIdFnumber(String fbomIdFnumber) {
+        this.fbomIdFnumber = fbomIdFnumber;
+    }
+
+    public String getFunitidfNumber() {
+        return funitidfNumber;
+    }
+
+    public void setFunitidfNumber(String funitidfNumber) {
+        this.funitidfNumber = funitidfNumber;
+    }
+
+    public String getFsrcbillno() {
+        return fsrcbillno;
+    }
+
+    public void setFsrcbillno(String fsrcbillno) {
+        this.fsrcbillno = fsrcbillno;
+    }
+
+    public String getFtreeEntityFentryid() {
+        return ftreeEntityFentryid;
+    }
+
+    public void setFtreeEntityFentryid(String ftreeEntityFentryid) {
+        this.ftreeEntityFentryid = ftreeEntityFentryid;
+    }
+
     /** 物料编码 */
     @Excel(name = "物料编码")
     private String materialId;

+ 125 - 25
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/vo/RingScanInformationVo.java

@@ -1,79 +1,179 @@
 package com.zkqy.amichi.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zkqy.amichi.domain.RingScanInformation;
+import com.zkqy.common.annotation.Excel;
+
+import java.time.LocalDateTime;
+
+public class RingScanInformationVo {
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
 
-public class RingScanInformationVo extends RingScanInformation {
-    private  String  orderNumber;
 
+    @Excel(name = "人员姓名")
+    private  String  personnelName;
+
+    @Excel(name = "设备名称")
+    private  String deviceName;
+    @Excel(name = "生产订单号")
+    private  String  orderNumber;
+    @Excel(name = "订单号")
     private  String  demandDocument;
 
+//    @Excel(name = "流转卡序列号")
     private  String  serialNumber;
 
+    @Excel(name = "工序")
+    private  String  processName;
+
+    private String stationId;
+
+    @Excel(name = "工位")
+    private  String  stationName;
+
+    /** 扫描内容 */
+    @Excel(name = "序列号")
+    private String contentInformation;
+
+    @Excel(name = "原材料编码")
     private  String  materialCode;
 
+    @Excel(name = "原材料名称")
     private  String  materialName;
-
+    @Excel(name = "规格")
     private  String  model;
-    private  String  personnelName;
 
-    private  String  processName;
+    private String process;
+
 
-    private  String  stationName;
 
+    /** 扫描时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "扫描时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime scanningTime;
+
+    @Excel(name = "扫描信息")
     private  String executionMessage;
 
-    private String  executionMark;
+    private String deviceNumber;
 
-    @Override
-    public String getExecutionMessage() {
-        return executionMessage;
+
+    public LocalDateTime getScanningTime() {
+        return scanningTime;
+    }
+    public Long getId() {
+        return id;
     }
 
-    @Override
-    public void setExecutionMessage(String executionMessage) {
-        this.executionMessage = executionMessage;
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public void setScanningTime(LocalDateTime scanningTime) {
+        this.scanningTime = scanningTime;
     }
 
-    @Override
-    public String getExecutionMark() {
-        return executionMark;
+    public String getProcess() {
+        return process;
     }
 
-    @Override
-    public void setExecutionMark(String executionMark) {
-        this.executionMark = executionMark;
+    public void setProcess(String process) {
+        this.process = process;
     }
 
-    @Override
+    public String getStationId() {
+        return stationId;
+    }
+
+    public void setStationId(String stationId) {
+        this.stationId = stationId;
+    }
+
+
+
+    private String nativeNumbering;
+
+    private String executionMark;
+
+
+
+    public String getNativeNumbering() {
+        return nativeNumbering;
+    }
+
+    public void setNativeNumbering(String nativeNumbering) {
+        this.nativeNumbering = nativeNumbering;
+    }
+
+    public String getContentInformation() {
+        return contentInformation;
+    }
+
+    public void setContentInformation(String contentInformation) {
+        this.contentInformation = contentInformation;
+    }
+
+    public String getDeviceNumber() {
+        return deviceNumber;
+    }
+
+    public void setDeviceNumber(String deviceNumber) {
+        this.deviceNumber = deviceNumber;
+    }
+
+
+
     public String getPersonnelName() {
         return personnelName;
     }
 
-    @Override
     public void setPersonnelName(String personnelName) {
         this.personnelName = personnelName;
     }
 
-    @Override
     public String getProcessName() {
         return processName;
     }
 
-    @Override
     public void setProcessName(String processName) {
         this.processName = processName;
     }
 
-    @Override
     public String getStationName() {
         return stationName;
     }
 
-    @Override
     public void setStationName(String stationName) {
         this.stationName = stationName;
     }
 
+    public String getExecutionMessage() {
+        return executionMessage;
+    }
+
+    public void setExecutionMessage(String executionMessage) {
+        this.executionMessage = executionMessage;
+    }
+
+    public String getDeviceName() {
+        return deviceName;
+    }
+
+    public void setDeviceName(String deviceName) {
+        this.deviceName = deviceName;
+    }
+
+    public String getExecutionMark() {
+        return executionMark;
+    }
+
+    public void setExecutionMark(String executionMark) {
+        this.executionMark = executionMark;
+    }
+
     public String getOrderNumber() {
         return orderNumber;
     }

+ 40 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/vo/ScanStatistics.java

@@ -0,0 +1,40 @@
+package com.zkqy.amichi.domain.vo;
+
+public class ScanStatistics {
+    private String dCount;//订单数量
+    private String dsCount;//完成数量
+    private String dfCount;//失败数量
+    private String dOrder;//订单号
+
+    public String getdCount() {
+        return dCount;
+    }
+
+    public void setdCount(String dCount) {
+        this.dCount = dCount;
+    }
+
+    public String getDsCount() {
+        return dsCount;
+    }
+
+    public void setDsCount(String dsCount) {
+        this.dsCount = dsCount;
+    }
+
+    public String getDfCount() {
+        return dfCount;
+    }
+
+    public void setDfCount(String dfCount) {
+        this.dfCount = dfCount;
+    }
+
+    public String getdOrder() {
+        return dOrder;
+    }
+
+    public void setdOrder(String dOrder) {
+        this.dOrder = dOrder;
+    }
+}

+ 25 - 19
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/domain/JdProductionOrder.java

@@ -28,10 +28,10 @@ public class JdProductionOrder extends BaseEntity
     @JSONField(name = "FBillNo")
     private String documentNumber;
 
-    /** 单据编号 */
-    @Excel(name = "单据编号")
-    @JSONField(name = "FBillNo")
-    private String fbillno;
+
+
+
+
 
 
     /** 单据编号 */
@@ -39,17 +39,19 @@ public class JdProductionOrder extends BaseEntity
     @JSONField(name = "fid")
     private String fid;
 
-
-    /** 订单号 */
-    @Excel(name = "订单号")
-    @JSONField(name = "FSrcBillNo")
-    private String fsrcbillno;
+    @Excel(name = "BOM版本")
+    @JSONField(name = "FBomId.FNumber")
+    private String fbomIdFnumber;
 
     /** 订单号 */
     @Excel(name = "源单分录内码")
     @JSONField(name = "FTreeEntity.FEntryId")
     private String ftreeEntityFentryid;
 
+    @Excel(name = "单位编号")
+    @JSONField(name = "FUnitId.FNumber")
+    private String funitidfNumber;
+
     @Excel(name = "需求日期")
     @JSONField(name = "F.PONP.XQRQ")
     private String   completionTime;
@@ -254,14 +256,24 @@ public class JdProductionOrder extends BaseEntity
         this.creationtimeString = creationtimeString;
     }
 
-    public String getFbillno() {
-        return fbillno;
+
+    public String getFbomIdFnumber() {
+        return fbomIdFnumber;
     }
 
-    public void setFbillno(String fbillno) {
-        this.fbillno = fbillno;
+    public void setFbomIdFnumber(String fbomIdFnumber) {
+        this.fbomIdFnumber = fbomIdFnumber;
     }
 
+    public String getFunitidfNumber() {
+        return funitidfNumber;
+    }
+
+    public void setFunitidfNumber(String funitidfNumber) {
+        this.funitidfNumber = funitidfNumber;
+    }
+
+
     public String getFid() {
         return fid;
     }
@@ -270,13 +282,7 @@ public class JdProductionOrder extends BaseEntity
         this.fid = fid;
     }
 
-    public String getFsrcbillno() {
-        return fsrcbillno;
-    }
 
-    public void setFsrcbillno(String fsrcbillno) {
-        this.fsrcbillno = fsrcbillno;
-    }
 
     public String getFtreeEntityFentryid() {
         return ftreeEntityFentryid;

+ 49 - 41
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/impl/JdProductionOrderServiceImpl.java

@@ -159,7 +159,7 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                 //定义查询条件
                 String query = "{\n" +
                         "    \"FormId\": \"PRD_MO\",\n" +
-                        "    \"FieldKeys\": \"fid,FSrcBillNo,FTreeEntity_FEntryId,FDescription,F_PONP_teshuyaoqiu,FBillNo,FBillType,FDate,FDocumentStatus," +
+                        "    \"FieldKeys\": \"FBomId.FNumber,FUnitId.FNumber,fid,FSrcBillNo,FTreeEntity_FEntryId,FDescription,F_PONP_teshuyaoqiu,FBillNo,FBillType,FDate,FDocumentStatus," +
                         "FProductType,FMaterialId,FWorkShopID0,FQty,FStatus,FSaleOrderNo,FPickMtrlStatus," +
                         "FMaterialId.FNumber,FMaterialName,F_PONP_BaseProperty,FSpecification,FUnitId.FName,F_PONP_yanse,F_PONP_mingpai,F_PONP_hegezheng.FDataValue," +
                         "F_PONP_shuomingshu.FDataValue,F_PONP_KaiGuanXiang,F_PONP_baozhuangxiang,F_PONP_GongLv,FPlanFinishDate,FPlanStartDate,F_PONP_XQRQ,FPlanStartDate,FPlanFinishDate\",\n" +
@@ -182,7 +182,6 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                 List<String> collectTwo = productionPlanningManagements.stream().map(ProductionPlanningManagement::getOrderNumber).collect(Collectors.toSet())
                         .stream().collect(Collectors.toList());
 
-
                 Map<String, List<JdProductionOrder>> groupedByDemandDocument = jdProductionOrders.stream()
                         .filter(item -> !collectTwo.contains(item.getDemandDocument()))
                         .collect(Collectors.groupingBy(JdProductionOrder::getDemandDocument));
@@ -231,6 +230,7 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                                 productionPlanningManagement.setContractNumber(mapList.get(0).get("F.PONP.Text").toString());
                             }
                             productionPlanningManagement.setCompletionTime(fDeliveryDate);
+//                            productionPlanningManagement.setQuantity(String.valueOf(v.size()));//单据数量
                             //======处理基本的订单信息
                             productionPlanningManagementMapper.insertProductionPlanningManagement(productionPlanningManagement);
                             v.forEach(a -> {
@@ -255,12 +255,15 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                                 planTaskDetails.setScheduledCommencement(a.getFPlanStartDate()); //计划开始时间
                                 planTaskDetails.setScheduledCompletion(a.getFPlanFinishDate()); //计划完工时间
                                 planTaskDetails.setRemark(a.getRemark());
+                                planTaskDetails.setFid(a.getFid());
+                                planTaskDetails.setFtreeEntityFentryid(a.getFtreeEntityFentryid());
+                                planTaskDetails.setFbillno(a.getDocumentNumber());//生产订单号
+                                planTaskDetails.setFsrcbillno(a.getDemandDocument());//销售订单号
+                                planTaskDetails.setFunitidfNumber(a.getFunitidfNumber());//单位编号
                                 if (StringUtils.isNotNull(a.getDocumentDate())) {
-                                    //                                SimpleDateFormat formatter1= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                                    //                                String formattedDate = formatter1.format(a.getDocumentDate());
                                     planTaskDetails.setTimeOfRequest(a.getDocumentDate());
                                 }
-
+                                planTaskDetails.setFbomIdFnumber(a.getFbomIdFnumber());//BOM版本
                                 planTaskDetailsMapper.insertPlanTaskDetails(planTaskDetails);
                             });
                         }
@@ -433,40 +436,41 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
     public  AjaxResult pullWeldProductionOrder(){
         Boolean aTrue = stringRedisTemplate.opsForValue().setIfAbsent("fjqy:hjd:pulled", "true");
         if (aTrue) {
-                 //金蝶工具key
-                K3CloudApi api = new K3CloudApi();
-                // 获取当前时间
-                LocalDateTime now = LocalDateTime.now();
-                System.out.println("当前时间: " + now);
-                // 减去三个月
-                LocalDateTime threeMonthsAgo = now.minusMonths(6);
-                System.out.println("三个月前的时间: " + threeMonthsAgo);
-                LocalDateTime localDateTime1 = threeMonthsAgo.withMinute(0).withSecond(0).withNano(0);
-                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-                String format = localDateTime1.format(formatter);
-                //定义查询条件
-                String query="{\n" +
-                        "    \"FormId\": \"PRD_MO\",\n" +
-                        "    \"FieldKeys\": \"fid,FSrcBillNo,FTreeEntity_FEntryId,FDescription,F_PONP_teshuyaoqiu,FBillNo,FBillType,FDate,FDocumentStatus," +
-                        "FProductType,FMaterialId,FWorkShopID0,FQty,FStatus,,FSaleOrderNo,FPickMtrlStatus," +
-                        "FMaterialId.FNumber,FMaterialName,F_PONP_BaseProperty,FSpecification,FUnitId.FName,F_PONP_yanse,F_PONP_mingpai,F_PONP_hegezheng.FDataValue," +
-                        "F_PONP_shuomingshu.FDataValue,F_PONP_KaiGuanXiang,F_PONP_baozhuangxiang,F_PONP_GongLv,F_PONP_XQRQ,FDate,FPlanStartDate,FPlanFinishDate\",\n" +
-                        "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FMaterialId.FNumber\",\"Compare\":\"17\",\"Value\":\"焊\",\"Right\":\"\",\"Logic\":0}," +
-                        "{\"Left\":\"\",\"FieldName\":\"FCreateDate\",\"Compare\":\"39\",\"Value\":\""+format+"\",\"Right\":\"\",\"Logic\":0}],\n" +
-                        "    \"OrderString\": \"\",\n" +
-                        "    \"TopRowCount\": 0,\n" +
-                        "    \"StartRow\": 0,\n" +
-                        "    \"Limit\": 5000,\n" +
-                        "    \"SubSystemId\": \"\"\n" +
-                        "}";
-                int startRow = 0; // 起始行号
-                int limit = 5000; // 每次查询的数量
-                // 更新查询条件中的起始行号
-                //查询条件
-                Map<String, Object> map = JSON.parseObject(query, Map.class);
-                List<JdProductionOrder> jdProductionOrders;
-                boolean flag = true;
+
                 try {
+                    //金蝶工具key
+                    K3CloudApi api = new K3CloudApi();
+                    // 获取当前时间
+                    LocalDateTime now = LocalDateTime.now();
+                    System.out.println("当前时间: " + now);
+                    // 减去三个月
+                    LocalDateTime threeMonthsAgo = now.minusMonths(6);
+                    System.out.println("三个月前的时间: " + threeMonthsAgo);
+                    LocalDateTime localDateTime1 = threeMonthsAgo.withMinute(0).withSecond(0).withNano(0);
+                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+                    String format = localDateTime1.format(formatter);
+                    //定义查询条件
+                    String query="{\n" +
+                            "    \"FormId\": \"PRD_MO\",\n" +
+                            "    \"FieldKeys\": \"FBomId.FNumber,FUnitId.FNumber,fid,FSrcBillNo,FTreeEntity_FEntryId,FDescription,F_PONP_teshuyaoqiu,FBillNo,FBillType,FDate,FDocumentStatus," +
+                            "FProductType,FMaterialId,FWorkShopID0,FQty,FStatus,,FSaleOrderNo,FPickMtrlStatus," +
+                            "FMaterialId.FNumber,FMaterialName,F_PONP_BaseProperty,FSpecification,FUnitId.FName,F_PONP_yanse,F_PONP_mingpai,F_PONP_hegezheng.FDataValue," +
+                            "F_PONP_shuomingshu.FDataValue,F_PONP_KaiGuanXiang,F_PONP_baozhuangxiang,F_PONP_GongLv,F_PONP_XQRQ,FDate,FPlanStartDate,FPlanFinishDate\",\n" +
+                            "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FMaterialId.FNumber\",\"Compare\":\"17\",\"Value\":\"焊\",\"Right\":\"\",\"Logic\":0}," +
+                            "{\"Left\":\"\",\"FieldName\":\"FCreateDate\",\"Compare\":\"39\",\"Value\":\""+format+"\",\"Right\":\"\",\"Logic\":0}],\n" +
+                            "    \"OrderString\": \"\",\n" +
+                            "    \"TopRowCount\": 0,\n" +
+                            "    \"StartRow\": 0,\n" +
+                            "    \"Limit\": 5000,\n" +
+                            "    \"SubSystemId\": \"\"\n" +
+                            "}";
+                    int startRow = 0; // 起始行号
+                    int limit = 5000; // 每次查询的数量
+                    // 更新查询条件中的起始行号
+                    //查询条件
+                    Map<String, Object> map = JSON.parseObject(query, Map.class);
+                    List<JdProductionOrder> jdProductionOrders;
+                    boolean flag = true;
                     do {
                         // 更新查询条件中的起始行号
                         map.put("StartRow", startRow);
@@ -555,10 +559,14 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                                             planTaskDetails.setScheduledCompletion(a.getFPlanFinishDate()); //计划完工时间
                                             planTaskDetails.setRemark(a.getRemark());
                                             if(StringUtils.isNotNull(a.getDocumentDate())){
-                                                SimpleDateFormat formatter1= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                                                String formattedDate = formatter1.format(a.getDocumentDate());
-                                                planTaskDetails.setTimeOfRequest(formattedDate);//单据日期
+                                                planTaskDetails.setTimeOfRequest(a.getDocumentDate());//单据日期
                                             }
+                                            planTaskDetails.setFid(a.getFid());
+                                            planTaskDetails.setFtreeEntityFentryid(a.getFtreeEntityFentryid());
+                                            planTaskDetails.setFbillno(a.getDocumentNumber());//生产订单号
+                                            planTaskDetails.setFsrcbillno(a.getDemandDocument());//销售订单号
+                                            planTaskDetails.setFunitidfNumber(a.getFunitidfNumber());//单位
+                                            planTaskDetails.setFbomIdFnumber(a.getFbomIdFnumber());//BOM版本
                                             planTaskDetailsMapper.insertPlanTaskDetails(planTaskDetails);
                                         });
                                     }

+ 9 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/MaterialRetentionLogMapper.java

@@ -30,6 +30,15 @@ public interface MaterialRetentionLogMapper
      */
     public List<MaterialRetentionLog> selectMaterialRetentionLogList(MaterialRetentionLog materialRetentionLog);
 
+
+    /**
+     * 查询扫码扣料日志列表
+     *
+     * @param materialRetentionLog 扫码扣料日志
+     * @return 扫码扣料日志集合
+     */
+    public List<MaterialRetentionLog> selectMaterialRetentionLogListNoProduction(MaterialRetentionLog materialRetentionLog);
+
     /**
      * 新增扫码扣料日志
      * 

+ 29 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/RingScanInformationMapper.java

@@ -6,6 +6,7 @@ import java.util.Map;
 import com.zkqy.amichi.domain.RingScanInformation;
 import com.zkqy.amichi.domain.vo.RingScanInformationLogVo;
 import com.zkqy.amichi.domain.vo.RingScanInformationVo;
+import com.zkqy.amichi.domain.vo.ScanStatistics;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -33,6 +34,14 @@ public interface RingScanInformationMapper
      */
     public List<RingScanInformation> selectRingScanInformationList(RingScanInformation ringScanInformation);
 
+
+    /**
+     * 统计扫描信息
+     * @param RingScanInformation
+     * @return
+     */
+    public ScanStatistics  selectScanStatistics(RingScanInformation RingScanInformation);
+
     public List<RingScanInformation> selectRingScanInformationListScfy(RingScanInformation ringScanInformation);
     /**
      * 查询指环王扫描日志信息列表
@@ -102,4 +111,24 @@ public interface RingScanInformationMapper
      * @return
      */
     int selectRingScanInformationListScfyCount(RingScanInformation ringScanInformation1);
+
+    /**
+     * 导出
+     * @param ringScanInformation
+     * @return
+     */
+    List<RingScanInformationVo> selectRingScanInformationDownload(RingScanInformation ringScanInformation);
+
+    /**
+     * 查询当前完成数量
+     * @return
+     */
+    String  selectRingScanInformationListLike(RingScanInformation ringScanInformation);
+
+    /**
+     *  手持机日志Table表格
+     * @param ringScanInformation
+     * @return
+     */
+    List<Map> handHeldJournal(RingScanInformation ringScanInformation);
 }

+ 56 - 43
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/scheduling/ScheduledBean.java

@@ -76,26 +76,27 @@ public class ScheduledBean {
     public void printLog1(){
         Boolean aTrue = stringRedisTemplate.opsForValue().setIfAbsent("fjqy:ptd:pulled", "true");
         if (aTrue) {
-            //物料基本数据
-            AjaxResult ajaxResult = this.pullMaterialBaseInfo();
-            //金蝶工具key
-            K3CloudApi api = new K3CloudApi();
-            //定义查询条件
-            String query="{\n" +
-                    "    \"FormId\": \"PRD_MO\",\n" +
-                    "    \"FieldKeys\": \"fid,FSrcBillNo,FTreeEntity_FEntryId,FDescription,F_PONP_teshuyaoqiu,FBillNo,FBillType,FDate,FDocumentStatus," +
-                    "FProductType,FMaterialId,FWorkShopID0,FQty,FStatus,FSaleOrderNo,FPickMtrlStatus," +
-                    "FMaterialId.FNumber,FMaterialName,F_PONP_BaseProperty,FSpecification,FUnitId.FName,F_PONP_yanse,F_PONP_mingpai,F_PONP_hegezheng.FDataValue," +
-                    "F_PONP_shuomingshu.FDataValue,F_PONP_KaiGuanXiang,F_PONP_baozhuangxiang,F_PONP_GongLv,FPlanFinishDate,FPlanStartDate,F_PONP_XQRQ,FPlanStartDate,FPlanFinishDate\",\n" +
-                    "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FMaterialId.FNumber\",\"Compare\":\"34\",\"Value\":\"焊\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FStatus\",\"Compare\":\"105\",\"Value\":\"4\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FCreateDate\",\"Compare\":\"13\",\"Value\":\"\",\"Right\":\"\",\"Logic\":0}],\n" +
-                    "    \"OrderString\": \"\",\n" +
-                    "    \"TopRowCount\": 0,\n" +
-                    "    \"StartRow\": 0,\n" +
-                    "    \"Limit\": 5000,\n" +
-                    "    \"SubSystemId\": \"\"\n" +
-                    "}";
+
 //
             try {
+                //物料基本数据
+                AjaxResult ajaxResult = this.pullMaterialBaseInfo();
+                //金蝶工具key
+                K3CloudApi api = new K3CloudApi();
+                //定义查询条件
+                String query="{\n" +
+                        "    \"FormId\": \"PRD_MO\",\n" +
+                        "    \"FieldKeys\": \"FBomId.FNumber,FUnitId.FNumber,fid,FSrcBillNo,FTreeEntity_FEntryId,FDescription,F_PONP_teshuyaoqiu,FBillNo,FBillType,FDate,FDocumentStatus," +
+                        "FProductType,FMaterialId,FWorkShopID0,FQty,FStatus,FSaleOrderNo,FPickMtrlStatus," +
+                        "FMaterialId.FNumber,FMaterialName,F_PONP_BaseProperty,FSpecification,FUnitId.FName,F_PONP_yanse,F_PONP_mingpai,F_PONP_hegezheng.FDataValue," +
+                        "F_PONP_shuomingshu.FDataValue,F_PONP_KaiGuanXiang,F_PONP_baozhuangxiang,F_PONP_GongLv,FPlanFinishDate,FPlanStartDate,F_PONP_XQRQ,FPlanStartDate,FPlanFinishDate\",\n" +
+                        "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FMaterialId.FNumber\",\"Compare\":\"34\",\"Value\":\"焊\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FStatus\",\"Compare\":\"105\",\"Value\":\"4\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FCreateDate\",\"Compare\":\"13\",\"Value\":\"\",\"Right\":\"\",\"Logic\":0}],\n" +
+                        "    \"OrderString\": \"\",\n" +
+                        "    \"TopRowCount\": 0,\n" +
+                        "    \"StartRow\": 0,\n" +
+                        "    \"Limit\": 5000,\n" +
+                        "    \"SubSystemId\": \"\"\n" +
+                        "}";
                 //查询结果
                 String resultJson = api.billQuery(query);
                 //生产信息
@@ -185,7 +186,12 @@ public class ScheduledBean {
 //                                String formattedDate = formatter1.format(a.getDocumentDate());
                                     planTaskDetails.setTimeOfRequest(a.getDocumentDate());
                                 }
-
+                                planTaskDetails.setFid(a.getFid());
+                                planTaskDetails.setFtreeEntityFentryid(a.getFtreeEntityFentryid());
+                                planTaskDetails.setFbillno(a.getDocumentNumber());//生产订单号
+                                planTaskDetails.setFsrcbillno(a.getDemandDocument());//销售订单号
+                                planTaskDetails.setFunitidfNumber(a.getFunitidfNumber());//单位
+                                planTaskDetails.setFbomIdFnumber(a.getFbomIdFnumber());//BOM版本
                                 planTaskDetailsMapper.insertPlanTaskDetails(planTaskDetails);
                             });
                         }
@@ -348,31 +354,32 @@ public class ScheduledBean {
     public void printLog2() {
         Boolean aTrue = stringRedisTemplate.opsForValue().setIfAbsent("fjqy:hjd:pulled", "true");
         if (aTrue) {
-            //金蝶工具key
-            K3CloudApi api = new K3CloudApi();
-            //定义查询条件
-            String query = "{\n" +
-                    "    \"FormId\": \"PRD_MO\",\n" +
-                    "    \"FieldKeys\": \"fid,FSrcBillNo,FTreeEntity_FEntryId,FDescription,F_PONP_teshuyaoqiu,FBillNo,FBillType,FDate,FDocumentStatus," +
-                    "FProductType,FMaterialId,FWorkShopID0,FQty,FStatus,,FSaleOrderNo,FPickMtrlStatus," +
-                    "FMaterialId.FNumber,FMaterialName,F_PONP_BaseProperty,FSpecification,FUnitId.FName,F_PONP_yanse,F_PONP_mingpai,F_PONP_hegezheng.FDataValue," +
-                    "F_PONP_shuomingshu.FDataValue,F_PONP_KaiGuanXiang,F_PONP_baozhuangxiang,F_PONP_GongLv,F_PONP_XQRQ,FDate,FPlanStartDate,FPlanFinishDate\",\n" +
-                    "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FMaterialId.FNumber\",\"Compare\":\"17\",\"Value\":\"焊\",\"Right\":\"\",\"Logic\":0}," +
-                    "{\"Left\":\"\",\"FieldName\":\"FCreateDate\",\"Compare\":\"13\",\"Value\":\"\",\"Right\":\"\",\"Logic\":0}],\n" +
-                    "    \"OrderString\": \"\",\n" +
-                    "    \"TopRowCount\": 0,\n" +
-                    "    \"StartRow\": 0,\n" +
-                    "    \"Limit\": 5000,\n" +
-                    "    \"SubSystemId\": \"\"\n" +
-                    "}";
-            int startRow = 0; // 起始行号
-            int limit = 5000; // 每次查询的数量
-            // 更新查询条件中的起始行号
-            //查询条件
-            Map<String, Object> map = JSON.parseObject(query, Map.class);
-            List<JdProductionOrder> jdProductionOrders;
-            boolean flag = true;
+
             try {
+                //金蝶工具key
+                K3CloudApi api = new K3CloudApi();
+                //定义查询条件
+                String query = "{\n" +
+                        "    \"FormId\": \"PRD_MO\",\n" +
+                        "    \"FieldKeys\": \"FBomId.FNumber,FUnitId.FNumber,fid,FSrcBillNo,FTreeEntity_FEntryId,FDescription,F_PONP_teshuyaoqiu,FBillNo,FBillType,FDate,FDocumentStatus," +
+                        "FProductType,FMaterialId,FWorkShopID0,FQty,FStatus,,FSaleOrderNo,FPickMtrlStatus," +
+                        "FMaterialId.FNumber,FMaterialName,F_PONP_BaseProperty,FSpecification,FUnitId.FName,F_PONP_yanse,F_PONP_mingpai,F_PONP_hegezheng.FDataValue," +
+                        "F_PONP_shuomingshu.FDataValue,F_PONP_KaiGuanXiang,F_PONP_baozhuangxiang,F_PONP_GongLv,F_PONP_XQRQ,FDate,FPlanStartDate,FPlanFinishDate\",\n" +
+                        "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FMaterialId.FNumber\",\"Compare\":\"17\",\"Value\":\"焊\",\"Right\":\"\",\"Logic\":0}," +
+                        "{\"Left\":\"\",\"FieldName\":\"FCreateDate\",\"Compare\":\"13\",\"Value\":\"\",\"Right\":\"\",\"Logic\":0}],\n" +
+                        "    \"OrderString\": \"\",\n" +
+                        "    \"TopRowCount\": 0,\n" +
+                        "    \"StartRow\": 0,\n" +
+                        "    \"Limit\": 5000,\n" +
+                        "    \"SubSystemId\": \"\"\n" +
+                        "}";
+                int startRow = 0; // 起始行号
+                int limit = 5000; // 每次查询的数量
+                // 更新查询条件中的起始行号
+                //查询条件
+                Map<String, Object> map = JSON.parseObject(query, Map.class);
+                List<JdProductionOrder> jdProductionOrders;
+                boolean flag = true;
                 do {
                     // 更新查询条件中的起始行号
                     map.put("StartRow", startRow);
@@ -472,6 +479,12 @@ public class ScheduledBean {
                                         if (StringUtils.isNotNull(a.getDocumentDate())) {
                                             planTaskDetails.setTimeOfRequest(a.getDocumentDate());//单据日期
                                         }
+                                        planTaskDetails.setFid(a.getFid());
+                                        planTaskDetails.setFtreeEntityFentryid(a.getFtreeEntityFentryid());
+                                        planTaskDetails.setFbillno(a.getDocumentNumber());//生产订单号
+                                        planTaskDetails.setFsrcbillno(a.getDemandDocument());//销售订单号
+                                        planTaskDetails.setFunitidfNumber(a.getFunitidfNumber());//单位
+                                        planTaskDetails.setFbomIdFnumber(a.getFbomIdFnumber());//BOM版本
                                         planTaskDetailsMapper.insertPlanTaskDetails(planTaskDetails);
                                     });
                                 }

+ 2 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IMaterialInfoService.java

@@ -33,6 +33,8 @@ public interface IMaterialInfoService
      */
     public List<MaterialInfo> selectMaterialInfoList(MaterialInfo materialInfo);
 
+
+
     /**
      * 新增物料信息
      * 

+ 14 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IRingScanInformationService.java

@@ -100,4 +100,18 @@ public interface IRingScanInformationService
      * @return
      */
     int  selectRingScanCount(RingScanInformation ringScanInformation1);
+
+    /**
+     * 导出
+     * @param ringScanInformation
+     * @return
+     */
+    List<RingScanInformationVo> selectRingScanInformationDownload(RingScanInformation ringScanInformation);
+
+    /**
+     * 手持日志Table表格
+     * @param ringScanInformation
+     * @return
+     */
+    List<Map> handHeldJournal(RingScanInformation ringScanInformation);
 }

+ 2 - 1
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/MaterialInfoServiceImpl.java

@@ -348,7 +348,8 @@ public class MaterialInfoServiceImpl implements IMaterialInfoService
         List<MaterialInfo> materialInfos = materialInfoMapper.selectMaterialInfoList(materialInfo);
         //扣料记录查询
         MaterialRetentionLog materialtransactionlog=new MaterialRetentionLog();
-        List<MaterialRetentionLog> retentionLogs = retentionLogMapper.selectMaterialRetentionLogList(materialtransactionlog);
+        //查询所有生产中的订单信息
+        List<MaterialRetentionLog> retentionLogs = retentionLogMapper.selectMaterialRetentionLogListNoProduction(materialtransactionlog);
         //合并
         Map<String, MaterialRetentionLog> materialLogMap = retentionLogs.stream()
                 .collect(Collectors.toMap(

+ 29 - 26
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/RingScanInformationServiceImpl.java

@@ -17,13 +17,12 @@ import com.zkqy.amichi.service.IRingScanInformationService;
 
 /**
  * 指环王扫描日志信息Service业务层处理
- * 
+ *
  * @author ruoyi
  * @date 2024-10-12
  */
 @Service
-public class RingScanInformationServiceImpl implements IRingScanInformationService 
-{
+public class RingScanInformationServiceImpl implements IRingScanInformationService {
     @Autowired
     private RingScanInformationMapper ringScanInformationMapper;
     @Autowired
@@ -31,19 +30,17 @@ public class RingScanInformationServiceImpl implements IRingScanInformationServi
 
     /**
      * 查询指环王扫描日志信息
-     * 
+     *
      * @param id 指环王扫描日志信息主键
      * @return 指环王扫描日志信息
      */
     @Override
-    public RingScanInformation selectRingScanInformationById(Long id)
-    {
+    public RingScanInformation selectRingScanInformationById(Long id) {
         return ringScanInformationMapper.selectRingScanInformationById(id);
     }
 
     @Override
-    public Map<String,List<RingScanInformationLogVo>> SelectRingScanInformationLog(List<String> orderNumberListString)
-    {
+    public Map<String, List<RingScanInformationLogVo>> SelectRingScanInformationLog(List<String> orderNumberListString) {
         //取真实展示数据
         List<RingScanInformationLogVo> ringScanInformations = ringScanInformationMapper.SelectRingScanInformationLog(orderNumberListString);
         //转换为map集合
@@ -54,6 +51,7 @@ public class RingScanInformationServiceImpl implements IRingScanInformationServi
 
     /**
      * 倒推数据展示
+     *
      * @param orderNumberListString
      * @return
      */
@@ -66,74 +64,68 @@ public class RingScanInformationServiceImpl implements IRingScanInformationServi
                 .collect(
                         Collectors.groupingBy(
                                 RingScanInformationLogVo::getProductionOrderNumber, LinkedHashMap::new, // 使用 LinkedHashMap 保持插入顺序
-                        Collectors.toList()));
+                                Collectors.toList()));
         return mapByOrderNumber;
     }
 
 
     /**
      * 查询指环王扫描日志信息列表
-     * 
+     *
      * @param ringScanInformation 指环王扫描日志信息
      * @return 指环王扫描日志信息
      */
     @Override
-    public List<RingScanInformationVo> selectRingScanInformationListVo(RingScanInformation ringScanInformation)
-    {
+    public List<RingScanInformationVo> selectRingScanInformationListVo(RingScanInformation ringScanInformation) {
         return ringScanInformationMapper.selectRingScanInformationListVo(ringScanInformation);
     }
 
     @Override
-    public List<RingScanInformation> selectRingScanInformationList(RingScanInformation ringScanInformation)
-    {
+    public List<RingScanInformation> selectRingScanInformationList(RingScanInformation ringScanInformation) {
         return ringScanInformationMapper.selectRingScanInformationList(ringScanInformation);
     }
 
     /**
      * 新增指环王扫描日志信息
-     * 
+     *
      * @param ringScanInformation 指环王扫描日志信息
      * @return 结果
      */
     @Override
-    public int insertRingScanInformation(RingScanInformation ringScanInformation)
-    {
+    public int insertRingScanInformation(RingScanInformation ringScanInformation) {
         return ringScanInformationMapper.insertRingScanInformation(ringScanInformation);
     }
 
     /**
      * 修改指环王扫描日志信息
-     * 
+     *
      * @param ringScanInformation 指环王扫描日志信息
      * @return 结果
      */
     @Override
-    public int updateRingScanInformation(RingScanInformation ringScanInformation)
-    {
+    public int updateRingScanInformation(RingScanInformation ringScanInformation) {
         return ringScanInformationMapper.updateRingScanInformation(ringScanInformation);
     }
 
     /**
      * 批量删除指环王扫描日志信息
-     * 
+     *
      * @param ids 需要删除的指环王扫描日志信息主键
      * @return 结果
      */
     @Override
-    public int deleteRingScanInformationByIds(Long[] ids)
-    {
+    public int deleteRingScanInformationByIds(Long[] ids) {
         return ringScanInformationMapper.deleteRingScanInformationByIds(ids);
     }
 
     /**
      * 删除指环王扫描日志信息信息
-     * 
+     *
      * @param id 指环王扫描日志信息主键
      * @return 结果
      */
     @Override
-    public int deleteRingScanInformationById(Long id)
-    {
+    public int deleteRingScanInformationById(Long id) {
         return ringScanInformationMapper.deleteRingScanInformationById(id);
     }
 
@@ -147,4 +139,15 @@ public class RingScanInformationServiceImpl implements IRingScanInformationServi
         System.out.println("😊");
         return ringScanInformationMapper.selectRingScanInformationListScfyCount(ringScanInformation1);
     }
+
+    @Override
+    public List<RingScanInformationVo> selectRingScanInformationDownload(RingScanInformation ringScanInformation) {
+        return ringScanInformationMapper.selectRingScanInformationDownload(ringScanInformation);
+    }
+
+    @Override
+    public List<Map> handHeldJournal(RingScanInformation ringScanInformation) {
+        return ringScanInformationMapper.handHeldJournal(ringScanInformation);
+    }
+
 }

Fișier diff suprimat deoarece este prea mare
+ 982 - 638
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/StationInformationServiceImpl.java


+ 84 - 0
zkqy-fujian-amichi/src/main/resources/mapper/MaterialRetentionLogMapper.xml

@@ -88,6 +88,90 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="productionOrderNumber!=null">and production_order_number =#{productionOrderNumber}</if>
         </where>
     </select>
+
+
+    <sql id="selectMaterialRetentionLogVo2">
+        SELECT
+            mrl.id,
+            mrl.material_code,
+            mrl.material_name,
+            mrl.specification,
+            mrl.model,
+            mrl.unit,
+            CASE
+
+                WHEN CAST( mrl.actual_quantity_issued AS CHAR ) LIKE '%.0000' THEN
+                    FLOOR( mrl.actual_quantity_issued ) ELSE mrl.actual_quantity_issued
+                END AS actual_quantity_issued,
+            mrl.delivery_warehouse,
+            mrl.ck_number,
+            mrl.document_remarks,
+            mrl.document_type,
+            mrl.inventory_organization,
+            mrl.receiving_tissue,
+            mrl.inventory_direction,
+            mrl.date_of_delivery,
+            mrl.materials_requisition_department,
+            mrl.material_taker,
+            mrl.business_type,
+            mrl.owner_type,
+            mrl.OWNER,
+            mrl.document_status,
+            mrl.detailed_remarks,
+            mrl.create_by_id,
+            mrl.create_by,
+            mrl.create_time,
+            mrl.update_by_id,
+            mrl.update_by,
+            mrl.update_time,
+            mrl.del_flag,
+            mrl.product_code,
+            mrl.product_name,
+            mrl.product_model,
+            mrl.product_specification,
+            mrl.material_type,
+            mrl.process,
+            mrl.order_number,
+            mrl.production_order_number
+        FROM
+            fjqydb.material_retention_log AS mrl
+                LEFT JOIN fjqydb.plan_task_details AS ptd ON ptd.demand_document = mrl.production_order_number
+    </sql>
+    <select id="selectMaterialRetentionLogListNoProduction" parameterType="com.zkqy.amichi.domain.MaterialRetentionLog" resultMap="MaterialRetentionLogResult">
+        <include refid="selectMaterialRetentionLogVo2"/>
+        <where>
+            <if test="materialCode != null  and materialCode != ''"> and ptd.material_code = #{materialCode}</if>
+            <if test="materialName != null  and materialName != ''"> and ptd.material_name like concat('%', #{materialName}, '%')</if>
+            <if test="specification != null  and specification != ''"> and ptd.specification = #{specification}</if>
+            <if test="model != null  and model != ''"> and ptd.model = #{model}</if>
+            <if test="unit != null  and unit != ''"> and ptd.unit = #{unit}</if>
+            <if test="actualQuantityIssued != null  and actualQuantityIssued != ''"> and ptd.actual_quantity_issued = #{actualQuantityIssued}</if>
+            <if test="deliveryWarehouse != null  and deliveryWarehouse != ''"> and ptd.delivery_warehouse = #{deliveryWarehouse}</if>
+            <if test="ckNumber != null  and ckNumber != ''"> and ptd.ck_number = #{ckNumber}</if>
+            <if test="documentRemarks != null  and documentRemarks != ''"> and ptd.document_remarks = #{documentRemarks}</if>
+            <if test="documentType != null  and documentType != ''"> and ptd.document_type = #{documentType}</if>
+            <if test="inventoryOrganization != null  and inventoryOrganization != ''"> and ptd.inventory_organization = #{inventoryOrganization}</if>
+            <if test="receivingTissue != null  and receivingTissue != ''"> and ptd.receiving_tissue = #{receivingTissue}</if>
+            <if test="inventoryDirection != null  and inventoryDirection != ''"> and ptd.inventory_direction = #{inventoryDirection}</if>
+            <if test="dateOfDelivery != null  and dateOfDelivery != ''"> and ptd.date_of_delivery = #{dateOfDelivery}</if>
+            <if test="materialsRequisitionDepartment != null  and materialsRequisitionDepartment != ''"> and ptd.materials_requisition_department = #{materialsRequisitionDepartment}</if>
+            <if test="materialTaker != null  and materialTaker != ''"> and ptd.material_taker = #{materialTaker}</if>
+            <if test="businessType != null  and businessType != ''"> and ptd.business_type = #{businessType}</if>
+            <if test="ownerType != null  and ownerType != ''"> and ptd.owner_type = #{ownerType}</if>
+            <if test="owner != null  and owner != ''"> and ptd.owner = #{owner}</if>
+            <if test="documentStatus != null  and documentStatus != ''"> and ptd.document_status = #{documentStatus}</if>
+            <if test="detailedRemarks != null  and detailedRemarks != ''"> and ptd.detailed_remarks = #{detailedRemarks}</if>
+            <if test="createById != null "> and ptd.create_by_id = #{createById}</if>
+            <if test="updateById != null "> and ptd.update_by_id = #{updateById}</if>
+            <if test="productCode != null "> and ptd.product_code = #{productCode}</if>
+            <if test="productName != null "> and ptd.product_name = #{productName}</if>
+            <if test="productModel != null "> and ptd.product_model = #{productModel}</if>
+            <if test="productSpecification != null "> and ptd.product_specification = #{productSpecification}</if>
+            <if test="orderNumber!=null">and ptd.order_number = #{orderNumber}</if>
+            <if test="productionOrderNumber!=null">and ptd.production_order_number =#{productionOrderNumber}</if>
+            and ptd.status !=3
+        </where>
+    </select>
     
     <select id="selectMaterialRetentionLogById" parameterType="Long" resultMap="MaterialRetentionLogResult">
         <include refid="selectMaterialRetentionLogVo"/>

+ 18 - 4
zkqy-fujian-amichi/src/main/resources/mapper/PlanTaskDetailsMapper.xml

@@ -46,6 +46,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="description"    column="description"    />
         <result property="baozhuangxiang"    column="baozhuangxiang"    />
         <result property="status"    column="status"    />
+        <result property="fid"    column="fid"    />
+        <result property="fbomIdFnumber"    column="fbomIdFnumber"    />
+        <result property="ftreeEntityFentryid"    column="ftreeEntity_fentryid"    />
+        <result property="funitidfNumber"    column="funitidfNumber"    />
+        <result property="fbillno"    column="fbillno"    />
+        <result property="fsrcbillno"    column="fsrcbillno"    />
     </resultMap>
 
     <resultMap type="com.zkqy.amichi.domain.vo.PlanTaskDetailsVo" id="PlanTaskDetailsResultVo">
@@ -77,12 +83,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="completionTime"    column="completion_time"/>
         <result property="timeOfRequest" column="time_of_request"/>
         <result property="status"    column="status"    />
+        <result property="fid"    column="fid"    />
+        <result property="fbomIdFnumber"    column="fbomIdFnumber"    />
+        <result property="ftreeEntityFentryid"    column="ftreeEntity_fentryid"    />
+        <result property="funitidfNumber"    column="funitidfNumber"    />
+        <result property="fbillno"    column="fbillno"    />
+        <result property="fsrcbillno"    column="fsrcbillno"    />
     </resultMap>
 
-
-
     <sql id="selectPlanTaskDetailsVo">
-        select id, task_id, model, nameplate, capacity, interface_disk, length, voltage, programme, quantity, sparea, spareb, sparec, remark,
+        select fid,fbomIdFnumber,ftreeEntity_fentryid,funitidfNumber,fbillno,fsrcbillno,id, task_id, model, nameplate, capacity, interface_disk, length, voltage, programme, quantity, sparea, spareb, sparec, remark,
                create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, data_approval_status, process_key,
                task_process_key, task_node_key, plan_id, material_id, material_name, model_number, specification, material_unit, demand_document,
                time_of_request, customer_model, power, colour, mingpai, shuomingshu, hegezheng, description, baozhuangxiang,status
@@ -187,6 +197,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fid != null  and fid != ''">fid,</if>
             <if test="fbillno != null  and fbillno != ''">fbillno,</if>
             <if test="fsrcbillno != null  and fsrcbillno != ''">fsrcbillno,</if>
+            <if test="funitidfNumber != null  and funitidfNumber != ''">funitidfNumber,</if>
+            <if test="fbomIdFnumber != null  and fbomIdFnumber != ''">fbomIdFnumber,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="taskId != null">#{taskId},</if>
@@ -237,6 +249,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="fid != null  and fid != ''">#{fid},</if>
             <if test="fbillno != null  and fbillno != ''">#{fbillno},</if>
             <if test="fsrcbillno != null  and fsrcbillno != ''">#{fsrcbillno},</if>
+            <if test="funitidfNumber != null  and funitidfNumber != ''">#{funitidfNumber},</if>
+            <if test="fbomIdFnumber != null  and fbomIdFnumber != ''">#{fbomIdFnumber},</if>
          </trim>
     </insert>
     <!--查询生产订单号 -->
@@ -393,7 +407,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by material_name
     </select>
 
-    <!--    流转卡数据查询-->
+    <!--流转卡数据查询-->
     <resultMap type="com.zkqy.amichi.domain.vo.PlanTaskDetailsListAndFlowCardDataVo" id="PlanTaskDetailsListAndFlowCardDataVoRp">
         <result property="orderNumber"    column="production_order_list_id"    />
         <result property="serialNumber"    column="serial_number"    />

+ 1 - 0
zkqy-fujian-amichi/src/main/resources/mapper/RingScanInformationFirstMapper.xml

@@ -99,6 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="packingQuantity != null  and packingQuantity != ''"> packing_quantity = #{packingQuantity}</if>
             <if test="inspectionQuantity != null  and inspectionQuantity != ''">inspection_quantity = #{inspectionQuantity}</if>
             <if test="totalQuantity != null  and totalQuantity != ''">total_quantity = #{totalQuantity}</if>
+            <if test="rks != null  and rks != ''">rks = #{rks}</if>
         </trim>
         where production_order_number = #{productionOrderNumber}
     </update>

+ 157 - 9
zkqy-fujian-amichi/src/main/resources/mapper/RingScanInformationMapper.xml

@@ -12,11 +12,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="contentInformation"    column="content_information"    />
         <result property="stationName"    column="station_name"    />
         <result property="personnelName"    column="personnel_name"    />
+        <result property="processName"    column="process_name"    />
         <result property="executionMessage"    column="execution_message"/>
         <result property="executionMark"    column="execution_mark"/>
+        <result property="orderNumber"    column="order_number"    />
+        <result property="productionOrderNumber"    column="production_order_number"    />
+        <result property="processName"    column="process_name"    />
+        <result property="overNumber"    column="over_number"    />
     </resultMap>
     <select id="selectRingScanInformationListScfy" parameterType="com.zkqy.amichi.domain.RingScanInformation" resultMap="RingScanInformationResult">
-        select id, device_number, station_name, personnel_name,scanning_time, content_information,execution_message,execution_mark from fjqydb.ring_scan_information
+        select id, device_number, station_name, personnel_name,
+        process_name,scanning_time, content_information,execution_message,execution_mark,over_number,production_order_number
+        from
+        fjqydb.ring_scan_information
         <where>
             <if test="deviceNumber != null  and deviceNumber != ''"> and device_number = #{deviceNumber}</if>
             and DATE(scanning_time) = CURDATE() order by scanning_time desc limit #{offset},#{pageSize}
@@ -31,22 +39,72 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <sql id="selectRingScanInformationVo">
-        select id, device_number, device_name, scanning_time, content_information,personnel_name from fjqydb.ring_scan_information
+        select id, device_number, device_name, scanning_time,process_name,station_name, content_information,personnel_name,order_number,production_order_number,execution_message from fjqydb.ring_scan_information
     </sql>
 
     <select id="selectRingScanInformationList" parameterType="com.zkqy.amichi.domain.RingScanInformation" resultMap="RingScanInformationResult">
         <include refid="selectRingScanInformationVo"/>
-        <where>  
+        <where>
             <if test="deviceNumber != null  and deviceNumber != ''"> and device_number = #{deviceNumber}</if>
             <if test="processName != null  and processName != ''"> and process_name = #{processName}</if>
             <if test="deviceName != null  and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if>
-            <if test="scanningTime != null "> and scanning_time = #{scanningTime}</if>
             <if test="contentInformation != null  and contentInformation != ''"> and content_information = #{contentInformation}</if>
             <if test="nativeNumbering != null  and nativeNumbering != ''"> and native_numbering = #{nativeNumbering}</if>
             <if test="productionOrderNumber != null  and productionOrderNumber != ''"> and production_order_number = #{productionOrderNumber}</if>
+            <if test="executionMark!=null and executionMark!=''">and execution_mark = #{executionMark}</if>
+            <if test="productionOrderNumber!=null and productionOrderNumber!=''">and production_order_number = #{productionOrderNumber}</if>
+            <if test="orderNumber!=null and orderNumber!=''">and order_number = #{orderNumber}</if>
+            <if test="scanningTimes!=null and scanningTimes[0] != null and scanningTimes[0] != ''">
+                <![CDATA[ and scanning_time >= #{scanningTimes[0]}]]>
+            </if>
+            <if test="scanningTimes!=null and scanningTimes[1] != null and scanningTimes[0] != ''">
+                <![CDATA[ and scanning_time <= #{scanningTimes[0]}]]>
+            </if>
         </where>
+        order by  scanning_time,process_name
+    </select>
+    <select id="selectRingScanInformationDownload" parameterType="com.zkqy.amichi.domain.RingScanInformation" resultMap="RingScanInformationResultNR">
+        SELECT
+        rsi.id,
+        rsi.device_number,
+        rsi.device_name,
+        rsi.scanning_time,
+        rsi.content_information,
+        rsi.native_numbering,
+        rsi.personnel_name,
+        rsi.process_name,
+        rsi.station_name,
+        rsi.execution_mark,
+        rsi.execution_message,
+        ptd.material_id,
+        ptd.material_name,
+        ptd.model_number AS model,
+        ptd.demand_document,
+        rsi.production_order_number,
+        rsi.order_number
+        FROM
+        fjqydb.ring_scan_information as rsi
+        LEFT JOIN fjqydb.plan_task_details AS ptd ON ptd.demand_document = rsi.production_order_number
+        <where>
+            <if test="deviceNumber != null  and deviceNumber != ''"> and device_number = #{deviceNumber}</if>
+            <if test="deviceName != null  and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if>
+            <if test="scanningTime != null "> and scanning_time = #{scanningTime}</if>
+            <if test="personnelName != null "> and personnel_name = #{personnelName}</if>
+            <if test="process != null "> and process = #{process}</if>
+            <if test="contentInformation != null  and contentInformation != ''"> and content_information = #{contentInformation}</if>
+            <if test="nativeNumbering != null  and nativeNumbering != ''"> and native_numbering = #{nativeNumbering}</if>
+            <if test="executionMark!=null and executionMark!=''">and execution_mark = #{executionMark}</if>
+            <if test="productionOrderNumber!=null and productionOrderNumber!=''">and rsi.production_order_number = #{productionOrderNumber}</if>
+            <if test="orderNumber!=null and orderNumber!=''">and rsi.order_number = #{orderNumber}</if>
+            <if test="scanningTimes!=null and scanningTimes[0] != null and scanningTimes[0] != ''">
+                <![CDATA[ and scanning_time >= #{scanningTimes[0]}]]>
+            </if>
+            <if test="scanningTimes!=null and scanningTimes[1] != null and scanningTimes[0] != ''">
+                <![CDATA[ and scanning_time <= #{scanningTimes[0]}]]>
+            </if>
+        </where>
+        order by  scanning_time,process_name
     </select>
-
 
 
 
@@ -57,12 +115,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="scanningTime"    column="scanning_time"    />
         <result property="contentInformation"    column="content_information"    />
         <result property="nativeNumbering"    column="native_numbering"    />
-        <result property="orderNumber"    column="production_order_list_id"    />
+        <result property="orderNumber"    column="production_order_number"    />
         <result property="serialNumber"    column="serial_number"    />
         <result property="materialCode"    column="material_id"    />
         <result property="materialName"    column="material_name"    />
         <result property="model"    column="model"    />
-        <result property="demandDocument"    column="demand_document"    />
+        <result property="demandDocument"    column="order_number"    />
         <result property="personnelName"    column="personnel_name"    />
         <result property="processName"    column="process_name"    />
         <result property="stationName"    column="station_name"    />
@@ -83,11 +141,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         rsi.station_name,
         rsi.execution_mark,
         rsi.execution_message,
-        ptd.demand_document,
         ptd.material_id,
         ptd.material_name,
         ptd.model_number AS model,
-        ppm.order_number as production_order_list_id
+        ptd.demand_document,
+        rsi.production_order_number,
+        rsi.order_number
         FROM
         fjqydb.ring_scan_information as rsi
         LEFT JOIN fjqydb.plan_task_details AS ptd ON ptd.demand_document = rsi.production_order_number
@@ -96,9 +155,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deviceNumber != null  and deviceNumber != ''"> and device_number = #{deviceNumber}</if>
             <if test="deviceName != null  and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if>
             <if test="scanningTime != null "> and scanning_time = #{scanningTime}</if>
+            <if test="personnelName != null "> and personnel_name = #{personnelName}</if>
+            <if test="process != null "> and process = #{process}</if>
             <if test="contentInformation != null  and contentInformation != ''"> and content_information = #{contentInformation}</if>
             <if test="nativeNumbering != null  and nativeNumbering != ''"> and native_numbering = #{nativeNumbering}</if>
             <if test="executionMark!=null and executionMark!=''">and execution_mark = #{executionMark}</if>
+            <if test="productionOrderNumber!=null and productionOrderNumber!=''">and rsi.production_order_number = #{productionOrderNumber}</if>
+            <if test="orderNumber!=null and orderNumber!=''">and rsi.order_number = #{orderNumber}</if>
+            <if test="scanningTimes!=null and scanningTimes[0] != null and scanningTimes[0] != ''">
+                <![CDATA[ and scanning_time >= #{scanningTimes[0]}]]>
+            </if>
+            <if test="scanningTimes!=null and scanningTimes[1] != null and scanningTimes[0] != ''">
+                <![CDATA[ and scanning_time <= #{scanningTimes[0]}]]>
+            </if>
         </where>
         order by scanning_time desc
     </select>
@@ -249,6 +318,83 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         rsif.start_time desc,sub.sort
     </select>
 
+    <select id="selectScanStatistics" resultType="com.zkqy.amichi.domain.vo.ScanStatistics" parameterType="com.zkqy.amichi.domain.RingScanInformation">
+        SELECT
+        c.production_order_number as dOrder,
+        c.dCount,
+        SUM( CASE WHEN c.execution_mark = 1 THEN 1 ELSE 0 END ) AS dsCount,
+        SUM( CASE WHEN c.execution_mark = 2 THEN 1 ELSE 0 END ) As  dfCount
+        FROM
+        (
+            SELECT
+            rsi.production_order_number,
+            rsi.native_numbering,
+            rsif.production_order_total_quantity AS dCount,
+            rsi.execution_mark
+        FROM
+        fjqydb.ring_scan_information rsi
+        LEFT JOIN fjqydb.ring_scan_information_first rsif ON rsi.production_order_number = rsif.production_order_number
+        <where>
+            <if test="processName!=null and processName!='' and processName.equals('焊接D')">
+                rsi.content_information LIKE concat('%','D', '%' )  and rsi.process_name='焊接'
+            </if>
+            <if test="processName!=null and processName!='' and processName.equals('焊接Z')">
+                rsi.content_information LIKE concat('%','Z', '%' )  and rsi.process_name='焊接'
+            </if>
+            <if test="productionOrderNumber!=null and productionOrderNumber!=''">
+                and rsi.production_order_number=#{productionOrderNumber}
+            </if>
+            <if test="processName!=null and processName!='' and processName!='焊接D' and processName!='焊接Z'">
+                and rsi.process_name like concat('%', #{processName}, '%')
+            </if>
+        </where>
+        GROUP BY native_numbering
+        ) AS c
+        GROUP BY
+        production_order_number
+    </select>
+    <select id="selectRingScanInformationListLike" resultType="java.lang.String" parameterType="com.zkqy.amichi.domain.RingScanInformation">
+        SELECT
+            CASE
+            WHEN COUNT(1) = 0 THEN 1
+            ELSE COUNT(1)
+            END AS count_result
+        FROM
+            fjqydb.ring_scan_information
+        <where>
+            <if test="processName!=null and processName!='' and processName.equals('焊接D')">
+                content_information LIKE concat('%','D', '%' )  and process_name='焊接'
+            </if>
+            <if test="processName!=null and processName!='' and processName.equals('焊接Z')">
+                content_information LIKE concat('%','Z', '%' )  and process_name='焊接'
+            </if>
+            <if test="productionOrderNumber!=null and productionOrderNumber!=''">
+                and production_order_number=#{productionOrderNumber}
+            </if>
+            <if test="processName!=null and processName!='' and processName!='焊接D' and processName!='焊接Z'">
+                and process_name like concat('%', #{processName}, '%')
+            </if>
+        </where>
+    </select>
+
+    <select id="handHeldJournal" resultType="map" parameterType="com.zkqy.amichi.domain.RingScanInformation">
+        SELECT
+            rsif.production_order_total_quantity as Dcount,
+            rsi.order_number as orderNumber,
+            rsi.production_order_number as Dorder,
+            rsi.personnel_name as Uname,
+            rsi.station_name as Ugw,
+            SUM( CASE WHEN rsi.execution_mark = 1 THEN 1 ELSE 0 END ) AS dsCount,
+            SUM( CASE WHEN rsi.execution_mark = 2 THEN 1 ELSE 0 END ) As  dfCount
+        FROM
+            fjqydb.ring_scan_information AS rsi
+                LEFT JOIN fjqydb.ring_scan_information_first AS rsif ON rsi.production_order_number = rsif.production_order_number
+        where DATE(rsi.scanning_time) = CURDATE()
+        GROUP BY
+            rsi.production_order_number,
+            rsi.personnel_name,
+            rsi.station_name
+    </select>
 
 
     <insert id="insertRingScanInformation" parameterType="com.zkqy.amichi.domain.RingScanInformation" useGeneratedKeys="true" keyProperty="id">
@@ -268,6 +414,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="stationName != null">station_name,</if>
             <if test="executionMark != null">execution_mark,</if>
             <if test="executionMessage != null">execution_message,</if>
+            <if test="overNumber != null">over_number,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="deviceNumber != null">#{deviceNumber},</if>
@@ -284,6 +431,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="stationName != null">#{stationName},</if>
             <if test="executionMark != null">#{executionMark},</if>
             <if test="executionMessage != null">#{executionMessage},</if>
+            <if test="overNumber != null">#{overNumber},</if>
          </trim>
     </insert>
 

+ 125 - 0
zkqy-fujian-amichi/src/main/resources/processReport.json

@@ -0,0 +1,125 @@
+{
+  "NeedUpDateFields": [],
+  "NeedReturnFields": [],
+  "IsDeleteEntry": "true",
+  "SubSystemId": "",
+  "IsVerifyBaseDataField": "false",
+  "IsEntryBatchFill": "true",
+  "ValidateFlag": "true",
+  "NumberSearch": "true",
+  "IsAutoAdjustField": "false",
+  "InterationFlags": "",
+  "IgnoreInterationFlag": "true",
+  "IsControlPrecision": "false",
+  "ValidateRepeatJson": "false",
+  "Model": {
+    "FID": 0,
+    "FBillType": {
+      "FNUMBER": "SCHBD01_SYS"
+    },
+    "FDocumentStatus": "Z",
+    "FDate": "2024-12-10 00:00:00",
+    "FEntity": [
+      {
+        "FSrcEntryId": 179813,
+        "FIsNew": false,
+        "FMaterialId": {
+          "FNumber": "2010040020033"
+        },
+        "FProductType": "1",
+        "FReportType": {
+          "FNumber": "HBLX01_SYS"
+        },
+        "FUnitID": {
+          "FNumber": "Pcs"
+        },
+        "FWorkshipId": {
+          "FNumber": "BM000003"
+        },
+        "FCheckProduct": false,
+        "FIsEntrust": false,
+        "FSrcBillType": "PRD_MO",
+        "FMoBillNo": "MO057834",
+        "FHumanQty": 0,
+        "FSrcBillNo": "MO057834",
+        "FMachineQty": 0,
+        "FStartTime": "2024-12-10 00:00:00",
+        "FEndTime": "2024-12-10 00:00:00",
+        "FTimeUnitId": "1",
+        "FMoEntrySeq": 1,
+        "FStandHourUnitId": "3600",
+        "FStdManHour": 0.0,
+        "FHrPrepareTime": 0.0,
+        "FHrWorkTime": 0.0,
+        "FMacPrepareTime": 0.0,
+        "FMacWorkTime": 0.0,
+        "FSrcInterId": 177931,
+        "FSrcEntrySeq": 1,
+        "FMoId": 177931,
+        "FMoEntryId": 179813,
+        "FBaseUnitId": {
+          "FNumber": "Pcs"
+        },
+        "FBomId": {
+          "FNumber": "2010040030037_V1.0"
+        },
+        "FOwnerTypeId": "BD_OwnerOrg",
+        "FStockInOrgId": {
+          "FNumber": "100"
+        },
+        "FStockId": {
+          "FNumber": "CK006"
+        },
+        "FOwnerId": {
+          "FNumber": "100"
+        },
+        "FCostRate": 100.000000,
+        "FSNUnitID": {
+          "FNumber": "Pcs"
+        },
+        "FSNQty": 1.0,
+        "FFinishQty":1,
+        "FQuaQty":0,
+        "FISBACKFLUSH": true,
+        "FReqBillNo":"CQY240601",
+        "FMOMAINENTRYID": 179813,
+        "FStockInSelQty": 0.0,
+        "FBaseStockInSelQty": 0.0,
+        "FBasePickMtrlSelQty": 0.0,
+        "FPickMtrlSelQty": 0.0,
+        "FIsFirstinspect": false,
+        "FSerialSubEntity": [
+          {
+            "FInspectResult": "1",
+            "FQCQty": 1.0,
+            "FSerialNo": "240601003",
+            "FSerialId": {
+              "FNUMBER": "240601003"
+            },
+            "FQCStockInSelQty": 0.0,
+            "FBaseQCQty": 1.0,
+            "FBaseQCStockInSelQty": 0.0
+          },
+          {
+            "FInspectResult": "1",
+            "FQCQty": 1.0,
+            "FSerialNo": "240601004",
+            "FSerialId": {
+              "FNUMBER": "240601004"
+            },
+            "FQCStockInSelQty": 0.0,
+            "FBaseQCQty": 1.0,
+            "FBaseQCStockInSelQty": 0.0
+          }
+        ],"FEntity_Link": [
+        {
+          "FEntity_Link_FRuleId": "PRD_MO2MORPT",
+          "FEntity_Link_FSTableName": "T_PRD_MOENTRY",
+          "FEntity_Link_FSBillId": "177931",
+          "FEntity_Link_FSId": "179813"
+        }
+      ]
+      }
+    ]
+  }
+}

+ 82 - 0
zkqy-fujian-amichi/src/main/resources/storage.json

@@ -0,0 +1,82 @@
+{
+  "NeedUpDateFields": [],
+  "NeedReturnFields": [],
+  "IsDeleteEntry": "true",
+  "SubSystemId": "",
+  "IsVerifyBaseDataField": "false",
+  "IsEntryBatchFill": "true",
+  "ValidateFlag": "true",
+  "NumberSearch": "true",
+  "IsAutoAdjustField": "false",
+  "InterationFlags": "",
+  "IgnoreInterationFlag": "true",
+  "IsControlPrecision": "false",
+  "ValidateRepeatJson": "false",
+  "Model": {
+    "FID": 0,
+    "FBillType": {
+      "FNUMBER": "SCRKD01_SYS"
+    },
+    "FDate": "2024-12-07 00:00:00",
+    "FOwnerTypeId0": "BD_OwnerOrg",
+    "FOwnerId0": {
+      "FNumber": "100"
+    },
+    "FIsEntrust": false,
+    "FCurrId": {
+      "FNumber": "PRE001"
+    },
+    "FEntrustInStockId": 0,
+    "F_PONP_PrintTimes": 0,
+    "FEntity": [
+      {
+        "FInStockType": "1",
+        "FIsNew": "false",
+        "FProductType": "1",
+        "FMoId": "166810",
+        "FMoEntryId": "168691",
+        "FMOMAINENTRYID": "168691",
+        "FMoEntrySeq": "1",
+        "FSrcEntryId": "168691",
+        "FSrcBillType": "PRD_MORPT",
+        "FSrcInterId": "168691",
+        "FSrcBillNo": "MO046723",
+        "FSrcEntrySeq": "1",
+        "FMaterialId":{
+          "FNumber": "1010040010147"
+        },
+        "FUnitID": {
+          "FNumber": "UOM001"
+        },
+        "FBaseUnitId": {
+          "FNumber": "UOM001"
+        },
+        "FOwnerTypeId": "BD_OwnerOrg",
+        "FOWNERID": {
+          "FNumber": "100"
+        },
+        "FSTOCKID": {
+          "FNumber": "CK007"
+        },
+        "FMoBillNo": "MO046723",
+        "FSTOCKSTATUSID": {
+          "FNumber": "KCZT01_SYS"
+        },
+        "FKEEPERTYPEID": "BD_KeeperOrg",
+        "FKEEPERID": {
+          "FNumber": "100"
+        },
+        "FMustQty": 1,
+        "FRealQty":1,
+        "FCheckProduct": false,
+        "FEntity_Link": [{
+          "FEntity_Link_FRuleId": "PRD_MO2INSTOCK",
+          "FEntity_Link_FSTableName": "T_PRD_MORPTENTRY",
+          "FEntity_Link_FSBillId": "168691",
+          "FEntity_Link_FSId": "168691"
+        }]
+      }
+    ]
+
+  }
+}

+ 2 - 1
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/controller/BpmExecuteProcessController.java

@@ -12,6 +12,7 @@ import com.zkqy.execution.produce.dispersed.runbpm.PreExecutionToolClass;
 import com.zkqy.execution.produce.dispersed.runbpm.RunImplementationClass;
 import com.zkqy.execution.produce.dispersed.service.IBpmExecuteProcessService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
@@ -136,7 +137,7 @@ public class BpmExecuteProcessController extends BaseController {
     /**
      * 化纤项目查询流程执行任务列表
      */
-    // @PreAuthorize("@ss.hasPermi('system:process:list')")
+     @PreAuthorize("@ss.hasPermi('system:process:list')")
     @GetMapping("/list/chemicalFibreList")
     public TableDataInfo ChemicalFibreList(BpmExecuteProcess bpmExecuteProcess) throws Exception {
         startPage();

+ 13 - 34
zkqy-ui/src/views/amichi/MaterialRetentionLog/index.vue

@@ -40,38 +40,17 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['materialRetentionLog:log:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['materialRetentionLog:log:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['materialRetentionLog:log:remove']"
-        >删除</el-button>
-      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="success"-->
+<!--          plain-->
+<!--          icon="el-icon-edit"-->
+<!--          size="mini"-->
+<!--          :disabled="single"-->
+<!--          @click="handleUpdate"-->
+<!--          v-hasPermi="['materialRetentionLog:log:edit']"-->
+<!--        >修改</el-button>-->
+<!--      </el-col>-->
       <el-col :span="1.5">
         <el-button
           type="warning"
@@ -103,9 +82,9 @@
       <el-table-column label="实发数量" align="center" prop="actualQuantityIssued" />
       <el-table-column label="发货仓库" align="center" prop="deliveryWarehouse" />
       <el-table-column label="工序" align="center" prop="process" />
-<!--      <el-table-column label="仓库仓库编码" align="center" prop="ckNumber" />-->
+      <el-table-column label="扣料时间" align="center" prop="createTime" width="150" />
 <!--      <el-table-column label="单据备注" align="center" prop="documentRemarks" />-->
-      <el-table-column label="明细备注" align="center" prop="detailedRemarks" />
+<!--      <el-table-column label="明细备注" align="center" prop="detailedRemarks" />-->
 <!--      <el-table-column label="单据类型" align="center" prop="documentType" />-->
 <!--      <el-table-column label="库存组织" align="center" prop="inventoryOrganization" />-->
 <!--      <el-table-column label="库存组织" align="center" prop="receivingTissue" />-->

+ 4 - 4
zkqy-ui/src/views/amichi/dialogCompments/customizedVersion/processDisplay.vue

@@ -96,10 +96,10 @@ export default {
   mounted() {
     this.getList();
     // 每 30 分钟调用一次 API
-    this.intervalId = setInterval(() => {
-      this.getList();
-      console.log("我执行了")
-    }, 1 * 60 * 1000); // 30 分钟 = 30 * 60 * 1000 毫秒
+    // this.intervalId = setInterval(() => {
+    //   this.getList();
+    //   console.log("我执行了")
+    // }, 1 * 60 * 1000); // 30 分钟 = 30 * 60 * 1000 毫秒
   },
   activated() {
     this.getList();

+ 168 - 0
zkqy-ui/src/views/amichi/dialogCompments/customizedVersion/processDisplay2.vue

@@ -0,0 +1,168 @@
+<template>
+  <div class="app-container">
+    <div class="main-area">
+      <div class="show-header">
+        <div class="tag-list">
+          <div class="tag-item">
+             工序扫码记录
+          </div>
+        </div>
+        <div class="search-list">
+          <div class="search-tab">
+            <el-radio-group
+              v-model="queryParams.status"
+              @change="getList"
+            >
+              <el-radio-button label="2">已完成</el-radio-button>
+              <el-radio-button label="1">进行中</el-radio-button>
+              <el-radio-button label="">所有</el-radio-button>
+            </el-radio-group>
+          </div>
+          <div class="search-input">
+            <el-input
+              placeholder="请输入订单号..."
+              v-model="queryString"
+              @keyup.enter.native="getList"
+            >
+              <el-button
+                slot="append"
+                @click="getList"
+                icon="el-icon-search"
+              ></el-button>
+            </el-input>
+          </div>
+        </div>
+      </div>
+      <!--主体内容部分-->
+      <div class="show-body" v-loading="loading">
+        <template v-if="total > 0">
+          <TaskList v-for="(value, key,index) of tableData" :key="index + 1" :orderNumber="key"  :cardData="value"></TaskList>
+        </template>
+        <el-empty v-else description="暂无数据"></el-empty>
+        <!--分页列表-->
+        <pagination
+          v-show="total > 0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getList"
+        />
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import TaskList from "./components/taskList.vue";
+import {scanCodeMonitoringLogs} from "@/api/amichi/ringScanInformation/index.js";
+
+export default {
+  name: "ProgressShow",
+  props: [],
+  components: { TaskList },
+  data() {
+    return {
+      queryString: "",
+      total: 0,
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        status: "1",
+      },
+      tableData: {}, //列表数据
+      loading: true,
+      intervalId: null, // 用于存储定时器 ID
+    };
+  },
+  computed: {},
+  methods: {
+    // 获取列表数据
+    getList() {
+      this.loading = true;
+      scanCodeMonitoringLogs({ ...this.queryParams, orderNumber: this.queryString })
+     .then(
+        res => {
+          if (res.code == 200) {
+            this.tableData=res.data;
+            this.total = res.total;
+          } else {
+            this.$message.error("网络异常,请稍后再试");
+          }
+          this.loading=false;
+        }
+      );
+    },
+  },
+  mounted() {
+    this.getList();
+    // 每 30 分钟调用一次 API
+    // this.intervalId = setInterval(() => {
+    //   this.getList();
+    //   console.log("我执行了")
+    // }, 1 * 60 * 1000); // 30 分钟 = 30 * 60 * 1000 毫秒
+  },
+  activated() {
+    this.getList();
+  },
+  beforeDestroy() {
+    // 组件销毁前清除定时器,防止内存泄漏
+    if (this.intervalId) {
+      clearInterval(this.intervalId);
+    }
+  },
+};
+</script>
+
+<style scoped lang="scss">
+.app-container {
+  padding: 15px 15px;
+  box-sizing: border-box;
+  .main-area {
+    box-shadow: 0 1px 15px 1px rgb(69 65 78 / 8%);
+    background-color: #fff;
+    .show-header {
+      border-bottom: 1px solid #ebedf2;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      padding: 0px 20px 0px 20px;
+      height: 50px;
+      .tag-list {
+        display: flex;
+        align-items: center;
+        .tag-item {
+          display: flex;
+          align-items: center;
+          margin-right: 15px;
+          font-size: 16px;
+          .circle {
+            width: 15px;
+            height: 15px;
+            background-color: rgb(104, 221, 104);
+            border-radius: 50%;
+            margin-right: 5px;
+          }
+          .icon {
+            margin-right: 5px;
+          }
+          .current-node {
+            display: inline-block;
+            border: 2px solid #34bfa3;
+            padding: 2px 5px;
+            margin: 2px 40px 2px 10px;
+          }
+        }
+      }
+      .search-list {
+        display: flex;
+        .search-tab {
+          margin-right: 20px;
+        }
+      }
+    }
+    .show-body {
+      padding: 25px;
+    }
+  }
+}
+</style>

+ 93 - 43
zkqy-ui/src/views/amichi/ringScanInformation/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="95px">
       <el-form-item label="设备名称" prop="deviceNumber">
         <el-input
           v-model="queryParams.deviceNumber"
@@ -9,18 +9,56 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="扫描时间" prop="scanningTime">
-        <el-date-picker clearable
-                        v-model="queryParams.scanningTime"
-                        type="date"
-                        value-format="yyyy-MM-dd"
-                        placeholder="请选择扫描时间">
+      <el-form-item label="工人姓名" prop="personnelName">
+        <el-input
+          v-model="queryParams.personnelName"
+          placeholder="请输入设备名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="扫描时间" prop="scanningTimes">
+        <el-date-picker
+          v-model="queryParams.scanningTimes"
+          type="datetimerange"
+          :picker-options="pickerOptions"
+          range-separator="至"
+          start-placeholder="开始日期"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          end-placeholder="结束日期"
+          align="right">
         </el-date-picker>
       </el-form-item>
-      <el-form-item label="扫描内容" prop="contentInformation">
+      <el-form-item label="工序" prop="process">
+        <el-select v-model="queryParams.process">
+          <el-option
+            v-for="(item,index) in processList"
+            :key="index"
+            :label="item.label"
+            :value="item.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="序列号" prop="contentInformation">
         <el-input
           v-model="queryParams.contentInformation"
-          placeholder="请输入扫描内容"
+          placeholder="请输入扫描序列号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="订单号" prop="orderumber">
+        <el-input
+          v-model="queryParams.orderumber"
+          placeholder="请输入订单号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="生产订单号" prop="productionOrderNumber">
+        <el-input
+          v-model="queryParams.productionOrderNumber"
+          placeholder="请输入生产订单号"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -37,38 +75,6 @@
       </el-radio-group>
     </el-row>
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['ringScanInformation:information:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['ringScanInformation:information:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['ringScanInformation:information:remove']"
-        >删除</el-button>
-      </el-col>
       <el-col :span="1.5">
         <el-button
           type="warning"
@@ -83,7 +89,7 @@
     </el-row>
 
     <el-table v-loading="loading" style="margin-top: 15px" :data="informationList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
+<!--      <el-table-column type="selection" width="55" align="center" />-->
 <!--      <el-table-column label="主键" align="center" prop="id" />-->
       <el-table-column label="人员姓名" align="center" prop="personnelName" />
       <el-table-column label="工序" align="center" prop="processName" />
@@ -148,6 +154,7 @@
 
 <script>
 import { listInformation, getInformation, delInformation, addInformation, updateInformation } from "@/api/amichi/ringScanInformation/index";
+import {listList} from "@/api/amichi/procedureList/list";
 
 export default {
   name: "Information",
@@ -155,8 +162,37 @@ export default {
 
   data() {
     return {
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+            picker.$emit('pick', [start, end]);
+          }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+            picker.$emit('pick', [start, end]);
+          }
+        }, {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+            picker.$emit('pick', [start, end]);
+          }
+        }]
+      },
       // 遮罩层
       loading: true,
+      //工序列表
+      processList:[],
       // 选中数组
       ids: [],
       // 非单个禁用
@@ -192,8 +228,22 @@ export default {
   },
   created() {
     this.getList();
+    this.processListApi();
   },
   methods: {
+    /**
+     * 查询工序列表
+     */
+    processListApi(){
+      this.processList=[];
+      listList({"isEnablePaging":false}).then(response => {
+        let newData=response.rows.map(item=>{
+          return {"value":item.id,"label":item.procedurName}
+        })
+        this.processList=newData;
+        console.log(this.processList)
+      });
+    },
     /** 查询指环王扫描日志信息列表 */
     getList() {
       this.loading = true;
@@ -299,7 +349,7 @@ export default {
     },
     /** 导出按钮操作 */
     handleExport() {
-      this.download('ringScanInformation/information/export', {
+      this.download('/amichi/ringScanInformation/export', {
         ...this.queryParams
       }, `information_${new Date().getTime()}.xlsx`)
     }

+ 46 - 39
zkqy-ui/src/views/amichi/ringScanInformation/indexTwo.vue

@@ -17,14 +17,26 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="扫描时间" prop="scanningTime">
-        <el-date-picker clearable
-                        v-model="queryParams.scanningTime"
-                        type="date"
-                        value-format="yyyy-MM-dd"
-                        placeholder="请选择扫描时间">
+      <el-form-item label="扫描时间1" prop="scanningTime">
+<!--        <el-date-picker clearable-->
+<!--                        v-model="queryParams.scanningTime"-->
+<!--                        type="date"-->
+<!--                        value-format="yyyy-MM-dd HH:mm:ss"-->
+<!--                        placeholder="请选择扫描时间">-->
+<!--        </el-date-picker>-->
+
+        <el-date-picker
+          v-model="queryParams.scanningTimes"
+          type="datetimerange"
+          :picker-options="pickerOptions"
+          range-separator="至"
+          start-placeholder="开始日期"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          end-placeholder="结束日期"
+          align="right">
         </el-date-picker>
       </el-form-item>
+
       <el-form-item label="扫描内容" prop="contentInformation">
         <el-input
           v-model="queryParams.contentInformation"
@@ -45,38 +57,6 @@
       </el-radio-group>
     </el-row>
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['ringScanInformation:information:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['ringScanInformation:information:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['ringScanInformation:information:remove']"
-        >删除</el-button>
-      </el-col>
       <el-col :span="1.5">
         <el-button
           type="warning"
@@ -153,6 +133,33 @@ export default {
   name: "Information",
   data() {
     return {
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+            picker.$emit('pick', [start, end]);
+          }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+            picker.$emit('pick', [start, end]);
+          }
+        }, {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date();
+            const start = new Date();
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+            picker.$emit('pick', [start, end]);
+          }
+        }]
+      },
       // 遮罩层
       loading: true,
       // 选中数组
@@ -297,7 +304,7 @@ export default {
     },
     /** 导出按钮操作 */
     handleExport() {
-      this.download('ringScanInformation/information/export', {
+      this.download('/amichi/ringScanInformation/export', {
         ...this.queryParams
       }, `information_${new Date().getTime()}.xlsx`)
     }

+ 146 - 9
zkqy-ui/src/views/amichi/stationInformation/indexCopyV4.vue

@@ -97,13 +97,14 @@
 
     <el-table v-loading="loading" :data="stationInformationList" @selection-change="handleSelectionChange" style="margin-top: 20px">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="工序"  align="center" prop="processId">
-        <template  v-slot="scope">
-           <span v-for="option in processList" :key="option.value" v-if="option.value == scope.row.processId" class="custom-label">
-                   {{ option.label }}
-           </span>
-        </template>
-      </el-table-column>
+<!--      <el-table-column label="工序"  align="center" prop="processId">-->
+<!--        <template  v-slot="scope">-->
+<!--           <span v-for="option in processList" :key="option.value" v-if="option.value == scope.row.processId" class="custom-label">-->
+<!--                   {{ option.label }}-->
+<!--           </span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+            <el-table-column label="工序"  align="center" prop="processName"/>
       <el-table-column label="工位名称" align="center" prop="stationName" />
       <el-table-column label="人员姓名" align="center" prop="personnelName"/>
       <el-table-column label="设备mac" align="center"  prop="deviceNumber" />
@@ -111,10 +112,10 @@
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-dropdown @command="(command)=>{handleCommand(command, scope.row)}">
-            <el-button type="warning">
-              操作<i class="el-icon-arrow-down el-icon--right"></i>
+            <el-button type="warning">操作<i class="el-icon-arrow-down el-icon--right"></i>
             </el-button>
             <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item  icon="el-icon-edit"  command="viewPersonCode">查看人员码</el-dropdown-item>
               <el-dropdown-item  icon="el-icon-edit"  command="handleUpdate">修改</el-dropdown-item>
               <el-dropdown-item  icon="el-icon-delete" command="handleDelete">删除</el-dropdown-item>
             </el-dropdown-menu>
@@ -182,6 +183,30 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+
+
+    <!-- 添加或修改工位信息对话框 -->
+    <el-dialog :title="title" :visible.sync="viewPersonCodeFlag" width="800px" append-to-body>
+      <div class="mBox" id="printView">
+         <div class="top">
+            <div class="topnr">
+              <img :src="imgBase" alt="" style="text-align: center;width:320px;height: 320px">
+            </div>
+         </div>
+          <div class="bottom" style="border-bottom: 2px solid black;border-top: 2px solid black">
+            <div class="bottom-left" style="border-right: 2px solid black;height: 50px">姓名</div>
+            <div class="bottom-right">{{currentUserName}}</div>
+          </div>
+          <div class="bottom">
+            <div class="bottom-left" style="border-right: 2px solid black;height: 50px">工段</div>
+            <div class="bottom-right">{{currentProcessName}}</div>
+          </div>
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" v-print="printViewInfo">打印</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
     <!-- print -->
     <div id="printDom" style="width: 160px; height: 160px"></div>
   </div>
@@ -192,13 +217,46 @@ import { listStationInformation, getStationInformation, delStationInformation, a
 import qrCodeList from "@/views/amichi/print/qrCodeList";
 import {listUserInformation} from  "@/api/amichi/user/user"
 import {listList} from "@/api/amichi/procedureList/list";
+import {generateEmployeeCode} from "@/api/system/user";
 export default {
   name: "StationInformation",
   dicts:["gxlxinfo"],
   data() {
     return {
+      msg: "打印",
+      printViewInfo: {
+        id: "printView", //打印区域的唯一的id属性
+        // popTitle: '配置页眉标题', // 页眉文字 (不设置时显示undifined)(页眉页脚可以在打印页面的更多设置的选项中取消勾选)
+        // extraHead: '打印,印刷', // 最左上方的头部文字,附加在head标签上的额外标签,使用逗号分割
+        preview: false, // 是否启动预览模式,默认是false (开启预览模式ture会占满整个屏幕,不建议开启,除非业务需要)
+        // previewTitle: '预览的标题', // 打印预览的标题(预览模式preview为true时才显示)
+        // previewPrintBtnLabel: '预览结束,开始打印', // 打印预览的标题下方的按钮文本,点击可进入打印(预览模式preview为true时才显示)
+        zIndex: 20002, // 预览窗口的z-index,默认是20002,最好比默认值更高
+        previewBeforeOpenCallback (that) { console.log('正在加载预览窗口!'); console.log(that.msg, this) }, // 预览窗口打开之前的callback (预览模式preview为true时才执行) (that可以取到data里的变量值)
+        previewOpenCallback () { console.log('已经加载完预览窗口,预览打开了!') }, // 预览窗口打开时的callback (预览模式preview为true时才执行)
+        beforeOpenCallback () { console.log('开始打印之前!') }, // 开始打印之前的callback
+        openCallback () { console.log('执行打印了!') }, // 调用打印时的callback
+        closeCallback () { console.log('关闭了打印工具!') }, // 关闭打印的callback(无法区分确认or取消)
+        clickMounted () { console.log('点击v-print绑定的按钮了!') },
+        // url: 'http://localhost:8080/', // 打印指定的URL,确保同源策略相同
+        // asyncUrl (reslove) {
+        //   setTimeout(() => {
+        //     reslove('http://localhost:8080/')
+        //   }, 2000)
+        // },
+        standard: '',
+        extarCss: ''
+      },
+      //是否显示弹窗
+      viewPersonCodeFlag:false,
       //工序列表
       processList:[],
+      //当前选择弹窗展开的工段信息
+      currentProcessName:"",
+      //当前姓名
+      currentUserName:"",
+      //二维码信息
+      imgBase:"",
       // 遮罩层
       loading: true,
       // 选中数组
@@ -266,6 +324,9 @@ export default {
         console.log(this.userInfo);
       })
     },
+    dym(){
+      this.viewPersonCodeFlag=false;
+    },
     //下拉菜单点击事件
     handleCommand(command, row) {
       switch (command) {
@@ -278,10 +339,31 @@ export default {
         case "printStationCode":
           this.printStationCode(row)
           break;
+        case "viewPersonCode":
+          this.viewPersonCode(row)
+          break;
         default:
           break;
       }
     },
+    viewPersonCode(row){
+      console.log("hmc")
+      this.title="人员码"
+      this.currentProcessName=row.processName;
+      this.currentUserName=row.personnelName;
+      this.employeeNumber=row.personnelId;
+      this.employeeName=row.personnelName;
+      this.generateEmployeeCodeApi({"userNumber":row.personnelId,"userName":row.personnelName});
+    },
+    async generateEmployeeCodeApi(obj){
+      await generateEmployeeCode(obj).then((res) => {
+        console.log(res);
+        if (res.code == 200) {
+          this.imgBase=res.data;
+          this.viewPersonCodeFlag=true;
+        }
+      });
+    },
     //打印逻辑方法
     printStationCode(row){
       console.log("打印工位码信息")
@@ -309,6 +391,7 @@ export default {
     // 取消按钮
     cancel() {
       this.open = false;
+      this.viewPersonCodeFlag=false;
       this.reset();
     },
     // 表单重置
@@ -427,3 +510,57 @@ export default {
   }
 };
 </script>
+
+<style scoped>
+.mBox{
+  width: 404px;
+  height: 506px;
+  border: 2px solid black;
+  margin: 0 auto;
+  color: black;
+  .top{
+    width: 400px;
+    height: 400px;
+    margin: 0 auto;
+    box-sizing: border-box;
+
+    .topnr{
+      width: 320px;
+      height: 320px;
+      align-content: center;
+      align-items: center;
+      //border: 1px solid black;
+      margin: 0 auto;
+      img{
+        margin-top: 40px;
+      }
+    }
+  }
+  .bottom{
+    display: flex;
+    justify-content: space-evenly;
+    align-content: center;
+    .bottom-left{
+      width: 150px;
+      height: 50px;
+      line-height: 50px;
+      //border: 1px solid black;
+      box-sizing: border-box;
+      text-align: center;
+      font-size: 18px;
+    }
+    .bottom-right{
+      width: 250px;
+      height: 50px;
+      line-height: 50px;
+      //border: 1px solid black;
+      box-sizing: border-box;
+      text-align: center;
+      font-size: 18px;
+    }
+
+  }
+}
+
+
+</style>

+ 8 - 11
zkqy-ui/src/views/orderMange/planTable/index.vue

@@ -1298,11 +1298,11 @@ export default {
       }
       //判断当前计划是否已经投产
       getJtIsTheOrderProductProduced({"id":row.id}).then(resp=>{
-        if(resp.data.length>0) {
-          this.$message({message: '当前计划订单产品在生产中已经不能修改', type: 'warning'});
-          return;//证明有在上级的产品--zhi能有一个上级产品
-        }
-        //不是投产中就可以更新了.
+        // if(resp.data.length>0) {
+        //   this.$message({message: '当前计划订单产品在生产中已经不能修改', type: 'warning'});
+        //   return;//证明有在上级的产品--zhi能有一个上级产品
+        // }
+        //不是生产中中就可以更新了.
         updatePlanOne(row).then(response=>{
           if (response.code == 200) {
             this.$message({
@@ -1310,18 +1310,15 @@ export default {
               type: 'success'
             });
             this.getAmmunitionPlanInfo();
-            //最后把弹窗关掉
-            this.nanInsertDialogTableVisible=false
-            this.beiUpdateDialogTableVisible=false
           } else {
             this.$message({
               message: '修改失败',
               type: 'error'
             });
-            //最后把弹窗关掉
-            this.nanInsertDialogTableVisible=false
-            this.beiUpdateDialogTableVisible=false
           }
+          //关闭弹窗
+          this.nanInsertDialogTableVisible=false
+          this.beiUpdateDialogTableVisible=false
         })
       })
 

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff