Browse Source

fix:定时代码,加流转卡日期修改

hmc 7 months ago
parent
commit
bc5bd2e65c

+ 2 - 0
zkqy-admin/src/main/java/com/zkqy/ZkqyApplication.java

@@ -6,6 +6,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.scheduling.annotation.EnableScheduling;
 
 import java.util.Arrays;
 
@@ -16,6 +17,7 @@ import java.util.Arrays;
  */
 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
 @EnableAspectJAutoProxy(exposeProxy = true)
+@EnableScheduling
 public class ZkqyApplication
 {
     public static void main(String[] args)

+ 12 - 0
zkqy-common/src/main/java/com/zkqy/common/utils/DateUtils.java

@@ -259,6 +259,18 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         return dateStr;
     }
 
+    public static String convertTo24HourFormat(String dateTime) {
+        // 定义输入时间格式(包含日期和时间)
+        DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        // 定义输出时间格式(包含日期和24小时制时间)
+        DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+        // 解析输入时间
+        LocalDateTime localDateTime = LocalDateTime.parse(dateTime, inputFormatter);
+        // 格式化输出时间
+        return localDateTime.format(outputFormatter);
+    }
+
     /**
      * 日期类型转换 LocalDate 转 String
      */

+ 5 - 3
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/controller/PlanTaskDetailsController.java

@@ -23,6 +23,7 @@ import com.zkqy.amichi.utils.MaUtils;
 import com.zkqy.common.annotation.Anonymous;
 import com.zkqy.common.constant.HttpStatus;
 import com.zkqy.common.utils.DateUtils;
+import com.zkqy.common.utils.StringUtils;
 import com.zkqy.common.utils.sign.Base64;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -98,9 +99,10 @@ public class PlanTaskDetailsController extends BaseController
             item.setBase46MaD("data:image/png;base64,"+s1);
             item.setBase46MaZ("data:image/png;base64,"+s2);
             //格式化
-            String xqrq = item.getXqrq();
-            String s = DateUtils.formatToYMD(xqrq);
-            item.setXqrq(s);
+            if(StringUtils.isNotNull(item.getXqrq())){
+                String s = DateUtils.formatToYMD(item.getXqrq());
+                item.setXqrq(s);
+            }
             return item;
         }).collect(Collectors.toList());
         //List<PlanTaskDetailsListAndFlowCardDataVo> collect = list.stream().limit(2).collect(Collectors.toList());

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

@@ -40,6 +40,17 @@ public class PlanTaskDetailsVo extends BaseEntity {
     @Excel(name = "物料单位")
     private String materialUnit;
 
+    @Excel(name = "要货时间")
+    private String timeOfRequest;
+
+    public String getTimeOfRequest() {
+        return timeOfRequest;
+    }
+
+    public void setTimeOfRequest(String timeOfRequest) {
+        this.timeOfRequest = timeOfRequest;
+    }
+
     /** 数量 */
     @Excel(name = "数量")
     private String quantity;

+ 1 - 1
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/controller/JdProductionOrderController.java

@@ -59,7 +59,7 @@ public class JdProductionOrderController extends BaseController
     @GetMapping("/jdProductionOrderPull")
     public AjaxResult jdProductionOrderPull(JdProductionOrder jdProductionOrder)
     {
-        AjaxResult list = jdProductionOrderService.jdProductionOrderPull(jdProductionOrder);
+        AjaxResult list = jdProductionOrderService.jdProductionOrderPull();
         return list;
     }
 

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

@@ -31,7 +31,6 @@ public class JdProductionOrder extends BaseEntity
     @JSONField(name = "F.PONP.XQRQ")
     private String   completionTime;
 
-
     /** 单据类型 */
     @Excel(name = "单据类型")
     @JSONField(name = "FBillType")

+ 1 - 1
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/JdProductionOrderService.java

@@ -65,7 +65,7 @@ public interface JdProductionOrderService
      * @param jdProductionOrder
      * @return
      */
-    AjaxResult jdProductionOrderPull(JdProductionOrder jdProductionOrder);
+    AjaxResult jdProductionOrderPull();
 
 
     /**

+ 270 - 103
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/impl/JdProductionOrderServiceImpl.java

@@ -15,6 +15,7 @@ import com.zkqy.amichi.domain.ProductionCardFlow;
 import com.zkqy.amichi.domain.ProductionPlanningManagement;
 import com.zkqy.amichi.jd.domain.JdMaterialInfoVo;
 import com.zkqy.amichi.jd.domain.ProductionCardFlowVo;
+import com.zkqy.amichi.mapper.MaterialBaseInfoMapper;
 import com.zkqy.amichi.mapper.PlanTaskDetailsMapper;
 import com.zkqy.amichi.mapper.ProductionCardFlowMapper;
 import com.zkqy.amichi.mapper.ProductionPlanningManagementMapper;
@@ -51,6 +52,9 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
     @Autowired
     private ProductionCardFlowMapper productionCardFlowMapper;
 
+    @Autowired
+    private JdMaterialInfoServiceImpl jdMaterialInfoService;
+
     /**
      * 查询金蝶-生产订单信息
      * 
@@ -174,9 +178,9 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
 
 
     @Override
-    public AjaxResult jdProductionOrderPull(JdProductionOrder jdProductionOrder) {
-            this.jdProductionOrderPullTwo();
-            return AjaxResult.success("数据拉取成功");
+    public AjaxResult jdProductionOrderPull() {
+        AjaxResult ajaxResult = this.jdProductionOrderPullTwo();
+        return ajaxResult;
     }
 
 
@@ -301,6 +305,179 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
     }
 
 
+//    /**
+// * 物料编码不等于焊接
+// * 条件:所有开工数据
+// *
+// * @return
+// */
+//public  AjaxResult jdProductionOrderPullTwo(){
+//    //金蝶工具key
+//    K3CloudApi api = new K3CloudApi();
+//    //定义查询条件
+//    String query="{\n" +
+//            "    \"FormId\": \"PRD_MO\",\n" +
+//            "    \"FieldKeys\": \"FDescription,F_PONP_teshuyaoqiu,FBillNo,FBillType,FDate,FDocumentStatus," +
+//            "FProductType,FMaterialId,FWorkShopID0,FQty,FStatus,,FSaleOrderNo,FPickMtrlStatus," +
+//            "FMaterialId.FNumber,FMaterialName,F_PONP_BaseProperty,FSpecification,FUnitId.FName,F_PONP_yanse,F_PONP_mingpai,F_PONP_hegezheng.FDataValue," +
+//            "F_PONP_shuomingshu.FDataValue,F_PONP_KaiGuanXiang,F_PONP_baozhuangxiang,F_PONP_GongLv,FPlanFinishDate,FPlanStartDate\",\n" +
+//            "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FMaterialId.FNumber\",\"Compare\":\"34\",\"Value\":\"焊\",\"Right\":\"\",\"Logic\":0},{\"Left\":\"\",\"FieldName\":\"FStatus\",\"Compare\":\"105\",\"Value\":\"4\",\"Right\":\"\",\"Logic\":0}],\n" +
+//            "    \"OrderString\": \"\",\n" +
+//            "    \"TopRowCount\": 0,\n" +
+//            "    \"StartRow\": 0,\n" +
+//            "    \"Limit\": 8000,\n" +
+//            "    \"SubSystemId\": \"\"\n" +
+//            "}";
+////
+//    try {
+//        //查询结果
+//        String resultJson = api.billQuery(query);
+//        //生产信息
+//        List<JdProductionOrder> jdProductionOrders = JSON.parseArray(resultJson, JdProductionOrder.class);
+//        //单据编号去重
+////            List<String> collectOne = jdProductionOrders.stream().map(JdProductionOrder::getDemandDocument).collect(Collectors.toSet())
+////                    .stream().collect(Collectors.toList());
+//
+//        //查询系统中的订单信息
+//        ProductionPlanningManagement productionPlanningManagement1=new ProductionPlanningManagement();
+//        productionPlanningManagement1.setIsWeldSheet("1");
+//        List<ProductionPlanningManagement> productionPlanningManagements = productionPlanningManagementMapper.selectProductionPlanningManagementList(productionPlanningManagement1);
+//
+//        List<String> collectTwo = productionPlanningManagements.stream().map(ProductionPlanningManagement::getOrderNumber).collect(Collectors.toSet())
+//                .stream().collect(Collectors.toList());
+//
+////          List<String> cj= collectOne.stream().filter(item -> !collectTwo.contains(item)).collect(Collectors.toList());
+//        //分组
+//        // 按照订单号分组并去重
+////            Map<String, JdProductionOrder> groupedByDemandDocument = jdProductionOrders.stream().filter(item->!collectTwo.contains(item.getDemandDocument()))
+////                    .collect(Collectors.toMap(
+////                            JdProductionOrder::getDemandDocument,
+////                            order -> order,
+////                            (existing, replacement) -> existing // 保留第一个出现的订单
+////                    ));
+//        Map<String, List<JdProductionOrder>> groupedByDemandDocument = jdProductionOrders.stream()
+//                .filter(item -> !collectTwo.contains(item.getDemandDocument()))
+//                .collect(Collectors.groupingBy(JdProductionOrder::getDemandDocument));
+//        if(groupedByDemandDocument.size()>0){
+//            //订单循环
+//            groupedByDemandDocument.forEach((k,v)->{
+//                //计划编号
+//                String planNumnber = generator.generateCommissionNumber();
+//                //编号订单号
+//                List<Map> mapList = this.jdSalesOrderInfoS(k);//订单详情信息
+//                System.err.println(mapList.size());
+//                //拿到了关于这个订单的销售订单
+//                if(mapList.size()>0){
+//                    //编号订单号
+//                    String fBillNo = mapList.get(0).get("FBillNo").toString();//单据编号
+//                    //合同号
+//                    String F_PONP_Text = mapList.get(0).get("F.PONP.Text").toString();
+//                    //下单时间
+//                    String FDate = mapList.get(0).get("FCreateDate").toString();//日期
+//                    String F_PONP_Datetime;
+//                    if(mapList.get(0).get("F_PONP_DATETIME")!=null){
+//                        //要货日期
+//                        F_PONP_Datetime = mapList.get(0).get("F_PONP_DATETIME").toString();//要货日期
+//                    } else if(mapList.get(0).get("FDeliveryDate")!=null){
+//                        F_PONP_Datetime =mapList.get(0).get("FDeliveryDate").toString();//要货日期;
+//                    }else {
+//                        F_PONP_Datetime="";
+//                    }
+//                    ProductionPlanningManagement productionPlanningManagement=new ProductionPlanningManagement();
+//                    productionPlanningManagement.setPlanNumber(planNumnber);
+//                    productionPlanningManagement.setOrderNumber(fBillNo);
+//                    productionPlanningManagement.setContractNumber(F_PONP_Text);
+//                    if(StringUtils.isNotNull(v.get(0).getBz())){ //备注
+//                        productionPlanningManagement.setRemark(v.get(0).getBz());
+//                    }
+//                    productionPlanningManagement.setCreationtimeString(FDate);
+//                    productionPlanningManagement.setCompletionTime(F_PONP_Datetime);
+//                    if(StringUtils.isNotNull(v.get(0).getTsyq())){
+//                        productionPlanningManagement.setSpecialRequirements(v.get(0).getTsyq()); //特殊要求
+//                    }
+//                    productionPlanningManagement.setPlanType("0"); //待生产
+//                    productionPlanningManagement.setTaskStatus("2");//待排产
+//                    productionPlanningManagement.setIsWeldSheet("1"); //普通订单
+//                    //======处理基本的订单信息
+//                    productionPlanningManagementMapper.insertProductionPlanningManagement(productionPlanningManagement);
+//                    mapList.forEach(a->{
+//                        PlanTaskDetails planTaskDetails=new PlanTaskDetails();
+//                        List<JdProductionOrder> collect1 = jdProductionOrders.stream().filter(c -> c.getDemandDocument().equals(k) && c.getMaterialCode().equals(a.get("FMaterialId.FNumber").toString())).collect(Collectors.toList());
+//                        if(collect1.size()<=0){
+//                            System.out.println(k);
+//                            System.out.println(a.get("FMaterialId.FNumber").toString());
+//                        }
+//                        if(collect1.size()>0){
+//                            //需求单据(处理详情信息没有需求单据的问题)
+//                            planTaskDetails.setDemandDocument(collect1.get(0).getDocumentNumber());   //需求单据
+//                            //颜色
+//                            planTaskDetails.setColour(collect1.get(0).getYanse());
+//                            //铭牌
+//                            planTaskDetails.setMingpai(collect1.get(0).getMingpai());
+//                            //合格证
+//                            planTaskDetails.setHegezheng(collect1.get(0).getHegezheng());
+//                            //说明书
+//                            planTaskDetails.setShuomingshu(collect1.get(0).getShuomingshu());
+//                            //包装箱
+//                            planTaskDetails.setBaozhuangxiang(collect1.get(0).getBaozhuangxiang());
+//                            //开关箱子
+//                            planTaskDetails.setSwitchBox(collect1.get(0).getKaiguanxiang());
+//                            //功率
+//                            planTaskDetails.setPower(collect1.get(0).getGl());
+//                        }
+//                        planTaskDetails.setPlanId(productionPlanningManagement.getId());//计划id
+//                        planTaskDetails.setMaterialId(a.get("FMaterialId.FNumber").toString());//原材料编码
+//                        planTaskDetails.setMaterialName(a.get("FMaterialName").toString());//名称
+//                        planTaskDetails.setQuantity(a.get("FQty").toString());//数量
+//                        planTaskDetails.setTimeOfRequest(F_PONP_Datetime);
+//                        planTaskDetails.setCustomerModel(a.get("F.PONP.Text1").toString());//客户型号
+//                        planTaskDetails.setModelNumber(a.get("F.PONP.BaseProperty").toString());//型号
+//                        planTaskDetails.setSpecification(a.get("FMaterialModel").toString());//规格
+//                        planTaskDetails.setMaterialUnit(a.get("FUnitID.FName").toString());//单位
+//
+////                        planTaskDetails.setColour(a.get("F.PONP.yanse").toString()); //颜色
+////                        planTaskDetails.setMingpai(a.get("F.PONP.mingpai").toString()); //铭牌
+////                        planTaskDetails.setHegezheng(a.get("F.PONP.hegezheng.FDataValue").toString()); //合格证
+////                        planTaskDetails.setShuomingshu(a.get("F.PONP.shuomingshu.FDataValue").toString()); //说明书
+////                        planTaskDetails.setBaozhuangxiang(a.get("F.PONP.baozhuangxiang").toString()); //包装箱
+////                        planTaskDetails.setSwitchBox(a.get("F.PONP.Text5").toString()); //开关箱
+//                        planTaskDetailsMapper.insertPlanTaskDetails(planTaskDetails);
+//                    });
+//                }
+//            });
+//            //处理订单序列号问题
+//            groupedByDemandDocument.forEach((k,v)->{
+////            String documentNumber = item.getDocumentNumber();//需求单据编号
+//                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\":\"FSaleOrderNo\",\"Compare\":\"67\",\"Value\":\""+k+"\",\"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);
+//                    }
+//                } catch (Exception e) {
+//                    throw new RuntimeException(e);
+//                }
+//            });
+//        }
+//    } catch (Exception e) {
+//        throw new RuntimeException(e);
+//    }
+//    return  AjaxResult.success();
+//}
+
+
+
+
     /**
      * 物料编码不等于焊接
      * 条件:所有开工数据
@@ -308,6 +485,8 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
      * @return
      */
     public  AjaxResult jdProductionOrderPullTwo(){
+        AjaxResult ajaxResult = jdMaterialInfoService.pullMaterialBaseInfo();
+        System.out.println(ajaxResult);
         //金蝶工具key
         K3CloudApi api = new K3CloudApi();
         //定义查询条件
@@ -316,7 +495,7 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                 "    \"FieldKeys\": \"FDescription,F_PONP_teshuyaoqiu,FBillNo,FBillType,FDate,FDocumentStatus," +
                 "FProductType,FMaterialId,FWorkShopID0,FQty,FStatus,,FSaleOrderNo,FPickMtrlStatus," +
                 "FMaterialId.FNumber,FMaterialName,F_PONP_BaseProperty,FSpecification,FUnitId.FName,F_PONP_yanse,F_PONP_mingpai,F_PONP_hegezheng.FDataValue," +
-                "F_PONP_shuomingshu.FDataValue,F_PONP_KaiGuanXiang,F_PONP_baozhuangxiang,F_PONP_GongLv,FPlanFinishDate,FPlanStartDate\",\n" +
+                "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" +
                 "    \"OrderString\": \"\",\n" +
                 "    \"TopRowCount\": 0,\n" +
@@ -330,117 +509,98 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
             String resultJson = api.billQuery(query);
             //生产信息
             List<JdProductionOrder> jdProductionOrders = JSON.parseArray(resultJson, JdProductionOrder.class);
-            //单据编号去重
-//            List<String> collectOne = jdProductionOrders.stream().map(JdProductionOrder::getDemandDocument).collect(Collectors.toSet())
-//                    .stream().collect(Collectors.toList());
-
             //查询系统中的订单信息
             ProductionPlanningManagement productionPlanningManagement1=new ProductionPlanningManagement();
             productionPlanningManagement1.setIsWeldSheet("1");
             List<ProductionPlanningManagement> productionPlanningManagements = productionPlanningManagementMapper.selectProductionPlanningManagementList(productionPlanningManagement1);
-
             List<String> collectTwo = productionPlanningManagements.stream().map(ProductionPlanningManagement::getOrderNumber).collect(Collectors.toSet())
                     .stream().collect(Collectors.toList());
 
-//          List<String> cj= collectOne.stream().filter(item -> !collectTwo.contains(item)).collect(Collectors.toList());
-            //分组
-            // 按照订单号分组并去重
-            Map<String, JdProductionOrder> groupedByDemandDocument = jdProductionOrders.stream().filter(item->!collectTwo.contains(item.getDemandDocument()))
-                    .collect(Collectors.toMap(
-                            JdProductionOrder::getDemandDocument,
-                            order -> order,
-                            (existing, replacement) -> existing // 保留第一个出现的订单
-                    ));
+
+            Map<String, List<JdProductionOrder>> groupedByDemandDocument = jdProductionOrders.stream()
+                    .filter(item -> !collectTwo.contains(item.getDemandDocument()))
+                    .collect(Collectors.groupingBy(JdProductionOrder::getDemandDocument));
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
             if(groupedByDemandDocument.size()>0){
                 //订单循环
                 groupedByDemandDocument.forEach((k,v)->{
+                    ProductionPlanningManagement productionPlanningManagement=new ProductionPlanningManagement();
+                    //编号订单号
+                    productionPlanningManagement.setOrderNumber(k);
                     //计划编号
                     String planNumnber = generator.generateCommissionNumber();
+                    productionPlanningManagement.setPlanNumber(planNumnber);
+                    //计算订单的最大完成时间
+//                    Optional<LocalDateTime> maxCompletionTime = v.stream()
+//                            .map(item -> LocalDateTime.parse(item.getCompletionTime(), DateTimeFormatter.ISO_LOCAL_DATE_TIME))
+//                            .max(Comparator.naturalOrder());
+//                    maxCompletionTime.ifPresent(maxTime ->{
+//                        System.out.println("最大的时间: " + maxTime);
+//                        String format1 = maxTime.format(formatter);
+//                        productionPlanningManagement.setCompletionTime(format1);//订单的最大完成时间
+//                    });
+                    productionPlanningManagement.setPlanType("0"); //待生产
+                    productionPlanningManagement.setTaskStatus("2");//待排产
+                    productionPlanningManagement.setIsWeldSheet("1");//焊接订单
+                    if(StringUtils.isNotNull(v.get(0).getCompletionTime())){
+                        productionPlanningManagement.setCompletionTime(v.get(0).getCompletionTime());//完成时间
+                    }
+                    //备注
+                    if(StringUtils.isNotNull(v.get(0).getRemark())){
+                        productionPlanningManagement.setRemark(v.get(0).getRemark()); //备注
+                    }
+                    //订单的创建时间
+                    productionPlanningManagement.setCreationtimeString(v.get(0).getCreationtimeString());//单据的创建时间
+                    //特殊要求
+                    if(StringUtils.isNotNull(v.get(0).getTsyq())){
+                        productionPlanningManagement.setSpecialRequirements(v.get(0).getTsyq());//特殊要求
+                    }
+
                     //编号订单号
                     List<Map> mapList = this.jdSalesOrderInfoS(k);//订单详情信息
-                    System.err.println(mapList.size());
+                    String fDeliveryDate;
+                    if(mapList.size()>0){
+                        fDeliveryDate = mapList.get(0).get("FDeliveryDate").toString();
+                    } else {
+                        fDeliveryDate = "";
+                    }
                     //拿到了关于这个订单的销售订单
                     if(mapList.size()>0){
-                        //编号订单号
-                        String fBillNo = mapList.get(0).get("FBillNo").toString();//单据编号
-                        //合同号
-                        String F_PONP_Text = mapList.get(0).get("F.PONP.Text").toString();
-                        //下单时间
-                        String FDate = mapList.get(0).get("FCreateDate").toString();//日期
-                        String F_PONP_Datetime;
-                        if(mapList.get(0).get("F_PONP_DATETIME")!=null){
-                            //要货日期
-                            F_PONP_Datetime = mapList.get(0).get("F_PONP_DATETIME").toString();//要货日期
-                        } else if(mapList.get(0).get("FDeliveryDate")!=null){
-                            F_PONP_Datetime =mapList.get(0).get("FDeliveryDate").toString();//要货日期;
-                        }else {
-                            F_PONP_Datetime="";
-                        }
-                        ProductionPlanningManagement productionPlanningManagement=new ProductionPlanningManagement();
-                        productionPlanningManagement.setPlanNumber(planNumnber);
-                        productionPlanningManagement.setOrderNumber(fBillNo);
-                        productionPlanningManagement.setContractNumber(F_PONP_Text);
-                        if(StringUtils.isNotNull(v.getBz())){ //备注
-                            productionPlanningManagement.setRemark(v.getBz());
-                        }
-                        productionPlanningManagement.setCreationtimeString(FDate);
-                        productionPlanningManagement.setCompletionTime(F_PONP_Datetime);
-                        if(StringUtils.isNotNull(v.getTsyq())){
-                            productionPlanningManagement.setSpecialRequirements(v.getTsyq()); //特殊要求
+                        if(StringUtils.isNotNull(mapList.get(0).get("F.PONP.Text"))){
+                            productionPlanningManagement.setContractNumber(mapList.get(0).get("F.PONP.Text").toString());
                         }
-                        productionPlanningManagement.setPlanType("0"); //待生产
-                        productionPlanningManagement.setTaskStatus("2");//待排产
-                        productionPlanningManagement.setIsWeldSheet("1"); //普通订单
+                        productionPlanningManagement.setCompletionTime(fDeliveryDate);
                         //======处理基本的订单信息
                         productionPlanningManagementMapper.insertProductionPlanningManagement(productionPlanningManagement);
-                        mapList.forEach(a->{
+                        v.forEach(a->{
                             PlanTaskDetails planTaskDetails=new PlanTaskDetails();
-//                        String string = a.get("FMaterialId.FNumber").toString();
-                            List<JdProductionOrder> collect1 = jdProductionOrders.stream().filter(c -> c.getDemandDocument().equals(k) && c.getMaterialCode().equals(a.get("FMaterialId.FNumber").toString())).collect(Collectors.toList());
-                            if(collect1.size()>0){
-                                //需求单据(处理详情信息没有需求单据的问题)
-                                planTaskDetails.setDemandDocument(collect1.get(0).getDocumentNumber());   //需求单据
-                                //颜色
-                                planTaskDetails.setColour(collect1.get(0).getYanse());
-                                //铭牌
-                                planTaskDetails.setMingpai(collect1.get(0).getMingpai());
-                                //合格证
-                                planTaskDetails.setHegezheng(collect1.get(0).getHegezheng());
-                                //说明书
-                                planTaskDetails.setShuomingshu(collect1.get(0).getShuomingshu());
-                                //包装箱
-                                planTaskDetails.setBaozhuangxiang(collect1.get(0).getBaozhuangxiang());
-                                //开关箱子
-                                planTaskDetails.setSwitchBox(collect1.get(0).getKaiguanxiang());
-                                //功率
-                                planTaskDetails.setPower(collect1.get(0).getGl());
-                                //数据
-                                //planTaskDetails.seti
-                            }
-//                      planTaskDetails.setDemandDocument(v.getDocumentNumber());   //需求单据
+                            planTaskDetails.setDemandDocument(a.getDocumentNumber());//需求单据号
                             planTaskDetails.setPlanId(productionPlanningManagement.getId());//计划id
-                            planTaskDetails.setMaterialId(a.get("FMaterialId.FNumber").toString());//原材料编码
-                            planTaskDetails.setMaterialName(a.get("FMaterialName").toString());//名称
-                            planTaskDetails.setQuantity(a.get("FQty").toString());//数量
-                            planTaskDetails.setTimeOfRequest(F_PONP_Datetime);
-                            planTaskDetails.setCustomerModel(a.get("F.PONP.Text1").toString());//客户型号
-                            planTaskDetails.setModelNumber(a.get("F.PONP.BaseProperty").toString());//型号
-                            planTaskDetails.setSpecification(a.get("FMaterialModel").toString());//规格
-                            planTaskDetails.setMaterialUnit(a.get("FUnitID.FName").toString());//单位
-
-//                        planTaskDetails.setColour(a.get("F.PONP.yanse").toString()); //颜色
-//                        planTaskDetails.setMingpai(a.get("F.PONP.mingpai").toString()); //铭牌
-//                        planTaskDetails.setHegezheng(a.get("F.PONP.hegezheng.FDataValue").toString()); //合格证
-//                        planTaskDetails.setShuomingshu(a.get("F.PONP.shuomingshu.FDataValue").toString()); //说明书
-//                        planTaskDetails.setBaozhuangxiang(a.get("F.PONP.baozhuangxiang").toString()); //包装箱
-//                        planTaskDetails.setSwitchBox(a.get("F.PONP.Text5").toString()); //开关箱
+                            planTaskDetails.setMaterialId(a.getMaterialCode());//原材料编码
+                            planTaskDetails.setMaterialName(a.getMaterialName());//名称
+                            planTaskDetails.setQuantity(a.getQuantity());//数量
+                            planTaskDetails.setTimeOfRequest(a.getCompletionTime());//要货时间
+                            planTaskDetails.setModelNumber(a.getModelNumber());//型号
+                            planTaskDetails.setSpecification(a.getSpecification());//规格
+                            planTaskDetails.setMaterialUnit(a.getUnit());//单位
+                            planTaskDetails.setPower(a.getGl());//功率
+                            planTaskDetails.setVoltage(a.getDianYaPinLv());//电压频率
+                            planTaskDetails.setColour(a.getYanse());//颜色
+                            planTaskDetails.setMingpai(a.getMingpai());//铭牌
+                            planTaskDetails.setShuomingshu(a.getShuomingshu());//说明书
+                            planTaskDetails.setHegezheng(a.getHegezheng());//合格证
+                            planTaskDetails.setBaozhuangxiang(a.getBaozhuangxiang());//包装箱
+                            planTaskDetails.setSwitchBox(a.getKaiguanxiang());//开关箱
+                            planTaskDetails.setScheduledCommencement(a.getFPlanStartDate()); //计划开始时间
+                            planTaskDetails.setScheduledCompletion(a.getFPlanFinishDate()); //计划完工时间
+                            planTaskDetails.setRemark(a.getRemark());
+                            planTaskDetails.setTimeOfRequest(fDeliveryDate);
                             planTaskDetailsMapper.insertPlanTaskDetails(planTaskDetails);
                         });
                     }
                 });
                 //处理订单序列号问题
                 groupedByDemandDocument.forEach((k,v)->{
-//            String documentNumber = item.getDocumentNumber();//需求单据编号
                     String stringQuery="{\n" +
                             "    \"FormId\": \"PRD_MO\",\n" +
                             "    \"FieldKeys\": \"FBillNo,FSNQty1,FSaleOrderNo,FSerialNo\",\n" +
@@ -467,8 +627,6 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
         }
         return  AjaxResult.success();
     }
-
-
     /**
      * 拉取焊接
      */
@@ -497,11 +655,11 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                 "    \"OrderString\": \"\",\n" +
                 "    \"TopRowCount\": 0,\n" +
                 "    \"StartRow\": 0,\n" +
-                "    \"Limit\": 1000,\n" +
+                "    \"Limit\": 5000,\n" +
                 "    \"SubSystemId\": \"\"\n" +
                 "}";
         int startRow = 0; // 起始行号
-        int limit = 1000; // 每次查询的数量
+        int limit = 5000; // 每次查询的数量
         // 更新查询条件中的起始行号
         //查询条件
         Map<String, Object> map = JSON.parseObject(query, Map.class);
@@ -542,15 +700,15 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                             productionPlanningManagement.setPlanType("0"); //待生产
                             productionPlanningManagement.setTaskStatus("2");//待排产
                             productionPlanningManagement.setIsWeldSheet("2");//焊接订单
-                            //计算订单的最大完成时间
-                            Optional<LocalDateTime> maxCompletionTime = v.stream()
-                                    .map(item -> LocalDateTime.parse(item.getCompletionTime(), DateTimeFormatter.ISO_LOCAL_DATE_TIME))
-                                    .max(Comparator.naturalOrder());
-                            maxCompletionTime.ifPresent(maxTime ->{
-                                System.out.println("最大的时间: " + maxTime);
-                                String format1 = maxTime.format(formatter);
-                                productionPlanningManagement.setCompletionTime(format1);//订单的最大完成时间
-                            });
+//                            //计算订单的最大完成时间
+//                            Optional<LocalDateTime> maxCompletionTime = v.stream()
+//                                    .map(item -> LocalDateTime.parse(item.getCompletionTime(), DateTimeFormatter.ISO_LOCAL_DATE_TIME))
+//                                    .max(Comparator.naturalOrder());
+//                            maxCompletionTime.ifPresent(maxTime ->{
+//                                System.out.println("最大的时间: " + maxTime);
+//                                String format1 = maxTime.format(formatter);
+//                                productionPlanningManagement.setCompletionTime(format1);//订单的最大完成时间
+//                            });
                             //备注
                             if(StringUtils.isNotNull(v.get(0).getRemark())){
                                 productionPlanningManagement.setRemark(v.get(0).getRemark()); //备注
@@ -563,14 +721,22 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                             }
 
 
+
+
                             //编号订单号
                             List<Map> mapList = this.jdSalesOrderInfoS(k);//订单详情信息
-
+                            String fDeliveryDate;
+                            if(mapList.size()>0){
+                                fDeliveryDate = mapList.get(0).get("FDeliveryDate").toString();
+                            } else {
+                                fDeliveryDate = "";
+                            }
                             //拿到了关于这个订单的销售订单
                             if(mapList.size()>0){
                                 if(StringUtils.isNotNull(mapList.get(0).get("F.PONP.Text"))){
                                     productionPlanningManagement.setContractNumber(mapList.get(0).get("F.PONP.Text").toString());
                                 }
+                                productionPlanningManagement.setCompletionTime(fDeliveryDate);
                                 //======处理基本的订单信息
                                 productionPlanningManagementMapper.insertProductionPlanningManagement(productionPlanningManagement);
                                 v.forEach(a->{
@@ -595,13 +761,14 @@ public class JdProductionOrderServiceImpl implements JdProductionOrderService
                                     planTaskDetails.setScheduledCommencement(a.getFPlanStartDate()); //计划开始时间
                                     planTaskDetails.setScheduledCompletion(a.getFPlanFinishDate()); //计划完工时间
                                     planTaskDetails.setRemark(a.getRemark());
+                                    planTaskDetails.setTimeOfRequest(fDeliveryDate);//要货日期
                                     planTaskDetailsMapper.insertPlanTaskDetails(planTaskDetails);
                                 });
                             }
                         });
                     }
                     System.out.println(1);
-                    if (jdProductionOrders.size() < 1000) {
+                    if (jdProductionOrders.size() < 5000) {
                         flag = false;
                     }
                     // 更新起始行号

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

@@ -0,0 +1,43 @@
+package com.zkqy.amichi.scheduling;
+
+import com.zkqy.amichi.domain.MaterialBaseInfo;
+import com.zkqy.amichi.jd.service.impl.JdMaterialInfoServiceImpl;
+import com.zkqy.amichi.jd.service.impl.JdProductionOrderServiceImpl;
+import com.zkqy.amichi.mapper.MaterialBaseInfoMapper;
+import com.zkqy.common.core.domain.AjaxResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+@Component
+public class ScheduledBean {
+
+    @Autowired
+    MaterialBaseInfoMapper materialBaseInfoMapper;
+
+    @Autowired
+    JdMaterialInfoServiceImpl materialInfoService;
+
+    @Autowired
+    JdProductionOrderServiceImpl productionOrderService;
+
+    @Scheduled(cron = "0 0/1 0/1 * * ?")
+    public void printLog(){
+//        //物料基本信息--防止流转卡信息缺失
+//        AjaxResult ajaxResult = materialInfoService.pullMaterialBaseInfo();
+//        System.out.println(ajaxResult);
+//        //流转卡序列号信息
+//        AjaxResult ajaxResult1 = productionOrderService.jdProductionOrderPull();
+//        System.out.println(ajaxResult1);
+//        //焊接单数据信息
+//        AjaxResult ajaxResult2 = productionOrderService.pullWeldProductionOrder();
+//        System.out.println(ajaxResult2);
+//        System.out.println(Thread.currentThread().getName()+":run...");
+    }
+
+}

+ 14 - 9
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/service/impl/StationInformationServiceImpl.java

@@ -398,19 +398,24 @@ public class StationInformationServiceImpl implements IStationInformationService
             ringScanInformation.setNativeNumbering(nativeNumber);
             int i2 = ringScanInformationMapper.insertRingScanInformation(ringScanInformation);
             if(i2>0){
-                //根据序列号id
-                ProductionCardFlow productionCardFlow=new ProductionCardFlow();
-                productionCardFlow.setDemandDocumentNumber(nativeNumber);
-                List<ProductionCardFlow> productionCardFlows = productionCardFlowMapper.selectProductionCardFlowList(productionCardFlow);
-                if(productionCardFlows.size()>0){
-
-                }else {
-                    return "未有当前生产任务";
-                }
                 return "扫描成功";
             }else {
                 return "扫描失败";
             }
+//            if(i2>0){
+//                //根据序列号id
+//                ProductionCardFlow productionCardFlow=new ProductionCardFlow();
+//                productionCardFlow.setDemandDocumentNumber(nativeNumber);
+//                List<ProductionCardFlow> productionCardFlows = productionCardFlowMapper.selectProductionCardFlowList(productionCardFlow);
+//                if(productionCardFlows.size()>0){
+//
+//                }else {
+//                    return "未有当前生产任务";
+//                }
+//                return "扫描成功";
+//            }else {
+//                return "扫描失败";
+//            }
         } catch (Exception e) {
             throw new RuntimeException(e);
         }

+ 1 - 1
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/utils/MaUtils.java

@@ -23,7 +23,7 @@ public class MaUtils {
         hints.put(EncodeHintType.MARGIN, margin); // 设置边距
         try {
             // 生成二维码的位矩阵
-            BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, 80, 80,hints);
+            BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, 120, 120,hints);
             // 将BitMatrix转为BufferedImage
             BufferedImage image = MatrixToImageWriter.toBufferedImage(bitMatrix);
             ByteArrayOutputStream baos = new ByteArrayOutputStream();

+ 7 - 5
zkqy-fujian-amichi/src/main/resources/mapper/PlanTaskDetailsMapper.xml

@@ -74,6 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="demandDocument"    column="demand_document"/>
         <result property="orderNumber"    column="order_number"/>
         <result property="completionTime"    column="completion_time"/>
+        <result property="timeOfRequest" column="time_of_request"/>
     </resultMap>
 
 
@@ -318,6 +319,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ptd.plan_id,
         ptd.demand_document,
         ppm.completion_time,
+        ptd.time_of_request,
         ppm.order_number from fjqydb.plan_task_details as ptd
         left join fjqydb.production_planning_management ppm
         on (ptd.plan_id=ppm.id)
@@ -373,16 +375,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             ppm.special_requirements,
             ppm.remark,
             ptd.time_of_request as time_of_request
-        from  fjqydb.production_card_flow  as pcf
+        from
+        fjqydb.production_card_flow  as pcf
+        left join
+        fjqydb.plan_task_details as ptd on ptd.demand_document=pcf.demand_document_number
         left join
-        fjqydb.plan_task_details as ptd
-              on ptd.demand_document=pcf.demand_document_number
-                  left join
         fjqydb.material_base_info  mbi
               on ptd.material_id=mbi.material_code
                   left join fjqydb.production_planning_management  as  ppm
                             on pcf.production_order_list_id =ppm.order_number
-        where  pcf.production_order_list_id in
+        where ppm.is_weld_sheet=1 and  pcf.production_order_list_id in
         <foreach item="orderNumber" collection="list" open="(" separator="," close=")">
             #{orderNumber}
         </foreach>

+ 9 - 6
zkqy-ui/src/views/amichi/planTask/salesPlan.vue

@@ -158,8 +158,8 @@
                   {{ formatNumber(scope.row.quantity) }}
                 </template>
               </el-table-column>
-              <el-table-column label="操作"   align="center" class-name="small-padding fixed-width" v-if="shouldShowOperationColumn">
-                <template slot-scope="scope" v-if="scope.row.isWeldSheet==2">
+              <el-table-column label="操作"   align="center" class-name="small-padding fixed-width" v-if="scopes.row.isWeldSheet!=2">
+                <template slot-scope="scope">
                   <el-dropdown @command="(command)=>{handleCommand(command, scope.row)}">
                     <el-button type="success">
                       操作<i class="el-icon-arrow-down el-icon--right"></i>
@@ -189,6 +189,9 @@
           prop="creationtimeString"
           label="单据日期"
           align="center">
+          <template slot-scope="scope">
+            {{ formatDateTime(scope.row.creationtimeString) }}
+          </template>
         </el-table-column>
 <!--        <el-table-column-->
 <!--          label="合同号"-->
@@ -660,10 +663,10 @@ export default {
       const year = date.getFullYear();
       const month = String(date.getMonth() + 1).padStart(2, '0');
       const day = String(date.getDate()).padStart(2, '0');
-      const hours = String(date.getHours()).padStart(2, '0');
-      const minutes = String(date.getMinutes()).padStart(2, '0');
-      const seconds = String(date.getSeconds()).padStart(2, '0');
-      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+      // const hours = String(date.getHours()).padStart(2, '0');
+      // const minutes = String(date.getMinutes()).padStart(2, '0');
+      // const seconds = String(date.getSeconds()).padStart(2, '0');
+      return `${year}-${month}-${day}`;
     },
     //拉取焊接生产订单
     pullWeldPlan(){

+ 57 - 44
zkqy-ui/src/views/amichi/print/FlowCardPrint.vue

@@ -8,6 +8,7 @@
           :page.sync="queryParams.pageNum"
           :limit.sync="queryParams.pageSize"
           @pagination="flowCardListApi"
+          :page-sizes="[5,10,20]"
           style="position: absolute;right: -508px;top: -40px"
         />
       </div>
@@ -24,12 +25,13 @@
                 <td colspan="4">
                   <div class="titleBox" style="position: relative;">
                     <div class="erweima" ><img :src="item.base46MaD" alt=""></div>
-                    <div class="title"><h2 class="jc" style="font-size: 30px;  color: black;font-weight: bold;">铨一产品流转卡</h2></div>
+                    <div class="title"><h2 class="jc" style="font-size: 50px;  color: black;font-weight: bold;">铨一产品流转卡</h2></div>
                     <div class="xh">
                       <span>序号1</span>
                     </div>
                     <div class="time">
-                      <span style="top: 60px;left: 256px;">完成时间:<i>{{item.xqrq}}</i></span>
+                      <span style="top: 79px;
+    left: 313px;">完成时间:<i>{{item.xqrq}}</i></span>
                     </div>
                   </div>
                 </td>
@@ -54,7 +56,7 @@
               </tr>
               <tr>
                 <td>机壳/端盖:</td>
-                <td style="font-size: 16px">{{item.caseEndCover}}</td>
+                <td style="font-size: 24px">{{item.caseEndCover}}</td>
                 <td>盘片接口:</td>
                 <td>{{item.platterInterface}}</td>
               </tr>
@@ -62,13 +64,13 @@
                 <td>数据:</td>
                 <td>{{item.dataInfo}}</td>
                 <td>开关箱:</td>
-                <td ref="detailsCells" style="font-size: 14px">{{item.switchBox}}</td>
+                <td ref="detailsCells" style="font-size: 24px">{{item.switchBox}}</td>
               </tr>
               <tr>
                 <td>颜色:</td>
-                <td ref="detailsCells" style="font-size: 14px">{{item.colour}}</td>
+                <td ref="detailsCells" style="font-size: 24px">{{item.colour}}</td>
                 <td>铭牌:</td>
-                <td style="font-size: 14px" ref="detailsCells">{{item.mingPai}}</td>
+                <td style="font-size: 24px" ref="detailsCells">{{item.mingPai}}</td>
               </tr>
               <tr>
                 <td>说明书:</td>
@@ -78,13 +80,13 @@
               </tr>
               <tr>
                 <td style="height: 70px;" >包装箱:</td>
-                <td  colspan="3"  id="content-cell" ref="detailsCells" style="height: 70px;font-size: 13px">
+                <td  colspan="3"  id="content-cell" ref="detailsCells"  class="bs" style="font-size: 24px">
                   {{item.packingBox}}
                 </td>
               </tr>
               <tr>
                 <td >特殊要求:</td>
-                <td ref="detailsCells"  colspan="3" id="content-cell" style="height: 70px;font-size: 13px">
+                <td ref="detailsCells"  colspan="3" id="content-cell" class="bs" style="font-size: 24px">
                    {{item.specialRequirements}}
                 </td>
               </tr>
@@ -119,8 +121,8 @@
                 <td></td>
               </tr>
               <tr>
-                <td style="height: 70px;" >备注</td>
-                <td colspan="3" style="height: 70px;">{{item.remark}}</td>
+                <td  class="bs">备注</td>
+                <td colspan="3" class="bs">{{item.remark}}</td>
               </tr>
             </table>
           </div>
@@ -131,12 +133,13 @@
                   <div class="titleBox" style="position: relative;">
                     <div class="erweima"><img :src="item.base46MaZ" alt=""></div>
 
-                    <div class="title"><h2 class="jc" style="font-size: 30px;font-weight: bold;">铨一产品流转卡</h2></div>
+                    <div class="title"><h2 class="jc" style="font-size: 50px;font-weight: bold;">铨一产品流转卡</h2></div>
                     <div class="xh">
                       <span>序号1</span>
                     </div>
                     <div class="time">
-                      <span style="top: 60px;left: 256px;">完成时间:<i>{{item.xqrq}}</i></span>
+                      <span style="top: 79px;
+    left: 313px;">完成时间:<i>{{item.xqrq}}</i></span>
                     </div>
                   </div>
                 </td>
@@ -167,7 +170,7 @@
               </tr>
               <tr>
                 <td >特殊要求:</td>
-                <td colspan="3" id="content-cell" style="height: 70px;font-size: 12px">
+                <td colspan="3" id="content-cell" class="bs" style="font-size: 24px">
                   {{item.specialRequirements}}
                 </td>
               </tr>
@@ -196,25 +199,26 @@
                 <td></td>
               </tr>
               <tr>
-                <td style="height: 70px;" >备注</td>
-                <td colspan="3" style="height: 70px;">{{item.remark}}</td>
+                <td class="bs">备注</td>
+                <td colspan="3"  class="bs">{{item.remark}}</td>
               </tr>
             </table>
           </div>
         </div>
-        <div class="right" v-if="index+1<listDate.length" style="margin-left: 15px;margin-top: 15px">
-          <div class="top">
+        <div class="right"  style="margin-left: 15px;margin-top: 15px">
+          <div class="top" v-if="index+1<listDate.length">
             <table border="2px" class="right-top-table">
               <tr>
                 <td colspan="4">
                   <div class="titleBox" style="position: relative;">
                     <div class="erweima"><img :src="item.base46MaD" alt=""></div>
-                    <div class="title"><h2 class="jc" style="font-size: 30px;font-weight: bold;">铨一产品流转卡</h2></div>
+                    <div class="title"><h2 class="jc" style="font-size: 50px;font-weight: bold;">铨一产品流转卡</h2></div>
                     <div class="xh">
                       <span>序号1</span>
                     </div>
                     <div class="time">
-                      <span style="top: 60px;left: 256px;">完成时间:<i>{{item.xqrq}}</i></span>
+                      <span style="top: 79px;
+    left: 313px;">完成时间:<i>{{item.xqrq}}</i></span>
                     </div>
                   </div>
                 </td>
@@ -239,7 +243,7 @@
               </tr>
               <tr>
                 <td>机壳/端盖:</td>
-                <td style="font-size: 16px">{{getNextOrderNumber(index).caseEndCover}}</td>
+                <td style="font-size: 24px">{{getNextOrderNumber(index).caseEndCover}}</td>
                 <td>盘片接口:</td>
                 <td>{{getNextOrderNumber(index).platterInterface}}</td>
               </tr>
@@ -247,13 +251,13 @@
                 <td>数据:</td>
                 <td>{{getNextOrderNumber(index).dataInfo}}</td>
                 <td>开关箱:</td>
-                <td style="font-size: 14px">{{getNextOrderNumber(index).switchBox}}</td>
+                <td style="font-size: 24px">{{getNextOrderNumber(index).switchBox}}</td>
               </tr>
               <tr>
                 <td>颜色:</td>
-                <td style="font-size: 14px">  {{getNextOrderNumber(index).colour}} </td>
+                <td style="font-size: 24px">  {{getNextOrderNumber(index).colour}} </td>
                 <td>铭牌:</td>
-                <td style="font-size: 14px">{{getNextOrderNumber(index).mingPai}}</td>
+                <td style="font-size: 24px">{{getNextOrderNumber(index).mingPai}}</td>
               </tr>
               <tr>
                 <td>说明书:</td>
@@ -263,13 +267,13 @@
               </tr>
               <tr>
                 <td >包装箱:</td>
-                <td colspan="3" id="content-cell" style="height: 70px;font-size: 13px">
+                <td colspan="3" id="content-cell" class="bs" style="font-size: 24px">
                   {{getNextOrderNumber(index).packingBox}}
                 </td>
               </tr>
               <tr>
                 <td >特殊要求:</td>
-                <td colspan="3" id="content-cell" style="height: 70px;font-size: 13px">
+                <td colspan="3" id="content-cell" class="bs" style="font-size: 24px">
                   {{getNextOrderNumber(index).specialRequirements}}
                 </td>
               </tr>
@@ -304,23 +308,24 @@
                 <td></td>
               </tr>
               <tr>
-                <td style="height: 70px;" >备注</td>
-                <td colspan="3" style="height: 70px;">{{item.remark}}</td>
+                <td class="bs" >备注</td>
+                <td colspan="3"class="bs">{{item.remark}}</td>
               </tr>
             </table>
-          </div>
-          <div class="bottom" style="margin-top: 20px;">
+          </div  >
+          <div class="bottom" style="margin-top: 20px;" v-if="index+1<listDate.length">
             <table border="2px" class="right-top-table">
               <tr>
                 <td colspan="4">
                   <div class="titleBox" style="position: relative;">
                     <div class="erweima"><img :src="item.base46MaZ" alt=""></div>
-                    <div class="title"><h2 class="jc" style="font-size: 30px;font-weight: bold;">铨一产品流转卡</h2></div>
+                    <div class="title"><h2 class="jc" style="font-size: 50px;font-weight: bold;">铨一产品流转卡</h2></div>
                     <div class="xh">
                       <span>序号1</span>
                     </div>
                     <div class="time">
-                      <span style="top: 60px;left: 256px;">完成时间:<i>{{item.xqrq}}</i></span>
+                      <span style="top: 79px;
+    left: 313px;">完成时间:<i>{{item.xqrq}}</i></span>
                     </div>
                   </div>
                 </td>
@@ -351,7 +356,7 @@
               </tr>
               <tr>
                 <td >特殊要求:</td>
-                <td colspan="3" id="content-cell" style="height: 70px; font-size: 12px">
+                <td colspan="3" id="content-cell" class="bs" style=" font-size: 24px">
                   {{getNextOrderNumber(index).specialRequirements}}
                 </td>
               </tr>
@@ -380,12 +385,13 @@
                 <td></td>
               </tr>
               <tr>
-                <td style="height: 70px;" >备注</td>
-                <td colspan="3" style="height: 70px;">{{item.remark}}</td>
+                <td class="bs" >备注</td>
+                <td colspan="3" class="bs" >{{item.remark}}</td>
               </tr>
             </table>
           </div>
         </div>
+<!--        <idv class="right" v-if="index+1<listDate.length" style="margin-left: 15px;margin-top: 15px"></idv>-->
       </div>
     </div>
   </div>
@@ -400,7 +406,7 @@ export default {
     return {
       queryParams:{
         pageNum: 1,
-        pageSize: 4,
+        pageSize: 5,
         orderNumberList:[],
       },
       total:0,
@@ -480,10 +486,12 @@ export default {
   @page {
     size: auto;
     margin: 3mm;
-    margin-top: 10px;
+    .box{
+      margin-top: 10px;
+    }
   }
   html {
-    zoom: 85%; /* 缩放比例设置 */
+    zoom: 90%; /* 缩放比例设置 */
   }
   .noprint {
     display: none; /* 隐藏打印区域不需要打印的内容 */
@@ -497,6 +505,7 @@ export default {
 }
 .jc{
   font-weight: bold;
+  font-size: 50px;
 }
 .page-break {
   page-break-after: always;
@@ -513,8 +522,8 @@ export default {
   padding: 0;
 }
 .box{
-  font-size: 16px;
-  width: 880px;
+  font-size: 25px;
+  width: 1250px;
   /* border: 1px solid red; */
   display: flex;
   justify-content: start;
@@ -530,7 +539,6 @@ td{
 .right{
   width: 48%;
 }
-
 .left-top-table{
   width: 100%;
   border: 2px solid black;
@@ -569,6 +577,8 @@ td{
 .titleBox{
   display: flex;
   color: black;
+  width: 100%;
+  height: 120px;
   font-weight: bold;
 }
 
@@ -578,8 +588,8 @@ td{
 .left-top-table .titleBox .xh span{
   position: absolute;
   width: 80px;
-  left: -267px;
-  top: 61px;
+  left: -424px;
+  top: 80px;
 }
 .left-top-table .titleBox .time span{
   position: absolute;
@@ -611,8 +621,11 @@ td{
 .right-top-table .titleBox .xh span{
   position: absolute;
   width: 80px;
-  left: -267px;
-  top: 61px;
+  left: -424px;
+  top: 80px;
+}
+.bs{
+  height: 90px;
 }
 .right-top-table .titleBox .time span{
   position: absolute;

+ 38 - 18
zkqy-ui/src/views/amichi/print/FlowWeldCardPrint.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <div class="tools" style="width: 900px;height:40px; display: flex; justify-content: space-between; align-items: center;position: relative;  margin-top: 50px;margin-bottom: 10px">
+    <div class="tools" style="width: 900px;height:40px; display: flex; justify-content: space-between; align-items: center;position: relative;  margin-top: 50px;margin-bottom:30px">
       <div style="width:700px;height: 80px">
         <pagination
           v-show="total>0"
@@ -8,7 +8,7 @@
           :page.sync="queryParams.pageNum"
           :limit.sync="queryParams.pageSize"
           @pagination="flowWeldCardList"
-          :page-sizes="[25]"
+          :page-sizes="[15,20]"
           style="left: -280px"
         />
       </div>
@@ -16,8 +16,8 @@
         <el-button type="primary" icon="el-icon-search"  size="mini"  v-print="printViewInfo" style="position:absolute;right: 0px;top: 8px">打印</el-button>
       </div>
     </div>
-    <div class="base_box" id="printView">
-      <div class="top">
+    <div class="base_box" id="printView" style="padding-top: 50px">
+      <div class="top" style="">
         <div  class="imgs" style="position: relative">
           <img :src="imgUrl" alt="" style="position: absolute;top: -44px">
         </div>
@@ -25,20 +25,20 @@
           <h1 >福建铨一电源科技有限公司</h1>
         </div>
         <div>
-          <h1 style="font-size:35px">{{formatDateTime(listDate[0].completionTime)}}</h1>
+          <h1 style="font-size:62px">{{formatDateTime(listDate[0].timeOfRequest)}}</h1>
         </div>
       </div>
       <div class="center">
         <p>焊接生产订单</p>
       </div>
-      <div class="center_order">
+      <div class="center_order" style="font-size: 18px">
         <ul>
-          <li style="margin-left: 5px;"><span>订单号:</span><em>{{queryParams.orderNumber}}</em></li>
+          <li style="margin-left: 5px;"><span>订单号:</span> <em>{{queryParams.orderNumber}}</em></li>
           <li><span>生产单位:</span> <em>焊接车间</em></li>
           <li ><span>业务类型:</span> <em>普通生产</em></li>
         </ul>
       </div>
-      <div class="tableNr">
+      <div class="tableNr" style="font-size: 20px">
         <table border="2">
           <tr>
             <td style="width:60px">序号</td>
@@ -67,11 +67,11 @@
           </tr>
         </table>
       </div>
-      <div class="center_order">
+      <div class="center_order" style="font-size: 18px">
         <ul>
-          <li style="margin-left: 5px;"><span>制单人:</span> <em>{{loginName}}</em>&nbsp;<em>{{currentDate}}</em></li>
+          <li style="margin-left: 5px;width: 40%"><span>制单人:</span> <em>{{loginName}}</em>&nbsp;<em>{{currentDate}}</em></li>
           <li><span>审核:</span> <em></em></li>
-          <li><span>审批:</span> <em></em></li>
+          <li style="width: 25%"><span>审批:</span> <em></em></li>
         </ul>
       </div>
     </div>
@@ -93,7 +93,7 @@ export default {
       imgUrl: img,
       queryParams:{
         pageNum: 1,
-        pageSize: 25,
+        pageSize: 15,
         orderNumber:"",
       },
       total:0,
@@ -151,16 +151,20 @@ export default {
       const year = date.getFullYear();
       const month = String(date.getMonth() + 1).padStart(2, '0');
       const day = String(date.getDate()).padStart(2, '0');
-      return `${year}-${month}-${day}`;
+      return `${month}-${day}`;
     },
     processData() {
       this.calculateRowSpans();
     },
     //异步获取焊接数据
     async flowWeldCardList(){
+      this.listDate=[];
+      this.resetSeenMaterials();
+      this.queryParams.orderNumber =this.$route.query.orderNumberS[0];
       let res = await flowWeldCardListApi(this.queryParams)
       if (res.code == 200) {
         this.listDate = res.rows;
+        // this.currentDate=this.listDate[0].timeOfRequest;
         this.total = res.total;
         this.getUserInfo();
         this.getCurrentDate();
@@ -186,6 +190,20 @@ export default {
       const month = String(now.getMonth() + 1).padStart(2, '0');
       const day = String(now.getDate()).padStart(2, '0');
       this.currentDate = `${year}-${month}-${day}`;
+    },
+    //清空
+    resetSeenMaterials() {
+      this.rowSpanMap={}
+      this.seenMaterials = {};
+    }
+  },
+  watch: {
+    listDate: {
+      handler() {
+        this.calculateRowSpans();
+        console.log("监听好了")
+      },
+      deep: true
     }
   },
   mounted() {
@@ -202,7 +220,6 @@ export default {
     },
   },
   created(){
-    this.queryParams.orderNumber =this.$route.query.orderNumberS[0];
     this.flowWeldCardList();
   }
 }
@@ -212,11 +229,13 @@ export default {
   /* 隐藏页眉页脚 */
   @page {
     size: auto;
-    //margin: 3mm;
-    margin-top: 10px;
+    font-size: 20px;
+    .base_box{
+      margin-top: 70px;
+    }
   }
   html {
-    zoom: 85%; /* 缩放比例设置 */
+    zoom: 80%; /* 缩放比例设置 */
   }
   .noprint {
     display: none; /* 隐藏打印区域不需要打印的内容 */
@@ -229,6 +248,7 @@ export default {
 .base_box{
   width: 900px;
   box-sizing: border-box;
+
 }
 .base_box .top{
   display: flex;
@@ -272,7 +292,7 @@ export default {
   text-align: left;
   float: left;
   width: 33%;
-  font-size: 19px;
+  font-size: 22px;
 }
 .tableNr table{
   width: 100%;

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

@@ -309,7 +309,7 @@ export default {
           let form = {
               uri: "?client_id=hmc&scope=basic&response_type=code&state=AB1357&redirect_uri=http://192.168.2.127:8066/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",