Sfoglia il codice sorgente

Merge branch 'master' of http://47.100.37.243:10191/quyueting/manHourHousekeeper

QuYueTing 3 settimane fa
parent
commit
11a34cd667
18 ha cambiato i file con 1865 aggiunte e 825 eliminazioni
  1. 62 0
      fhKeeper/formulahousekeeper/collectdata/src/main/java/com/management/collectdata/controller/DataCollectController.java
  2. 77 0
      fhKeeper/formulahousekeeper/collectdata/src/main/java/com/management/collectdata/entity/SaleOrderDetail.java
  3. 93 0
      fhKeeper/formulahousekeeper/collectdata/src/main/java/com/management/collectdata/entity/SaleOrderMain.java
  4. 21 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/SaleOrderDetailController.java
  5. 21 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/SaleOrderMainController.java
  6. 77 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/SaleOrderDetail.java
  7. 93 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/SaleOrderMain.java
  8. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/SaleOrderDetailMapper.java
  9. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/SaleOrderMainMapper.java
  10. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/SaleOrderDetailService.java
  11. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/SaleOrderMainService.java
  12. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/SaleOrderDetailServiceImpl.java
  13. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/SaleOrderMainServiceImpl.java
  14. 47 5
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/DataCollectTask.java
  15. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/SaleOrderDetailMapper.xml
  16. 21 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/SaleOrderMainMapper.xml
  17. 49 1
      fhKeeper/formulahousekeeper/timesheet/src/components/taskComponent.vue
  18. 1180 819
      fhKeeper/formulahousekeeper/timesheet/src/views/project/fileCenter.vue

+ 62 - 0
fhKeeper/formulahousekeeper/collectdata/src/main/java/com/management/collectdata/controller/DataCollectController.java

@@ -697,5 +697,67 @@ public class DataCollectController {
     }
     }
 
 
 
 
+    @RequestMapping("/getSaleOrderData")
+    public List<SaleOrderMain> getSaleOrderData(@RequestBody PageBO pageBO) {
+//        select ID,AutoID,cSOCode,cItemCode ,cItemName from SO_SODetails
+        //获取销售主表单信息数据
+//        String sqlQueryMain = "select id,cSOCode,iStatus ,dverifysystime,dcreatesystime,dverifydate,iverifystate,dDate   " +
+//                "from  SO_SOMAIN ssm  where ssm.dverifydate >= DATEADD(day, -30, GETDATE()) order by ID OFFSET ? ROWS FETCH NEXT ? ROWS ONLY ";
+        String sqlQueryMain = "select id,cSOCode,iStatus ,dverifysystime,dcreatesystime,dverifydate,iverifystate,dDate   " +
+                "from  SO_SOMAIN ssm  where ssm.iStatus = 1  ssm.cdefine1 = '设备' and  cstcode = 10 and ssm.dverifydate >= DATEADD(day, -30, GETDATE()) order by ID";
+        //获取销售主表单信息数据
+        String sqlQueryDetail = "select id,autoId,cSOCode,cItemCode ,cItemName from SO_SODetails ssd where ssd.cSOCode in (?)";
+
+        SimpleDateFormat sdfYmd = new SimpleDateFormat("yyyy-MM-dd");
+        DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        DateTimeFormatter df1=DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        List<SaleOrderMain> resList = new ArrayList<>();
+        try (Connection connection = sqlServerDataSource.getConnection()) {
+            PreparedStatement queryMain = connection.prepareStatement(sqlQueryMain);
+//            int pageSize = pageBO.getPageSize();
+//            int offset = pageBO.getPageNo();
+//            queryMain.setInt(1, offset);
+//            queryMain.setInt(2, pageSize);
+            try (ResultSet resultSet = queryMain.executeQuery()) {
+                while (resultSet.next()) {
+                    SaleOrderMain saleOrderMain = new SaleOrderMain();
+                    saleOrderMain.setId(resultSet.getString("id"));
+                    saleOrderMain.setOrderApproveDateTime(LocalDateTime.parse(resultSet.getString("dverifysystime"),df));
+                    saleOrderMain.setOrderCreateDateTime(LocalDateTime.parse(resultSet.getString("dcreatesystime "),df));
+                    saleOrderMain.setOrderApproveDate(LocalDate.parse(resultSet.getString("dverifydate"),df1));
+                    saleOrderMain.setOrderNo(resultSet.getString("cSOCode"));
+                    saleOrderMain.setOrderStatus(resultSet.getInt("iStatus"));
+                    saleOrderMain.setSyncTime(LocalDateTime.now());
+                    resList.add(saleOrderMain);
+                }
+            }
+            List<String> mainIds = resList.stream().map(i -> i.getId()).distinct().collect(Collectors.toList());
+            PreparedStatement queryDetail = connection.prepareStatement(sqlQueryDetail);
+            String join = String.join(",", mainIds);
+            queryMain.setString(1, join);
+            List<SaleOrderDetail> saleOrderDetails=new ArrayList<>();
+            try (ResultSet resultSet = queryDetail.executeQuery()) {
+                while (resultSet.next()) {
+                    SaleOrderDetail saleOrderDetail = new SaleOrderDetail();
+                    saleOrderDetail.setId(resultSet.getInt("autoId"));
+                    saleOrderDetail.setMainId(resultSet.getString("id"));
+                    saleOrderDetail.setProjectName(resultSet.getString("cItemName"));
+                    saleOrderDetail.setProjectCode(resultSet.getString("cItemCode"));
+                    saleOrderDetail.setOrderNo(resultSet.getString("cSOCode"));
+                    saleOrderDetail.setSyncTime(LocalDateTime.now());
+                    saleOrderDetails.add(saleOrderDetail);
+                }
+            }
+            for (SaleOrderMain saleOrderMain : resList) {
+                List<SaleOrderDetail> detailList = saleOrderDetails.stream().filter(i -> i.getMainId().equals(saleOrderMain.getId())).collect(Collectors.toList());
+                saleOrderMain.setSaleOrderDetails(detailList);
+            }
+        } catch (SQLException e) {
+            System.err.println("数据库操作错误: " + e.getMessage());
+        }
+        return resList;
+    }
+
+
 
 
 }
 }

+ 77 - 0
fhKeeper/formulahousekeeper/collectdata/src/main/java/com/management/collectdata/entity/SaleOrderDetail.java

@@ -0,0 +1,77 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * U8订单详情表同步表(sale_order_detail)
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-06-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SaleOrderDetail extends Model<SaleOrderDetail> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键ID(U8源数据ID)
+     */
+    @TableId("id")
+    private Integer id;
+
+
+    /**
+     * 主键ID(U8源数据ID)
+     */
+    @TableField("main_id")
+    private String mainId;
+
+    /**
+     * 订单编号
+     */
+    @TableField("order_no")
+    private String orderNo;
+
+    /**
+     * 项目名称
+     */
+    @TableField("project_name")
+    private String projectName;
+
+    /**
+     * 项目编号
+     */
+    @TableField("project_code")
+    private String projectCode;
+
+    /**
+     * 同步时间戳
+     */
+    @TableField("sync_time")
+    private LocalDateTime syncTime;
+
+    /**
+     * 业务字段哈希(order_no+project_name+project_code)
+     */
+    @TableField("data_hash")
+    private String dataHash;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 93 - 0
fhKeeper/formulahousekeeper/collectdata/src/main/java/com/management/collectdata/entity/SaleOrderMain.java

@@ -0,0 +1,93 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * U8订单主表同步表(sale_order_main)
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-06-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SaleOrderMain extends Model<SaleOrderMain> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键ID(U8源数据ID)
+     */
+    @TableId("id")
+    private String id;
+
+    /**
+     * 订单编号
+     */
+    @TableField("order_no")
+    private String orderNo;
+
+    /**
+     * 订单状态(0=草稿 1=已审核 2=已发货 3=已完成)
+     */
+    @TableField("order_status")
+    private Integer orderStatus;
+
+    /**
+     * 订单创建时间
+     */
+    @TableField("order_create_date_time")
+    private LocalDateTime orderCreateDateTime;
+
+    /**
+     * 订单审批时间
+     */
+    @TableField("order_approve_date_time")
+    private LocalDateTime orderApproveDateTime;
+
+    /**
+     * 订单创建日期
+     */
+    @TableField("order_create_date")
+    private LocalDateTime orderCreateDate;
+
+    /**
+     * 订单审批日期
+     */
+    @TableField("order_approve_date")
+    private LocalDate orderApproveDate;
+
+    /**
+     * 同步时间戳
+     */
+    @TableField("sync_time")
+    private LocalDateTime syncTime;
+
+    /**
+     * 业务字段哈希(order_no+order_status+order_create_date+order_approve_date)
+     */
+    @TableField("data_hash")
+    private String dataHash;
+
+    @TableField(exist = false)
+    private List<SaleOrderDetail> saleOrderDetails;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 21 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/SaleOrderDetailController.java

@@ -0,0 +1,21 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * U8订单详情表同步表(sale_order_detail) 前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-06-09
+ */
+@RestController
+@RequestMapping("/sale-order-detail")
+public class SaleOrderDetailController {
+
+}
+

+ 21 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/SaleOrderMainController.java

@@ -0,0 +1,21 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * U8订单主表同步表(sale_order_main) 前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-06-09
+ */
+@RestController
+@RequestMapping("/sale-order-main")
+public class SaleOrderMainController {
+
+}
+

+ 77 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/SaleOrderDetail.java

@@ -0,0 +1,77 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * U8订单详情表同步表(sale_order_detail)
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-06-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SaleOrderDetail extends Model<SaleOrderDetail> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键ID(U8源数据ID)
+     */
+    @TableId("id")
+    private Integer id;
+
+
+    /**
+     * 主键ID(U8源数据ID)
+     */
+    @TableField("main_id")
+    private String mainId;
+
+    /**
+     * 订单编号
+     */
+    @TableField("order_no")
+    private String orderNo;
+
+    /**
+     * 项目名称
+     */
+    @TableField("project_name")
+    private String projectName;
+
+    /**
+     * 项目编号
+     */
+    @TableField("project_code")
+    private String projectCode;
+
+    /**
+     * 同步时间戳
+     */
+    @TableField("sync_time")
+    private LocalDateTime syncTime;
+
+    /**
+     * 业务字段哈希(order_no+project_name+project_code)
+     */
+    @TableField("data_hash")
+    private String dataHash;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 93 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/SaleOrderMain.java

@@ -0,0 +1,93 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * U8订单主表同步表(sale_order_main)
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-06-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SaleOrderMain extends Model<SaleOrderMain> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键ID(U8源数据ID)
+     */
+    @TableId("id")
+    private String id;
+
+    /**
+     * 订单编号
+     */
+    @TableField("order_no")
+    private String orderNo;
+
+    /**
+     * 订单状态(0=草稿 1=已审核 2=已发货 3=已完成)
+     */
+    @TableField("order_status")
+    private Integer orderStatus;
+
+    /**
+     * 订单创建时间
+     */
+    @TableField("order_create_date_time")
+    private LocalDateTime orderCreateDateTime;
+
+    /**
+     * 订单审批时间
+     */
+    @TableField("order_approve_date_time")
+    private LocalDateTime orderApproveDateTime;
+
+    /**
+     * 订单创建日期
+     */
+    @TableField("order_create_date")
+    private LocalDate orderCreateDate;
+
+    /**
+     * 订单审批日期
+     */
+    @TableField("order_approve_date")
+    private LocalDateTime orderApproveDate;
+
+    /**
+     * 同步时间戳
+     */
+    @TableField("sync_time")
+    private LocalDateTime syncTime;
+
+    /**
+     * 业务字段哈希(order_no+order_status+order_create_date+order_approve_date)
+     */
+    @TableField("data_hash")
+    private String dataHash;
+
+    @TableField(exist = false)
+    private List<SaleOrderDetail> saleOrderDetails;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/SaleOrderDetailMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.SaleOrderDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * U8订单详情表同步表(sale_order_detail) Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-06-09
+ */
+public interface SaleOrderDetailMapper extends BaseMapper<SaleOrderDetail> {
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/SaleOrderMainMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.SaleOrderMain;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * U8订单主表同步表(sale_order_main) Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-06-09
+ */
+public interface SaleOrderMainMapper extends BaseMapper<SaleOrderMain> {
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/SaleOrderDetailService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.SaleOrderDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * U8订单详情表同步表(sale_order_detail) 服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-06-09
+ */
+public interface SaleOrderDetailService extends IService<SaleOrderDetail> {
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/SaleOrderMainService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.SaleOrderMain;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * U8订单主表同步表(sale_order_main) 服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-06-09
+ */
+public interface SaleOrderMainService extends IService<SaleOrderMain> {
+
+}

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/SaleOrderDetailServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.SaleOrderDetail;
+import com.management.platform.mapper.SaleOrderDetailMapper;
+import com.management.platform.service.SaleOrderDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * U8订单详情表同步表(sale_order_detail) 服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-06-09
+ */
+@Service
+public class SaleOrderDetailServiceImpl extends ServiceImpl<SaleOrderDetailMapper, SaleOrderDetail> implements SaleOrderDetailService {
+
+}

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/SaleOrderMainServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.SaleOrderMain;
+import com.management.platform.mapper.SaleOrderMainMapper;
+import com.management.platform.service.SaleOrderMainService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * U8订单主表同步表(sale_order_main) 服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-06-09
+ */
+@Service
+public class SaleOrderMainServiceImpl extends ServiceImpl<SaleOrderMainMapper, SaleOrderMain> implements SaleOrderMainService {
+
+}

+ 47 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/DataCollectTask.java

@@ -1,17 +1,17 @@
 package com.management.platform.task;
 package com.management.platform.task;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.*;
+import com.management.platform.entity.FinanceMonthlyWorktime;
+import com.management.platform.entity.SaleOrderDetail;
+import com.management.platform.entity.SaleOrderMain;
 import com.management.platform.entity.vo.TisTimeVO;
 import com.management.platform.entity.vo.TisTimeVO;
-import com.management.platform.mapper.*;
+import com.management.platform.mapper.FinanceMonthlyWorktimeMapper;
+import com.management.platform.mapper.FmwDetailMapper;
 import com.management.platform.service.*;
 import com.management.platform.service.*;
-import com.management.platform.util.MessageUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.*;
 import org.springframework.http.*;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
@@ -49,6 +49,10 @@ public class DataCollectTask {
     private UserFvTimeService userFvTimeService;
     private UserFvTimeService userFvTimeService;
     @Autowired
     @Autowired
     private ProjectService projectService;
     private ProjectService projectService;
+    @Resource
+    private SaleOrderMainService saleOrderMainService;
+    @Resource
+    private SaleOrderDetailService saleOrderDetailService;
 
 
     @Scheduled(cron = "30 10 8,12,20 * * ?")
     @Scheduled(cron = "30 10 8,12,20 * * ?")
 //    @Scheduled(cron = "30 08 21 * * ?")
 //    @Scheduled(cron = "30 08 21 * * ?")
@@ -169,5 +173,43 @@ public class DataCollectTask {
             }
             }
         }
         }
     }
     }
+    /**
+     * 同步销售订单数据
+     */
+    @Scheduled(cron ="0 0 4 * * ?")
+    public void saleOrderData(){
+        if(isDev){return;}
+        if(isPrivateDeploy) return;
+        LocalDate nowDate = LocalDate.now();
+        int today = nowDate.getMonthValue();
+        int lastDay = Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH);
+        if(today != lastDay){
+            return ;
+        }
+        RestTemplate restTemplate = new RestTemplate();
+        String getUrl = PREFIX_URL+"/dataCollect/getSaleOrderData";
+        SimpleDateFormat sdfYm = new SimpleDateFormat("yyyy-MM");
+        Date date = new Date();
+        String dateYm = sdfYm.format(date);
+        //校验cppid
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        Map<String, Object> requestBody = new HashMap<>();
+        HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody, headers);
+        ResponseEntity<List<SaleOrderMain>> checkResponse = restTemplate.exchange(getUrl, HttpMethod.POST, requestEntity
+                ,new  ParameterizedTypeReference<List<SaleOrderMain>>(){});
+        if (checkResponse.getStatusCode() == HttpStatus.OK) {
+            List<SaleOrderMain> resList = checkResponse.getBody();
+            if(null!=resList&&resList.size()>0){
+                saleOrderMainService.saveOrUpdateBatch(resList);
+                List<SaleOrderDetail> saleOrderDetails=new ArrayList<>();
+                for (SaleOrderMain saleOrderMain : resList) {
+                    List<SaleOrderDetail> details = saleOrderMain.getSaleOrderDetails();
+                    saleOrderDetails.addAll(details);
+                }
+                saleOrderDetailService.saveOrUpdateBatch(saleOrderDetails);
+            }
+        }
+    }
 
 
 }
 }

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/SaleOrderDetailMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.management.platform.mapper.SaleOrderDetailMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.SaleOrderDetail">
+        <id column="id" property="id" />
+        <result column="order_no" property="orderNo" />
+        <result column="project_name" property="projectName" />
+        <result column="project_code" property="projectCode" />
+        <result column="sync_time" property="syncTime" />
+        <result column="data_hash" property="dataHash" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, order_no, project_name, project_code, sync_time, data_hash
+    </sql>
+
+</mapper>

+ 21 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/SaleOrderMainMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.management.platform.mapper.SaleOrderMainMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.SaleOrderMain">
+        <id column="id" property="id" />
+        <result column="order_no" property="orderNo" />
+        <result column="order_status" property="orderStatus" />
+        <result column="order_create_date" property="orderCreateDate" />
+        <result column="order_approve_date" property="orderApproveDate" />
+        <result column="sync_time" property="syncTime" />
+        <result column="data_hash" property="dataHash" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, order_no, order_status, order_create_date, order_approve_date, sync_time, data_hash
+    </sql>
+
+</mapper>

+ 49 - 1
fhKeeper/formulahousekeeper/timesheet/src/components/taskComponent.vue

@@ -1801,13 +1801,28 @@
                     ></p>
                     ></p>
                     <p v-if="item2.attachment != null">
                     <p v-if="item2.attachment != null">
                       {{ $t("fu-jian") }}:
                       {{ $t("fu-jian") }}:
-                      <a
+                      <!-- <a
                         v-for="file in JSON.parse(item2.attachment)"
                         v-for="file in JSON.parse(item2.attachment)"
                         style="margin-right: 5px"
                         style="margin-right: 5px"
                         :href="'/upload/' + file.serverName"
                         :href="'/upload/' + file.serverName"
                         :download="file.originName"
                         :download="file.originName"
                         >{{ file.originName }}</a
                         >{{ file.originName }}</a
+                      > -->
+                      <el-link
+                        v-for="item in JSON.parse(item2.attachment)"
+                        @click.prevent="viewOnline2(item)"
                       >
                       >
+                        <span style="margin-left: 8px; color: #262626">{{
+                          item.originName
+                        }}</span>
+                        <el-button
+                          icon="el-icon-download"
+                          circle
+                          size="mini"
+                          style="margin-left: 100px"
+                          @click.stop.native="downloadByA(item)"
+                        ></el-button>
+                      </el-link>
                     </p>
                     </p>
                   </div>
                   </div>
                   <p></p>
                   <p></p>
@@ -3274,6 +3289,32 @@ export default {
       this.times = `${Y}-${M}-${D}`;
       this.times = `${Y}-${M}-${D}`;
       console.log(this.times, "时间");
       console.log(this.times, "时间");
     },
     },
+    // 在线预览
+    viewOnline2(row) {
+      sessionStorage.setItem("fileName", row.serverName);
+      sessionStorage.setItem("fileUrl", "/upload/" + row.serverName);
+      let routeUrl;
+      if (row.serverName.endsWith(".doc") || row.serverName.endsWith(".docx")) {
+        routeUrl = this.$router.resolve({
+          path: "/viewWord",
+          params: {},
+        });
+      } else if (
+        row.serverName.endsWith(".xls") ||
+        row.serverName.endsWith(".xlsx")
+      ) {
+        routeUrl = this.$router.resolve({
+          path: "/viewExcel",
+          params: {},
+        });
+      }
+      if (routeUrl != null) {
+        console.log(routeUrl.href);
+        window.open(routeUrl.href, "_blank");
+      } else {
+        window.open(row.url, "_blank");
+      }
+    },
     // 提交按钮
     // 提交按钮
     submitInsert() {
     submitInsert() {
       if (this.textContent !== true)
       if (this.textContent !== true)
@@ -4152,6 +4193,13 @@ export default {
         },
         },
       );
       );
     },
     },
+    downloadByA(row) {
+      const a = document.createElement("a"); // 创建a标签
+      a.setAttribute("download", row.serverName); // download属性
+      a.setAttribute("href", "/upload/" + row.serverName); // href链接
+      a.click(); // 自执行点击事件
+      a.remove();
+    },
     uploadFileClickTwo(item, row) {
     uploadFileClickTwo(item, row) {
       let files = new FormData();
       let files = new FormData();
       files.append("projectId", this.curProjectId);
       files.append("projectId", this.curProjectId);

File diff suppressed because it is too large
+ 1180 - 819
fhKeeper/formulahousekeeper/timesheet/src/views/project/fileCenter.vue