XMTT 7 gadi atpakaļ
vecāks
revīzija
9211e25375

+ 199 - 0
src/main/java/com/ekexiu/console/system/dao/ResourceTmpDao.java

@ -0,0 +1,199 @@
1
package com.ekexiu.console.system.dao;
2
3
import com.ekexiu.console.system.po.ResourceTmp;
4
import org.jfw.apt.orm.annotation.dao.DAO;
5
import org.jfw.apt.orm.annotation.dao.method.operator.Insert;
6
import org.jfw.util.PageQueryResult;
7
8
import java.sql.Connection;
9
import java.sql.PreparedStatement;
10
import java.sql.ResultSet;
11
import java.sql.SQLException;
12
import java.util.ArrayList;
13
import java.util.Collections;
14
import java.util.List;
15
16
/**
17
 * Created by TT on 2017/6/5.
18
 */
19
@DAO
20
public abstract class ResourceTmpDao {
21
    @Insert
22
    public abstract int insert(Connection con, ResourceTmp rt) throws SQLException;
23
24
    public PageQueryResult<ResourceTmp> query(Connection con, String orgName, String key, int pageSize, int pageNo) throws SQLException{
25
        int total = 0;
26
        int index = 1;
27
        PageQueryResult<ResourceTmp> queryResult = new PageQueryResult<ResourceTmp>();
28
        boolean hasKey = null != key;
29
        StringBuilder sql = new StringBuilder();
30
        sql.append(" WHERE ORG_NAME = ?");
31
        if(hasKey){
32
            sql.append(" AND (NAME LIKE ? OR DOMAIN LIKE ? OR MAJOR_FUNC LIKE ?)");
33
        }
34
        StringBuilder whereSql = sql;
35
        sql = new StringBuilder();
36
        sql.append("SELECT COUNT(1) FROM RESOURCE_TMP");
37
        sql.append(whereSql);
38
        PreparedStatement ps = con.prepareStatement(sql.toString());
39
        try{
40
            ps.setString(index++, orgName);
41
            if(hasKey){
42
                ps.setString(index++, key);
43
                ps.setString(index++, key);
44
                ps.setString(index++, key);
45
            }
46
            queryResult.setPageSize(pageSize);
47
            ResultSet rs = ps.executeQuery();
48
            try{
49
                rs.next();
50
                total = rs.getInt(1);
51
            }finally{
52
                try{rs.close();}catch(Exception e1){}
53
            }
54
        }finally{
55
            try{ps.close();}catch(Exception e2){}
56
        }
57
        queryResult.setTotal(total);
58
        if(0 == total){
59
            queryResult.setPageNo(1);
60
            queryResult.setData(Collections.<ResourceTmp>emptyList());
61
            return queryResult;
62
        }
63
        index = 1;
64
        boolean firstPage = (1 == pageNo);
65
        sql = new StringBuilder();
66
        if(firstPage){
67
            queryResult.setPageNo(1);
68
            sql.append("SELECT ID,NAME,DOMAIN,COMP,SPEC,IMG,PARAMETER,MAJOR_FUNC,COST,ENABLED_TIME,COMMUNICATION,ORG_NAME,CORPORATION,LINKMAN,TEL,EMAIL,ADDR,ZIP_CODE,CREATE_TIME,MODIFY_TIME FROM RESOURCE_TMP");
69
            sql.append(whereSql);
70
            sql.append(" ORDER BY ID");
71
            sql.append(" LIMIT ").append(pageSize);
72
        }else{
73
            int pageNum = total / pageSize;
74
            if(total % pageSize != 0){
75
                ++pageNum;
76
            }
77
            if(pageNo > pageNum){
78
                pageNo = pageNum;
79
            }
80
            queryResult.setPageNo(pageNo);
81
            --pageNo;
82
            int offset = (pageNo * pageSize);
83
            sql.append("SELECT ID,NAME,DOMAIN,COMP,SPEC,IMG,PARAMETER,MAJOR_FUNC,COST,ENABLED_TIME,COMMUNICATION,ORG_NAME,CORPORATION,LINKMAN,TEL,EMAIL,ADDR,ZIP_CODE,CREATE_TIME,MODIFY_TIME FROM RESOURCE_TMP");
84
            sql.append(whereSql);
85
            sql.append(" ORDER BY ID");
86
            sql.append(" LIMIT ").append(pageSize).append(" OFFSET ").append(offset);
87
        }
88
        ps = con.prepareStatement(sql.toString());
89
        try{
90
            ps.setString(index++, orgName);
91
            if(hasKey){
92
                ps.setString(index++, key);
93
                ps.setString(index++, key);
94
                ps.setString(index++, key);
95
            }
96
            ResultSet rs = ps.executeQuery();
97
            try{
98
                List<ResourceTmp> resourceTmps = new ArrayList<ResourceTmp>();
99
                queryResult.setData(resourceTmps);
100
                int size = 0;
101
                while((size<pageSize) && rs.next()){
102
                    ++size;
103
                    ResourceTmp resourceTmp =  new ResourceTmp();
104
                    resourceTmp.setId(rs.getString(1));
105
                    resourceTmp.setName(rs.getString(2));
106
                    String domain = rs.getString(3);
107
                    if(rs.wasNull()){
108
                        domain = null;
109
                    }
110
                    resourceTmp.setDomain(domain);
111
                    String comp = rs.getString(4);
112
                    if(rs.wasNull()){
113
                        comp = null;
114
                    }
115
                    resourceTmp.setComp(comp);
116
                    String spec = rs.getString(5);
117
                    if(rs.wasNull()){
118
                        spec = null;
119
                    }
120
                    resourceTmp.setSpec(spec);
121
                    String img = rs.getString(6);
122
                    if(rs.wasNull()){
123
                        img = null;
124
                    }
125
                    resourceTmp.setImg(img);
126
                    String parameter = rs.getString(7);
127
                    if(rs.wasNull()){
128
                        parameter = null;
129
                    }
130
                    resourceTmp.setParameter(parameter);
131
                    String majorFunc = rs.getString(8);
132
                    if(rs.wasNull()){
133
                        majorFunc = null;
134
                    }
135
                    resourceTmp.setMajorFunc(majorFunc);
136
                    Double cost = rs.getDouble(9);
137
                    if(rs.wasNull()){
138
                        cost = null;
139
                    }
140
                    resourceTmp.setCost(cost);
141
                    String enabledTime = rs.getString(10);
142
                    if(rs.wasNull()){
143
                        enabledTime = null;
144
                    }
145
                    resourceTmp.setEnabledTime(enabledTime);
146
                    String communication = rs.getString(11);
147
                    if(rs.wasNull()){
148
                        communication = null;
149
                    }
150
                    resourceTmp.setCommunication(communication);
151
                    String orgname = rs.getString(12);
152
                    if(rs.wasNull()){
153
                        orgname = null;
154
                    }
155
                    resourceTmp.setOrgName(orgname);
156
                    String corporation = rs.getString(13);
157
                    if(rs.wasNull()){
158
                        corporation = null;
159
                    }
160
                    resourceTmp.setCorporation(corporation);
161
                    String linkman = rs.getString(14);
162
                    if(rs.wasNull()){
163
                        linkman = null;
164
                    }
165
                    resourceTmp.setLinkman(linkman);
166
                    String tel = rs.getString(15);
167
                    if(rs.wasNull()){
168
                        tel = null;
169
                    }
170
                    resourceTmp.setTel(tel);
171
                    String email = rs.getString(16);
172
                    if(rs.wasNull()){
173
                        email = null;
174
                    }
175
                    resourceTmp.setEmail(email);
176
                    String addr = rs.getString(17);
177
                    if(rs.wasNull()){
178
                        addr = null;
179
                    }
180
                    resourceTmp.setAddr(addr);
181
                    String zipCode = rs.getString(18);
182
                    if(rs.wasNull()){
183
                        zipCode = null;
184
                    }
185
                    resourceTmp.setZipCode(zipCode);
186
                    resourceTmp.setCreateTime(rs.getString(19));
187
                    resourceTmp.setModifyTime(rs.getString(20));
188
                    resourceTmps.add(resourceTmp);
189
                }
190
                return queryResult;
191
            }finally{
192
                try{rs.close();}catch(Exception e3){}
193
            }
194
        }finally{
195
            try{ps.close();}catch(Exception e4){}
196
        }
197
    }
198
199
}

+ 194 - 0
src/main/java/com/ekexiu/console/system/po/ResourceTmp.java

@ -0,0 +1,194 @@
1
package com.ekexiu.console.system.po;
2
3
import com.ekexiu.console.basepo.CreateTimeSupported;
4
import com.ekexiu.console.basepo.ModifyTimeSupported;
5
import org.jfw.apt.orm.annotation.entry.Column;
6
import org.jfw.apt.orm.annotation.entry.PrimaryKey;
7
import org.jfw.apt.orm.annotation.entry.Table;
8
import org.jfw.apt.orm.core.enums.DE;
9
10
/**
11
 * Created by TT on 2017/6/5.
12
 */
13
@Table
14
@PrimaryKey("id")
15
public class ResourceTmp implements CreateTimeSupported,ModifyTimeSupported {
16
    private String id;
17
    //设备名称
18
    private String name;
19
    //所属领域
20
    private String domain;
21
    //所在单位
22
    private String comp;
23
    //厂商及型号规格
24
    private String spec;
25
    //图片
26
    private String img;
27
    //性能参数
28
    private String parameter;
29
    //主要功能及应用领域
30
    private String majorFunc;
31
    //仪器原值(万元)
32
    private Double cost;
33
    //启用时间
34
    private String enabledTime;
35
    //联系方式
36
    private String communication;
37
    //机构名称
38
    private String orgName;
39
    //负责人
40
    private String corporation ;
41
    //联系人
42
    private String linkman;
43
    //电话
44
    private String tel;
45
    //邮箱
46
    private String email;
47
    //地址
48
    private String addr;
49
    //邮编
50
    private String zipCode;
51
    private String createTime;
52
    private String modifyTime;
53
54
    @Column(DE.string_de)
55
    public String getId() {
56
        return id;
57
    }
58
    public void setId(String id) {
59
        this.id = id;
60
    }
61
    @Column(DE.text_de)
62
    public String getName() {
63
        return name;
64
    }
65
    public void setName(String name) {
66
        this.name = name;
67
    }
68
    @Column(DE.Text_de)
69
    public String getDomain() {
70
        return domain;
71
    }
72
    public void setDomain(String domain) {
73
        this.domain = domain;
74
    }
75
    @Column(DE.Text_de)
76
    public String getComp() {
77
        return comp;
78
    }
79
    public void setComp(String comp) {
80
        this.comp = comp;
81
    }
82
    @Column(DE.Text_de)
83
    public String getSpec() {
84
        return spec;
85
    }
86
    public void setSpec(String spec) {
87
        this.spec = spec;
88
    }
89
    @Column(DE.Text_de)
90
    public String getImg() {
91
        return img;
92
    }
93
    public void setImg(String img) {
94
        this.img = img;
95
    }
96
    @Column(DE.Text_de)
97
    public String getParameter() {
98
        return parameter;
99
    }
100
    public void setParameter(String parameter) {
101
        this.parameter = parameter;
102
    }
103
    @Column(DE.Text_de)
104
    public String getMajorFunc() {
105
        return majorFunc;
106
    }
107
    public void setMajorFunc(String majorFunc) {
108
        this.majorFunc = majorFunc;
109
    }
110
    @Column(DE.Double_de)
111
    public Double getCost() {
112
        return cost;
113
    }
114
    public void setCost(Double cost) {
115
        this.cost = cost;
116
    }
117
    @Column(DE.Text_de)
118
    public String getEnabledTime() {
119
        return enabledTime;
120
    }
121
    public void setEnabledTime(String enabledTime) {
122
        this.enabledTime = enabledTime;
123
    }
124
    @Column(DE.Text_de)
125
    public String getCommunication() {
126
        return communication;
127
    }
128
129
    public void setCommunication(String communication) {
130
        this.communication = communication;
131
    }
132
    @Column(DE.Text_de)
133
    public String getOrgName() {
134
        return orgName;
135
    }
136
    public void setOrgName(String orgName) {
137
        this.orgName = orgName;
138
    }
139
    @Column(DE.Text_de)
140
    public String getCorporation() {
141
        return corporation;
142
    }
143
    public void setCorporation(String corporation) {
144
        this.corporation = corporation;
145
    }
146
    @Column(DE.Text_de)
147
    public String getLinkman() {
148
        return linkman;
149
    }
150
    public void setLinkman(String linkman) {
151
        this.linkman = linkman;
152
    }
153
    @Column(DE.Text_de)
154
    public String getTel() {
155
        return tel;
156
    }
157
    public void setTel(String tel) {
158
        this.tel = tel;
159
    }
160
    @Column(DE.Text_de)
161
    public String getEmail() {
162
        return email;
163
    }
164
    public void setEmail(String email) {
165
        this.email = email;
166
    }
167
    @Column(DE.Text_de)
168
    public String getAddr() {
169
        return addr;
170
    }
171
    public void setAddr(String addr) {
172
        this.addr = addr;
173
    }
174
    @Column(DE.Text_de)
175
    public String getZipCode() {
176
        return zipCode;
177
    }
178
    public void setZipCode(String zipCode) {
179
        this.zipCode = zipCode;
180
    }
181
    public String getCreateTime() {
182
        return createTime;
183
    }
184
    public void setCreateTime(String createTime) {
185
        this.createTime = createTime;
186
    }
187
    public String getModifyTime() {
188
        return modifyTime;
189
    }
190
    public void setModifyTime(String modifyTime) {
191
        this.modifyTime = modifyTime;
192
    }
193
194
}

+ 344 - 0
src/main/java/com/ekexiu/console/system/service/ResourceTmpService.java

@ -0,0 +1,344 @@
1
package com.ekexiu.console.system.service;
2
3
import com.ekexiu.console.service.Upload;
4
import com.ekexiu.console.system.dao.ResourceTmpDao;
5
import com.ekexiu.console.system.po.ResourceTmp;
6
import org.jfw.apt.annotation.Autowrie;
7
import org.jfw.apt.web.annotation.Path;
8
import org.jfw.apt.web.annotation.operate.Post;
9
import org.jfw.apt.web.annotation.param.JdbcConn;
10
import org.jfw.util.JpgUtil;
11
import org.jfw.util.StringUtil;
12
import org.jfw.util.codec.Base64;
13
import org.jfw.util.json.JsonService;
14
15
import java.io.*;
16
import java.sql.Connection;
17
import java.sql.DriverManager;
18
import java.sql.SQLException;
19
20
/**
21
 * Created by TT on 2017/6/5.
22
 */
23
@Path("/resourceTmp")
24
public class ResourceTmpService extends Upload {
25
    private String defaultphoto = "/9j/4AAQSkZJRgABAQEAYABgAAD/4AAcT2NhZCRSZXY6IDE4ODcxICQAAAAAAAAAACD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAEsAlgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK4XWvHeraTrlzb/AOjNHHKAMx4IUkDru+p59DnABI7qvOfiTYrBrKzMpZZkDNgbWzg8jqRxvAHYk9TtwAPj+K2qMF3RWPzY4EbLj7vct7kcgYwTxhgs8Xxbum62cHJ7yFc8L7cctnnptYHGM1ya9s89M44z0z/7N+Y64O4XtnnpnHGemf8A2b8x1wdwB2kXxfVyu7T2QN/02zjhTn7vTkj14PHBxPF8XLWZlVbG+3NjCkL3xgdcZ5H059DjhF7Z56Zxxnpn/wBm/MdcHcDtu56Zxxnpn/2b8x1wdwB30HxbsZk3fZb5cruA2ocjAOeG/wBpevPzjIFWYvidpMzYD3HUAEwNySwUdu5K/n9cecFQ64cBgfvDHXpn8/m9fvDrg7g/P9/5t33v9rPX890nr9/vzuAPTE+Iujt1utv1jb/D3/n6HFpfGOlurFb+1O0En94F/ngfieORXlIz3x26D25/XP8ALnqSgD16LXLOd9qXNu/bKyKwznHY+vHPcgVZRxIuR+owRXi5RT/CPypot4wP9WjcHGR9fx7noQemCMKQAe10V47Hf3EX3bm6XdknbMRkkg59f73GcZYnrnMy+ItRiH7vUL5eMDfO0nv3Pr+Q4zQB65RXlcXjXVo/+YhOeW4CRgc/8B7HPPfPrzViL4ia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oAKKKKACuK8W+ApJ3+1WKbpm4lgYYUng/L1A4LDr3xkYBXtaKAPJ08K6oduNPu+2N0f+71z9RnPq+f46jXw7qO0H+z7715gb9cj/AGe/XJ/vHPrlFAHl+l+CNU1N9vk/Z0wAr3DbVcjkADlj35xjlzyGO7rtI+GljYbWuN13IoA+bhBjI4GSehPUnq3dmLdFRQBHDbrDB5agKvP3fl6n+fv681JRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf//Z";
26
    @Autowrie
27
    private ResourceTmpDao resourceTmpDao;
28
29
    public ResourceTmpDao getResourceTmpDao() {
30
        return resourceTmpDao;
31
    }
32
33
    public void setResourceTmpDao(ResourceTmpDao resourceTmpDao) {
34
        this.resourceTmpDao = resourceTmpDao;
35
    }
36
37
    private static byte[] resImage(byte[] src, int maxLen) throws IOException {
38
        ByteArrayInputStream in = new ByteArrayInputStream(src);
39
        ByteArrayOutputStream out = new ByteArrayOutputStream();
40
        JpgUtil.scalingZoom(in, out, maxLen);
41
        out.flush();
42
        return out.toByteArray();
43
    }
44
45
    @Post
46
    @Path("/file")
47
    public int fileCount(String path)throws IOException {
48
        File file = new File(path);
49
        File[] files = file.listFiles();
50
        return files.length;
51
    }
52
53
    @Post
54
    @Path("/importRes")
55
    public int saveRes(@JdbcConn(true) Connection con,String path) throws SQLException, IOException {
56
        int i = 0;
57
        int maxLen = 240;
58
        //File file1 = new File("D:/json/");
59
        File file1 = new File(path);
60
        //File file1 = new File("/tmp/newfolder/json/");
61
        File[] files = file1.listFiles();
62
        if (files.length > 0) {
63
            for (File file : files) {
64
                String str = "";
65
                try {
66
                    FileInputStream in = new FileInputStream(file);
67
                    // size  为字串的长度 ,这里一次性读完
68
                    //int size=in.available();
69
                    int size = (int) file.length();
70
                    byte[] buffer = new byte[size];
71
                    in.read(buffer);
72
                    in.close();
73
                    str = new String(buffer, "utf-8");
74
                } catch (IOException e) {
75
                    str = null;
76
                    //file.delete();
77
                    i++;
78
                    e.printStackTrace();
79
                }
80
                ResourceTmp rt = null;
81
                try {
82
                    rt = JsonService.fromJson(str, ResourceTmp.class);
83
                } catch (Exception e) {
84
                    //file.delete();
85
                    i++;
86
                }
87
                if (rt != null) {
88
                    rt.setId(StringUtil.buildUUID());
89
                    String img = rt.getImg();
90
                    if (img != null) {
91
                        String base = img.substring(img.indexOf("base64,") + 7, img.length());
92
                        if (!defaultphoto.equals(base)) {
93
                            Base64 bs64 = new Base64();
94
                            byte[] bs = bs64.decode(base.getBytes("UTF-8"));
95
                            byte[] bytes = null;
96
                            try {
97
                                bytes = resImage(bs, maxLen);
98
                            } catch (Exception e) {
99
                                bytes = null;
100
                                e.printStackTrace();
101
                            }
102
                            if (bytes != null) {
103
                                String imgId = StringUtil.buildUUID();
104
                                rt.setImg("importRes/" + imgId + ".jpg");
105
                                FileOutputStream fos = new FileOutputStream("D:/tmp/data/image/" + imgId + ".jpg");
106
                                FileOutputStream fos2 = new FileOutputStream("D:/tmp/data/image/" + imgId + "_s.jpg");
107
                                //FileOutputStream fos = new FileOutputStream("/kexiu/webdata1/data/resource/importRes/"+imgId+".jpg");
108
                                //FileOutputStream fos2 = new FileOutputStream("/kexiu/webdata1/data/resource/importRes/"+imgId+"_s.jpg");
109
                                try {
110
                                    fos.write(bs);
111
                                    fos.flush();
112
                                } finally {
113
                                    fos.close();
114
                                }
115
                                try {
116
                                    fos2.write(bytes);
117
                                    fos2.flush();
118
                                } finally {
119
                                    fos2.close();
120
                                }
121
                            } else {
122
                                rt.setImg(null);
123
                            }
124
                        } else {
125
                            rt.setImg(null);
126
                        }
127
                    }
128
                    this.resourceTmpDao.insert(con, rt);
129
                    file.delete();
130
                }
131
            }
132
        }
133
        return files.length-i;
134
    }
135
136
    public static void main(String[] args) throws Exception {
137
        int i=0;
138
        int maxLen = 240;
139
        File file1 = new File("D:/json/");
140
        ////File file1 = new File("/tmp/newfolder/json/");
141
        File[] files = file1.listFiles();
142
        System.out.println(files.length);
143
        //ResourceTmpDao rtd = new ResourceTmpDao() {
144
        //    @Override
145
        //    public int insert(Connection con, ResourceTmp rt) throws SQLException {
146
        //        String sql = "INSERT INTO RESOURCE_TMP (MODIFY_TIME,CREATE_TIME,ID,NAME,DOMAIN,COMP,SPEC,IMG,PARAMETER,MAJOR_FUNC,COST,ENABLED_TIME,COMMUNICATION,ORG_NAME,CORPORATION,LINKMAN,TEL,EMAIL,ADDR,ZIP_CODE) VALUES (TO_CHAR(NOW(),'YYYYMMDDHH24MISS'),TO_CHAR(NOW(),'YYYYMMDDHH24MISS'),?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
147
        //        int _m_35 = 1;
148
        //        java.lang.String _m_1 = rt.getId();
149
        //        java.lang.String _m_2 = rt.getName();
150
        //        java.lang.String _m_4 = rt.getDomain();
151
        //        boolean _m_3 = null == _m_4;
152
        //        java.lang.String _m_6 = rt.getComp();
153
        //        boolean _m_5 = null == _m_6;
154
        //        java.lang.String _m_8 = rt.getSpec();
155
        //        boolean _m_7 = null == _m_8;
156
        //        java.lang.String _m_10 = rt.getImg();
157
        //        boolean _m_9 = null == _m_10;
158
        //        java.lang.String _m_12 = rt.getParameter();
159
        //        boolean _m_11 = null == _m_12;
160
        //        java.lang.String _m_14 = rt.getMajorFunc();
161
        //        boolean _m_13 = null == _m_14;
162
        //        java.lang.Double _m_16 = rt.getCost();
163
        //        boolean _m_15 = null == _m_16;
164
        //        java.lang.String _m_18 = rt.getEnabledTime();
165
        //        boolean _m_17 = null == _m_18;
166
        //        java.lang.String _m_20 = rt.getCommunication();
167
        //        boolean _m_19 = null == _m_20;
168
        //        java.lang.String _m_22 = rt.getOrgName();
169
        //        boolean _m_21 = null == _m_22;
170
        //        java.lang.String _m_24 = rt.getCorporation();
171
        //        boolean _m_23 = null == _m_24;
172
        //        java.lang.String _m_26 = rt.getLinkman();
173
        //        boolean _m_25 = null == _m_26;
174
        //        java.lang.String _m_28 = rt.getTel();
175
        //        boolean _m_27 = null == _m_28;
176
        //        java.lang.String _m_30 = rt.getEmail();
177
        //        boolean _m_29 = null == _m_30;
178
        //        java.lang.String _m_32 = rt.getAddr();
179
        //        boolean _m_31 = null == _m_32;
180
        //        java.lang.String _m_34 = rt.getZipCode();
181
        //        boolean _m_33 = null == _m_34;
182
        //        java.sql.PreparedStatement ps = con.prepareStatement(sql);
183
        //        try {
184
        //            ps.setString(_m_35++, _m_1);
185
        //            ps.setString(_m_35++, _m_2);
186
        //            if (_m_3) {
187
        //                ps.setNull(_m_35++, 12);
188
        //            } else {
189
        //                ps.setString(_m_35++, _m_4);
190
        //            }
191
        //            if (_m_5) {
192
        //                ps.setNull(_m_35++, 12);
193
        //            } else {
194
        //                ps.setString(_m_35++, _m_6);
195
        //            }
196
        //            if (_m_7) {
197
        //                ps.setNull(_m_35++, 12);
198
        //            } else {
199
        //                ps.setString(_m_35++, _m_8);
200
        //            }
201
        //            if (_m_9) {
202
        //                ps.setNull(_m_35++, 12);
203
        //            } else {
204
        //                ps.setString(_m_35++, _m_10);
205
        //            }
206
        //            if (_m_11) {
207
        //                ps.setNull(_m_35++, 12);
208
        //            } else {
209
        //                ps.setString(_m_35++, _m_12);
210
        //            }
211
        //            if (_m_13) {
212
        //                ps.setNull(_m_35++, 12);
213
        //            } else {
214
        //                ps.setString(_m_35++, _m_14);
215
        //            }
216
        //            if (_m_15) {
217
        //                ps.setNull(_m_35++, 8);
218
        //            } else {
219
        //                ps.setDouble(_m_35++, _m_16);
220
        //            }
221
        //            if (_m_17) {
222
        //                ps.setNull(_m_35++, 12);
223
        //            } else {
224
        //                ps.setString(_m_35++, _m_18);
225
        //            }
226
        //            if (_m_19) {
227
        //                ps.setNull(_m_35++, 12);
228
        //            } else {
229
        //                ps.setString(_m_35++, _m_20);
230
        //            }
231
        //            if (_m_21) {
232
        //                ps.setNull(_m_35++, 12);
233
        //            } else {
234
        //                ps.setString(_m_35++, _m_22);
235
        //            }
236
        //            if (_m_23) {
237
        //                ps.setNull(_m_35++, 12);
238
        //            } else {
239
        //                ps.setString(_m_35++, _m_24);
240
        //            }
241
        //            if (_m_25) {
242
        //                ps.setNull(_m_35++, 12);
243
        //            } else {
244
        //                ps.setString(_m_35++, _m_26);
245
        //            }
246
        //            if (_m_27) {
247
        //                ps.setNull(_m_35++, 12);
248
        //            } else {
249
        //                ps.setString(_m_35++, _m_28);
250
        //            }
251
        //            if (_m_29) {
252
        //                ps.setNull(_m_35++, 12);
253
        //            } else {
254
        //                ps.setString(_m_35++, _m_30);
255
        //            }
256
        //            if (_m_31) {
257
        //                ps.setNull(_m_35++, 12);
258
        //            } else {
259
        //                ps.setString(_m_35++, _m_32);
260
        //            }
261
        //            if (_m_33) {
262
        //                ps.setNull(_m_35++, 12);
263
        //            } else {
264
        //                ps.setString(_m_35++, _m_34);
265
        //            }
266
        //            return ps.executeUpdate();
267
        //        } finally {
268
        //            try {
269
        //                ps.close();
270
        //            } catch (Exception _m_36) {
271
        //            }
272
        //        }
273
        //    }
274
        //};
275
        Connection con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/console", "postgres","admin");
276
        if (files.length > 0) {
277
            for (File file : files) {
278
                i++;
279
                System.out.println(i);
280
                System.out.println(file.getName());
281
                String str = "";
282
                try {
283
                    FileInputStream in = new FileInputStream(file);
284
                    // size  为字串的长度 ,这里一次性读完
285
                    //int size=in.available();
286
                    int size = (int) file.length();
287
                    byte[] buffer = new byte[size];
288
                    in.read(buffer);
289
                    in.close();
290
                    str = new String(buffer, "utf-8");
291
                } catch (IOException e) {
292
                    str = null;
293
                    e.printStackTrace();
294
                }
295
                ResourceTmp rt = JsonService.fromJson(str, ResourceTmp.class);
296
                if (rt != null) {
297
                    rt.setId(StringUtil.buildUUID());
298
                    String img = rt.getImg();
299
                    if (img != null) {
300
                        String base = img.substring(img.indexOf("base64,") + 7, img.length());
301
                        if (!"/9j/4AAQSkZJRgABAQEAYABgAAD/4AAcT2NhZCRSZXY6IDE4ODcxICQAAAAAAAAAACD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAEsAlgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK4XWvHeraTrlzb/AOjNHHKAMx4IUkDru+p59DnABI7qvOfiTYrBrKzMpZZkDNgbWzg8jqRxvAHYk9TtwAPj+K2qMF3RWPzY4EbLj7vct7kcgYwTxhgs8Xxbum62cHJ7yFc8L7cctnnptYHGM1ya9s89M44z0z/7N+Y64O4XtnnpnHGemf8A2b8x1wdwB2kXxfVyu7T2QN/02zjhTn7vTkj14PHBxPF8XLWZlVbG+3NjCkL3xgdcZ5H059DjhF7Z56Zxxnpn/wBm/MdcHcDtu56Zxxnpn/2b8x1wdwB30HxbsZk3fZb5cruA2ocjAOeG/wBpevPzjIFWYvidpMzYD3HUAEwNySwUdu5K/n9cecFQ64cBgfvDHXpn8/m9fvDrg7g/P9/5t33v9rPX890nr9/vzuAPTE+Iujt1utv1jb/D3/n6HFpfGOlurFb+1O0En94F/ngfieORXlIz3x26D25/XP8ALnqSgD16LXLOd9qXNu/bKyKwznHY+vHPcgVZRxIuR+owRXi5RT/CPypot4wP9WjcHGR9fx7noQemCMKQAe10V47Hf3EX3bm6XdknbMRkkg59f73GcZYnrnMy+ItRiH7vUL5eMDfO0nv3Pr+Q4zQB65RXlcXjXVo/+YhOeW4CRgc/8B7HPPfPrzViL4ia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oAKKKKACuK8W+ApJ3+1WKbpm4lgYYUng/L1A4LDr3xkYBXtaKAPJ08K6oduNPu+2N0f+71z9RnPq+f46jXw7qO0H+z7715gb9cj/AGe/XJ/vHPrlFAHl+l+CNU1N9vk/Z0wAr3DbVcjkADlj35xjlzyGO7rtI+GljYbWuN13IoA+bhBjI4GSehPUnq3dmLdFRQBHDbrDB5agKvP3fl6n+fv681JRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf//Z".equals(base)) {
302
                            Base64 bs64 = new Base64();
303
                            byte[] bs = bs64.decode(base.getBytes("UTF-8"));
304
                            byte[] bytes = null;
305
                            try {
306
                                bytes = resImage(bs, maxLen);
307
                            } catch (Exception e) {
308
                                bytes = null;
309
                                e.printStackTrace();
310
                            }
311
                            if (bytes != null) {
312
                                String imgId = StringUtil.buildUUID();
313
                                rt.setImg("importRes/" + imgId + ".jpg");
314
                                FileOutputStream fos = new FileOutputStream("D:/tmp/data/image/" + imgId + ".jpg");
315
                                FileOutputStream fos2 = new FileOutputStream("D:/tmp/data/image/" + imgId + "_s.jpg");
316
                                //FileOutputStream fos = new FileOutputStream("/kexiu/webdata1/data/resource/importRes/"+imgId+".jpg");
317
                                //FileOutputStream fos2 = new FileOutputStream("/kexiu/webdata1/data/resource/importRes/"+imgId+"_s.jpg");
318
                                try {
319
                                    fos.write(bs);
320
                                    fos.flush();
321
                                } finally {
322
                                    fos.close();
323
                                }
324
                                try {
325
                                    fos2.write(bytes);
326
                                    fos2.flush();
327
                                } finally {
328
                                    fos2.close();
329
                                }
330
                            } else {
331
                                rt.setImg(null);
332
                            }
333
                        } else {
334
                            rt.setImg(null);
335
                        }
336
                    }
337
                //rtd.insert(con, rt);
338
            }
339
                file.delete();
340
            }
341
        }
342
    }
343
344
}