From 3697ca81ae651e6087706668744f5b67535f9f40 Mon Sep 17 00:00:00 2001
From: YYC <1833023622@qq.com>
Date: 星期一, 23 十二月 2024 17:37:33 +0800
Subject: [PATCH] 数据调整

---
 src/main/java/com/fzzy/web/TestController.java                        |  192 +++++
 src/main/java/com/fzzy/api/entity/Api9201.java                        |  198 +++++
 src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1023.java          |    2 
 src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1310.java          |    2 
 src/main/java/com/fzzy/push/gd2022/ApiCodeConstant.java               |    1 
 src/main/java/com/fzzy/otherview/gd2022/pr/GDApi1023PR.java           |    6 
 src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync9201.java          |  182 +++++
 src/main/resources/templates/home/home.html                           |    3 
 src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService13.java          |    5 
 src/main/java/com/fzzy/api/view/repository/Api9201Rep.java            |   37 +
 src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync9201Rep.java |   22 
 src/main/java/com/fzzy/otherview/gd2022/pr/GDApi9201PR.java           |  239 +++++++
 src/main/java/com/fzzy/otherview/gd2022/GdApi9201.view.xml            | 1105 ++++++++++++++++++++++++++++++++
 src/main/resources/application.yml                                    |    2 
 14 files changed, 1,985 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/fzzy/api/entity/Api9201.java b/src/main/java/com/fzzy/api/entity/Api9201.java
new file mode 100644
index 0000000..e708e6d
--- /dev/null
+++ b/src/main/java/com/fzzy/api/entity/Api9201.java
@@ -0,0 +1,198 @@
+package com.fzzy.api.entity;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.bstek.dorado.annotation.PropertyDef;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fzzy.push.gd2022.dto.Gd2022Api1023Dtl;
+import com.fzzy.push.gd2022.dto.Gd2022Api1023People;
+import com.fzzy.push.gd2022.dto.Gd2022Api1023Way;
+import lombok.Data;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鐔忚捀澶囨涓昏〃淇℃伅
+ *
+ * @Author:YAN
+ */
+@Entity
+@Data
+@Table(name = "API_9201")
+public class Api9201 extends ApiParent implements Serializable {
+
+    @Id
+    @Column(name = "id", length = 12)
+    @PropertyDef(label = "id", description = "鍏ュ簱鏃ユ湡+4浣嶉『搴忓彿")
+    private String id;
+
+    @Column(name = "xzbm", length = 4)
+    @PropertyDef(label = "鐔忚捀澶囨缂栧彿", description = "4浣嶉『搴忓彿")
+    private String xzbm;
+
+    @Column(name = "kqdm", length = 21)
+    @PropertyDef(label = "搴撳尯浠g爜")
+    private String kqdm;
+
+    @Column(name = "kqmc", length = 21)
+    @PropertyDef(label = "搴撳尯鍚嶇О")
+    private String kqmc;
+
+    @Column(name = "tbrq")
+    @PropertyDef(label = "濉姤鏃ユ湡")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date tbrq;
+
+    @Column(name = "dwdm", length = 18)
+    @PropertyDef(label = "鍗曚綅浠g爜", description = "浼佷笟淇$敤浠g爜")
+    private String dwdm;
+
+    @Column(name = "dwmc", length = 18)
+    @PropertyDef(label = "鍗曚綅鍚嶇О")
+    private String dwmc;
+
+    @Column(name = "sqxzrq")
+    @PropertyDef(label = "鐢宠鐔忚捀鏃ユ湡")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date sqxzrq;
+
+    @Column(name = "fzr", length = 20)
+    @PropertyDef(label = "璐熻矗浜�")
+    private String fzr;
+
+    @Column(name = "fzrdh", length = 11)
+    @PropertyDef(label = "璐熻矗浜虹數璇�")
+    private String fzrdh;
+
+    @Column(name = "xcfzr", length = 20)
+    @PropertyDef(label = "鐜板満璐熻矗浜�")
+    private String xcfzr;
+
+    @Column(name = "fzrzw", length = 10)
+    @PropertyDef(label = "鐜板満璐熻矗浜鸿亴鍔�")
+    private String xcfzrzw;
+
+    @Column(name = "xcfzrdh", length = 11)
+    @PropertyDef(label = "鐜板満璐熻矗浜虹數璇�")
+    private String xcfzrdh;
+
+    @Column(name = "tbr", length = 20)
+    @PropertyDef(label = "濉〃浜�")
+    private String tbr;
+
+    @Column(name = "tbrdh", length = 11)
+    @PropertyDef(label = "濉〃浜虹數璇�")
+    private String tbrdh;
+
+    @Column(name = "sfszjjxd", length = 2)
+    @PropertyDef(label = "鏄惁璁剧疆璀︽垝绾�(涓�)", description = "鏄垨鍚�")
+    private String sfszjjxd;
+
+    @Column(name = "sfszjjxx", length = 2)
+    @PropertyDef(label = "鏄惁璁剧疆璀︽垝绾�(瑗�)", description = "鏄垨鍚�")
+    private String sfszjjxx;
+
+    @Column(name = "sfszjjxn", length = 2)
+    @PropertyDef(label = "鏄惁璁剧疆璀︽垝绾�(鍗�)", description = "鏄垨鍚�")
+    private String sfszjjxn;
+
+    @Column(name = "sfszjjxb", length = 2)
+    @PropertyDef(label = "鏄惁璁剧疆璀︽垝绾�(鍖�)", description = "鏄垨鍚�")
+    private String sfszjjxb;
+
+    @Column(name = "ssxzzystqybqk", length = 1024)
+    @PropertyDef(label = "瀹炴柦鐔忚捀浣滀笟鏃跺ぉ姘旈鎶ユ儏鍐�")
+    private String ssxzzystqybqk;
+
+    @Column(name = "xzssgcap", length = 1024)
+    @PropertyDef(label = "鐔忚捀瀹夋帓鍙婂疄鏂借繃绋�")
+    private String xzssgcap;
+
+    @Column(name = "aqfhjyjcccs", length = 1024)
+    @PropertyDef(label = "瀹夊叏闃叉姢鍙婂簲鎬ュ缃帾鏂�")
+    private String aqfhjyjcccs;
+
+    @Column(name = "xzzysx", length = 1024)
+    @PropertyDef(label = "鐔忚捀娉ㄦ剰浜嬮」")
+    private String xzzysx;
+
+    @Column(name = "fileStorageId", length = 19)
+    @PropertyDef(label = "鏂囦欢瀛樺偍ID")
+    private String fileStorageId;
+
+    @Column(name = "yjmc", length = 64)
+    @PropertyDef(label = "鑽墏鍚嶇О")
+    private String yjmc;
+
+    @Column(name = "yjlx", length = 10)
+    @PropertyDef(label = "鑽墏绫诲瀷/鍨嬪彿")
+    private String yjlx;
+
+    @Column(name = "yjyxqz")
+    @PropertyDef(label = "鑽墏鏈夋晥鏈熻嚦")
+    private Date yjyxqz;
+
+    @Column(name = "lqsl", precision = 20, scale = 3)
+    @PropertyDef(label = "棰嗗彇鏁伴噺", description = "鍏枻")
+    private Double lqsl;
+
+    @Column(name = "sysbjfs", length = 20)
+    @PropertyDef(label = "鏂借嵂璁惧鍙婃柟寮�")
+    private String sysbjfs;
+
+    @Column(name = "zcdd", length = 30)
+    @PropertyDef(label = "鏆傚瓨鍦扮偣")
+    private String zcdd;
+
+    @Column(name = "lqr", length = 20)
+    @PropertyDef(label = "棰嗗彇浜�")
+    private String lqr;
+
+    @Column(name = "lqrq")
+    @PropertyDef(label = "棰嗗彇鏃堕棿")
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date lqrq;
+
+    @Column(name = "czbz", length = 1)
+    @PropertyDef(label = "鎿嶄綔鏍囧織")
+    private String czbz;
+
+    @Column(name = "zhgxsj")
+    @PropertyDef(label = "鏇存柊鏃堕棿")
+    private Date zhgxsj;
+
+    @Column(name = "dtl", length = 2000)
+    @PropertyDef(label = "绮儏鏄庣粏琛�")
+    private String dtl;
+
+    @Column(name = "way", length = 2000)
+    @PropertyDef(label = "鐔忚捀澶囨鏂瑰紡")
+    private String way;
+
+    @Column(name = "people", length = 2000)
+    @PropertyDef(label = "绮儏鏄庣粏琛�")
+    private String people;
+
+
+    /**
+     * 鍌ㄧ伯绮儏鏄庣粏琛�
+     */
+    @Transient
+    private List<Gd2022Api1023Dtl> dtls;
+
+    /**
+     * 鐔忚捀澶囨鏂瑰紡
+     */
+    @Transient
+    private List<Gd2022Api1023Way> ways;
+
+    /**
+     * 鐔忚捀浣滀笟浜哄憳
+     */
+    @Transient
+    private List<Gd2022Api1023People> peoples;
+
+
+}
diff --git a/src/main/java/com/fzzy/api/view/repository/Api9201Rep.java b/src/main/java/com/fzzy/api/view/repository/Api9201Rep.java
new file mode 100644
index 0000000..62034f5
--- /dev/null
+++ b/src/main/java/com/fzzy/api/view/repository/Api9201Rep.java
@@ -0,0 +1,37 @@
+package com.fzzy.api.view.repository;
+
+import com.fzzy.api.entity.Api1307;
+import com.fzzy.api.entity.Api9201;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+
+public interface Api9201Rep extends JpaRepository<Api9201, String>, JpaSpecificationExecutor<Api9201> {
+
+
+    /**
+     * 鏍规嵁琛ㄥ崟涓婚敭鏇存柊鎿嶄綔鏍囧織鐘舵��
+     *
+     * @param dwdm 涓婚敭ID
+     * @param czbz 鎿嶄綔鏍囧織
+     * @return
+     */
+    @Transactional
+    @Modifying
+    @Query("update Api9201 set czbz =:czbz where dwdm =:dwdm ")
+    int updateStatus(@Param("dwdm") String dwdm, @Param("czbz") String czbz);
+
+
+    @Query("from Api9201 where kqdm=:kqdm and zhgxsj >=:start and zhgxsj <:end order by zhgxsj ")
+    List<Api9201> findPushDataByTime(@Param("kqdm") String kqdm, @Param("start") Date start, @Param("end") Date end);
+
+    @Query("from Api9201 where bizId=:bizId ")
+    List<Api9201> getDataByBizId(@Param("bizId") String bizId);
+}
diff --git a/src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService13.java b/src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService13.java
index fc2d2bb..ebfe114 100644
--- a/src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService13.java
+++ b/src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService13.java
@@ -36,6 +36,8 @@
     @Autowired
     private Fzzy40Sync1311 fzzySync1311;
     @Autowired
+    private Fzzy40Sync9201 fzzySync9201;
+    @Autowired
     private Fzzy40Sync2103 fzzy40Sync2103;
 
     @Override
@@ -48,10 +50,11 @@
 
 
         /*-----鍚勭渷鐙湁鎺ュ彛淇℃伅鍚屾-----*/
-        if (StringUtils.isNotEmpty(param.getPushProtocol()) && PushProtocol.SB_GD_2022.getCode().equals(param.getPushProtocol())) {
+        if (StringUtils.isNotEmpty(param.getPushProtocol()) && (PushProtocol.SB_GD_2022.getCode().equals(param.getPushProtocol())||PushProtocol.SB_GD_2023.getCode().equals(param.getPushProtocol()))) {
             //骞夸笢鐪佸钩鍙�2022鐗堬紝闇�瑕佸悓姝ョ啅钂稿妗堜俊鎭�
             //鐔忚捀澶囨鏁版嵁鍚屾
             fzzySync1023.syncData(param.getKqdm(), param.getDeptId(), param.getStart(), param.getEnd());
+            fzzySync9201.syncData(param.getKqdm(), param.getDeptId(), param.getStart(), param.getEnd());
         }
         if (StringUtils.isNotEmpty(param.getPushProtocol()) && PushProtocol.SB_SH_2023.getCode().equals(param.getPushProtocol())) {
             //涓婃捣甯傚钩鍙�2023鐗堬紝闇�瑕佸悓姝ョ伯鎯呰澶囬厤缃俊鎭�
diff --git a/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1023.java b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1023.java
index 75cb071..76af5ef 100644
--- a/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1023.java
+++ b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1023.java
@@ -75,7 +75,7 @@
         apiLog.setType(ApiLog.TYPE_SYNC);
         apiLog.setKqdm(deptId);
         apiLog.setUploadTime(new Date());
-        apiLog.setInteId(ApiCodeConstant.API_1023);
+        apiLog.setInteId(ApiCodeConstant.API_9201);
         apiLog.setStatus(99);
         apiLog.setId(ContextUtil.getUUID());
         try {
diff --git a/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1310.java b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1310.java
index 4eefe04..d09660f 100644
--- a/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1310.java
+++ b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1310.java
@@ -103,7 +103,7 @@
                 //绮绛夌骇
                 mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSDJ, fz40Quality.getFoodLevel());
                 api1310.setLsdjdm(mappingCode);
-                api1310.setRkrq(DateUtils.addDays(fz40Quality.getTime(), -30));
+                api1310.setRkrq(fz40Quality.getStoreDate());
                 api1310.setJylb(fz40Quality.getType());
                 api1310.setJysj(fz40Quality.getTime());
                 api1310.setJydw(fz40Quality.getUser());
diff --git a/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync9201.java b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync9201.java
new file mode 100644
index 0000000..2c46ab5
--- /dev/null
+++ b/src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync9201.java
@@ -0,0 +1,182 @@
+package com.fzzy.async.fzzy40.impl;
+
+import com.alibaba.fastjson2.JSON;
+import com.fzzy.api.Constant;
+import com.fzzy.api.entity.*;
+import com.fzzy.api.service.ApiCommonService;
+import com.fzzy.api.service.ApiTriggerService;
+import com.fzzy.api.utils.ContextUtil;
+import com.fzzy.api.view.repository.*;
+import com.fzzy.async.fzzy40.entity.Fz40DrugLogApply;
+import com.fzzy.async.fzzy40.entity.Fz40DrugLogDtl;
+import com.fzzy.async.fzzy40.entity.Fz40DrugLogPeople;
+import com.fzzy.async.fzzy40.repository.*;
+import com.fzzy.push.gd2022.ApiCodeConstant;
+import com.fzzy.push.gd2022.dto.Gd2022Api1023Dtl;
+import com.fzzy.push.gd2022.dto.Gd2022Api1023People;
+import com.fzzy.push.gd2022.dto.Gd2022Api1023Way;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鐔忚捀澶囨淇℃伅
+ *
+ * @Author:YAN
+ */
+@Slf4j
+@Component
+public class Fzzy40Sync9201 {
+    @Autowired
+    private Api1101Rep api1101Rep;
+    @Autowired
+    private Api1102Rep api1102Rep;
+    @Autowired
+    private Fzzy40Sync9201Rep fzzy40Sync9201Rep;
+    @Autowired
+    private Fzzy40SyncDrugLogPeopleRep drugLogPeopleRep;
+    @Autowired
+    private Fzzy40SyncDrugLogDtlRep drugLogDtlRep;
+    @Autowired
+    private ApiLogRep apiLogRep;
+    @Autowired
+    private ApiCommonService commonService;
+    @Autowired
+    private ApiTriggerService apiTriggerService;
+
+    @Autowired
+    private Api9201Rep api9201Rep;
+
+
+    /**
+     * 鍚屾鐔忚捀澶囨淇℃伅
+     *
+     * @param deptId
+     * @param start
+     * @param end
+     */
+    public void syncData(String kqdm, String deptId, Date start, Date end) {
+        log.info("-------------9201鎺ュ彛鐔忚捀澶囨淇℃伅寮�濮嬪悓姝�------------------");
+
+        //鍚屾鏁版嵁锛屽彧璁板綍澶辫触鐨勪俊鎭�
+        ApiLog apiLog = new ApiLog();
+        apiLog.setType(ApiLog.TYPE_SYNC);
+        apiLog.setKqdm(deptId);
+        apiLog.setUploadTime(new Date());
+        apiLog.setInteId(ApiCodeConstant.API_9201);
+        apiLog.setStatus(99);
+        apiLog.setId(ContextUtil.getUUID());
+        try {
+            List<Fz40DrugLogApply> list = fzzy40Sync9201Rep.listDrugLogApply(deptId, start, end);
+
+            if (null == list || list.isEmpty()) {
+                log.info("-------------娌℃湁鑾峰彇鍒扮啅钂稿妗堜俊鎭�------------------");
+                return;
+            }
+            List<Gd2022Api1023Dtl> dtlList;
+            List<Gd2022Api1023Way> wayList;
+            List<Gd2022Api1023People> peopleList;
+
+            List<Api9201> api9201List;
+
+
+            Api9201 api9201;
+            Gd2022Api1023Dtl api9201Dtl;
+            Gd2022Api1023Way api9201Way;
+            Gd2022Api1023People api9201People;
+
+            for (Fz40DrugLogApply data : list) {
+
+                api9201 = new Api9201();
+                BeanUtils.copyProperties(data, api9201);
+                api9201.setBizId(data.getXzbm());
+                api9201.setId(data.getXzbm());
+                api9201.setXzbm(data.getXzbm().substring(8));
+                api9201.setKqdm(kqdm);
+                List<Api1102> api1102List = api1102Rep.findPushData(kqdm);
+                if (null != api1102List && api1102List.size() > 0) {
+                    api9201.setKqmc(api1102List.get(0).getKqmc());
+                }
+
+                api9201.setDwdm(kqdm.substring(0, 18));
+                List<Api1101> api1101List = api1101Rep.findPushData(kqdm);
+                if (null != api1101List && api1101List.size() > 0) {
+                    api9201.setDwmc(api1101List.get(0).getDwmc());
+                }
+                api9201.setYjmc(data.getDrugName());
+                api9201.setYjlx(data.getDrugType());
+                api9201.setLqrq(data.getLqsj());
+                api9201.setZhgxsj(data.getUpdateTime());
+                if (data.getLqr().contains("銆�")) {
+                    api9201.setLqr(data.getLqr().replace('銆�', '|'));
+                }
+
+                //鍌ㄧ伯绮儏鏄庣粏琛�
+                List<Fz40DrugLogDtl> dtls = drugLogDtlRep.listDrugLogDtl(data.getXzbm());
+                Api1105 api1105 = commonService.getApi1105Cache(data.getDepotId());
+                api9201Dtl = new Gd2022Api1023Dtl();
+                BeanUtils.copyProperties(data, api9201Dtl);
+                if (null != api1105) {
+                    api9201Dtl.setCfmc(api1105.getHwmc());
+                    api9201Dtl.setCfdm(api1105.getHwdm().substring(0, 25));
+                }
+
+                //绮鍝佺
+                String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, data.getFoodVariety());
+                api9201Dtl.setLspzdm(mappingCode);
+                api9201Dtl.setLsxzdm(data.getFoodType());
+                api9201Dtl.setLsdjdm(data.getFoodLevel());
+                api9201Dtl.setLssl(data.getNumber());
+                api9201Dtl.setSf(data.getPerWet());
+                api9201Dtl.setZz(data.getPerImpurity());
+
+
+                dtlList = new ArrayList<>();
+                dtlList.add(api9201Dtl);
+                api9201.setDtl(JSON.toJSONString(dtlList));
+
+
+                api9201Way = new Gd2022Api1023Way();
+                BeanUtils.copyProperties(data, api9201Way);
+                wayList = new ArrayList<>();
+                wayList.add(api9201Way);
+                api9201.setWay(JSON.toJSONString(wayList));
+
+                List<Fz40DrugLogPeople> peoples = drugLogPeopleRep.listDrugLogPeople(data.getXzbm());
+                if (null != peoples && peoples.size() > 0) {
+                    peopleList = new ArrayList<>();
+                    for (Fz40DrugLogPeople people : peoples) {
+                        api9201People = new Gd2022Api1023People();
+                        BeanUtils.copyProperties(people, api9201People);
+                        api9201People.setXm(people.getMx());
+                        if (StringUtils.isEmpty(people.getZyzg())) {
+                            api9201People.setZyzg("鍩硅鍚堟牸");
+                        }
+                        peopleList.add(api9201People);
+                    }
+                    api9201.setPeople(JSON.toJSONString(peopleList));
+
+                    api9201List = api9201Rep.getDataByBizId(api9201.getBizId());
+                    if (null == api9201List || api9201List.isEmpty()) {
+                        api9201.setCzbz(Constant.CZBZ_I);
+                    } else {
+                        api9201.setCzbz(api9201List.get(0).getCzbz());
+                    }
+                }
+                api9201Rep.save(api9201);
+                log.info("9201---鍚屾鏁版嵁锛歿}", api9201.toString());
+            }
+
+        } catch (Exception e) {
+            log.error("---鐔忚捀澶囨鍚屾鎵ц澶辫触----{}", e.toString());
+            apiLog.setResult("鐔忚捀澶囨淇℃伅鍚屾鎵ц澶辫触锛�" + e.getMessage());
+            apiLogRep.save(apiLog);
+        }
+    }
+}
diff --git a/src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync9201Rep.java b/src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync9201Rep.java
new file mode 100644
index 0000000..c54d78f
--- /dev/null
+++ b/src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync9201Rep.java
@@ -0,0 +1,22 @@
+package com.fzzy.async.fzzy40.repository;
+
+import com.fzzy.async.fzzy40.entity.Fz40DrugLogApply;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鐔忚捀澶囨淇℃伅
+ *
+ * @Author:YAN
+ */
+public interface Fzzy40Sync9201Rep extends JpaRepository<Fz40DrugLogApply, String> {
+
+    //鏌ヨ鐔忚捀澶囨涓昏〃
+    @Query("from Fz40DrugLogApply where deptId =:deptId and updateTime >=:start and updateTime <:end order by updateTime ")
+    List<Fz40DrugLogApply> listDrugLogApply(@Param("deptId") String deptId, @Param("start") Date start, @Param("end") Date end);
+
+   }
diff --git a/src/main/java/com/fzzy/otherview/gd2022/GdApi9201.view.xml b/src/main/java/com/fzzy/otherview/gd2022/GdApi9201.view.xml
new file mode 100644
index 0000000..d587a0a
--- /dev/null
+++ b/src/main/java/com/fzzy/otherview/gd2022/GdApi9201.view.xml
@@ -0,0 +1,1105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+  <Arguments/>
+  <Context/>
+  <Model>
+    <DataType name="dtMain">
+      <Property name="creationType">com.fzzy.api.entity.Api9201</Property>
+      <PropertyDef name="bizId">
+        <Property/>
+        <Property name="label">涓氬姟id</Property>
+      </PropertyDef>
+      <PropertyDef name="kqdm">
+        <Property/>
+        <Property name="label">搴撳尯浠g爜</Property>
+      </PropertyDef>
+      <PropertyDef name="syncTime">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鍚屾鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="id">
+        <Property/>
+        <Property name="label">id</Property>
+      </PropertyDef>
+      <PropertyDef name="xzbm">
+        <Property/>
+        <Property name="label">鐔忚捀澶囨缂栧彿</Property>
+      </PropertyDef>
+      <PropertyDef name="kqmc">
+        <Property/>
+        <Property name="label">搴撳尯鍚嶇О</Property>
+      </PropertyDef>
+      <PropertyDef name="tbrq">
+        <Property name="dataType">Date</Property>
+        <Property name="label">濉姤鏃ユ湡</Property>
+      </PropertyDef>
+      <PropertyDef name="dwdm">
+        <Property/>
+        <Property name="label">鍗曚綅浠g爜</Property>
+      </PropertyDef>
+      <PropertyDef name="dwmc">
+        <Property/>
+        <Property name="label">鍗曚綅鍚嶇О</Property>
+      </PropertyDef>
+      <PropertyDef name="sqxzrq">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鐢宠鐔忚捀鏃ユ湡</Property>
+      </PropertyDef>
+      <PropertyDef name="fzr">
+        <Property/>
+        <Property name="label">璐熻矗浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="fzrdh">
+        <Property/>
+        <Property name="label">璐熻矗浜虹數璇�</Property>
+      </PropertyDef>
+      <PropertyDef name="xcfzr">
+        <Property/>
+        <Property name="label">鐜板満璐熻矗浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="xcfzrzw">
+        <Property/>
+        <Property name="label">鐜板満璐熻矗浜鸿亴鍔�</Property>
+      </PropertyDef>
+      <PropertyDef name="xcfzrdh">
+        <Property/>
+        <Property name="label">鐜板満璐熻矗浜虹數璇�</Property>
+      </PropertyDef>
+      <PropertyDef name="tbr">
+        <Property/>
+        <Property name="label">濉〃浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="tbrdh">
+        <Property/>
+        <Property name="label">濉〃浜虹數璇�</Property>
+      </PropertyDef>
+      <PropertyDef name="sfszjjxd">
+        <Property/>
+        <Property name="label">鏄惁璁剧疆璀︽垝绾�(涓�)</Property>
+      </PropertyDef>
+      <PropertyDef name="sfszjjxx">
+        <Property/>
+        <Property name="label">鏄惁璁剧疆璀︽垝绾�(瑗�)</Property>
+      </PropertyDef>
+      <PropertyDef name="sfszjjxn">
+        <Property/>
+        <Property name="label">鏄惁璁剧疆璀︽垝绾�(鍗�)</Property>
+      </PropertyDef>
+      <PropertyDef name="sfszjjxb">
+        <Property/>
+        <Property name="label">鏄惁璁剧疆璀︽垝绾�(鍖�)</Property>
+      </PropertyDef>
+      <PropertyDef name="ssxzzystqybqk">
+        <Property/>
+        <Property name="label">瀹炴柦鐔忚捀浣滀笟鏃跺ぉ姘旈鎶ユ儏鍐�</Property>
+      </PropertyDef>
+      <PropertyDef name="xzssgcap">
+        <Property/>
+        <Property name="label">鐔忚捀瀹夋帓鍙婂疄鏂借繃绋�</Property>
+      </PropertyDef>
+      <PropertyDef name="aqfhjyjcccs">
+        <Property/>
+        <Property name="label">瀹夊叏闃叉姢鍙婂簲鎬ュ缃帾鏂�</Property>
+      </PropertyDef>
+      <PropertyDef name="xzzysx">
+        <Property/>
+        <Property name="label">鐔忚捀娉ㄦ剰浜嬮」</Property>
+      </PropertyDef>
+      <PropertyDef name="fileStorageId">
+        <Property/>
+        <Property name="label">鏂囦欢瀛樺偍ID</Property>
+      </PropertyDef>
+      <PropertyDef name="yjmc">
+        <Property/>
+        <Property name="label">鑽墏鍚嶇О</Property>
+      </PropertyDef>
+      <PropertyDef name="yjlx">
+        <Property/>
+        <Property name="label">鑽墏绫诲瀷/鍨嬪彿</Property>
+      </PropertyDef>
+      <PropertyDef name="yjyxqz">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鑽墏鏈夋晥鏈熻嚦</Property>
+      </PropertyDef>
+      <PropertyDef name="lqsl">
+        <Property name="dataType">Double</Property>
+        <Property name="label">棰嗗彇鏁伴噺</Property>
+      </PropertyDef>
+      <PropertyDef name="sysbjfs">
+        <Property/>
+        <Property name="label">鏂借嵂璁惧鍙婃柟寮�</Property>
+      </PropertyDef>
+      <PropertyDef name="zcdd">
+        <Property/>
+        <Property name="label">鏆傚瓨鍦扮偣</Property>
+      </PropertyDef>
+      <PropertyDef name="lqr">
+        <Property/>
+        <Property name="label">棰嗗彇浜�</Property>
+      </PropertyDef>
+      <PropertyDef name="lqrq">
+        <Property name="dataType">Date</Property>
+        <Property name="label">棰嗗彇鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="czbz">
+        <Property/>
+        <Property name="label">鎿嶄綔鏍囧織</Property>
+      </PropertyDef>
+      <PropertyDef name="zhgxsj">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鏇存柊鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="dtl">
+        <Property/>
+        <Property name="label">绮儏鏄庣粏琛�</Property>
+      </PropertyDef>
+      <PropertyDef name="way">
+        <Property/>
+        <Property name="label">鐔忚捀澶囨鏂瑰紡</Property>
+      </PropertyDef>
+      <PropertyDef name="people">
+        <Property/>
+        <Property name="label">绮儏鏄庣粏琛�</Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtGBArea">
+      <Property name="creationType">com.fzzy.api.entity.GbArea</Property>
+      <PropertyDef name="code">
+        <Property></Property>
+        <Property name="label">鎺ュ彛缂栫爜</Property>
+      </PropertyDef>
+      <PropertyDef name="name">
+        <Property></Property>
+        <Property name="label">鍚嶇О</Property>
+      </PropertyDef>
+      <PropertyDef name="parentCode">
+        <Property></Property>
+        <Property name="label">鐖剁紪鐮�</Property>
+      </PropertyDef>
+      <PropertyDef name="disabledTag">
+        <Property></Property>
+        <Property name="label">绂佺敤</Property>
+      </PropertyDef>
+      <PropertyDef name="simple">
+        <Property></Property>
+        <Property name="label">鏄惁榛樿</Property>
+      </PropertyDef>
+      <PropertyDef name="remark">
+        <Property></Property>
+        <Property name="label">澶囨敞璇存槑</Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtLog">
+      <Property name="creationType">com.fzzy.api.entity.ApiLog</Property>
+      <PropertyDef name="id">
+        <Property></Property>
+      </PropertyDef>
+      <PropertyDef name="kqdm">
+        <Property></Property>
+        <Property name="label">搴撳尯浠g爜</Property>
+      </PropertyDef>
+      <PropertyDef name="inteId">
+        <Property></Property>
+        <Property name="label">鎺ュ彛缂栧彿</Property>
+      </PropertyDef>
+      <PropertyDef name="uploadTime">
+        <Property name="dataType">Date</Property>
+        <Property name="label">涓婁紶鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="status">
+        <Property name="dataType">int</Property>
+        <Property name="label">涓婁紶缁撴灉</Property>
+      </PropertyDef>
+      <PropertyDef name="result">
+        <Property></Property>
+        <Property name="label">杩斿洖淇℃伅</Property>
+      </PropertyDef>
+      <PropertyDef name="dataId">
+        <Property></Property>
+        <Property name="label">鎺ュ彛鏁版嵁涓婚敭</Property>
+      </PropertyDef>
+      <PropertyDef name="data">
+        <Property></Property>
+        <Property name="label">鎺ュ彛鎶ユ枃</Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtDtl">
+      <Property name="creationType">com.fzzy.push.gd2022.dto.Gd2022Api1023Dtl</Property>
+      <PropertyDef name="cfdm">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="lspzdm">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="lsxzdm">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="lsdjdm">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="lssl">
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="sf">
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="zz">
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="lw">
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="cw">
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="cnsd">
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="clfs">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="cfmc">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="rkrq">
+        <Property name="dataType">Date</Property>
+      </PropertyDef>
+      <PropertyDef name="hc">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="cldjpd">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="ldtj">
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="kjtj">
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="lddwyyl">
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="kjdwyyl">
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="zyyl">
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="qmx">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="jhxzksrq">
+        <Property name="dataType">Date</Property>
+      </PropertyDef>
+      <PropertyDef name="jhxzjsrq">
+        <Property name="dataType">Date</Property>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtPeople">
+      <Property name="creationType">com.fzzy.push.gd2022.dto.Gd2022Api1023People</Property>
+      <PropertyDef name="xm">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="zw">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="zyzg">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="stzk">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="xzrwfg">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="sfwb">
+        <Property/>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtWay">
+      <Property name="creationType">com.fzzy.push.gd2022.dto.Gd2022Api1023Way</Property>
+      <PropertyDef name="xznd">
+        <Property name="dataType">Double</Property>
+      </PropertyDef>
+      <PropertyDef name="mbsj">
+        <Property name="dataType">Integer</Property>
+      </PropertyDef>
+      <PropertyDef name="xzfs">
+        <Property/>
+      </PropertyDef>
+      <PropertyDef name="sqfs">
+        <Property/>
+      </PropertyDef>
+    </DataType>
+    <DataType name="dtParam">
+      <Property name="creationType">com.fzzy.api.data.ApiParam</Property>
+      <PropertyDef name="kqdm">
+        <Property></Property>
+        <Property name="label">鎵�灞炲簱鍖�</Property>
+      </PropertyDef>
+      <PropertyDef name="start">
+        <Property name="dataType">Date</Property>
+        <Property name="label">寮�濮嬫椂闂�</Property>
+      </PropertyDef>
+      <PropertyDef name="end">
+        <Property name="dataType">Date</Property>
+        <Property name="label">鎴鏃堕棿</Property>
+      </PropertyDef>
+      <PropertyDef name="czbz">
+        <Property></Property>
+        <Property name="label">鎿嶄綔鏍囧織</Property>
+        <Property name="mapping">
+          <Property name="mapValues">${dorado.getDataProvider(&quot;apiTriggerService#trigger&quot;).getResult(&quot;CZBZ&quot;)}</Property>
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+        </Property>
+      </PropertyDef>
+    </DataType>
+  </Model>
+  <View layout="regionPadding:10">
+    <Property name="packages">font-awesome,css-common</Property>
+    <DataSet id="dsMain">
+      <Property name="dataType">[dtMain]</Property>
+      <Property name="dataProvider">gDApi9201PR#pageList</Property>
+      <Property name="pageSize">20</Property>
+    </DataSet>
+    <DataSet id="dsQuery">
+      <ClientEvent name="onReady">self.insert();</ClientEvent>
+      <Property name="dataType">dtParam</Property>
+    </DataSet>
+    <AutoForm>
+      <Property name="dataSet">dsQuery</Property>
+      <Property name="cols">*,*,*,*</Property>
+      <Property name="labelAlign">right</Property>
+      <Property name="labelSeparator">锛�</Property>
+      <Property name="labelWidth">90</Property>
+      <AutoFormElement>
+        <Property name="name">kqdm</Property>
+        <Property name="property">kqdm</Property>
+        <Editor/>
+      </AutoFormElement>
+      <AutoFormElement>
+        <Property name="name">start</Property>
+        <Property name="property">start</Property>
+        <Editor/>
+      </AutoFormElement>
+      <AutoFormElement>
+        <Property name="name">end</Property>
+        <Property name="property">end</Property>
+        <Editor/>
+      </AutoFormElement>
+      <AutoFormElement>
+        <Property name="name">czbz</Property>
+        <Property name="property">czbz</Property>
+        <Property name="trigger">autoMappingDropDown2</Property>
+        <Editor/>
+      </AutoFormElement>
+    </AutoForm>
+    <ToolBar>
+      <ToolBarLabel>
+        <Property name="text">宸ュ叿鏍忥細</Property>
+        <Property name="style">
+          <Property name="font-weight">bold</Property>
+        </Property>
+      </ToolBarLabel>
+      <ToolBarButton>
+        <ClientEvent name="onClick">view.get(&quot;#dsMain&quot;).flushAsync();</ClientEvent>
+        <Property name="caption">鍒锋柊</Property>
+        <Property name="iconClass">fa fa-search</Property>
+        <Property name="width">100</Property>
+        <Property name="exClassName">toolbar-button-push</Property>
+      </ToolBarButton>
+      <ToolBarButton>
+        <ClientEvent name="onClick">view.get(&quot;#dsMain&quot;).insert();&#xD;
+view.get(&quot;#dialogMain&quot;).show();</ClientEvent>
+        <Property name="caption">鏂板</Property>
+        <Property name="iconClass">fa fa-plus</Property>
+        <Property name="width">100</Property>
+        <Property name="exClassName">toolbar-button</Property>
+      </ToolBarButton>
+      <ToolBarButton>
+        <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+if(cur){&#xD;
+	view.get(&quot;#dialogMain&quot;).show();&#xD;
+}else{&#xD;
+	$alert(&quot;璇峰嬀閫夐渶瑕佷慨鏀圭殑鏁版嵁锛�&quot;);&#xD;
+}&#xD;
+</ClientEvent>
+        <Property name="caption">淇敼</Property>
+        <Property name="iconClass">fa fa-pencil</Property>
+        <Property name="width">100</Property>
+        <Property name="exClassName">toolbar-button-warm</Property>
+      </ToolBarButton>
+      <Separator/>
+      <ToolBarButton>
+        <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+if(cur){&#xD;
+	view.get(&quot;#ajaxDelUpdate&quot;).set(&quot;parameter&quot;,cur).execute(function(result){&#xD;
+		if(result){&#xD;
+			$alert(result);&#xD;
+		} else{&#xD;
+			cur.set(&quot;czbz&quot;,&quot;d&quot;);&#xD;
+		}&#xD;
+	});&#xD;
+}else{&#xD;
+	$alert(&quot;璇峰嬀閫夐渶瑕佹爣璁板垹闄ょ殑鏁版嵁锛�&quot;);&#xD;
+}&#xD;
+</ClientEvent>
+        <Property name="caption">鏍囪鍒犻櫎</Property>
+        <Property name="iconClass">fa fa-minus</Property>
+        <Property name="exClassName">toolbar-button-warn</Property>
+        <Property name="width">100</Property>
+      </ToolBarButton>
+      <ToolBarButton>
+        <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+if(cur){&#xD;
+	view.get(&quot;#ajaxDel&quot;).set(&quot;parameter&quot;,cur).execute(function(result){&#xD;
+		if(result){&#xD;
+			$alert(result);&#xD;
+		} else{&#xD;
+			cur.remove();&#xD;
+		}&#xD;
+	});&#xD;
+}else{&#xD;
+	$alert(&quot;璇峰嬀閫夐渶瑕佸垹闄ょ殑鏁版嵁锛�&quot;);&#xD;
+}</ClientEvent>
+        <Property name="caption">鐩存帴鍒犻櫎</Property>
+        <Property name="iconClass">fa fa-minus</Property>
+        <Property name="exClassName">toolbar-button-warn</Property>
+        <Property name="width">100</Property>
+      </ToolBarButton>
+      <Separator/>
+      <ToolBarButton>
+        <ClientEvent name="onClick">var select = view.get(&quot;#dgMain&quot;).get(&quot;selection&quot;);&#xD;
+if(select &amp;&amp; select.length > 0){&#xD;
+	view.get(&quot;#ajaxPush&quot;).set(&quot;parameter&quot;,select).execute(function(result){&#xD;
+		view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
+		$notify(result);&#xD;
+	});&#xD;
+}else{&#xD;
+	$alert(&quot;璇峰嬀閫夐渶瑕佷笂鎶ョ殑鏁版嵁锛�&quot;);&#xD;
+}</ClientEvent>
+        <Property name="caption">鎵嬪姩涓婁紶</Property>
+        <Property name="iconClass">fa fa-hand-o-up</Property>
+        <Property name="exClassName">toolbar-button-push</Property>
+        <Property name="width">100</Property>
+      </ToolBarButton>
+      <Fill/>
+      <ToolBarButton>
+        <ClientEvent name="onClick">//鏄剧ず璁板綍&#xD;
+view.get(&quot;#iFrame&quot;).reload();&#xD;
+view.get(&quot;#dialogLog&quot;).show();</ClientEvent>
+        <Property name="caption">涓婁紶璁板綍</Property>
+        <Property name="iconClass">fa fa-bars</Property>
+        <Property name="exClassName">toolbar-button</Property>
+      </ToolBarButton>
+    </ToolBar>
+    <DataGrid id="dgMain">
+      <Property name="dataSet">dsMain</Property>
+      <Property name="selectionMode">multiRows</Property>
+      <Property name="readOnly">true</Property>
+      <RowNumColumn/>
+      <RowSelectorColumn>
+        <Property name="caption">涓婁紶</Property>
+      </RowSelectorColumn>
+      <DataColumn name="xzbm">
+        <Property name="property">xzbm</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="kqmc">
+        <Property name="property">kqmc</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="tbrq">
+        <Property name="property">tbrq</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="dwdm">
+        <Property name="property">dwdm</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="fzr">
+        <Property name="property">fzr</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="fzrdh">
+        <Property name="property">fzrdh</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="xcfzr">
+        <Property name="property">xcfzr</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="czbz">
+        <Property name="property">czbz</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+      <DataColumn name="zhgxsj">
+        <Property name="property">zhgxsj</Property>
+        <Property name="align">center</Property>
+      </DataColumn>
+    </DataGrid>
+    <ToolBar layoutConstraint="bottom">
+      <Fill/>
+      <DataPilot>
+        <Property name="itemCodes">pageSize,pages</Property>
+        <Property name="dataSet">dsMain</Property>
+      </DataPilot>
+    </ToolBar>
+    <Dialog id="dialogMain" layout="regionPadding:5">
+      <Property name="width">85%</Property>
+      <Property name="closeable">false</Property>
+      <Property name="iconClass">fa fa-sliders</Property>
+      <Property name="caption">鐔忚捀澶囨淇℃伅</Property>
+      <Property name="height">85%</Property>
+      <Buttons>
+        <Button>
+          <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+view.get(&quot;#updateSave&quot;).execute(function(){&#xD;
+	self.get(&quot;parent&quot;).hide();&#xD;
+});</ClientEvent>
+          <Property name="caption">纭畾</Property>
+          <Property name="iconClass">fa fa-check</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+self.get(&quot;parent&quot;).hide();&#xD;
+if(cur) cur.cancel();</ClientEvent>
+          <Property name="caption">鍙栨秷</Property>
+          <Property name="iconClass">fa fa-times</Property>
+        </Button>
+      </Buttons>
+      <Children>
+        <FieldSet layout="regionPadding:5">
+          <Property name="caption">鍩虹淇℃伅</Property>
+          <Buttons/>
+          <Children>
+            <AutoForm>
+              <Property name="dataSet">dsMain</Property>
+              <Property name="cols">*,*,*,*</Property>
+              <Property name="labelPosition">top</Property>
+              <Property name="labelSeparator">:</Property>
+              <AutoFormElement>
+                <Property name="name">xzbm</Property>
+                <Property name="property">xzbm</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">kqdm</Property>
+                <Property name="property">kqdm</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">kqmc</Property>
+                <Property name="property">kqmc</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">tbrq</Property>
+                <Property name="property">tbrq</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">dwdm</Property>
+                <Property name="property">dwdm</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">dwmc</Property>
+                <Property name="property">dwmc</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">sqxzrq</Property>
+                <Property name="property">sqxzrq</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">fzr</Property>
+                <Property name="property">fzr</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">fzrdh</Property>
+                <Property name="property">fzrdh</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">xcfzr</Property>
+                <Property name="property">xcfzr</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">xcfzrzw</Property>
+                <Property name="property">xcfzrzw</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">xcfzrdh</Property>
+                <Property name="property">xcfzrdh</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">tbr</Property>
+                <Property name="property">tbr</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">tbrdh</Property>
+                <Property name="property">tbrdh</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">sfszjjxd</Property>
+                <Property name="property">sfszjjxd</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">sfszjjxx</Property>
+                <Property name="property">sfszjjxx</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">sfszjjxn</Property>
+                <Property name="property">sfszjjxn</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">sfszjjxb</Property>
+                <Property name="property">sfszjjxb</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">ssxzzystqybqk</Property>
+                <Property name="property">ssxzzystqybqk</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">xzssgcap</Property>
+                <Property name="property">xzssgcap</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">aqfhjyjcccs</Property>
+                <Property name="property">aqfhjyjcccs</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">xzzysx</Property>
+                <Property name="property">xzzysx</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">fileStorageId</Property>
+                <Property name="property">fileStorageId</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">yjmc</Property>
+                <Property name="property">yjmc</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">yjlx</Property>
+                <Property name="property">yjlx</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">yjyxqz</Property>
+                <Property name="property">yjyxqz</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">lqsl</Property>
+                <Property name="property">lqsl</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">sysbjfs</Property>
+                <Property name="property">sysbjfs</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">zcdd</Property>
+                <Property name="property">zcdd</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">lqr</Property>
+                <Property name="property">lqr</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">lqrq</Property>
+                <Property name="property">lqrq</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">czbz</Property>
+                <Property name="property">czbz</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">zhgxsj</Property>
+                <Property name="property">zhgxsj</Property>
+                <Editor/>
+              </AutoFormElement>
+            </AutoForm>
+          </Children>
+        </FieldSet>
+        <FieldSet layout="regionPadding:5">
+          <Property name="caption">鐔忚捀浣滀笟浜哄憳淇℃伅</Property>
+          <Buttons/>
+          <Children>
+            <Panel layout="regionPadding:5">
+              <Property name="caption">浜哄憳淇℃伅</Property>
+              <Property name="height">400</Property>
+              <Buttons/>
+              <Children>
+                <Container layout="regionPadding:10">
+                  <Property name="exClassName">bg-color</Property>
+                  <Property name="contentOverflow">hidden</Property>
+                  <Property name="height">55</Property>
+                  <Label layoutConstraint="left">
+                    <Property name="text">鑿滃崟鏍忥細</Property>
+                  </Label>
+                  <Button layoutConstraint="left">
+                    <ClientEvent name="onClick">var list = view.get(&quot;#dsMain.data:#&quot;).get(&quot;way&quot;);&#xD;
+list.insert({});</ClientEvent>
+                    <Property name="caption">鏂板</Property>
+                    <Property name="exClassName">btn-default</Property>
+                    <Property name="iconClass">fa fa-plus</Property>
+                  </Button>
+                  <Button layoutConstraint="left">
+                    <ClientEvent name="onClick">var data = view.get(&quot;#dataPeoples.currentEntity&quot;);&#xD;
+if(!data){&#xD;
+ return;&#xD;
+}&#xD;
+data.remove();</ClientEvent>
+                    <Property name="caption">鍒犻櫎</Property>
+                    <Property name="iconClass">fa fa-minus</Property>
+                    <Property name="exClassName">btn-warn</Property>
+                  </Button>
+                </Container>
+                <DataGrid id="dataPeoples">
+                  <Property name="dataPath">#.people</Property>
+                  <Property name="dataSet">dsMain</Property>
+                  <DataColumn name="xm">
+                    <Property name="property">xm</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="zw">
+                    <Property name="property">zw</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="zyzg">
+                    <Property name="property">zyzg</Property>
+                    <Property name="trigger">listDropZG</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="stzk">
+                    <Property name="property">stzk</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="xzrwfg">
+                    <Property name="property">xzrwfg</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="sfwb">
+                    <Property name="property">sfwb</Property>
+                    <Property name="trigger">listDropYN</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                </DataGrid>
+              </Children>
+              <Tools/>
+            </Panel>
+          </Children>
+        </FieldSet>
+        <FieldSet layout="regionPadding:5">
+          <Property name="caption">鐔忚捀澶囨鏂瑰紡淇℃伅</Property>
+          <Buttons/>
+          <Children>
+            <Panel layout="regionPadding:5">
+              <Property name="caption">鐔忚捀澶囨鏂瑰紡</Property>
+              <Property name="height">400</Property>
+              <Buttons/>
+              <Children>
+                <Container layout="regionPadding:10">
+                  <Property name="exClassName">bg-color</Property>
+                  <Property name="contentOverflow">hidden</Property>
+                  <Property name="height">55</Property>
+                  <Label layoutConstraint="left">
+                    <Property name="text">鑿滃崟鏍忥細</Property>
+                  </Label>
+                  <Button layoutConstraint="left">
+                    <ClientEvent name="onClick">var list = view.get(&quot;#dsMain.data:#&quot;).get(&quot;drugLogWays&quot;);&#xD;
+list.insert({});</ClientEvent>
+                    <Property name="caption">鏂板</Property>
+                    <Property name="exClassName">btn-default</Property>
+                    <Property name="iconClass">fa fa-plus</Property>
+                  </Button>
+                  <Button layoutConstraint="left">
+                    <ClientEvent name="onClick">var data = view.get(&quot;#dataWays.currentEntity&quot;);&#xD;
+if(!data){&#xD;
+ return;&#xD;
+}&#xD;
+data.remove();</ClientEvent>
+                    <Property name="caption">鍒犻櫎</Property>
+                    <Property name="iconClass">fa fa-minus</Property>
+                    <Property name="exClassName">btn-warn</Property>
+                  </Button>
+                </Container>
+                <DataGrid id="dataWays">
+                  <Property name="dataPath">#.way</Property>
+                  <Property name="dataSet">dsMain</Property>
+                  <DataColumn name="xznd">
+                    <Property name="property">xznd</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="mbsj">
+                    <Property name="property">mbsj</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="xzfs">
+                    <Property name="property">xzfs</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="sqfs">
+                    <Property name="property">sqfs</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                </DataGrid>
+              </Children>
+              <Tools/>
+            </Panel>
+          </Children>
+        </FieldSet>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <Dialog id="dialogDtl" layout="regionPadding:5">
+      <Property name="caption">鐔忚捀浣滀笟鐨勫偍绮伯鎯�</Property>
+      <Property name="width">90%</Property>
+      <Property name="iconClass">fa fa-sliders</Property>
+      <Property name="height">90%</Property>
+      <Buttons>
+        <Button>
+          <ClientEvent name="onClick">self.get(&quot;parent&quot;).hide();</ClientEvent>
+          <Property name="caption">纭畾</Property>
+          <Property name="iconClass">fa fa-check</Property>
+        </Button>
+        <Button>
+          <ClientEvent name="onClick">var cur = view.get(&quot;#dgMain&quot;).getCurrentItem();&#xD;
+self.get(&quot;parent&quot;).hide();&#xD;
+if(cur) cur.cancel();</ClientEvent>
+          <Property name="caption">鍙栨秷</Property>
+          <Property name="iconClass">fa fa-times</Property>
+        </Button>
+      </Buttons>
+      <Children>
+        <FieldSet layout="regionPadding:5">
+          <Property name="caption">鐔忚捀浣滀笟鐨勫偍绮伯鎯呮槑缁�</Property>
+          <Buttons/>
+          <Children>
+            <Panel layout="regionPadding:5">
+              <Property name="caption">鍌ㄧ伯绮儏鏄庣粏</Property>
+              <Buttons/>
+              <Children>
+                <Container layout="regionPadding:10">
+                  <Property name="exClassName">bg-color</Property>
+                  <Property name="contentOverflow">hidden</Property>
+                  <Property name="height">55</Property>
+                  <Label layoutConstraint="left">
+                    <Property name="text">鑿滃崟鏍忥細</Property>
+                  </Label>
+                  <Button layoutConstraint="left">
+                    <ClientEvent name="onClick">var list = view.get(&quot;#dsMain.data:#&quot;).get(&quot;dtlList&quot;);&#xD;
+list.insert({});&#xD;
+view.get(&quot;#addDtl&quot;).show();</ClientEvent>
+                    <Property name="caption">鏂板</Property>
+                    <Property name="exClassName">btn-default</Property>
+                    <Property name="iconClass">fa fa-plus</Property>
+                  </Button>
+                  <Button layoutConstraint="left">
+                    <ClientEvent name="onClick">var cur = view.get(&quot;#dgDtl&quot;).getCurrentItem();&#xD;
+if(cur){&#xD;
+	view.get(&quot;#addDtl&quot;).show();&#xD;
+}else{&#xD;
+	$alert(&quot;璇峰嬀閫夐渶瑕佷慨鏀圭殑鏁版嵁锛�&quot;);&#xD;
+}</ClientEvent>
+                    <Property name="caption">淇敼</Property>
+                    <Property name="exClassName">btn-warm</Property>
+                    <Property name="iconClass">fa fa-pencil</Property>
+                  </Button>
+                  <Button layoutConstraint="left">
+                    <ClientEvent name="onClick">var list = view.get(&quot;#dsMain.data:#&quot;).get(&quot;dtls&quot;);&#xD;
+list.remove();&#xD;
+view.get(&quot;#updateDelDtl&quot;).execute(function(){&#xD;
+});</ClientEvent>
+                    <Property name="caption">鍒犻櫎</Property>
+                    <Property name="iconClass">fa fa-minus</Property>
+                    <Property name="exClassName">btn-warn</Property>
+                  </Button>
+                </Container>
+                <DataGrid id="dgDtl">
+                  <Property name="dataPath">#.dtls</Property>
+                  <Property name="dataSet">dsMain</Property>
+                  <DataColumn name="cfdm">
+                    <Property name="property">cfdm</Property>
+                    <Property name="readOnly">true</Property>
+                    <Property name="align">center</Property>
+                    <Property name="width">260</Property>
+                  </DataColumn>
+                  <DataColumn name="lspzdm">
+                    <Property name="property">lspzdm</Property>
+                    <Property name="readOnly">true</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="lsxzdm">
+                    <Property name="property">lsxzdm</Property>
+                    <Property name="readOnly">true</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="cldjpd">
+                    <Property name="property">cldjpd</Property>
+                    <Property name="readOnly">true</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="zyyl">
+                    <Property name="property">zyyl</Property>
+                    <Property name="readOnly">true</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="qmx">
+                    <Property name="property">qmx</Property>
+                    <Property name="readOnly">true</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="jhxzksrq">
+                    <Property name="property">jhxzksrq</Property>
+                    <Property name="readOnly">true</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                  <DataColumn name="jhxzjsrq">
+                    <Property name="property">jhxzjsrq</Property>
+                    <Property name="readOnly">true</Property>
+                    <Property name="align">center</Property>
+                  </DataColumn>
+                </DataGrid>
+              </Children>
+              <Tools/>
+            </Panel>
+          </Children>
+        </FieldSet>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <CustomDropDown id="cddGbArea">
+      <Property name="assignmentMap">xzqhdm=code,xzqhmc=name</Property>
+      <Property name="height">500</Property>
+      <Property name="minHeight">500</Property>
+      <Property name="maxHeight">500</Property>
+      <Property name="width">400</Property>
+      <Container layout="regionPadding:5">
+        <DataSet id="dsGBArea">
+          <Property name="dataProvider">gbAreaPR#findByCode</Property>
+          <Property name="dataType">[dtGBArea]</Property>
+        </DataSet>
+        <Container layout="hbox regionPadding:5">
+          <TextEditor id="key2">
+            <Property name="blankText"> -- 缂栫爜鎴栬�呭悕绉� --</Property>
+            <Property name="width">200</Property>
+          </TextEditor>
+          <Button>
+            <ClientEvent name="onClick">var key = view.get(&quot;#key2.value&quot;);&#xD;
+view.get(&quot;#dsGBArea&quot;).set(&quot;parameter&quot;,{key:key}).flushAsync();</ClientEvent>
+            <Property name="iconClass">fa fa-search</Property>
+            <Property name="caption">鏌ヨ</Property>
+          </Button>
+          <Button>
+            <ClientEvent name="onClick">var data = view.get(&quot;#dsGBArea.data:#&quot;);&#xD;
+if (data) {&#xD;
+	view.get(&quot;#cddGbArea&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+            <Property name="caption">纭畾</Property>
+            <Property name="iconClass">fa fa-check</Property>
+          </Button>
+        </Container>
+        <DataGrid>
+          <ClientEvent name="onDataRowDoubleClick">var data = view.get(&quot;#dsGBArea.data:#&quot;);&#xD;
+if(data){&#xD;
+	view.get(&quot;#cddGbArea&quot;).close(data.toJSON());&#xD;
+}</ClientEvent>
+          <Property name="dataSet">dsGBArea</Property>
+          <Property name="readOnly">true</Property>
+          <DataColumn name="code">
+            <Property name="property">code</Property>
+          </DataColumn>
+          <DataColumn name="name">
+            <Property name="property">name</Property>
+          </DataColumn>
+        </DataGrid>
+      </Container>
+    </CustomDropDown>
+    <Dialog id="dialogLog">
+      <Property name="width">90%</Property>
+      <Property name="height">90%</Property>
+      <Property name="caption">涓婁紶璁板綍</Property>
+      <Property name="iconClass">fa fa-sliders</Property>
+      <Buttons>
+        <Button>
+          <ClientEvent name="onClick">self.get(&quot;parent&quot;).hide();</ClientEvent>
+          <Property name="caption">鍏抽棴</Property>
+          <Property name="iconClass">fa fa-times</Property>
+          <Property name="exClassName">toolbar-button-warn</Property>
+        </Button>
+      </Buttons>
+      <Children>
+        <Container>
+          <IFrame id="iFrame">
+            <Property name="path">com.fzzy.api.view.ApiLog.d</Property>
+            <Property name="userData">
+              <Entity>
+                <Property name="deptId">deptId</Property>
+              </Entity>
+            </Property>
+          </IFrame>
+        </Container>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <UpdateAction id="updateDelDtl">
+      <Property name="dataResolver">gDApi9201PR#updateSave</Property>
+      <Property name="confirmMessage">褰撳墠鏁版嵁鍒犻櫎鍚庢棤娉曟仮澶嶏紝璇风‘璁よ鍒犻櫎涔堬紵</Property>
+      <UpdateItem>
+        <Property name="dataPath">[#current]</Property>
+        <Property name="dataSet">dsMain</Property>
+      </UpdateItem>
+    </UpdateAction>
+    <UpdateAction id="updateSave">
+      <Property name="dataResolver">gDApi1023PR#saveData</Property>
+      <UpdateItem>
+        <Property name="dataPath">[#current]</Property>
+        <Property name="dataSet">dsMain</Property>
+      </UpdateItem>
+    </UpdateAction>
+    <AjaxAction id="ajaxDel">
+      <Property name="confirmMessage">褰撳墠鏁版嵁鍒犻櫎鍚庢棤娉曟仮澶嶏紝璇风‘璁よ鍒犻櫎涔堬紵</Property>
+      <Property name="service">gDApi9201PR#delData</Property>
+    </AjaxAction>
+    <AjaxAction id="ajaxDelUpdate">
+      <Property name="confirmMessage">褰撳墠鏁版嵁鍒犻櫎鍚庢棤娉曟仮澶嶏紝璇风‘璁よ鍒犻櫎涔堬紵</Property>
+      <Property name="service">gDApi9201PR#delUpdate</Property>
+    </AjaxAction>
+    <AjaxAction id="ajaxPush">
+      <Property name="service">gDApi9201PR#pushData</Property>
+    </AjaxAction>
+    <ListDropDown id="listDropYN">
+      <Property name="items">鏄�,鍚�</Property>
+    </ListDropDown>
+    <ListDropDown id="listDropZG">
+      <Property name="items">鍒濈骇,涓骇,楂樼骇</Property>
+    </ListDropDown>
+  </View>
+</ViewConfig>
diff --git a/src/main/java/com/fzzy/otherview/gd2022/pr/GDApi1023PR.java b/src/main/java/com/fzzy/otherview/gd2022/pr/GDApi1023PR.java
index 9101183..0b7860a 100644
--- a/src/main/java/com/fzzy/otherview/gd2022/pr/GDApi1023PR.java
+++ b/src/main/java/com/fzzy/otherview/gd2022/pr/GDApi1023PR.java
@@ -66,7 +66,7 @@
             @Override
             public Predicate toPredicate(Root<ApiInfoData> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
                 List<Predicate> predicates = new ArrayList<>(); //鎵�鏈夌殑鏂█
-                Predicate predicate = criteriaBuilder.equal(root.get("inteId"), ApiCodeConstant.API_1023);
+                Predicate predicate = criteriaBuilder.equal(root.get("inteId"), ApiCodeConstant.API_9201);
                 predicates.add(predicate);
                 if (null != param) {
                     if (StringUtils.isNotBlank(param.getKqdm())) {
@@ -169,7 +169,7 @@
         }
 
         //灏佽鍙傛暟
-        ApiParam param = new ApiParam(apiConf, "21", ApiCodeConstant.API_1023);
+        ApiParam param = new ApiParam(apiConf, "21", ApiCodeConstant.API_9201);
 
         //鑾峰彇瀹炵幇鎺ュ彛
         ApiRemoteService apiService = apiPushManager.getApiRemoteService(param.getPushProtocol());
@@ -184,7 +184,7 @@
             if (responseDto.getSuccess() == 0) {
                 if (Constant.CZBZ_I.equals(data.getCzbz())) {
                     //鎺ㄩ�佹垚鍔燂紝鏇存柊鏁版嵁涓婁紶鐘舵��
-                    List<ApiInfoData> apiInfoList = apiInfoDataRep.getDataByInteAndData(ApiCodeConstant.API_1023, DateFormatUtils.format(data.getTbrq(), "yyyyMMdd") +  data.getXzbm(), data.getKqdm());
+                    List<ApiInfoData> apiInfoList = apiInfoDataRep.getDataByInteAndData(ApiCodeConstant.API_9201, DateFormatUtils.format(data.getTbrq(), "yyyyMMdd") +  data.getXzbm(), data.getKqdm());
                     data.setCzbz(Constant.CZBZ_U);
                     infoData = apiInfoList.get(0);
                     infoData.setUpdateTime(new Date());
diff --git a/src/main/java/com/fzzy/otherview/gd2022/pr/GDApi9201PR.java b/src/main/java/com/fzzy/otherview/gd2022/pr/GDApi9201PR.java
new file mode 100644
index 0000000..159301e
--- /dev/null
+++ b/src/main/java/com/fzzy/otherview/gd2022/pr/GDApi9201PR.java
@@ -0,0 +1,239 @@
+package com.fzzy.otherview.gd2022.pr;
+
+
+import com.bstek.dorado.annotation.DataProvider;
+import com.bstek.dorado.annotation.DataResolver;
+import com.bstek.dorado.annotation.Expose;
+import com.bstek.dorado.data.provider.Page;
+import com.fzzy.api.Constant;
+import com.fzzy.api.data.ApiParam;
+import com.fzzy.api.dto.ResponseDto;
+import com.fzzy.api.entity.Api9201;
+import com.fzzy.api.entity.ApiConfs;
+import com.fzzy.api.service.ApiCommonService;
+import com.fzzy.api.service.ApiPushManager;
+import com.fzzy.api.service.ApiRemoteService;
+import com.fzzy.api.utils.ContextUtil;
+import com.fzzy.api.view.repository.Api9201Rep;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Component;
+
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 骞夸笢鐪佹帴鍙�-9201 鐔忚捀澶囨
+ *
+ * @author czt
+ * @date 2023/8/17
+ */
+@Component(value = "gDApi9201PR")
+public class GDApi9201PR {
+
+    @Autowired
+    private Api9201Rep api9201Rep;
+
+    @Autowired
+    private ApiCommonService apiCommonService;
+
+    @Autowired
+    private ApiPushManager apiPushManager;
+
+    /**
+     * gDApi9201PR#pageList
+     *
+     * @return
+     */
+    @DataProvider
+    public void pageList(Page<Api9201> page, ApiParam param) {
+
+        //澶氬弬鏁板垎椤垫煡璇�
+        Pageable pageable = PageRequest.of(page.getPageNo() - 1, page.getPageSize(), Sort.Direction.DESC, "id");
+
+        if (null == param) {
+            org.springframework.data.domain.Page<Api9201> japPage = api9201Rep.findAll(pageable);
+            page.setEntityCount((int) japPage.getTotalElements());
+            page.setEntities(japPage.getContent());
+
+            return;
+        }
+
+        Specification<Api9201> specification = new Specification<Api9201>() {
+            private static final long serialVersionUID = 1L;
+
+            public Predicate toPredicate(Root<Api9201> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
+                List<Predicate> predicates = new ArrayList<>(); //鎵�鏈夌殑鏂█
+
+                if (StringUtils.isNotBlank(param.getKqdm())) {
+                    Predicate predicate1 = cb.equal(root.get("hwdm"), param.getKqdm());
+                    predicates.add(predicate1);
+                }
+
+                if (StringUtils.isNotBlank(param.getCzbz())) {
+                    Predicate predicate2 = cb.equal(root.get("czbz"), param.getCzbz());
+                    predicates.add(predicate2);
+                }
+                if (null != param.getStart()) {
+                    Predicate predicate3 = cb.greaterThan(root.get("ywrq"), ContextUtil.getCurZero(param.getStart()));
+                    predicates.add(predicate3);
+                }
+
+                if (null != param.getEnd()) {
+                    Predicate predicate4 = cb.lessThan(root.get("ywrq"), ContextUtil.getNextZero(param.getEnd()));
+                    predicates.add(predicate4);
+                }
+                return cb.and(predicates.toArray(new Predicate[0]));
+            }
+        };
+
+        org.springframework.data.domain.Page<Api9201> japPage = api9201Rep.findAll(specification, pageable);
+        page.setEntityCount((int) japPage.getTotalElements());
+        page.setEntities(japPage.getContent());
+    }
+
+
+    /**
+     * gDApi9201PR#updateSave
+     *
+     * @param entity
+     */
+    @DataResolver
+    public void updateSave(Api9201 entity) {
+
+        // 鎵嬪姩灏哾oradoEntity瀵硅薄杞崲涓烘爣鍑咮ean瀵硅薄
+        Api9201 data = new Api9201();
+        BeanUtils.copyProperties(entity, data);
+
+        data.setKqdm(data.getKqdm().trim());
+
+        api9201Rep.save(data);
+    }
+
+    /**
+     * gDApi9201PR#delData
+     *
+     * @param data
+     */
+    @Expose
+    public String delData(Api9201 data) {
+
+        api9201Rep.deleteById(data.getId());
+
+        return null;
+    }
+
+    /**
+     * 鏇存柊鍒犻櫎鏍囪 gDApi9201PR#delUpdate
+     *
+     * @param entity
+     */
+    @Expose
+    public String delUpdate(Api9201 entity) {
+
+        entity.setCzbz(Constant.CZBZ_D);
+
+        Api9201 data = new Api9201();
+        BeanUtils.copyProperties(entity, data);
+
+        api9201Rep.save(data);
+        return null;
+    }
+
+    /**
+     * gDApi9201PR#pushData
+     *
+     * @param items
+     */
+    @Expose
+    public String pushData(List<Api9201> items) {
+
+        //鑾峰彇閰嶇疆
+        String kqdm = items.get(0).getKqdm();
+        ApiConfs apiConf = apiCommonService.getConf(kqdm);
+
+        if (null == apiConf) {
+            return "绯荤粺娌℃湁鑾峰彇鍒板綋鍓嶅簱鍖洪厤缃俊鎭紝鎵ц澶辫触";
+        }
+
+        //鑾峰彇瀹炵幇鎺ュ彛
+        ApiRemoteService apiRemoteService = apiPushManager.getApiRemoteService(apiConf.getPushProtocol());
+        if (null == apiRemoteService) {
+            return "绯荤粺娌℃湁褰撳墠鎺ㄩ�佸崗璁厤缃紝鎵ц澶辫触";
+        }
+
+        return pushDataSingle(items, apiRemoteService, apiConf);
+    }
+
+    /**
+     * 鍗曟潯鏁版嵁json鎺ㄩ��
+     *
+     * @param items
+     * @param apiRemoteService
+     * @param apiConf
+     * @return
+     */
+    private String pushDataSingle(List<Api9201> items, ApiRemoteService apiRemoteService, ApiConfs apiConf) {
+        ResponseDto responseDto;
+        String result = "";
+
+        //灏佽鍙傛暟
+        ApiParam param = new ApiParam(apiConf, Constant.API_CATEGORY_13, Constant.API_CODE_9201);
+
+        Api9201 d;
+        for (Api9201 data : items) {
+            d = new Api9201();
+            BeanUtils.copyProperties(data, d);
+            param.setBizId(data.getBizId());
+            responseDto = apiRemoteService.pushData(param, apiConf, d);
+
+            result += responseDto.toString();
+            if (responseDto.getSuccess() == 0) {
+                if (Constant.CZBZ_I.equals(d.getCzbz())) {
+                    api9201Rep.updateStatus(data.getDwdm(), Constant.CZBZ_U);
+                }
+            }
+        }
+        return result;
+    }
+
+    /**
+     * 闆嗗悎褰㈠紡鎺ㄩ��
+     *
+     * @param items
+     * @param apiRemoteService
+     * @param apiConf
+     * @return
+     */
+    private String pushDataList(List<Api9201> items, ApiRemoteService apiRemoteService, ApiConfs apiConf) {
+
+        //灏佽鍙傛暟
+        ApiParam param = new ApiParam(apiConf, Constant.API_CATEGORY_13, Constant.API_CODE_9201);
+
+
+        //鎺ㄩ�侊紝鏁版嵁涓洪泦鍚堝舰寮�
+        ResponseDto responseDto = apiRemoteService.pushData(param, apiConf, items);
+        if (responseDto.getSuccess() == 0) {
+            //鎺ㄩ�佹垚鍔燂紝鏇存柊鏁版嵁涓婁紶鐘舵��
+            for (Api9201 data : items) {
+                if (Constant.CZBZ_I.equals(data.getCzbz())) {
+                    //鏇存柊鐘舵��
+                    api9201Rep.updateStatus(data.getDwdm(), Constant.CZBZ_U);
+                }
+            }
+        }
+
+        return responseDto.toString();
+    }
+
+}
diff --git a/src/main/java/com/fzzy/push/gd2022/ApiCodeConstant.java b/src/main/java/com/fzzy/push/gd2022/ApiCodeConstant.java
index f375a67..5463f5b 100644
--- a/src/main/java/com/fzzy/push/gd2022/ApiCodeConstant.java
+++ b/src/main/java/com/fzzy/push/gd2022/ApiCodeConstant.java
@@ -9,6 +9,7 @@
     public static String API_1023 = "1023";
     public static String API_2001 = "2001";
     public static String API_2002 = "2002";
+    public static String API_9201 = "9201";
     /**
      * 鎺ュ彛缂栫爜-1001 韬唤璁よ瘉鎺ュ彛
      */
diff --git a/src/main/java/com/fzzy/web/TestController.java b/src/main/java/com/fzzy/web/TestController.java
index 9d3d200..4c128c0 100644
--- a/src/main/java/com/fzzy/web/TestController.java
+++ b/src/main/java/com/fzzy/web/TestController.java
@@ -1,4 +1,5 @@
 package com.fzzy.web;
+
 import com.bstek.dorado.util.DateUtils;
 import com.fzzy.api.data.ApiParam;
 import com.fzzy.async.fzzy30.Fzzy30SyncService12;
@@ -8,6 +9,21 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
+import ws.schild.jave.Encoder;
+import ws.schild.jave.EncoderException;
+import ws.schild.jave.MultimediaObject;
+import ws.schild.jave.encode.AudioAttributes;
+import ws.schild.jave.encode.EncodingAttributes;
+import ws.schild.jave.encode.VideoAttributes;
+import ws.schild.jave.info.AudioInfo;
+import ws.schild.jave.info.VideoSize;
+
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.math.BigDecimal;
 
 /**
  * @author vince.xu
@@ -22,23 +38,191 @@
 public class TestController {
     @Autowired
     private Fzzy30SyncService12 fzzySyncService12;
+
     /**
      *
      */
     @RequestMapping(value = "test", method = RequestMethod.GET)
-    public String  test(@RequestParam(name = "kqdm")String kqdm, @RequestParam(name = "deptId")String deptId, @RequestParam(name = "start")String start,@RequestParam(name = "end") String end) {
+    public String test(@RequestParam(name = "kqdm") String kqdm, @RequestParam(name = "deptId") String deptId, @RequestParam(name = "start") String start, @RequestParam(name = "end") String end) {
         try {
             ApiParam apiParam = new ApiParam();
             apiParam.setKqdm(kqdm);
             apiParam.setDeptId(deptId);
-            apiParam.setStart(DateUtils.parse("yyyy-MM-dd HH:mm:ss",start));
-            apiParam.setEnd(DateUtils.parse("yyyy-MM-dd HH:mm:ss",end));
+            apiParam.setStart(DateUtils.parse("yyyy-MM-dd HH:mm:ss", start));
+            apiParam.setEnd(DateUtils.parse("yyyy-MM-dd HH:mm:ss", end));
             fzzySyncService12.syncData(apiParam);
 
         } catch (Exception e) {
-            log.error(e.getMessage(),e);
+            log.error(e.getMessage(), e);
             e.printStackTrace();
         }
         return "";
     }
+
+
+    public static void main(String[] args) throws EncoderException {
+        // 鍘嬬缉鍓嶆枃浠惰矾寰�
+        File source = new File("D:\\IGDS\\FILE\\COMMON\\202412\\20241218100601.mp4");
+        // 鍘嬬缉鍚庣殑鏂囦欢璺緞
+        File target = new File("D:\\IGDS\\FILE\\COMMON\\202412\\202412181006.mp4");
+        compre(source, target, 1);
+
+    }
+
+    /**
+     * 瑙嗛鍘嬬缉
+     *
+     * @param source 婧愭枃浠�
+     * @param target 鐩爣鏂囦欢
+     * @param rate   鍘嬬缉姣�
+     */
+    public static void compre(File source, File target, Integer rate) throws EncoderException {
+        try {
+            System.out.println("---------------寮�濮嬪帇缂�---------------");
+            long start = System.currentTimeMillis();
+
+            // 闊抽缂栫爜灞炴�ч厤缃�
+            AudioAttributes audio = new AudioAttributes();
+            audio.setCodec("libmp3lame");
+            // 璁剧疆闊抽姣旂壒鐜�,鍗曚綅:b (姣旂壒鐜囪秺楂橈紝娓呮櫚搴�/闊宠川瓒婂ソ锛屽綋鐒舵枃浠朵篃灏辫秺澶� 56000 = 56kb)
+            // audio.setBitRate(new Integer(56_000));
+            audio.setBitRate(new Integer(10));
+            // 璁剧疆閲嶆柊缂栫爜鐨勯煶棰戞祦涓娇鐢ㄧ殑澹伴亾鏁帮紙1 =鍗曞0閬擄紝2 = 鍙屽0閬擄紙绔嬩綋澹帮級锛�
+            audio.setChannels(1);
+            // 閲囨牱鐜囪秺楂樺0闊崇殑杩樺師搴﹁秺濂斤紝鏂囦欢瓒婂ぇ
+            // audio.setSamplingRate(new Integer(44100));
+            audio.setSamplingRate(new Integer(22050));
+            // 瑙嗛缂栫爜灞炴�ч厤缃�
+            VideoAttributes video = new VideoAttributes();
+            // 璁剧疆缂栫爜
+            video.setCodec("mpeg4");
+            //璁剧疆闊抽姣旂壒鐜�,鍗曚綅:b (姣旂壒鐜囪秺楂橈紝娓呮櫚搴�/闊宠川瓒婂ソ锛屽綋鐒舵枃浠朵篃灏辫秺澶� 5600000 = 5600kb)
+            // video.setBitRate(new Integer(5_600_000 / rate));
+            video.setBitRate(new Integer(10 / rate));
+
+            // 璁剧疆瑙嗛甯х巼锛堝抚鐜囪秺浣庯紝瑙嗛浼氬嚭鐜版柇灞傦紝瓒婇珮璁╀汉鎰熻瓒婅繛缁級,杩欓噷 闄�1000鏄负浜嗗崟浣嶈浆鎹�
+            video.setFrameRate(new Integer(15));
+
+
+            // 缂栫爜璁剧疆
+            EncodingAttributes attr = new EncodingAttributes();
+            attr.setOutputFormat("mp4");
+            attr.setAudioAttributes(audio);
+            attr.setVideoAttributes(video);
+
+            // 璁剧疆鍊肩紪鐮�
+            Encoder ec = new Encoder();
+            ec.encode(new MultimediaObject(source), target, attr);
+
+
+            System.out.println("---------------缁撴潫鍘嬬缉---------------");
+            long end = System.currentTimeMillis();
+            System.out.println("鍘嬬缉鍓嶅ぇ灏忥細" + source.length() + " 鍘嬬缉鍚庡ぇ灏忥細" + target.length());
+            System.out.println("鍘嬬缉鑰楁椂锛�" + (end - start));
+
+        } catch (EncoderException e) {
+            e.printStackTrace();
+        } catch (IllegalArgumentException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * 浼犺棰慒ile瀵硅薄锛堣繖鏄竴涓叿浣撶殑鏂囦欢锛夛紝杩斿洖鍘嬬缉鍚嶧ile瀵硅薄淇℃伅
+     *
+     * @param source
+     */
+    public static File compressionVideo(File source, String picName) {
+        if (source == null) {
+            return null;
+        }
+        String newPath = source.getAbsolutePath().substring(0, source.getAbsolutePath().lastIndexOf(File.separator)).concat(File.separator).concat(picName);
+        File target = new File(newPath);
+        try {
+            MultimediaObject object = new MultimediaObject(source);
+            AudioInfo audioInfo = object.getInfo().getAudio();
+            // 鏍规嵁瑙嗛澶у皬鏉ュ垽鏂槸鍚﹂渶瑕佽繘琛屽帇缂�,
+            int maxSize = 5;
+            double mb = Math.ceil(source.length() / 1048576);
+            int second = (int) object.getInfo().getDuration() / 1000;
+            BigDecimal bd = new BigDecimal(String.format("%.4f", mb / second));
+            System.out.println("寮�濮嬪帇缂╄棰戜簡--> 瑙嗛姣忕骞冲潎 " + bd + " MB ");
+            // 瑙嗛 > 5MB, 鎴栬�呮瘡绉� > 0.5 MB 鎵嶅仛鍘嬬缉锛� 涓嶉渶瑕佺殑璇濆彲浠ユ妸鍒ゆ柇鍘绘帀
+            boolean temp = mb > maxSize || bd.compareTo(new BigDecimal(0.5)) > 0;
+//            if(temp){
+            long time = System.currentTimeMillis();
+            //TODO 瑙嗛灞炴�ц缃�
+            int maxBitRate = 128000;
+            int maxSamplingRate = 44100;
+            int bitRate = 800000;
+            int maxFrameRate = 20;
+            int maxWidth = 1280;
+
+            AudioAttributes audio = new AudioAttributes();
+            // 璁剧疆閫氱敤缂栫爜鏍煎紡10                   audio.setCodec("aac");
+            // 璁剧疆鏈�澶у�硷細姣旂壒鐜囪秺楂橈紝娓呮櫚搴�/闊宠川瓒婂ソ
+            // 璁剧疆闊抽姣旂壒鐜�,鍗曚綅:b (姣旂壒鐜囪秺楂橈紝娓呮櫚搴�/闊宠川瓒婂ソ锛屽綋鐒舵枃浠朵篃灏辫秺澶� 128000 = 182kb)
+            if (audioInfo.getBitRate() > maxBitRate) {
+                audio.setBitRate(new Integer(maxBitRate));
+            }
+
+            // 璁剧疆閲嶆柊缂栫爜鐨勯煶棰戞祦涓娇鐢ㄧ殑澹伴亾鏁帮紙1 =鍗曞0閬擄紝2 = 鍙屽0閬擄紙绔嬩綋澹帮級锛夈�傚鏋滄湭璁剧疆浠讳綍澹伴亾鍊硷紝鍒欑紪鐮佸櫒灏嗛�夋嫨榛樿鍊� 0銆�
+            audio.setChannels(audioInfo.getChannels());
+            // 閲囨牱鐜囪秺楂樺0闊崇殑杩樺師搴﹁秺濂斤紝鏂囦欢瓒婂ぇ
+            // 璁剧疆闊抽閲囨牱鐜囷紝鍗曚綅锛氳但鍏� hz
+            // 璁剧疆缂栫爜鏃跺�欑殑闊抽噺鍊硷紝鏈缃负0,濡傛灉256锛屽垯闊抽噺鍊间笉浼氭敼鍙�
+            // audio.setVolume(256);
+            if (audioInfo.getSamplingRate() > maxSamplingRate) {
+                audio.setSamplingRate(maxSamplingRate);
+            }
+
+            //TODO 瑙嗛缂栫爜灞炴�ч厤缃�
+            ws.schild.jave.info.VideoInfo videoInfo = object.getInfo().getVideo();
+            VideoAttributes video = new VideoAttributes();
+            video.setCodec("h264");
+            //璁剧疆闊抽姣旂壒鐜�,鍗曚綅:b (姣旂壒鐜囪秺楂橈紝娓呮櫚搴�/闊宠川瓒婂ソ锛屽綋鐒舵枃浠朵篃灏辫秺澶� 800000 = 800kb)
+            if (videoInfo.getBitRate() > bitRate) {
+                video.setBitRate(bitRate);
+            }
+
+            // 瑙嗛甯х巼锛�15 f / s  甯х巼瓒婁綆锛屾晥鏋滆秺宸�
+            // 璁剧疆瑙嗛甯х巼锛堝抚鐜囪秺浣庯紝瑙嗛浼氬嚭鐜版柇灞傦紝瓒婇珮璁╀汉鎰熻瓒婅繛缁級锛岃棰戝抚鐜囷紙Frame rate锛夋槸鐢ㄤ簬娴嬮噺鏄剧ず甯ф暟鐨勯噺搴︺�傛墍璋撶殑娴嬮噺鍗曚綅涓烘瘡绉掓樉绀哄抚鏁�(Frames per Second锛岀畝锛欶PS锛夋垨鈥滆但鍏光�濓紙Hz锛夈��
+            if (videoInfo.getFrameRate() > maxFrameRate) {
+                video.setFrameRate(maxFrameRate);
+            }
+
+            // 闄愬埗瑙嗛瀹介珮
+            int width = videoInfo.getSize().getWidth();
+            int height = videoInfo.getSize().getHeight();
+            if (width > maxWidth) {
+                float rat = (float) width / maxWidth;
+                video.setSize(new VideoSize(maxWidth, (int) (height / rat)));
+            }
+
+            EncodingAttributes attr = new EncodingAttributes();
+//                attr.setFormat("mp4");
+            attr.setAudioAttributes(audio);
+            attr.setVideoAttributes(video);
+
+            // 閫熷害鏈�蹇殑鍘嬬缉鏂瑰紡锛� 鍘嬬缉閫熷害 浠庡揩鍒版參锛� ultrafast, superfast, veryfast, faster, fast, medium,  slow, slower, veryslow and placebo.
+//                attr.setPreset(PresetUtil.VERYFAST);
+//                attr.setCrf(27);
+//                // 璁剧疆绾跨▼鏁�
+//                attr.setEncodingThreads(Runtime.getRuntime().availableProcessors()/2);
+
+            Encoder encoder = new Encoder();
+            encoder.encode(new MultimediaObject(source), target, attr);
+            System.out.println("鍘嬬缉鎬昏�楁椂锛�" + (System.currentTimeMillis() - time) / 1000);
+            return target;
+//            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (target.length() > 0) {
+                source.delete();
+            }
+        }
+        return source;
+    }
 }
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index bbeeabd..86a70b3 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,7 +1,7 @@
 ##########################  Server   ##########################
 spring:
   profiles:
-    active: dev
+    active: pro
   application:
     name: igds-api
   main:
diff --git a/src/main/resources/templates/home/home.html b/src/main/resources/templates/home/home.html
index 4b4b9b3..692acde 100644
--- a/src/main/resources/templates/home/home.html
+++ b/src/main/resources/templates/home/home.html
@@ -340,6 +340,9 @@
                                     <dd>
                                         <a lay-href="com.fzzy.otherview.gd2022.GdApi1023.d">鐔忚捀澶囨</a>
                                     </dd>
+                                    <dd>
+                                        <a lay-href="com.fzzy.otherview.gd2022.GdApi9201.d">鐔忚捀澶囨鏂�</a>
+                                    </dd>
                                 </dl>
                             </dd>
                             <dd>

--
Gitblit v1.9.3