Browse Source

fix:化纤订单修改异常的问题

lucky 6 months ago
parent
commit
1bd8abdf38
37 changed files with 1263 additions and 211 deletions
  1. 0 0
      lib/DmJdbcDriver18.jar
  2. 0 0
      lib/k3cloud-webapi-sdk8.0.6.jar
  3. 1 2
      zkqy-admin/src/main/java/com/zkqy/web/controller/system/SysLoginController.java
  4. 10 5
      zkqy-business/src/main/java/com/zkqy/business/controller/CommonBtnController.java
  5. 9 1
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/RingScanInformationFirstController.java
  6. 16 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/MaterialRetentionLog.java
  7. 67 32
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/RingScanInformationFirst.java
  8. 21 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/vo/RingScanInformationLogVo.java
  9. 9 9
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/domain/JdProductionOrder.java
  10. 68 56
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/impl/JdProductionOrderServiceImpl.java
  11. 1 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/MaterialRetentionLogMapper.java
  12. 8 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/RingScanInformationFirstMapper.java
  13. 76 7
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/scheduling/ScheduledBean.java
  14. 7 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IRingScanInformationFirstService.java
  15. 1 1
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/MaterialInfoServiceImpl.java
  16. 5 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/RingScanInformationFirstServiceImpl.java
  17. 3 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/StationInformationServiceImpl.java
  18. 8 1
      zkqy-fujian-amichi/src/main/resources/mapper/MaterialRetentionLogMapper.xml
  19. 26 0
      zkqy-fujian-amichi/src/main/resources/mapper/RingScanInformationFirstMapper.xml
  20. 5 1
      zkqy-fujian-amichi/src/main/resources/mapper/RingScanInformationMapper.xml
  21. 1 0
      zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/service/impl/LaboratorySampleCollectionServiceImpl.java
  22. 1 0
      zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/CommonServiceImpl.java
  23. 4 4
      zkqy-system/src/main/resources/mapper/system/SysMenuMapper.xml
  24. 6 5
      zkqy-ui/.env.production
  25. 12 0
      zkqy-ui/src/api/amichi/ringScanInformation/index.js
  26. 4 0
      zkqy-ui/src/components/FormGroup/formList.vue
  27. 19 0
      zkqy-ui/src/views/amichi/MaterialRetentionLog/index.vue
  28. 13 0
      zkqy-ui/src/views/amichi/dialogCompments/customizedVersion/components/taskList.vue
  29. 763 0
      zkqy-ui/src/views/amichi/dialogCompments/customizedVersion/productionForm.vue
  30. 10 14
      zkqy-ui/src/views/amichi/print/rkadyPrint.vue
  31. 0 4
      zkqy-ui/src/views/amichi/productionBoms/boms/index.vue
  32. 53 56
      zkqy-ui/src/views/amichi/shopRoom/index.vue
  33. 1 2
      zkqy-ui/src/views/lims/wtform/wtFormExamine.vue
  34. 4 4
      zkqy-ui/src/views/login.vue
  35. 25 2
      zkqy-ui/src/views/tablelist/commonTable/listInfo.vue
  36. 1 0
      zkqy-ui/src/views/tablelist/components/FormGroupLayout/LayoutIndex.vue
  37. 5 5
      zkqy-ui/vue.config.js

+ 0 - 0
lib/DmJdbcDriver18.jar


+ 0 - 0
lib/k3cloud-webapi-sdk8.0.6.jar


+ 1 - 2
zkqy-admin/src/main/java/com/zkqy/web/controller/system/SysLoginController.java

@@ -246,8 +246,7 @@ public class SysLoginController {
     public AjaxResult isTenantExist(String tenantCode) {
         SysTenant sysTenantInfo = iSysTenantService.selectSysTenantByTenantCode(tenantCode);
         if (sysTenantInfo != null) {
-            sysTenantInfo.setLoginPageConfiguration(loginPageConfigurationService.selectLoginPageConfigurationByLoginPageNumber(tenantCode, "client"));
-            return AjaxResult.success(sysTenantInfo);
+            sysTenantInfo.setLoginPageConfiguration(loginPageConfigurationService.selectLoginPageConfigurationByLoginPageNumber(tenantCode, "client"));            return AjaxResult.success(sysTenantInfo);
         }
         return AjaxResult.error("租户不存在");
     }

+ 10 - 5
zkqy-business/src/main/java/com/zkqy/business/controller/CommonBtnController.java

@@ -194,11 +194,10 @@ public class CommonBtnController extends BaseController {
                 Map<String, Object> map = new HashMap<>();
                 DragForm dragForm = dragFormService.selectDragFormByformKey(dragTableBtn.getBtnFormKey());
                 map.put("template", dragForm);
-                // 返回结果
+                // 单个表单
                 map.put("result", commonService.getInfoById(commonEntity));
                 return success(map);
             } else if (dragTableBtn.getBtnFormType() != null && dragTableBtn.getBtnFormType().equals("dragFormGroup")) {
-
                 // 当前按钮绑定的是表单组
                 return success(getFormGroupInfo(commonEntity, dragTableBtn));
             }
@@ -254,6 +253,8 @@ public class CommonBtnController extends BaseController {
             subFormList.forEach(item -> {
                 String[] congTableOInfo = ((Map) item).get("formItem").toString().split("\\.");
                 String[] zhuTableOWhere = ((Map) item).get("relateMainItem").toString().split("\\.");
+//                List<Map<String, Object>> updateListMap = (List<Map<String, Object>>) ((Map) item).get("updateMap");
+
                 CommonEntity congCommon = new CommonEntity();
                 congCommon.getBasicMap().put("tableName", congTableOInfo[0]);
                 Object val = retCommonEntityList.get(0).getResultMap().get(StringUtils.toCamelCase(zhuTableOWhere[1]));
@@ -310,8 +311,6 @@ public class CommonBtnController extends BaseController {
         } catch (JsonProcessingException e) {
             e.printStackTrace();
         }
-
-
         ((ArrayList) relationJsonMap.get("subFormList")).forEach(rtem -> {
             String dfFormSql1 = ((Map) ((Map) rtem).get("showTemplate")).get("dfFormSql").toString();
             ObjectMapper objectMapper1 = new ObjectMapper();
@@ -329,12 +328,17 @@ public class CommonBtnController extends BaseController {
                 e.printStackTrace();
             }
         });
+//        //处理字段默认值显示
+//        relationJsonMap.forEach((k,v)->{
+//            String jsonString = JSONObject.toJSONString(v);
+//            JSONObject jsonObject = JSONObject.parseObject(jsonString);
+//            jsonObject.get("")
+//        });
         return relationJsonMap;
     }
 
     /**
      * 删除类型按钮
-     *
      * @param commonEntity
      * @return
      */
@@ -390,6 +394,7 @@ public class CommonBtnController extends BaseController {
             // 如果当前发起流程表单使用的是表单组
             if (dragTableBtn.getBtnFormType() != null && dragTableBtn.getBtnFormType().equals("dragFormGroup")) {
                 BpmRunNodeFormDateVo bpmRunNodeFormDateVo = JSON.parseObject(JSON.toJSONString(commonEntity.getBasicMap().get("BpmRunNodeFormDateVo")), BpmRunNodeFormDateVo.class);
+                //表单组执行流程
                 echoNodeFormData.handleSubmitForm(bpmRunNodeFormDateVo);
                 return AjaxResult.success("启动流程成功!");
             } else {

+ 9 - 1
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/RingScanInformationFirstController.java

@@ -39,7 +39,7 @@ public class RingScanInformationFirstController extends BaseController
     /**
      * 查询第一次扫描信息记录列表
      */
-    @PreAuthorize("@ss.hasPermi('ringScanInformationFirst:first:list')")
+//    @PreAuthorize("@ss.hasPermi('ringScanInformationFirst:first:list')")
     @GetMapping("/list")
     public TableDataInfo list(RingScanInformationFirst ringScanInformationFirst)
     {
@@ -48,6 +48,14 @@ public class RingScanInformationFirstController extends BaseController
         return getDataTable(list);
     }
 
+    @GetMapping("/listHe")
+    public TableDataInfo listHe(RingScanInformationFirst ringScanInformationFirst)
+    {
+        startPage();
+        List<RingScanInformationFirst> list = ringScanInformationFirstService.selectRingScanInformationFirstListHe(ringScanInformationFirst);
+        return getDataTable(list);
+    }
+
     /**
      * 导出第一次扫描信息记录列表
      */

+ 16 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/MaterialRetentionLog.java

@@ -8,7 +8,9 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.time.LocalDate;
 import java.util.Date;
+import java.util.List;
 import java.util.StringJoiner;
 
 
@@ -98,6 +100,13 @@ public class MaterialRetentionLog extends BaseEntity
     @Excel(name = "扣料时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
+//    @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 List<String> createTimeString;
+
+
+
     /** 单据备注 */
 //    @Excel(name = "单据备注")
     private String documentRemarks;
@@ -206,6 +215,13 @@ public class MaterialRetentionLog extends BaseEntity
     public void setProductionOrderNumber(String productionOrderNumber) {
         this.productionOrderNumber = productionOrderNumber;
     }
+    public List<String> getCreateTimeString() {
+        return createTimeString;
+    }
+
+    public void setCreateTimeString(List<String> createTimeString) {
+        this.createTimeString = createTimeString;
+    }
 
     public String getMaterialCode() {
         return materialCode;

+ 67 - 32
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/RingScanInformationFirst.java

@@ -6,6 +6,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
 import java.time.LocalDateTime;
+import java.util.List;
 
 
 /**
@@ -22,6 +23,24 @@ public class RingScanInformationFirst extends BaseEntity
     /** 主键 */
     private Long id;
 
+    //单据创建时间
+    private  String creationtimeString;
+
+    /** 主键 */
+    private String he;
+
+
+    @Excel(name = "时间筛选",dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private List<String> createTimeString;
+
+    public String getHe() {
+        return he;
+    }
+
+    public void setHe(String he) {
+        this.he = he;
+    }
+
     /** 订单号 */
     @Excel(name = "订单号")
     private String orderNumber;
@@ -38,29 +57,7 @@ public class RingScanInformationFirst extends BaseEntity
     @Excel(name = "入库的总数")
     private  String  rks;
 
-    public String getRks() {
-        return rks;
-    }
-
-    public void setRks(String rks) {
-        this.rks = rks;
-    }
 
-    public String getProductionOrderTotalQuantity() {
-        return productionOrderTotalQuantity;
-    }
-
-    public void setProductionOrderTotalQuantity(String productionOrderTotalQuantity) {
-        this.productionOrderTotalQuantity = productionOrderTotalQuantity;
-    }
-
-    public String getPackingOrInspection() {
-        return packingOrInspection;
-    }
-
-    public void setPackingOrInspection(String packingOrInspection) {
-        this.packingOrInspection = packingOrInspection;
-    }
 
     /** 订单号 */
     @Excel(name = "总数量")
@@ -78,6 +75,18 @@ public class RingScanInformationFirst extends BaseEntity
     @Excel(name = "开始时间")
     private LocalDateTime startTime;
 
+    /** 结束时间 */
+    @Excel(name = "结束时间")
+    private LocalDateTime endTime;
+
+    /** 包装数量 */
+    @Excel(name = "包装数量")
+    private String packingQuantity;
+
+    /** 检验数量 */
+    @Excel(name = "检验数量")
+    private String inspectionQuantity;
+
     public LocalDateTime getStartTime() {
         return startTime;
     }
@@ -97,7 +106,29 @@ public class RingScanInformationFirst extends BaseEntity
     public String getTotalQuantity() {
         return totalQuantity;
     }
+    public String getRks() {
+        return rks;
+    }
+
+    public void setRks(String rks) {
+        this.rks = rks;
+    }
+
+    public String getProductionOrderTotalQuantity() {
+        return productionOrderTotalQuantity;
+    }
+
+    public void setProductionOrderTotalQuantity(String productionOrderTotalQuantity) {
+        this.productionOrderTotalQuantity = productionOrderTotalQuantity;
+    }
+
+    public String getPackingOrInspection() {
+        return packingOrInspection;
+    }
 
+    public void setPackingOrInspection(String packingOrInspection) {
+        this.packingOrInspection = packingOrInspection;
+    }
     public void setTotalQuantity(String totalQuantity) {
         this.totalQuantity = totalQuantity;
     }
@@ -117,17 +148,7 @@ public class RingScanInformationFirst extends BaseEntity
         this.inspectionQuantity = inspectionQuantity;
     }
 
-    /** 结束时间 */
-    @Excel(name = "结束时间")
-    private LocalDateTime endTime;
-
-    /** 包装数量 */
-    @Excel(name = "包装数量")
-    private String packingQuantity;
 
-    /** 检验数量 */
-    @Excel(name = "检验数量")
-    private String inspectionQuantity;
 
 
     public void setId(Long id) 
@@ -152,7 +173,21 @@ public class RingScanInformationFirst extends BaseEntity
     {
         this.productionOrderNumber = productionOrderNumber;
     }
+    public String getCreationtimeString() {
+        return creationtimeString;
+    }
 
+    public void setCreationtimeString(String creationtimeString) {
+        this.creationtimeString = creationtimeString;
+    }
+
+    public List<String> getCreateTimeString() {
+        return createTimeString;
+    }
+
+    public void setCreateTimeString(List<String> createTimeString) {
+        this.createTimeString = createTimeString;
+    }
     public String getProductionOrderNumber() 
     {
         return productionOrderNumber;

+ 21 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/domain/vo/RingScanInformationLogVo.java

@@ -28,6 +28,27 @@ public class RingScanInformationLogVo extends BaseEntity {
 
     private  String  endTime;
 
+    private  String  modelNumber;
+
+    private  String  specification;
+
+
+    public String getModelNumber() {
+        return modelNumber;
+    }
+
+    public void setModelNumber(String modelNumber) {
+        this.modelNumber = modelNumber;
+    }
+
+    public String getSpecification() {
+        return specification;
+    }
+
+    public void setSpecification(String specification) {
+        this.specification = specification;
+    }
+
     public String getProductionOrderNumber() {
         return productionOrderNumber;
     }

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

@@ -159,9 +159,9 @@ public class JdProductionOrder extends BaseEntity
     @Excel(name = "备注")
     @JSONField(name = "FDescription")
     private String bz;
-    @Excel(name = "单据创建时间")
-    @JSONField(name = "FDate")
-    private String creationtimeString;
+//    @Excel(name = "单据创建时间")
+//    @JSONField(name = "FDate")
+//    private String creationtimeString;
 
 
     /** 特殊要求 */
@@ -252,9 +252,9 @@ public class JdProductionOrder extends BaseEntity
     }
 
 
-    public void setCreationtimeString(String creationtimeString) {
-        this.creationtimeString = creationtimeString;
-    }
+//    public void setCreationtimeString(String creationtimeString) {
+//        this.creationtimeString = creationtimeString;
+//    }
 
 
     public String getFbomIdFnumber() {
@@ -292,9 +292,9 @@ public class JdProductionOrder extends BaseEntity
         this.ftreeEntityFentryid = ftreeEntityFentryid;
     }
 
-    public String getCreationtimeString() {
-        return creationtimeString;
-    }
+//    public String getCreationtimeString() {
+//        return creationtimeString;
+//    }
 
 
 

+ 68 - 56
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/impl/JdProductionOrderServiceImpl.java

@@ -19,6 +19,7 @@ import com.zkqy.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -140,6 +141,7 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
      *      拉取普通订单ERP数据
      */
     @Override
+    @Transactional
     public AjaxResult jdProductionOrderPull() {
         Boolean aTrue = stringRedisTemplate.opsForValue().setIfAbsent("fjqy:ptd:pulled", "true");
         if (aTrue) {
@@ -154,7 +156,7 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                         "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}],\n" +
+                        "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FMaterialId.FNumber\",\"Compare\":\"34\",\"Value\":\"焊\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FStatus\",\"Compare\":\"105\",\"Value\":\"4\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FDate\",\"Compare\":\"63\",\"Value\":\"\",\"Right\":\"\",\"Logic\":0}],\n" +
                         "    \"OrderString\": \"\",\n" +
                         "    \"TopRowCount\": 0,\n" +
                         "    \"StartRow\": 0,\n" +
@@ -179,8 +181,8 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                         .filter(item -> !collectTwo.contains(item.getDemandDocument()))
                         .collect(Collectors.groupingBy(JdProductionOrder::getDemandDocument));
 
-                //做一个map用户存订单和计划的对应关系
-                HashMap<String,String> mapGX = new HashMap<>();
+//                //做一个map用户存订单和计划的对应关系
+//                HashMap<String,String> mapGX = new HashMap<>();
                 //如果有数据
                 if (groupedByDemandDocument.size() > 0) {
                     //订单循环
@@ -206,7 +208,7 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                             productionPlanningManagement.setOrderType(v.get(0).getDocumentTyep()); //单据类型
                         }
                         //订单的创建时间
-                        productionPlanningManagement.setCreationtimeString(v.get(0).getCreationtimeString());//单据的创建时间
+                        productionPlanningManagement.setCreationtimeString(v.get(0).getDocumentDate());//单据的创建时间
                         //特殊要求
                         if (StringUtils.isNotNull(v.get(0).getTsyq())) {
                             productionPlanningManagement.setSpecialRequirements(v.get(0).getTsyq());//特殊要求
@@ -235,7 +237,7 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                                 planTaskDetails.setPlanId(productionPlanningManagement.getId());//计划id
 
                                 //订单号 ----计划id
-                                mapGX.put(a.getDemandDocument(),productionPlanningManagement.getId().toString());
+//                                mapGX.put(a.getDemandDocument(),productionPlanningManagement.getId().toString());
 
                                 planTaskDetails.setMaterialId(a.getMaterialCode());//原材料编码
                                 planTaskDetails.setMaterialName(a.getMaterialName());//名称
@@ -264,7 +266,7 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                                     planTaskDetails.setTimeOfRequest(a.getDocumentDate());
                                 }
                                 planTaskDetails.setFbomIdFnumber(a.getFbomIdFnumber());//BOM版本
-                                planTaskDetailsMapper.insertPlanTaskDetails(planTaskDetails);
+                                int i = planTaskDetailsMapper.insertPlanTaskDetails(planTaskDetails);
                             });
                         }
                     });
@@ -297,62 +299,72 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                 List<PlanTaskDetails> planTaskDetails1 = planTaskDetailsMapper.selectPlanTaskDetailsList(planTaskDetails);
                 //生产订单号集合
                 Set<String> collectA = planTaskDetails1.stream().map(PlanTaskDetails::getDemandDocument).collect(Collectors.toSet());
-                //拿到MES系统中不存在的生产订单
-                List<JdProductionOrder> collect = jdProductionOrders.stream().filter(item -> !collectA.contains(item.getDemandDocument())).collect(Collectors.toList());
+                //拿到MES系统中不存在的生产订单 documentNumber
+                List<JdProductionOrder> collect = jdProductionOrders.stream().filter(item -> !collectA.contains(item.getDocumentNumber())).collect(Collectors.toList());
+                System.out.println(collect.size()+"hmc");
                 //生产订单循环
                 collect.forEach(a->{
                     PlanTaskDetails planTaskDetailsAdd = new PlanTaskDetails();
                     planTaskDetailsAdd.setDemandDocument(a.getDocumentNumber());//需求单据号
-                    String planId = mapGX.get(a.getDocumentNumber());
-                    planTaskDetailsAdd.setPlanId(Long.valueOf(planId));//计划id
-                    planTaskDetailsAdd.setMaterialId(a.getMaterialCode());//原材料编码
-                    planTaskDetailsAdd.setMaterialName(a.getMaterialName());//名称
-                    planTaskDetailsAdd.setQuantity(a.getQuantity());//数量
-                    planTaskDetailsAdd.setModelNumber(a.getModelNumber());//型号
-                    planTaskDetailsAdd.setSpecification(a.getSpecification());//规格
-                    planTaskDetailsAdd.setMaterialUnit(a.getUnit());//单位
-                    planTaskDetailsAdd.setPower(a.getGl());//功率
-                    planTaskDetailsAdd.setVoltage(a.getDianYaPinLv());//电压频率
-                    planTaskDetailsAdd.setColour(a.getYanse());//颜色
-                    planTaskDetailsAdd.setMingpai(a.getMingpai());//铭牌
-                    planTaskDetailsAdd.setShuomingshu(a.getShuomingshu());//说明书
-                    planTaskDetailsAdd.setHegezheng(a.getHegezheng());//合格证
-                    planTaskDetailsAdd.setBaozhuangxiang(a.getBaozhuangxiang());//包装箱
-                    planTaskDetailsAdd.setSwitchBox(a.getKaiguanxiang());//开关箱
-                    planTaskDetailsAdd.setScheduledCommencement(a.getFPlanStartDate()); //计划开始时间
-                    planTaskDetailsAdd.setScheduledCompletion(a.getFPlanFinishDate()); //计划完工时间
-                    planTaskDetailsAdd.setRemark(a.getRemark());
-                    planTaskDetailsAdd.setFid(a.getFid());
-                    planTaskDetailsAdd.setFtreeEntityFentryid(a.getFtreeEntityFentryid());
-                    planTaskDetailsAdd.setFbillno(a.getDocumentNumber());//生产订单号
-                    planTaskDetailsAdd.setFsrcbillno(a.getDemandDocument());//销售订单号
-                    planTaskDetailsAdd.setFunitidfNumber(a.getFunitidfNumber());//单位编号
-                    if (StringUtils.isNotNull(a.getDocumentDate())) {
-                        planTaskDetailsAdd.setTimeOfRequest(a.getDocumentDate());
-                    }
-                    planTaskDetailsAdd.setFbomIdFnumber(a.getFbomIdFnumber());//BOM版本
-                    planTaskDetailsMapper.insertPlanTaskDetails(planTaskDetailsAdd);
+//                    String planId = mapGX.get(a.getDocumentNumber());
+                    ProductionPlanningManagement productionPlanningManagement2=new ProductionPlanningManagement();
+                    productionPlanningManagement2.setOrderNumber(a.getDemandDocument());
+                    List<ProductionPlanningManagement> productionPlanningManagements1 = productionPlanningManagementMapper.
+                            selectProductionPlanningManagementList(productionPlanningManagement2);
+                    if(productionPlanningManagements1.size()>0){
+                        planTaskDetailsAdd.setPlanId(Long.valueOf(productionPlanningManagements1.get(0).getId()));//计划id
+                        planTaskDetailsAdd.setMaterialId(a.getMaterialCode());//原材料编码
+                        planTaskDetailsAdd.setMaterialName(a.getMaterialName());//名称
+                        planTaskDetailsAdd.setQuantity(a.getQuantity());//数量
+                        planTaskDetailsAdd.setModelNumber(a.getModelNumber());//型号
+                        planTaskDetailsAdd.setSpecification(a.getSpecification());//规格
+                        planTaskDetailsAdd.setMaterialUnit(a.getUnit());//单位
+                        planTaskDetailsAdd.setPower(a.getGl());//功率
+                        planTaskDetailsAdd.setVoltage(a.getDianYaPinLv());//电压频率
+                        planTaskDetailsAdd.setColour(a.getYanse());//颜色
+                        planTaskDetailsAdd.setMingpai(a.getMingpai());//铭牌
+                        planTaskDetailsAdd.setShuomingshu(a.getShuomingshu());//说明书
+                        planTaskDetailsAdd.setHegezheng(a.getHegezheng());//合格证
+                        planTaskDetailsAdd.setBaozhuangxiang(a.getBaozhuangxiang());//包装箱
+                        planTaskDetailsAdd.setSwitchBox(a.getKaiguanxiang());//开关箱
+                        planTaskDetailsAdd.setScheduledCommencement(a.getFPlanStartDate()); //计划开始时间
+                        planTaskDetailsAdd.setScheduledCompletion(a.getFPlanFinishDate()); //计划完工时间
+                        planTaskDetailsAdd.setRemark(a.getRemark());
+                        planTaskDetailsAdd.setFid(a.getFid());
+                        planTaskDetailsAdd.setFtreeEntityFentryid(a.getFtreeEntityFentryid());
+                        planTaskDetailsAdd.setFbillno(a.getDocumentNumber());//生产订单号
+                        planTaskDetailsAdd.setFsrcbillno(a.getDemandDocument());//销售订单号
+                        planTaskDetailsAdd.setFunitidfNumber(a.getFunitidfNumber());//单位编号
+                        if (StringUtils.isNotNull(a.getDocumentDate())) {
+                            planTaskDetailsAdd.setTimeOfRequest(a.getDocumentDate());
+                        }
+                        planTaskDetailsAdd.setFbomIdFnumber(a.getFbomIdFnumber());//BOM版本
+                        planTaskDetailsMapper.insertPlanTaskDetails(planTaskDetailsAdd);
 
-                    //处理新增订单的序列号问题
-                    String stringQuery = "{\n" +
-                            "    \"FormId\": \"PRD_MO\",\n" +
-                            "    \"FieldKeys\": \"FBillNo,FSNQty1,FSaleOrderNo,FSerialNo\",\n" +
-                            "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FMaterialId.FNumber\",\"Compare\":\"34\",\"Value\":\"焊\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FStatus\",\"Compare\":\"105\",\"Value\":\"4\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FBillNo\",\"Compare\":\"67\",\"Value\":\"" + a.getDocumentNumber() + "\",\"Right\":\"\",\"Logic\":0}],\n" +
-                            "    \"OrderString\": \"\",\n" +
-                            "    \"TopRowCount\": 0,\n" +
-                            "    \"StartRow\": 0,\n" +
-                            "    \"Limit\": 2000,\n" +
-                            "    \"SubSystemId\": \"\"\n" +
-                            "}";
-                    try {
-                        String xlhString = api.billQuery(stringQuery);
-                        if (!xlhString.equals("[]")) {
-                            List<ProductionCardFlowVo> mapList1 = JSON.parseArray(xlhString, ProductionCardFlowVo.class);
-                            int i = productionCardFlowMapper.insertProductionCardFlowBatchVo(mapList1);
+                        //处理新增订单的序列号问题
+                        String stringQuery = "{\n" +
+                                "    \"FormId\": \"PRD_MO\",\n" +
+                                "    \"FieldKeys\": \"FBillNo,FSNQty1,FSaleOrderNo,FSerialNo\",\n" +
+                                "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FMaterialId.FNumber\",\"Compare\":\"34\",\"Value\":\"焊\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FStatus\",\"Compare\":\"105\",\"Value\":\"4\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FBillNo\",\"Compare\":\"67\",\"Value\":\"" + a.getDocumentNumber() + "\",\"Right\":\"\",\"Logic\":0}],\n" +
+                                "    \"OrderString\": \"\",\n" +
+                                "    \"TopRowCount\": 0,\n" +
+                                "    \"StartRow\": 0,\n" +
+                                "    \"Limit\": 2000,\n" +
+                                "    \"SubSystemId\": \"\"\n" +
+                                "}";
+                        try {
+                            //金蝶工具key
+                            K3CloudApi api2 = new K3CloudApi();
+                            String xlhString = api2.billQuery(stringQuery);
+                            if (!xlhString.equals("[]")) {
+                                List<ProductionCardFlowVo> mapList1 = JSON.parseArray(xlhString, ProductionCardFlowVo.class);
+                                int i = productionCardFlowMapper.insertProductionCardFlowBatchVo(mapList1);
+                            }
+                        } catch (Exception e) {
+                            throw new RuntimeException(e);
                         }
-                    } catch (Exception e) {
-                        throw new RuntimeException(e);
                     }
+
                 });
             } catch (Exception e) {
                 throw new RuntimeException(e);
@@ -573,7 +585,7 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                                         productionPlanningManagement.setRemark(v.get(0).getRemark()); //备注
                                     }
                                     //订单的创建时间
-                                    productionPlanningManagement.setCreationtimeString(v.get(0).getCreationtimeString());//单据的创建时间
+                                    productionPlanningManagement.setCreationtimeString(v.get(0).getDocumentDate());//单据的创建时间
                                     //特殊要求
                                     if(StringUtils.isNotNull(v.get(0).getTsyq())){
                                         productionPlanningManagement.setSpecialRequirements(v.get(0).getTsyq());//特殊要求

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

@@ -39,6 +39,7 @@ public interface MaterialRetentionLogMapper
      */
     public List<MaterialRetentionLog> selectMaterialRetentionLogListNoProduction(MaterialRetentionLog materialRetentionLog);
 
+
     /**
      * 新增扫码扣料日志
      * 

+ 8 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/mapper/RingScanInformationFirstMapper.java

@@ -68,4 +68,12 @@ public interface RingScanInformationFirstMapper
      * @return 结果
      */
     public int deleteRingScanInformationFirstByIds(Long[] ids);
+
+
+    /**
+     * 合计计算
+     * @param ringScanInformationFirst
+     * @return
+     */
+    List<RingScanInformationFirst> selectRingScanInformationFirstListHe(RingScanInformationFirst ringScanInformationFirst);
 }

+ 76 - 7
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/scheduling/ScheduledBean.java

@@ -23,10 +23,7 @@ import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Component;
 
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -85,7 +82,7 @@ public class ScheduledBean {
                         "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" +
+                        "    \"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\":\"63\",\"Value\":\"\",\"Right\":\"\",\"Logic\":0}],\n" +
                         "    \"OrderString\": \"\",\n" +
                         "    \"TopRowCount\": 0,\n" +
                         "    \"StartRow\": 0,\n" +
@@ -132,7 +129,7 @@ public class ScheduledBean {
                             productionPlanningManagement.setOrderType(v.get(0).getDocumentTyep()); //单据类型
                         }
                         //订单的创建时间
-                        productionPlanningManagement.setCreationtimeString(v.get(0).getCreationtimeString());//单据的创建时间
+                        productionPlanningManagement.setCreationtimeString(v.get(0).getDocumentDate());//单据的创建时间
                         //特殊要求
                         if(StringUtils.isNotNull(v.get(0).getTsyq())){
                             productionPlanningManagement.setSpecialRequirements(v.get(0).getTsyq());//特殊要求
@@ -214,6 +211,78 @@ public class ScheduledBean {
                         }
                     });
                 }
+                //更新生产订单数据(能走到这里说明数据拉取成功-存在MES中有订单信息,但是订单信息不全的可能)
+                //查询所有生产订单
+                PlanTaskDetails planTaskDetails=new PlanTaskDetails();
+                List<PlanTaskDetails> planTaskDetails1 = planTaskDetailsMapper.selectPlanTaskDetailsList(planTaskDetails);
+                //生产订单号集合
+                Set<String> collectA = planTaskDetails1.stream().map(PlanTaskDetails::getDemandDocument).collect(Collectors.toSet());
+                //拿到MES系统中不存在的生产订单 documentNumber
+                List<JdProductionOrder> collect = jdProductionOrders.stream().filter(item -> !collectA.contains(item.getDocumentNumber())).collect(Collectors.toList());
+                //生产订单循环
+                collect.forEach(a->{
+                    PlanTaskDetails planTaskDetailsAdd = new PlanTaskDetails();
+                    planTaskDetailsAdd.setDemandDocument(a.getDocumentNumber());//需求单据号
+//                    String planId = mapGX.get(a.getDocumentNumber());
+                    ProductionPlanningManagement productionPlanningManagement2=new ProductionPlanningManagement();
+                    productionPlanningManagement2.setOrderNumber(a.getDemandDocument());
+                    List<ProductionPlanningManagement> productionPlanningManagements1 = productionPlanningManagementMapper.
+                            selectProductionPlanningManagementList(productionPlanningManagement2);
+                    if(productionPlanningManagements1.size()>0){
+                        planTaskDetailsAdd.setPlanId(Long.valueOf(productionPlanningManagements1.get(0).getId()));//计划id
+                        planTaskDetailsAdd.setMaterialId(a.getMaterialCode());//原材料编码
+                        planTaskDetailsAdd.setMaterialName(a.getMaterialName());//名称
+                        planTaskDetailsAdd.setQuantity(a.getQuantity());//数量
+                        planTaskDetailsAdd.setModelNumber(a.getModelNumber());//型号
+                        planTaskDetailsAdd.setSpecification(a.getSpecification());//规格
+                        planTaskDetailsAdd.setMaterialUnit(a.getUnit());//单位
+                        planTaskDetailsAdd.setPower(a.getGl());//功率
+                        planTaskDetailsAdd.setVoltage(a.getDianYaPinLv());//电压频率
+                        planTaskDetailsAdd.setColour(a.getYanse());//颜色
+                        planTaskDetailsAdd.setMingpai(a.getMingpai());//铭牌
+                        planTaskDetailsAdd.setShuomingshu(a.getShuomingshu());//说明书
+                        planTaskDetailsAdd.setHegezheng(a.getHegezheng());//合格证
+                        planTaskDetailsAdd.setBaozhuangxiang(a.getBaozhuangxiang());//包装箱
+                        planTaskDetailsAdd.setSwitchBox(a.getKaiguanxiang());//开关箱
+                        planTaskDetailsAdd.setScheduledCommencement(a.getFPlanStartDate()); //计划开始时间
+                        planTaskDetailsAdd.setScheduledCompletion(a.getFPlanFinishDate()); //计划完工时间
+                        planTaskDetailsAdd.setRemark(a.getRemark());
+                        planTaskDetailsAdd.setFid(a.getFid());
+                        planTaskDetailsAdd.setFtreeEntityFentryid(a.getFtreeEntityFentryid());
+                        planTaskDetailsAdd.setFbillno(a.getDocumentNumber());//生产订单号
+                        planTaskDetailsAdd.setFsrcbillno(a.getDemandDocument());//销售订单号
+                        planTaskDetailsAdd.setFunitidfNumber(a.getFunitidfNumber());//单位编号
+                        if (StringUtils.isNotNull(a.getDocumentDate())) {
+                            planTaskDetailsAdd.setTimeOfRequest(a.getDocumentDate());
+                        }
+                        planTaskDetailsAdd.setFbomIdFnumber(a.getFbomIdFnumber());//BOM版本
+                        planTaskDetailsMapper.insertPlanTaskDetails(planTaskDetailsAdd);
+
+                        //处理新增订单的序列号问题
+                        String stringQuery = "{\n" +
+                                "    \"FormId\": \"PRD_MO\",\n" +
+                                "    \"FieldKeys\": \"FBillNo,FSNQty1,FSaleOrderNo,FSerialNo\",\n" +
+                                "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FMaterialId.FNumber\",\"Compare\":\"34\",\"Value\":\"焊\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FStatus\",\"Compare\":\"105\",\"Value\":\"4\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FBillNo\",\"Compare\":\"67\",\"Value\":\"" + a.getDocumentNumber() + "\",\"Right\":\"\",\"Logic\":0}],\n" +
+                                "    \"OrderString\": \"\",\n" +
+                                "    \"TopRowCount\": 0,\n" +
+                                "    \"StartRow\": 0,\n" +
+                                "    \"Limit\": 2000,\n" +
+                                "    \"SubSystemId\": \"\"\n" +
+                                "}";
+                        try {
+                            //金蝶工具key
+                            K3CloudApi api2 = new K3CloudApi();
+                            String xlhString = api2.billQuery(stringQuery);
+                            if (!xlhString.equals("[]")) {
+                                List<ProductionCardFlowVo> mapList1 = JSON.parseArray(xlhString, ProductionCardFlowVo.class);
+                                int i = productionCardFlowMapper.insertProductionCardFlowBatchVo(mapList1);
+                            }
+                        } catch (Exception e) {
+                            throw new RuntimeException(e);
+                        }
+                    }
+
+                });
             } catch (Exception e) {
                 throw new RuntimeException(e);
             }finally {
@@ -423,7 +492,7 @@ public class ScheduledBean {
                                     productionPlanningManagement.setRemark(v.get(0).getRemark()); //备注
                                 }
                                 //订单的创建时间
-                                productionPlanningManagement.setCreationtimeString(v.get(0).getCreationtimeString());//单据的创建时间
+                                productionPlanningManagement.setCreationtimeString(v.get(0).getDocumentDate());//单据的创建时间
                                 //特殊要求
                                 if (StringUtils.isNotNull(v.get(0).getTsyq())) {
                                     productionPlanningManagement.setSpecialRequirements(v.get(0).getTsyq());//特殊要求

+ 7 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/IRingScanInformationFirstService.java

@@ -58,4 +58,11 @@ public interface IRingScanInformationFirstService
      * @return 结果
      */
     public int deleteRingScanInformationFirstById(Long id);
+
+    /**
+     * 数量合计计算
+     * @param ringScanInformationFirst
+     * @return
+     */
+    List<RingScanInformationFirst> selectRingScanInformationFirstListHe(RingScanInformationFirst ringScanInformationFirst);
 }

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

@@ -359,7 +359,7 @@ public class MaterialInfoServiceImpl implements IMaterialInfoService
                 ));
 
         //对比计算
-        List<MaterialInfo> items = materialInfos.stream().map(item -> {
+        List<MaterialInfo> items = materialInfos.parallelStream().map(item -> {
             //拿到当前相同的母粒
             MaterialRetentionLog materialtransactionlog1 = materialLogMap.get(item.getMaterialCode());
             //material_retention_log

+ 5 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/RingScanInformationFirstServiceImpl.java

@@ -90,4 +90,9 @@ public class RingScanInformationFirstServiceImpl implements IRingScanInformation
     {
         return ringScanInformationFirstMapper.deleteRingScanInformationFirstById(id);
     }
+
+    @Override
+    public List<RingScanInformationFirst> selectRingScanInformationFirstListHe(RingScanInformationFirst ringScanInformationFirst) {
+        return ringScanInformationFirstMapper.selectRingScanInformationFirstListHe(ringScanInformationFirst);
+    }
 }

+ 3 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/StationInformationServiceImpl.java

@@ -578,6 +578,7 @@ public class StationInformationServiceImpl implements IStationInformationService
     }
 
 
+
     /**
      * 扣料
      * @param orderNumber
@@ -617,6 +618,7 @@ public class StationInformationServiceImpl implements IStationInformationService
            ringScanInformation.setNativeNumbering(lxkNumber);//流转卡
            List<RingScanInformation> ringScanInformations = ringScanInformationMapper.selectRingScanInformationList(ringScanInformation);
            //当前流转卡在当前工序可以的话就进行扣料处理
+           // 人员id,产品id
            if(ringScanInformations.size()==2){
                //查询条件
                String queryString ="{\n" +
@@ -849,6 +851,7 @@ public class StationInformationServiceImpl implements IStationInformationService
               List<RingScanInformationFirst> ringScanInformationFirsts1 = ringScanInformationFirstMapper.selectRingScanInformationFirstList(newRingScanInformationFirst);
               if(ringScanInformationFirsts1.size()>0) {
                   RingScanInformationFirst ringScanInformationFirst = ringScanInformationFirsts1.get(0);
+                  //入库数量等于生产订单总数那么就发起入库申请
                   if(ringScanInformationFirst.getRks().equals(ringScanInformationFirst.getProductionOrderTotalQuantity())){
                       PlanTaskDetails planTaskDetails=new PlanTaskDetails();
                       planTaskDetails.setDemandDocument(productionOrderNumber);

+ 8 - 1
zkqy-fujian-amichi/src/main/resources/mapper/MaterialRetentionLogMapper.xml

@@ -87,6 +87,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="productSpecification != null "> and product_specification = #{productSpecification}</if>
             <if test="orderNumber!=null">and order_number = #{orderNumber}</if>
             <if test="productionOrderNumber!=null">and production_order_number =#{productionOrderNumber}</if>
+            <if test="createTimeString != null and createTimeString[0] != null and createTimeString[0] != ''">
+                and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ >= ]]> #{createTimeString[0]}
+            </if>
+            <if test="createTimeString != null and createTimeString[1] != null and createTimeString[1] != ''">
+                and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ <= ]]> #{createTimeString[1]}
+            </if>
         </where>
         order by create_time desc
     </select>
@@ -174,7 +180,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             and ptd.status !=3
         </where>
     </select>
-    
+
+
     <select id="selectMaterialRetentionLogById" parameterType="Long" resultMap="MaterialRetentionLogResult">
         <include refid="selectMaterialRetentionLogVo"/>
         where id = #{id}

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

@@ -45,6 +45,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectRingScanInformationFirstVo"/>
         where id = #{id}
     </select>
+    <select id="selectRingScanInformationFirstListHe"
+            resultType="com.zkqy.amichi.domain.RingScanInformationFirst">
+        select rsif.id,  rsif.order_number, rsif.production_order_number, rsif.status,rsif.start_time,rsif.end_time,rsif.packing_quantity,rsif.inspection_quantity,rsif.total_quantity,
+        rsif.packing_or_inspection,rsif.production_order_total_quantity,rsif.rks,sum(rsif.rks) as he,ppm.creationtimeString as creationtimeString
+        from fjqydb.ring_scan_information_first as rsif left join
+        fjqydb.production_planning_management as ppm on (ppm.order_number = rsif.order_number)
+        <where>
+            <if test="orderNumber != null  and orderNumber != ''"> and ( rsif.order_number = #{orderNumber} or  rsif.production_order_number = #{orderNumber})</if>
+            <if test="productionOrderNumber != null  and productionOrderNumber != ''"> and  rsif.production_order_number = #{productionOrderNumber}</if>
+            <if test="status != null  and status != ''"> and  rsif.status = #{status}</if>
+            <if test="startTime != null  and startTime != ''"> and  rsif.start_time = #{startTime}</if>
+            <if test="endTime != null  and endTime != ''"> and  rsif.end_time = #{endTime}</if>
+            <if test="packingQuantity != null  and packingQuantity != ''"> and  rsif.packing_quantity = #{packingQuantity}</if>
+            <if test="inspectionQuantity != null  and inspectionQuantity != ''"> and  rsif.inspection_quantity = #{inspectionQuantity}</if>
+            <if test="totalQuantity != null  and totalQuantity != ''"> and  rsif.total_quantity = #{totalQuantity}</if>
+            <if test="packingOrInspection != null  and packingOrInspection != ''"> and  rsif.packing_or_inspection = #{packingOrInspection}</if>
+            <if test="createTimeString != null and createTimeString[0] != null and createTimeString[0] != ''">
+                and DATE_FORMAT(ppm.creationtimeString,'%Y-%m-%d') <![CDATA[ >= ]]> #{createTimeString[0]}
+            </if>
+            <if test="createTimeString != null and createTimeString[1] != null and createTimeString[1] != ''">
+                and DATE_FORMAT(ppm.creationtimeString,'%Y-%m-%d') <![CDATA[ <= ]]> #{createTimeString[1]}
+            </if>
+        </where>
+        group by order_number
+        order by start_time desc
+    </select>
 
     <insert id="insertRingScanInformationFirst" parameterType="com.zkqy.amichi.domain.RingScanInformationFirst" useGeneratedKeys="true" keyProperty="id">
         insert into fjqydb.ring_scan_information_first

+ 5 - 1
zkqy-fujian-amichi/src/main/resources/mapper/RingScanInformationMapper.xml

@@ -222,6 +222,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         rsi.order_number,rsi.process_name,rsi.native_numbering
         ) AS sub
         LEFT JOIN fjqydb.ring_scan_information_first AS rsif ON ( sub.production_order_number = rsif.production_order_number )
+
         <where>
             <if test="list != null and list.size()>0">
                 sub.order_number IN
@@ -253,7 +254,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         rsif.start_time,
         rsif.end_time,
         rsif.total_quantity,
-        rsif.production_order_total_quantity
+        rsif.production_order_total_quantity,
+        ptd.model_number as modelNumber,
+        ptd.specification as specification
         FROM
         (
         SELECT
@@ -273,6 +276,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         rsi.production_order_number,rsi.process_name,rsi.native_numbering
         ) AS sub
         LEFT JOIN fjqydb.ring_scan_information_first AS rsif ON ( sub.production_order_number = rsif.production_order_number )
+        left join fjqydb.plan_task_details as ptd on ptd.demand_document=sub.production_order_number
         <where>
             <if test="list != null and list.size()>0">
                 sub.production_order_number IN

+ 1 - 0
zkqy-laboratory-information/src/main/java/com/zkqy/laboratory/service/impl/LaboratorySampleCollectionServiceImpl.java

@@ -228,6 +228,7 @@ public class LaboratorySampleCollectionServiceImpl implements ILaboratorySampleC
         laboratorySampleCollection.setCreateBy(SecurityUtils.getUsername());
         laboratorySampleCollection.setCreateTime(DateUtils.getNowDate());
         laboratorySampleCollection.setSampleStatus("3"); //3待测试
+
         //委托单
         EntrustedInformation entrustedInformation=new EntrustedInformation();
         entrustedInformation.setOrderStatus("3");//3待测试 5测试中 6测试完成 7退回

+ 1 - 0
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/CommonServiceImpl.java

@@ -150,6 +150,7 @@ public class CommonServiceImpl implements ICommonService {
         endfields.put("update_by", SecurityUtils.getUsername());
         endfields.put("update_time", DateUtils.getTime());
         endfields.put("update_by_id", SecurityUtils.getUserId());
+//        return  1;
         return commonMapper.edit(endfields, tableName, endConditions);
     }
 

+ 4 - 4
zkqy-system/src/main/resources/mapper/system/SysMenuMapper.xml

@@ -77,8 +77,8 @@
 		from sys_menu m
 		left join sys_tenant_menu tm on tm.menu_id = m.menu_id
 		where tm.tenant_id = #{tenantId}
-		and m.menu_name not in ('数据引擎','流程引擎','表单引擎','移动端引擎','后台管理','数据驾仓')
-		and parent_id not in (select menu_id from  sys_menu where menu_name in ('数据引擎','流程引擎','表单引擎','移动端引擎','后台管理','数据驾仓'))
+		and m.menu_name not in ('数据引擎','流程引擎','表单引擎','移动端引擎','后台管理','数据驾仓','IOT平台')
+		and parent_id not in (select menu_id from  sys_menu where menu_name in ('数据引擎','流程引擎','表单引擎','移动端引擎','后台管理','数据驾仓','IOT平台'))
 		<if test="menu.menuName != null and menu.menuName != ''">
 			AND m.menu_name like concat('%', #{menu.menuName}, '%')
 		</if>
@@ -100,8 +100,8 @@
 		from sys_tenant_menu tm
 		left join sys_menu m on tm.menu_id = m.menu_id
 		where m.menu_type in ('M', 'C') and m.status = 0 and tm.tenant_id = #{tenantId}
-		and m.menu_name not in ('数据引擎','流程引擎','表单引擎','移动端引擎','后台管理','数据驾仓')
-		and parent_id not in (select menu_id from  sys_menu where menu_name in ('数据引擎','流程引擎','表单引擎','移动端引擎','后台管理','数据驾仓'))
+		and m.menu_name not in ('数据引擎','流程引擎','表单引擎','移动端引擎','后台管理','数据驾仓','IOT平台')
+		and parent_id not in (select menu_id from  sys_menu where menu_name in ('数据引擎','流程引擎','表单引擎','移动端引擎','后台管理','数据驾仓','IOT平台'))
 		order by m.parent_id, m.order_num
 	</select>
 	

+ 6 - 5
zkqy-ui/.env.production

@@ -1,5 +1,5 @@
 # 页面标题
-VUE_APP_TITLE = 铨一生产协同管理系统
+VUE_APP_TITLE = 生产协同管理系统
 
 # 生产环境配置
 ENV = 'production'
@@ -11,16 +11,17 @@ VUE_APP_BASE_API = '/prod-api'
 # VUE_APP_BASE_API1 = 'http://62.234.61.92:8055/'
  VUE_APP_BASE_API1 = 'http://192.168.2.135:8066/'
 # VUE_APP_BASE_API1 = 'http://62.234.61.92:8066/'
-#VUE_APP_BASE_API1 = 'http://192.168.2.127:8066/'
-#VUE_APP_BASE_API1 = 'http://192.168.3.17:8066/'
+#VUE_APP_BASE_API1 = 'http://192.168.110.83:8066/'
+#VUE_APP_BASE_API1 = 'http://175.27.169.173:8066/'
 
 
 # 图片路径
+#VUE_APP_BASE_IMG_API = 'http://192.168.3.17:1025/prod-api'
 VUE_APP_BASE_IMG_API = 'http://192.168.2.135:1025/prod-api'
-
-#VUE_APP_BASE_IMG_API = 'http://62.234.61.92:1025/prod-api'
+#VUE_APP_BASE_IMG_API = 'http://175.27.169.173:1025/prod-api'
 
 # ws地址
 VUE_APP_BASE_WS_API = '//127.0.0.1:8721'
 
+
 VUE_APP_BASE_IMG_API_MINIO='http://192.168.128.164:9000/xingneng'

+ 12 - 0
zkqy-ui/src/api/amichi/ringScanInformation/index.js

@@ -16,6 +16,18 @@ export function scanCodeMonitoringLogs(query) {
     params: query
   })
 }
+
+// http://localhost:8080/ringScanInformationFirst/first/list
+//查询订单的完成数量
+
+  export function ringScanInformationFirstListHe(query) {
+    return request({
+      url: '/ringScanInformationFirst/first/listHe',
+      method: 'get',
+      params: query
+    })
+  }
+
 export function scanCodeMonitoringLogs2(query) {
   return request({
     url: '/amichi/ringScanInformation/info/scanCodeMonitoringLogs2',

+ 4 - 0
zkqy-ui/src/components/FormGroup/formList.vue

@@ -149,6 +149,7 @@ export default {
       console.log("activeRender");
       let temp = JSON.parse(JSON.stringify(val));
       this.formArray = await this.disableHandler(temp);
+      console.log(this.formArray )
       // this.$nextTick(() => {
       //   console.log("表单组渲染");
       //   // setTimeout(() => {
@@ -273,8 +274,10 @@ export default {
           formType,
           defaultValue,
           insertMap,
+          updateMap,
           isMainForm,
         } = refName;
+
         this.$refs[tableName][0]?.getData().then((values) => {
           resolve({
             tableName,
@@ -284,6 +287,7 @@ export default {
             formType,
             defaultValue,
             insertMap,
+            updateMap,
             isMainForm,
           });
         });

+ 19 - 0
zkqy-ui/src/views/amichi/MaterialRetentionLog/index.vue

@@ -33,6 +33,24 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="物料名称" prop="materialName">
+        <el-input
+          v-model="queryParams.materialName"
+          placeholder="请输入物料名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="扣料时间" prop="createTimeString">
+        <el-date-picker
+          v-model="queryParams.createTimeString"
+          value-format="yyyy-MM-dd"
+          type="daterange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
+        </el-date-picker>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -224,6 +242,7 @@ export default {
       open: false,
       // 查询参数
       queryParams: {
+        createTimeString:null,
         pageNum: 1,
         pageSize: 50,
         materialCode: null,

+ 13 - 0
zkqy-ui/src/views/amichi/dialogCompments/customizedVersion/components/taskList.vue

@@ -10,6 +10,19 @@
         <span class="title-content">{{cardData[0].productionOrderTotalQuantity}}</span>
       </div>
       <div class="title-item">
+<!--        {{cardData}}-->
+        <span class="title-label">型号:</span>
+        <span class="title-content">{{cardData[0].modelNumber}}</span>
+      </div>
+      <div class="title-item">
+<!--        {{cardData}}-->
+        <span class="title-label">规格:</span>
+        <span class="title-content">{{cardData[0].specification}}</span>
+      </div>
+<!--      private  String  modelNumber;-->
+
+<!--      private  String  specification;-->
+      <div class="title-item">
         <span class="title-label" v-if="cardData[0].endTime!=null&&cardData[0].endTime!=''">完成时间:</span>
         <span class="title-content" v-if="cardData[0].endTime!=null&&cardData[0].endTime!=''">{{cardData[0].endTime ? cardData[0].endTime.replace("T", " ") : "" }}</span>
       </div>

+ 763 - 0
zkqy-ui/src/views/amichi/dialogCompments/customizedVersion/productionForm.vue

@@ -0,0 +1,763 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
+      <el-form-item label="订单号" prop="orderNumber">
+        <el-input
+          v-model="queryParams.orderNumber"
+          placeholder="请输入订单号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="日期" prop="createTimeString">
+        <el-date-picker
+          v-model="queryParams.createTimeString"
+          value-format="yyyy-MM-dd"
+          type="daterange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="sheetList" @selection-change="handleSelectionChange" :row-style="tableRowStyle" style="margin-top: 20px">
+      <el-table-column label="订单号" align="center" prop="orderNumber" />
+      <el-table-column label="订单数" align="center" prop="totalQuantity" />
+      <el-table-column label="完成数量" align="center" prop="he" :formatter="formatHe" />
+      <el-table-column label="订单创建时间" align="center" prop="creationtimeString" />
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改产品出库单对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="1100px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-row type="flex" class="row-bg" justify="space-between">
+          <el-col :span="8">
+            <el-form-item label="订单号" prop="orderNumber">
+              <el-input v-model="form.orderNumber" placeholder="请输入订单号" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="单据编号" prop="documentNumber">
+              <el-input v-model="form.documentNumber" placeholder="请输入单据编号" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="合同号" prop="contractNumber">
+              <el-input v-model="form.contractNumber" placeholder="请输入合同号" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row type="flex" class="row-bg" justify="space-between">
+          <el-col :span="8">
+            <el-form-item label="客户名称" prop="customerName">
+              <el-select
+                v-model="form.customerName"
+                size="small"
+                style="width: 273.32px"
+                clearable
+                placeholder="请选择客户"
+                filterable
+                @change="handleCustomerChange"
+              >
+                <el-option
+                  v-for="(item,index) in customerCollection"
+                  :key="index"
+                  :label="item.customerName"
+                  :value="{value:item.id,label:item.customerName}"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="客户电话" prop="customerPhone">
+              <el-input v-model="form.customerPhone" placeholder="请输入客户电话" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="客户传真" prop="customerFax">
+              <el-input v-model="form.customerFax" placeholder="请输入客户传真" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row type="flex" class="row-bg" justify="space-between">
+          <el-col :span="8">
+            <el-form-item label="客户地址" prop="customerAddress">
+              <el-input v-model="form.customerAddress" placeholder="请输入客户地址" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="联系人" prop="contactPerson">
+              <el-input v-model="form.contactPerson" placeholder="请输入联系人" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="联系电话" prop="contactNumber">
+              <el-input v-model="form.contactNumber" placeholder="请输入联系电话" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row type="flex" class="row-bg" justify="space-between">
+          <el-col :span="8">
+            <el-form-item label="收货地址" prop="deliveryAddress">
+              <el-input v-model="form.deliveryAddress" placeholder="请输入收货地址" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="填单日期" prop="createTime">
+              <el-date-picker
+                v-model="form.createTime"
+                type="date"
+                format="yyyy 年 MM 月 dd 日"
+                style="width: 273.32px"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                placeholder="请选择填单日期">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+
+          </el-col>
+        </el-row>
+
+
+
+        <el-row class="">
+          <div class="cesiumTabRoot">
+            <el-table
+              :data="detailData"
+              border
+              show-summary
+              :summary-method="getSummaries"
+              :cell-class-name="tabCellClassName"
+              :row-class-name="tabRowClassName"
+              @cell-click="cellClick"
+              style="width:100%">
+              <el-table-column
+                type="index"
+                label="序号"
+                align="center"
+                width="50">
+              </el-table-column>
+              <el-table-column
+                prop="productName"
+                align="center"
+                label="产品名称"
+              >
+                <template v-slot="{ row, column }">
+                  <el-input
+                    v-if="rowIndex === row.index && columnIndex === column.index"
+                    v-model="row.productName"
+                    @blur="hideInput(detailData,row.index,columnIndex,'productName')"
+                  >
+                  </el-input>
+                  <!-- 显示 -->
+                  <span v-else>{{ row.productName }}</span>
+                </template>
+              </el-table-column>
+
+              <el-table-column
+                prop="modelNumber"
+                label="型号"
+                align="center"
+              >
+                <template v-slot="{ row, column }">
+                  <el-input
+                    v-if="rowIndex === row.index && columnIndex === column.index"
+                    v-model="row.modelNumber"
+                    @blur="hideInput"></el-input>
+                  <!-- 显示 -->
+                  <span v-else>{{ row.modelNumber }}</span>
+                </template>
+              </el-table-column>
+
+              <el-table-column
+                prop="unit"
+                label="单位"
+                align="center"
+              >
+                <template v-slot="{ row, column }">
+                  <!-- 编辑 -->
+                  <el-input
+                    v-if="rowIndex === row.index && columnIndex === column.index"
+                    v-model="row.unit"
+                    @blur="hideInput"></el-input>
+                  <!-- 显示 -->
+                  <span v-else>{{ row.unit }}</span>
+                </template>
+              </el-table-column>
+
+
+              <el-table-column
+                prop="quantity"
+                label="数量"
+                align="center"
+              >
+                <template v-slot="{ row, column }">
+                  <!-- 编辑 -->
+                  <el-input
+
+                    v-if="rowIndex === row.index && columnIndex === column.index"
+                    v-model="row.quantity"
+                    @blur="hideInput"></el-input>
+                  <!-- 显示 -->
+                  <span v-else>{{ row.quantity }}</span>
+                </template>
+              </el-table-column>
+
+              <el-table-column
+                prop="remark"
+                label="备注"
+                align="center"
+              >
+                <template v-slot="{ row, column }">
+                  <!-- 编辑 -->
+                  <el-input
+
+                    v-if="rowIndex === row.index && columnIndex === column.index"
+                    v-model="row.remark"
+                    @blur="hideInput"></el-input>
+                  <!-- 显示 -->
+                  <span v-else>{{ row.remark }}</span>
+                </template>
+              </el-table-column>
+
+              <el-table-column
+                align="center"
+                fixed="right"
+                label="操作"
+                width="120">
+                <template v-slot="scope">
+                  <el-button type="danger"  size="small" icon="el-icon-delete" @click.native.prevent="deleteRow(scope.$index, detailData)"></el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+        </el-row>
+
+        <el-row type="flex" class="row-bg" justify="space-between" style="margin-top: 20px">
+          <el-col  :span="10">
+          </el-col>
+          <el-col  :span="10">
+            <el-button type="primary" style="float: right" icon="el-icon-circle-plus" @click="addDetails">新增明细</el-button>
+          </el-col>
+        </el-row>
+
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 查看详情 -->
+    <el-dialog :title="title" :visible.sync="catOpen" width="1200px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-row type="flex" class="row-bg" justify="space-between">
+          <el-col :span="8">
+            <el-form-item label="订单号:" prop="orderNumber">
+              {{form.orderNumber}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="单据编号:" prop="documentNumber">
+              {{form.documentNumber}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="合同号:" prop="contractNumber">
+              {{form.contractNumber}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row type="flex" class="row-bg" justify="space-between">
+          <el-col :span="8">
+            <el-form-item label="客户名称:" prop="customerName">
+              {{form.customerName}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="客户电话:" prop="customerPhone">
+              {{form.customerPhone}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="客户传真:" prop="customerFax">
+              {{form.customerFax}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row type="flex" class="row-bg" justify="space-between">
+          <el-col :span="8">
+            <el-form-item label="客户地址:" prop="customerAddress">
+              {{form.customerAddress}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="联系人:" prop="contactPerson">
+              {{form.contactPerson}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="联系电话:" prop="contactNumber">
+              {{form.contactNumber}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row type="flex" class="row-bg" justify="space-between">
+          <el-col :span="8">
+            <el-form-item label="收货地址:" prop="deliveryAddress">
+              {{form.deliveryAddress}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="填单日期:" prop="createTime">
+              {{form.createTime}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="制单人:" prop="deliveryAddress">
+              {{form.documenter}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row class="">
+          <div class="cesiumTabRootA">
+            <table style="width: 100%; border-collapse: collapse;">
+              <thead>
+              <tr>
+                <th>序号</th>
+                <th>产品名称</th>
+                <th>型号</th>
+                <th>单位</th>
+                <th>数量</th>
+                <th>备注</th>
+              </tr>
+              </thead>
+              <tbody>
+              <tr v-for="(item, index) in detailData" :key="index">
+                <td>{{ index + 1 }}</td>
+                <td>{{ item.productName }}</td>
+                <td>{{ item.modelNumber }}</td>
+                <td>{{ item.unit }}</td>
+                <td>{{ item.quantity }}</td>
+                <td>{{ item.remark }}</td>
+              </tr>
+              <tr>
+                <td colspan="4" style="text-align: left;padding-left: 40px;font-weight: bolder">合计:</td>
+                <td>{{ totalQuantity }}</td>
+                <td></td>
+              </tr>
+              </tbody>
+            </table>
+          </div>
+        </el-row>
+        <el-row type="flex" class="row-bg" justify="space-between" style="margin-top: 20px">
+          <el-col :span="8">
+            <el-form-item label="审核人" prop="createTime">
+              {{form.auditor}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="签收人" prop="createTime">
+              {{form.signer}}
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="签收时间" prop="createTime">
+              {{form.dateOfReceipt}}
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="catOpen=false">确 定</el-button>
+        <el-button @click="catOpen=false">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listSheet,
+  getSheet,
+  delSheet,
+  addSheet,
+  updateSheet,
+  insertSheet,
+  updateSheetVo, changeStatus
+} from "@/api/amichi/outSheet/sheet";
+import {listInformationList,getInformation} from "@/api/amichi/customerinformation/information";
+import {ringScanInformationFirstListHe} from "@/api/amichi/ringScanInformation/index";
+
+export default {
+  name: "Sheet",
+  dicts: ["rkdsh"],
+  data() {
+    return {
+      catOpen: false,
+      // 行index
+      rowIndex: null,
+      // 列index
+      columnIndex: null,
+      detailData:[],
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 产品出库单表格数据
+      sheetList: [
+      ],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        orderNumber: null,
+        createTimeString:null
+      },
+      customerCollection:[],
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  computed: {
+    totalQuantity() {
+      return this.detailData.reduce((total, item) => total + parseInt(item.quantity), 0);
+    },
+  },
+  created() {
+    this.getList();
+    //查询所有用户信息
+    this.listInformationList();
+  },
+  methods: {
+    formatHe(row, column, cellValue) {
+      return parseInt(cellValue, 10) || 0; // 将 'he' 字段解析为整数,如果解析失败则默认为 0
+    },
+    // ... 其他方法
+    tableRowStyle({ row, rowIndex }) {
+      if (row.totalQuantity === row.he) {
+        return { 'background-color': 'green', color: 'white' };
+      }
+      return {};
+    },
+    //展示不同的标签
+    getStatusType(status) {
+      switch (status) {
+        case '3':
+          return 'warning';
+        case '0':
+          return 'danger';
+        case '1':
+          return 'success';
+        case '2':
+          return 'info';
+        default:
+          return '';
+      }
+    },
+    //下拉菜单点击事件 productDeliverySheetDetailsList
+    handleCommand(command, row) {
+      switch (command) {
+        case "handleUpdate":
+          this.handleUpdate(row)
+          break;
+        case "handleDelete":
+          this.handleDelete(row)
+          break;
+        case "initiateApproval":
+          this.initiateApproval(row)
+          break;
+        case "catInfo":
+          this.catInfo(row)
+        default:
+          break;
+      }
+    },
+    catInfo(row){
+      this.reset();
+      const id = row.id || this.ids
+      getSheet(id).then(response => {
+        this.detailData = response.data.productDeliverySheetDetailsList;
+        this.form = response.data;
+        this.catOpen= true;
+        this.title = "产品出库单详情";
+      });
+    },
+    initiateApproval(row){
+      //改状态
+      this.form.dataApprovalStatus = 0;
+      this.form.id = row.id;
+      changeStatus(this.form).then(response => {
+        if(response.code==200){
+          this.$modal.msgSuccess("审批发起成功");
+          this.getList();
+        }
+      }).catch(err => {});
+    },
+    //处理下拉框选择其他框赋值
+    handleCustomerChange(row){
+      console.log(row);
+      this.form.customerName = row.label;//表单赋值对应的公司名称
+      getInformation(row.value).then(response => {
+        console.log(response.data);
+        //电话
+        this.form.customerPhone = response.data.customerPhone;
+        //传真
+        this.form.customerFax = response.data.customerFax;
+        //地址
+        this.form.customerAddress = response.data.customerAddress;
+        //联系人
+        this.form.contactPerson = response.data.contactPerson;
+        //收货地址
+        this.form.deliveryAddress = response.data.deliveryAddress;
+        //联系电话
+        this.form.contactNumber = response.data.contactNumber;
+      }).catch(err => {});
+    },
+    //查询用户信息
+    listInformationList(){
+      listInformationList().then(response => {
+        this.customerCollection = response.data;
+      }).catch(err => {});
+    },
+    deleteRow(index, rows) {
+      rows.splice(index, 1);
+    },
+    //新增明细
+    addDetails(){
+      this.detailData.push(
+        {"productName":"","modelNumber":"","unit":"","quantity":"","remark":""});
+    },
+    // 表格input失去焦点
+    hideInput(a,b,c,d) {
+      if(a=="sl"){
+        this.updateTotalQuantity();
+      }
+      this.rowIndex = null;
+      this.columnIndex = null;
+    },
+    // 给表格单元格数据添加列下标
+    tabCellClassName({ column, columnIndex }) {
+      column.index = columnIndex + 1;
+    },
+    // 表格行class-name
+    tabRowClassName({ row, rowIndex }) {
+      row.index = rowIndex + 1;
+    },
+    // 点击表格单元格编辑
+    cellClick(row, column) {
+      this.rowIndex = row.index;
+      this.columnIndex = column.index;
+    },
+    // 对列进行合算
+    getSummaries(param) {
+      const { columns, data } = param;
+      const sums = [];
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = '合计';
+          return;
+        }
+        const values = data.map(item => Number(item[column.property]));
+        // 只对amount这一列进行总计核算。
+        if (column.property === 'quantity') {
+          if (!values.every(value => isNaN(value))) {
+            sums[index] = values.reduce((prev, curr) => {
+              const value = Number(curr);
+              if (!isNaN(value)) {
+                return prev + curr;
+              }else {
+                return prev;
+              }
+            }, 0);
+            // sums[index] += ' 元';
+          } else {
+            // sums[index] = '---'
+          }
+        }
+      });
+      return sums;
+    },
+    /** 查询产品出库单列表 */
+    getList() {
+      this.loading = true;
+      ringScanInformationFirstListHe(this.queryParams).then(response => {
+        this.sheetList = response.rows;
+        // let a = {"orderNumber":"MC0000001","totalQuantity":"10","he":"10"}
+        // this.sheetList.unshift(a);
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        customerName: null,
+        customerPhone: null,
+        customerFax: null,
+        customerAddress: null,
+        contactPerson: null,
+        deliveryAddress: null,
+        contactNumber: null,
+        remark: null,
+        createById: null,
+        createBy: null,
+        createTime: null,
+        updateById: null,
+        updateBy: null,
+        updateTime: null,
+        delFlag: null,
+        dataApprovalStatus: null,
+        processKey: null,
+        taskProcessKey: null,
+        taskNodeKey: null,
+        productDeliverySheetDetailsList:[]
+      };
+      this.detailData = []
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加产品出库单";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getSheet(id).then(response => {
+        this.detailData = response.data.productDeliverySheetDetailsList;
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改产品出库单";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.form.productDeliverySheetDetailsList = this.detailData;
+          if (this.form.id != null) {
+            updateSheetVo(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            insertSheet(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除产品出库单编号为"' + ids + '"的数据项?').then(function() {
+        return delSheet(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('amichi/sheet/export', {
+        ...this.queryParams
+      }, `sheet_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
+<style scoped>
+.cesiumTabRoot input{
+  width: 100%;
+  height: 100%;
+}
+
+.cesiumTabRootA table tr th{
+  border: 1px solid black;
+  border-collapse: collapse; /* 移除单元格之间的间隔 */
+  text-align: center;
+}
+
+.cesiumTabRootA table tr{
+  height: 40px;
+  line-height: 40px;
+}
+.cesiumTabRootA table tr td{
+  border: 1px solid black;
+  border-collapse: collapse; /* 移除单元格之间的间隔 */
+  text-align: center;
+}
+.catForm ::v-deep .el-form-item__label{font-size: 18px;}
+
+.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{
+  background-color:red;
+  color: red;
+}
+</style>

+ 10 - 14
zkqy-ui/src/views/amichi/print/rkadyPrint.vue

@@ -18,13 +18,11 @@
       </div>
     </div>
     <div class="base" id="printView" >
-      <div class="box" style="page-break-after:always;">
-         <div  class="bj" v-for="(item,index) in listDate">
-             <div class="erweima" style="margin-top: 20px" ><img :src="item.base46MaD"  alt=""></div>
+      <div class="box" style="page-break-after:always;margin-top: 10px;">
+         <div  class="bj" v-for="(item,index) in listDate" style="margin-top: 20px">
+             <div class="erweima"><img :src="item.base46MaD"  alt=""></div>
              <div class="xh">{{item.serialNumber}}</div>
          </div>
-
-
       </div>
     </div>
   </div>
@@ -146,11 +144,11 @@ export default {
 .bj{
   //margin-left: 15px;
   //float: left;
-  margin-bottom: 15px;
+  //margin-bottom: 15px;
   border: 1px solid black;
-  height: 160px;
-  margin-right: 15px;
-  width: 23%;
+  height: 130px;
+  //margin-right: 15px;
+  width: 17%;
 }
 .bzx{
   width: 454px;
@@ -174,6 +172,7 @@ export default {
   @page {
     size: auto;
     margin: 3mm;
+    margin-top: 5mm;
     .box{
       margin-top: 10px;
     }
@@ -216,9 +215,9 @@ export default {
     margin: 0 auto;
     /* border: 1px solid red; */
     display: flex;
-    justify-content: flex-start;
+    justify-content: space-evenly;
     flex-wrap: wrap;
-    margin-bottom: 10px;
+    margin-bottom: 15px;
   }
   td{
     text-align: center;
@@ -262,12 +261,9 @@ export default {
   }
   .erweima{
     width: 100px;
-
     height: 100px;;
     background-color: red;
-    margin-top: 8px;
     margin: 0 auto;
-    margin-top: 20px;
   }
   .xh{
     text-align: center;

+ 0 - 4
zkqy-ui/src/views/amichi/productionBoms/boms/index.vue

@@ -78,7 +78,6 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
-          v-hasPermi="['amichi:boms:add']"
         >新增</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -89,7 +88,6 @@
           size="mini"
           :disabled="single"
           @click="handleUpdate"
-          v-hasPermi="['amichi:boms:edit']"
         >修改</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -100,7 +98,6 @@
           size="mini"
           :disabled="multiple"
           @click="handleDelete"
-          v-hasPermi="['amichi:boms:remove']"
         >删除</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -110,7 +107,6 @@
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
-          v-hasPermi="['amichi:boms:export']"
         >导出</el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>

+ 53 - 56
zkqy-ui/src/views/amichi/shopRoom/index.vue

@@ -48,61 +48,59 @@
     </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="['system:materialInfo: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="['system:materialInfo: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="['system:materialInfo:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="info"
-          plain
-          icon="el-icon-upload2"
-          size="mini"
-          @click="handleImport"
-          v-hasPermi="['system:user:import']"
-        >导入
-        </el-button
-        >
-      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="primary"-->
+<!--          plain-->
+<!--          icon="el-icon-plus"-->
+<!--          size="mini"-->
+<!--          @click="handleAdd"-->
+<!--        >新增</el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="success"-->
+<!--          plain-->
+<!--          icon="el-icon-edit"-->
+<!--          size="mini"-->
+<!--          :disabled="single"-->
+<!--          @click="handleUpdate"-->
+<!--        >修改</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="['system:materialInfo:remove']"-->
+<!--        >删除</el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="info"-->
+<!--          plain-->
+<!--          icon="el-icon-upload2"-->
+<!--          size="mini"-->
+<!--          @click="handleImport"-->
+<!--          v-hasPermi="['system:user:import']"-->
+<!--        >导入-->
+<!--        </el-button-->
+<!--        >-->
+<!--      </el-col>-->
 
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['system:materialInfo:export']"
-        >导出</el-button>
-      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['system:materialInfo:export']"-->
+<!--        >导出</el-button>-->
+<!--      </el-col>-->
       <el-col :span="1.5">
         <el-button
           type="warning"
@@ -110,7 +108,6 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleImportWl"
-          v-hasPermi="['system:user:import']"
         >拉取车间仓物料信息
         </el-button
         >
@@ -122,7 +119,6 @@
           icon="el-icon-plus"
           size="mini"
           @click="realTimeComputing"
-          v-hasPermi="['system:user:import']"
         >实时计算
         </el-button>
 
@@ -380,6 +376,7 @@ export default {
     //及时计算
     realTimeComputing(){
       console.log("及时计算")
+        this.loading = true;
         realTimeComputingApi(this.queryParams).then(response => {
           if(response.code==200){
             // this.getList();

+ 1 - 2
zkqy-ui/src/views/lims/wtform/wtFormExamine.vue

@@ -924,9 +924,8 @@ export default {
       // console.log('Row data:', row);
       switch (command) {
         case "sampleReception":
-          //先根据id回显
+          //先根据id回显       //根绝id修改
           this.sampleReception(row);
-          //根绝id修改
           break;
         case "sampleReturn":
           this.sampleReturn(row);

+ 4 - 4
zkqy-ui/src/views/login.vue

@@ -310,11 +310,11 @@ export default {
                 // uri: "?client_id=hmc&scope=basic&response_type=code&state=AB1357&redirect_uri=http://192.168.2.190:8066/oauth/callback",
                // uri:"?client_id=mestools&scope=basic&response_type=code&state=AB1357&redirect_uri=http://62.234.61.92:8055/oauth/callback",
                // uri:"?client_id=mestools&scope=basic&response_type=code&state=AB1357&redirect_uri=http://192.168.128.171:8066/oauth/callback",
-               // uri:"?client_id=mestools&scope=basic&response_type=code&state=AB1357&redirect_uri=http://192.168.2.135:8066/oauth/callback",
+                uri:"?client_id=mestools&scope=basic&response_type=code&state=AB1357&redirect_uri=http://192.168.2.135:8066/oauth/callback",
              //uri:"?client_id=hmc&scope=basic&response_type=code&state=AB1357&redirect_uri=http://192.168.110.85:8066/oauth/callback",
-             uri:"?client_id=hmc&scope=basic&response_type=code&state=AB1357&redirect_uri=http://192.168.110.83:8066/oauth/callback",
-            // uri:"?client_id=hmc&scope=basic&response_type=code&state=AB1357&redirect_uri=http://172.20.10.5:8066/oauth/callback",
-              // uri:"?client_id=mestools&scope=basic&response_type=code&state=AB1357&redirect_uri=http://192.168.3.17:8066/oauth/callback",
+             //uri:"?client_id=hmc&scope=basic&response_type=code&state=AB1357&redirect_uri=http://192.168.110.83:8066/oauth/callback",
+            //uri:"?client_id=hmc&scope=basic&response_type=code&state=AB1357&redirect_uri=http://172.20.10.5:8066/oauth/callback",
+            //   uri:"?client_id=mestools&scope=basic&response_type=code&state=AB1357&redirect_uri=http://192.168.3.17:8066/oauth/callback",
             ...this.loginForm,
             tenantID: this.tenantId,
           };

+ 25 - 2
zkqy-ui/src/views/tablelist/commonTable/listInfo.vue

@@ -1130,7 +1130,9 @@ export default {
         defaultValue: mainForm.showValue ? mainForm.showValue[0].resultMap : {},
       });
       if (subFormList && subFormList.length > 0) {
+        console.log("subFormList",subFormList)
         subFormList.forEach((item) => {
+          console.log("sub item",item)
           let showValue = null;
           if (item.showValue) {
             showValue = item.showValue[0];
@@ -1180,8 +1182,10 @@ export default {
             formType: item.showTemplate.spare == "2" ? "batch" : "normal",
             defaultValue,
             insertMap: item.insertMap,
+            updateMap:item.updateMap,
             isMainForm: false,
           });
+          console.log(this.FormNameList)
         });
       }
     },
@@ -1205,6 +1209,7 @@ export default {
     submitForm: function () {
       this.$refs["form"].validate((valid) => {
         if (valid) {
+
           if (this.form.userId != undefined) {
             updateUser(this.form).then((response) => {
               this.$modal.msgSuccess("修改成功");
@@ -1555,14 +1560,18 @@ export default {
         let promiseArray = [];
         if (this.isLayout) {
           let res = await this.$refs.formGroupLayoutRef.getFormData();
+
           res.forEach((item) => {
             promiseArray.push(...item);
           });
         } else {
+          console.log("res",this.FormNameList)
           promiseArray = this.FormNameList.map((item) => {
+            console.log("如何循环---",item);
             return this.$refs.formGroupRef?.getFormData(item);
           });
         }
+        console.log(promiseArray,"111111")
         Promise.all(promiseArray).then(async (res) => {
           // console.log("res", res);
           // return;
@@ -1779,13 +1788,27 @@ export default {
             //   data.basicMap.visible = true;
             // }
             // 添加表单组数据处理逻辑
+            console.log(res,"dfkalsjdklfajsldk")
+            // debugger;
             payLoad.updateCommonEntityList = res.map((item, index) => {
+              console.log("左后获取的item值",item)
+              //纠正修改逻辑
+              //判断是否存在updateMap
+              //
+              let a={};
+              if(item.updateMap?.length){
+                 item.updateMap.forEach((item) => {
+                   a[item.fieldName.split(".")[1]] =item.refValue;
+                   // arry.push(a);
+                 })
+              }
               let result = {
                 basicMap: {
                   tableName: item.tableName,
                 },
                 commMap: {
                   ...item.data,
+                  ...a,
                 },
                 conditionMap: {},
               };
@@ -1812,7 +1835,7 @@ export default {
               return result;
             });
           }
-
+          console.log( payLoad.updateCommonEntityList,"hmc");
           data.basicMap.BpmRunNodeFormDateVo = payLoad;
           // return;
           try {
@@ -2237,8 +2260,8 @@ export default {
         })
         .catch(() => {});
     },
-
     // k-form-build表单变化回调
+
     formChangeHandler(value, label) {},
   },
 };

+ 1 - 0
zkqy-ui/src/views/tablelist/components/FormGroupLayout/LayoutIndex.vue

@@ -215,6 +215,7 @@ export default {
       });
       console.log(promiseArray);
       let res = await Promise.all(promiseArray);
+      console.log("resABC",res)
       return res;
       // let promiseArray = this.$refs["layoutItemRef"].map((item) => {
       //   return item.getFormData();

+ 5 - 5
zkqy-ui/vue.config.js

@@ -8,7 +8,7 @@ const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
 
 const CompressionPlugin = require('compression-webpack-plugin')
 // Lims实验室信息管理系统
-const name = process.env.VUE_APP_TITLE || '铨一生产协同管理系统' // 网页标题
+const name = process.env.VUE_APP_TITLE || '生产协同管理系统' // 网页标题
 
 const port = process.env.port || process.env.npm_config_port || 1025 // 端口
 const isDev = process.env.NODE_ENV !== "production";
@@ -39,14 +39,14 @@ module.exports = {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
          // target: `http://172.20.10.5:8066`,
-        target: `http://192.168.110.83:8066`,
+        // target: `http://192.168.110.83:8066`,
         // target: `http://192.168.128.171:8066`,
         // target: `http://192.168.2.135:8066`, //铨一开发
         // target: `http://192.168.2.190:8066`,
-        // target: `http://62.234.61.92:8055`,
-        // target: `http://192.168.2.135:8066`,
+        // target: `http://192.168.3.17:8066`,
+        target: `http://192.168.2.135:8066`,
         //  target: `http://192.168.128.171:8066`,
-        //  target: `http://192.168.3.17:8066`,
+        // target: `http://175.27.169.173:8066`,//公网服务器
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''