Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
JSH ERP
Commits
693a7558
Commit
693a7558
authored
Jan 15, 2019
by
cjl
Browse files
从jsh远程仓库更新
(cherry picked from commit
36139e26
)
parent
1e1e5f6e
Changes
39
Show whitespace changes
Inline
Side-by-side
erp_web/pages/reports/vendor_account.html
View file @
693a7558
...
...
@@ -343,8 +343,7 @@
//报表打印
function
print
()
{
$
(
"
#printBtn
"
).
off
(
"
click
"
).
on
(
"
click
"
,
function
()
{
var
path
=
"
<%=path %>
"
;
CreateFormPage
(
'
打印报表
'
,
$
(
'
#tableData
'
),
path
);
CreateFormPage
(
'
打印报表
'
,
$
(
'
#tableData
'
));
});
}
</script>
...
...
pom.xml
View file @
693a7558
...
...
@@ -42,7 +42,7 @@
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.reporting.outputEncoding>
UTF-8
</project.reporting.outputEncoding>
<java.version>
1.
7
</java.version>
<java.version>
1.
8
</java.version>
</properties>
<dependencies>
...
...
@@ -96,6 +96,11 @@
<artifactId>
commons-httpclient
</artifactId>
<version>
3.1
</version>
</dependency>
<dependency>
<groupId>
net.sourceforge.jexcelapi
</groupId>
<artifactId>
jxl
</artifactId>
<version>
2.6.3
</version>
</dependency>
</dependencies>
<repositories>
...
...
@@ -174,9 +179,10 @@
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<version>
3.7.0
</version>
<configuration>
<source>
1.
7
</source>
<target>
1.
7
</target>
<source>
1.
8
</source>
<target>
1.
8
</target>
</configuration>
</plugin>
</plugins>
...
...
src/main/conf/start.sh
0 → 100644
View file @
693a7558
nohup
./jshERPStart.sh &
\ No newline at end of file
src/main/java/com/jsh/erp/controller/AppController.java
View file @
693a7558
...
...
@@ -5,13 +5,18 @@ import com.alibaba.fastjson.JSONObject;
import
com.jsh.erp.datasource.entities.App
;
import
com.jsh.erp.service.app.AppService
;
import
com.jsh.erp.service.userBusiness.UserBusinessService
;
import
com.jsh.erp.utils.BaseResponseInfo
;
import
com.jsh.erp.utils.FileUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.*
;
import
java.util.List
;
import
java.util.Properties
;
/**
* @author ji_sheng_hua 752*718*920
...
...
@@ -26,14 +31,7 @@ public class AppController {
@Resource
private
UserBusinessService
userBusinessService
;
/**
* create by: cjl
* description:
* 桌面菜单按钮初始化
* create time: 2019/1/11 17:01
* @Param: request
* @return com.alibaba.fastjson.JSONObject
*/
@GetMapping
(
value
=
"/findDesk"
)
public
JSONObject
findDesk
(
HttpServletRequest
request
)
{
JSONObject
obj
=
new
JSONObject
();
...
...
@@ -123,4 +121,38 @@ public class AppController {
}
return
arr
;
}
/**
* 上传图片
* @param fileInfo
* @param request
*/
@PostMapping
(
value
=
"/uploadImg"
)
public
BaseResponseInfo
uploadImg
(
MultipartFile
fileInfo
,
@RequestParam
(
"fileInfoName"
)
String
fileName
,
HttpServletRequest
request
)
{
BaseResponseInfo
res
=
new
BaseResponseInfo
();
try
{
if
(
fileInfo
!=
null
)
{
String
basePath
=
request
.
getSession
().
getServletContext
().
getRealPath
(
"/"
);
//默认windows文件路径,linux环境下生成的目录与项目同级,而不是下级
String
path
=
basePath
+
"upload/images/deskIcon/"
;
//windows环境下的路径
Properties
pro
=
System
.
getProperties
();
String
osName
=
pro
.
getProperty
(
"os.name"
);
//获得当前操作系统的名称
if
(
"Linux"
.
equals
(
osName
)
||
"linux"
.
equals
(
osName
)
||
"LINUX"
.
equals
(
osName
)){
path
=
basePath
+
"/upload/images/deskIcon/"
;
//linux环境下的路径
}
FileUtils
.
SaveFileFromInputStream
(
fileInfo
.
getInputStream
(),
path
,
fileName
);
res
.
code
=
200
;
res
.
data
=
"上传图片成功"
;
}
}
catch
(
FileNotFoundException
e
)
{
e
.
printStackTrace
();
res
.
code
=
500
;
res
.
data
=
"获取图片失败"
;
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
res
.
code
=
500
;
res
.
data
=
"上传图片失败"
;
}
return
res
;
}
}
src/main/java/com/jsh/erp/controller/DepotItemController.java
View file @
693a7558
...
...
@@ -9,11 +9,12 @@ import com.jsh.erp.utils.*;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.dao.DataAccessException
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
...
...
@@ -32,7 +33,8 @@ public class DepotItemController {
@Resource
private
DepotItemService
depotItemService
;
@Resource
private
MaterialService
materialService
;
/**
* 根据材料信息获取
...
...
@@ -267,7 +269,26 @@ public class DepotItemController {
}
}
/**
* 查询计量单位信息
*
* @return
*/
public
String
findUnitName
(
Long
mId
)
{
String
unitName
=
""
;
try
{
unitName
=
materialService
.
findUnitName
(
mId
);
if
(
unitName
!=
null
)
{
unitName
=
unitName
.
substring
(
1
,
unitName
.
length
()
-
1
);
if
(
unitName
.
equals
(
"null"
))
{
unitName
=
""
;
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
unitName
;
}
@GetMapping
(
value
=
"/getDetailList"
)
public
BaseResponseInfo
getDetailList
(
@RequestParam
(
"headerId"
)
Long
headerId
,
...
...
@@ -403,14 +424,12 @@ public class DepotItemController {
if
(
null
!=
dataList
)
{
for
(
DepotItemVo4WithInfoEx
diEx
:
dataList
)
{
JSONObject
item
=
new
JSONObject
();
Double
prevSum
=
sumNumber
(
"入库"
,
pid
,
diEx
.
getMaterialid
(),
monthTime
,
true
)
-
sumNumber
(
"出库"
,
pid
,
diEx
.
getMaterialid
(),
monthTime
,
true
);
Double
InSum
=
sumNumber
(
"入库"
,
pid
,
diEx
.
getMaterialid
(),
monthTime
,
false
);
Double
OutSum
=
sumNumber
(
"出库"
,
pid
,
diEx
.
getMaterialid
(),
monthTime
,
false
);
Double
prevPrice
=
sumPrice
(
"入库"
,
pid
,
diEx
.
getMaterialid
(),
monthTime
,
true
)
-
sumPrice
(
"出库"
,
pid
,
diEx
.
getMaterialid
(),
monthTime
,
true
);
Double
InPrice
=
sumPrice
(
"入库"
,
pid
,
diEx
.
getMaterialid
(),
monthTime
,
false
);
Double
OutPrice
=
sumPrice
(
"出库"
,
pid
,
diEx
.
getMaterialid
(),
monthTime
,
false
);
item
.
put
(
"Id"
,
diEx
.
getId
());
item
.
put
(
"MaterialId"
,
diEx
.
getMaterialid
());
Double
prevSum
=
sumNumber
(
"入库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
true
)
-
sumNumber
(
"出库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
true
);
Double
InSum
=
sumNumber
(
"入库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
false
);
Double
OutSum
=
sumNumber
(
"出库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
false
);
Double
prevPrice
=
sumPrice
(
"入库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
true
)
-
sumPrice
(
"出库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
true
);
Double
InPrice
=
sumPrice
(
"入库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
false
);
Double
OutPrice
=
sumPrice
(
"出库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
false
);
item
.
put
(
"MaterialName"
,
diEx
.
getMName
());
item
.
put
(
"MaterialModel"
,
diEx
.
getMColor
());
//扩展信息
...
...
@@ -464,9 +483,9 @@ public class DepotItemController {
Double
thisAllPrice
=
0.0
;
if
(
null
!=
dataList
)
{
for
(
DepotItemVo4WithInfoEx
diEx
:
dataList
)
{
Double
prevPrice
=
sumPrice
(
"入库"
,
pid
,
diEx
.
getM
ateriali
d
(),
monthTime
,
true
)
-
sumPrice
(
"出库"
,
pid
,
diEx
.
getM
ateriali
d
(),
monthTime
,
true
);
Double
InPrice
=
sumPrice
(
"入库"
,
pid
,
diEx
.
getM
ateriali
d
(),
monthTime
,
false
);
Double
OutPrice
=
sumPrice
(
"出库"
,
pid
,
diEx
.
getM
ateriali
d
(),
monthTime
,
false
);
Double
prevPrice
=
sumPrice
(
"入库"
,
pid
,
diEx
.
getM
I
d
(),
monthTime
,
true
)
-
sumPrice
(
"出库"
,
pid
,
diEx
.
getM
I
d
(),
monthTime
,
true
);
Double
InPrice
=
sumPrice
(
"入库"
,
pid
,
diEx
.
getM
I
d
(),
monthTime
,
false
);
Double
OutPrice
=
sumPrice
(
"出库"
,
pid
,
diEx
.
getM
I
d
(),
monthTime
,
false
);
thisAllPrice
=
thisAllPrice
+
(
prevPrice
+
InPrice
-
OutPrice
);
}
}
...
...
@@ -512,12 +531,10 @@ public class DepotItemController {
if
(
null
!=
dataList
)
{
for
(
DepotItemVo4WithInfoEx
diEx
:
dataList
)
{
JSONObject
item
=
new
JSONObject
();
Double
InSum
=
sumNumberBuyOrSale
(
"入库"
,
"采购"
,
diEx
.
getMaterialid
(),
monthTime
);
Double
OutSum
=
sumNumberBuyOrSale
(
"出库"
,
"采购退货"
,
diEx
.
getMaterialid
(),
monthTime
);
Double
InSumPrice
=
sumPriceBuyOrSale
(
"入库"
,
"采购"
,
diEx
.
getMaterialid
(),
monthTime
);
Double
OutSumPrice
=
sumPriceBuyOrSale
(
"出库"
,
"采购退货"
,
diEx
.
getMaterialid
(),
monthTime
);
item
.
put
(
"Id"
,
diEx
.
getId
());
item
.
put
(
"MaterialId"
,
diEx
.
getMaterialid
());
Double
InSum
=
sumNumberBuyOrSale
(
"入库"
,
"采购"
,
diEx
.
getMId
(),
monthTime
);
Double
OutSum
=
sumNumberBuyOrSale
(
"出库"
,
"采购退货"
,
diEx
.
getMId
(),
monthTime
);
Double
InSumPrice
=
sumPriceBuyOrSale
(
"入库"
,
"采购"
,
diEx
.
getMId
(),
monthTime
);
Double
OutSumPrice
=
sumPriceBuyOrSale
(
"出库"
,
"采购退货"
,
diEx
.
getMId
(),
monthTime
);
item
.
put
(
"MaterialName"
,
diEx
.
getMName
());
item
.
put
(
"MaterialModel"
,
diEx
.
getMModel
());
//扩展信息
...
...
@@ -574,16 +591,14 @@ public class DepotItemController {
if
(
null
!=
dataList
)
{
for
(
DepotItemVo4WithInfoEx
diEx
:
dataList
)
{
JSONObject
item
=
new
JSONObject
();
Double
OutSumRetail
=
sumNumberBuyOrSale
(
"出库"
,
"零售"
,
diEx
.
getMaterialid
(),
monthTime
);
Double
OutSum
=
sumNumberBuyOrSale
(
"出库"
,
"销售"
,
diEx
.
getMaterialid
(),
monthTime
);
Double
InSumRetail
=
sumNumberBuyOrSale
(
"入库"
,
"零售退货"
,
diEx
.
getMaterialid
(),
monthTime
);
Double
InSum
=
sumNumberBuyOrSale
(
"入库"
,
"销售退货"
,
diEx
.
getMaterialid
(),
monthTime
);
Double
OutSumRetailPrice
=
sumPriceBuyOrSale
(
"出库"
,
"零售"
,
diEx
.
getMaterialid
(),
monthTime
);
Double
OutSumPrice
=
sumPriceBuyOrSale
(
"出库"
,
"销售"
,
diEx
.
getMaterialid
(),
monthTime
);
Double
InSumRetailPrice
=
sumPriceBuyOrSale
(
"入库"
,
"零售退货"
,
diEx
.
getMaterialid
(),
monthTime
);
Double
InSumPrice
=
sumPriceBuyOrSale
(
"入库"
,
"销售退货"
,
diEx
.
getMaterialid
(),
monthTime
);
item
.
put
(
"Id"
,
diEx
.
getId
());
item
.
put
(
"MaterialId"
,
diEx
.
getMaterialid
());
Double
OutSumRetail
=
sumNumberBuyOrSale
(
"出库"
,
"零售"
,
diEx
.
getMId
(),
monthTime
);
Double
OutSum
=
sumNumberBuyOrSale
(
"出库"
,
"销售"
,
diEx
.
getMId
(),
monthTime
);
Double
InSumRetail
=
sumNumberBuyOrSale
(
"入库"
,
"零售退货"
,
diEx
.
getMId
(),
monthTime
);
Double
InSum
=
sumNumberBuyOrSale
(
"入库"
,
"销售退货"
,
diEx
.
getMId
(),
monthTime
);
Double
OutSumRetailPrice
=
sumPriceBuyOrSale
(
"出库"
,
"零售"
,
diEx
.
getMId
(),
monthTime
);
Double
OutSumPrice
=
sumPriceBuyOrSale
(
"出库"
,
"销售"
,
diEx
.
getMId
(),
monthTime
);
Double
InSumRetailPrice
=
sumPriceBuyOrSale
(
"入库"
,
"零售退货"
,
diEx
.
getMId
(),
monthTime
);
Double
InSumPrice
=
sumPriceBuyOrSale
(
"入库"
,
"销售退货"
,
diEx
.
getMId
(),
monthTime
);
item
.
put
(
"MaterialName"
,
diEx
.
getMName
());
item
.
put
(
"MaterialModel"
,
diEx
.
getMModel
());
//扩展信息
...
...
@@ -640,10 +655,8 @@ public class DepotItemController {
if
(
null
!=
dataList
)
{
for
(
DepotItemVo4WithInfoEx
diEx
:
dataList
)
{
JSONObject
item
=
new
JSONObject
();
Double
InSum
=
sumNumberGift
(
"礼品充值"
,
pid
,
diEx
.
getMaterialid
(),
"in"
);
Double
OutSum
=
sumNumberGift
(
"礼品销售"
,
pid
,
diEx
.
getMaterialid
(),
"out"
);
item
.
put
(
"Id"
,
diEx
.
getId
());
item
.
put
(
"MaterialId"
,
diEx
.
getMaterialid
());
Double
InSum
=
sumNumberGift
(
"礼品充值"
,
pid
,
diEx
.
getMId
(),
"in"
);
Double
OutSum
=
sumNumberGift
(
"礼品销售"
,
pid
,
diEx
.
getMId
(),
"out"
);
item
.
put
(
"MaterialName"
,
diEx
.
getMName
());
item
.
put
(
"MaterialModel"
,
diEx
.
getMModel
());
//扩展信息
...
...
@@ -666,6 +679,77 @@ public class DepotItemController {
return
res
;
}
/**
* 导出excel表格
* @param currentPage
* @param pageSize
* @param projectId
* @param monthTime
* @param headIds
* @param materialIds
* @param request
* @param response
* @return
*/
@GetMapping
(
value
=
"/exportExcel"
)
public
BaseResponseInfo
exportExcel
(
@RequestParam
(
"currentPage"
)
Integer
currentPage
,
@RequestParam
(
"pageSize"
)
Integer
pageSize
,
@RequestParam
(
"projectId"
)
Integer
projectId
,
@RequestParam
(
"monthTime"
)
String
monthTime
,
@RequestParam
(
"headIds"
)
String
headIds
,
@RequestParam
(
"materialIds"
)
String
materialIds
,
HttpServletRequest
request
,
HttpServletResponse
response
)
{
BaseResponseInfo
res
=
new
BaseResponseInfo
();
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
String
message
=
"成功"
;
try
{
List
<
DepotItemVo4WithInfoEx
>
dataList
=
depotItemService
.
findByAll
(
headIds
,
materialIds
,
currentPage
,
pageSize
);
//存放数据json数组
Integer
pid
=
projectId
;
String
[]
names
=
{
"名称"
,
"型号"
,
"单位"
,
"单价"
,
"上月结存数量"
,
"入库数量"
,
"出库数量"
,
"本月结存数量"
,
"结存金额"
};
String
title
=
"库存报表"
;
List
<
String
[]>
objects
=
new
ArrayList
<
String
[]>();
if
(
null
!=
dataList
)
{
for
(
DepotItemVo4WithInfoEx
diEx
:
dataList
)
{
String
[]
objs
=
new
String
[
9
];
Double
prevSum
=
sumNumber
(
"入库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
true
)
-
sumNumber
(
"出库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
true
);
Double
InSum
=
sumNumber
(
"入库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
false
);
Double
OutSum
=
sumNumber
(
"出库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
false
);
Double
prevPrice
=
sumPrice
(
"入库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
true
)
-
sumPrice
(
"出库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
true
);
Double
InPrice
=
sumPrice
(
"入库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
false
);
Double
OutPrice
=
sumPrice
(
"出库"
,
pid
,
diEx
.
getMId
(),
monthTime
,
false
);
Double
unitPrice
=
0.0
;
if
(
prevSum
+
InSum
-
OutSum
!=
0.0
)
{
unitPrice
=
(
prevPrice
+
InPrice
-
OutPrice
)
/
(
prevSum
+
InSum
-
OutSum
);
}
Double
thisSum
=
prevSum
+
InSum
-
OutSum
;
Double
thisAllPrice
=
prevPrice
+
InPrice
-
OutPrice
;
objs
[
0
]
=
diEx
.
getMName
().
toString
();
objs
[
1
]
=
diEx
.
getMModel
().
toString
();
objs
[
2
]
=
diEx
.
getMaterialUnit
().
toString
();
objs
[
3
]
=
unitPrice
.
toString
();
objs
[
4
]
=
prevSum
.
toString
();
objs
[
5
]
=
InSum
.
toString
();
objs
[
6
]
=
OutSum
.
toString
();
objs
[
7
]
=
thisSum
.
toString
();
objs
[
8
]
=
thisAllPrice
.
toString
();
objects
.
add
(
objs
);
}
}
File
file
=
ExcelUtils
.
exportObjectsWithoutTitle
(
title
,
names
,
title
,
objects
);
ExportExecUtil
.
showExec
(
file
,
file
.
getName
()
+
"-"
+
monthTime
,
response
);
res
.
code
=
200
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
message
=
"导出失败"
;
res
.
code
=
500
;
}
finally
{
map
.
put
(
"message"
,
message
);
res
.
data
=
map
;
}
return
res
;
}
/**
* 数量合计
*
...
...
src/main/java/com/jsh/erp/controller/MaterialController.java
View file @
693a7558
package
com.jsh.erp.controller
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.jsh.erp.datasource.entities.Material
;
import
com.jsh.erp.datasource.entities.MaterialVo4Unit
;
import
com.jsh.erp.service.material.MaterialService
;
import
com.jsh.erp.utils.BaseResponseInfo
;
import
com.jsh.erp.utils.ErpInfo
;
import
com.jsh.erp.utils.*
;
import
jxl.Sheet
;
import
jxl.Workbook
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -177,4 +183,127 @@ public class MaterialController {
}
return
res
;
}
/**
* 生成excel表格
* @param name
* @param model
* @param categoryId
* @param categoryIds
* @param request
* @param response
* @return
*/
@GetMapping
(
value
=
"/exportExcel"
)
public
BaseResponseInfo
exportExcel
(
@RequestParam
(
"name"
)
String
name
,
@RequestParam
(
"model"
)
String
model
,
@RequestParam
(
"categoryId"
)
Long
categoryId
,
@RequestParam
(
"categoryIds"
)
String
categoryIds
,
HttpServletRequest
request
,
HttpServletResponse
response
)
{
BaseResponseInfo
res
=
new
BaseResponseInfo
();
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
String
message
=
"成功"
;
try
{
List
<
MaterialVo4Unit
>
dataList
=
materialService
.
findByAll
(
name
,
model
,
categoryId
,
categoryIds
);
String
[]
names
=
{
"品名"
,
"类型"
,
"型号"
,
"安全存量"
,
"单位"
,
"零售价"
,
"最低售价"
,
"预计采购价"
,
"批发价"
,
"备注"
,
"状态"
};
String
title
=
"商品信息"
;
List
<
String
[]>
objects
=
new
ArrayList
<
String
[]>();
if
(
null
!=
dataList
)
{
for
(
MaterialVo4Unit
m
:
dataList
)
{
String
[]
objs
=
new
String
[
11
];
objs
[
0
]
=
m
.
getName
();
objs
[
1
]
=
m
.
getCategoryName
();
objs
[
2
]
=
m
.
getModel
();
objs
[
3
]
=
m
.
getSafetystock
()
==
null
?
""
:
m
.
getSafetystock
().
toString
();
objs
[
4
]
=
m
.
getUnit
();
objs
[
5
]
=
m
.
getRetailprice
()
==
null
?
""
:
m
.
getRetailprice
().
toString
();
objs
[
6
]
=
m
.
getLowprice
()
==
null
?
""
:
m
.
getLowprice
().
toString
();
objs
[
7
]
=
m
.
getPresetpriceone
()
==
null
?
""
:
m
.
getPresetpriceone
().
toString
();
objs
[
8
]
=
m
.
getPresetpricetwo
()
==
null
?
""
:
m
.
getPresetpricetwo
().
toString
();
objs
[
9
]
=
m
.
getRemark
();
objs
[
10
]
=
m
.
getEnabled
()
?
"启用"
:
"禁用"
;
objects
.
add
(
objs
);
}
}
File
file
=
ExcelUtils
.
exportObjectsWithoutTitle
(
title
,
names
,
title
,
objects
);
ExportExecUtil
.
showExec
(
file
,
file
.
getName
(),
response
);
res
.
code
=
200
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
message
=
"导出失败"
;
res
.
code
=
500
;
}
finally
{
map
.
put
(
"message"
,
message
);
res
.
data
=
map
;
}
return
res
;
}
/**
* excel表格导入
* @param materialFile
* @param request
* @param response
* @return
*/
@PostMapping
(
value
=
"/importExcel"
)
public
void
importExcel
(
MultipartFile
materialFile
,
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
BaseResponseInfo
info
=
new
BaseResponseInfo
();
Map
<
String
,
Object
>
data
=
new
HashMap
<
String
,
Object
>();
String
message
=
"成功"
;
try
{
Sheet
src
=
null
;
//文件合法性校验
try
{
Workbook
workbook
=
Workbook
.
getWorkbook
(
materialFile
.
getInputStream
());
src
=
workbook
.
getSheet
(
0
);
}
catch
(
Exception
e
)
{
message
=
"导入文件不合法,请检查"
;
data
.
put
(
"message"
,
message
);
info
.
code
=
400
;
info
.
data
=
data
;
}
//读取所有的摄像机编码
//每行中数据顺序 "品名","类型","型号","安全存量","单位","零售价","最低售价","预计采购价","批发价","备注","状态"
List
<
Material
>
mList
=
new
ArrayList
<
Material
>();
for
(
int
i
=
1
;
i
<
src
.
getRows
();
i
++)
{
Material
m
=
new
Material
();
m
.
setName
(
ExcelUtils
.
getContent
(
src
,
i
,
0
));
m
.
setCategoryid
(
1
l
);
//根目录
m
.
setModel
(
ExcelUtils
.
getContent
(
src
,
i
,
2
));
String
safetyStock
=
ExcelUtils
.
getContent
(
src
,
i
,
3
);
m
.
setSafetystock
(
parseDoubleEx
(
safetyStock
));
m
.
setUnit
(
ExcelUtils
.
getContent
(
src
,
i
,
4
));
String
retailprice
=
ExcelUtils
.
getContent
(
src
,
i
,
5
);
m
.
setRetailprice
(
parseDoubleEx
(
retailprice
));
String
lowPrice
=
ExcelUtils
.
getContent
(
src
,
i
,
6
);
m
.
setLowprice
(
parseDoubleEx
(
lowPrice
));
String
presetpriceone
=
ExcelUtils
.
getContent
(
src
,
i
,
7
);
m
.
setPresetpriceone
(
parseDoubleEx
(
presetpriceone
));
String
presetpricetwo
=
ExcelUtils
.
getContent
(
src
,
i
,
8
);
m
.
setPresetpricetwo
(
parseDoubleEx
(
presetpricetwo
));
m
.
setRemark
(
ExcelUtils
.
getContent
(
src
,
i
,
9
));
String
enabled
=
ExcelUtils
.
getContent
(
src
,
i
,
10
);
m
.
setEnabled
(
enabled
.
equals
(
"启用"
)?
true
:
false
);
mList
.
add
(
m
);
}
info
=
materialService
.
importExcel
(
mList
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
message
=
"导入失败"
;
info
.
code
=
500
;
data
.
put
(
"message"
,
message
);
info
.
data
=
data
;
}
response
.
sendRedirect
(
"../pages/materials/material.html"
);
}
public
Double
parseDoubleEx
(
String
str
){
if
(!
StringUtil
.
isEmpty
(
str
))
{
return
Double
.
parseDouble
(
str
);
}
else
{
return
null
;
}
}
}
src/main/java/com/jsh/erp/controller/SupplierController.java
View file @
693a7558
...
...
@@ -5,15 +5,20 @@ import com.alibaba.fastjson.JSONObject;
import
com.jsh.erp.datasource.entities.Supplier
;
import
com.jsh.erp.service.supplier.SupplierService
;
import
com.jsh.erp.service.userBusiness.UserBusinessService
;
import
com.jsh.erp.utils.BaseResponseInfo
;
import
com.jsh.erp.utils.ErpInfo
;
import
com.jsh.erp.utils.*
;
import
jxl.Sheet
;
import
jxl.Workbook
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.dao.DataAccessException
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -259,4 +264,171 @@ public class SupplierController {
}
return
arr
;
}
/**
* 生成excel表格
* @param supplier
* @param type
* @param phonenum
* @param telephone
* @param description
* @param request
* @param response
* @return
*/
@GetMapping
(
value
=
"/exportExcel"
)
public
BaseResponseInfo
exportExcel
(
@RequestParam
(
"supplier"
)
String
supplier
,
@RequestParam
(
"type"
)
String
type
,
@RequestParam
(
"phonenum"
)
String
phonenum
,
@RequestParam
(
"telephone"
)
String
telephone
,
@RequestParam
(
"description"
)
String
description
,
HttpServletRequest
request
,
HttpServletResponse
response
)
{
BaseResponseInfo
res
=
new
BaseResponseInfo
();
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
String
message
=
"成功"
;
try
{
List
<
Supplier
>
dataList
=
supplierService
.
findByAll
(
supplier
,
type
,
phonenum
,
telephone
,
description
);
String
[]
names
=
{
"名称"
,
"类型"
,
"联系人"
,
"电话"
,
"电子邮箱"
,
"预收款"
,
"期初应收"
,
"期初应付"
,
"备注"
,
"传真"
,
"手机"
,
"地址"
,
"纳税人识别号"
,
"开户行"
,
"账号"
,
"税率"
,
"状态"
};
String
title
=
"信息报表"
;
List
<
String
[]>
objects
=
new
ArrayList
<
String
[]>();
if
(
null
!=
dataList
)
{
for
(
Supplier
s
:
dataList
)
{
String
[]
objs
=
new
String
[
17
];
objs
[
0
]
=
s
.
getSupplier
();
objs
[
1
]
=
s
.
getType
();
objs
[
2
]
=
s
.
getContacts
();
objs
[
3
]
=
s
.
getPhonenum
();
objs
[
4
]
=
s
.
getEmail
();
objs
[
5
]
=
s
.
getAdvancein
()
==
null
?
""
:
s
.
getAdvancein
().
toString
();
objs
[
6
]
=
s
.
getBeginneedget
()
==
null
?
""
:
s
.
getBeginneedget
().
toString
();
objs
[
7
]
=
s
.
getBeginneedpay
()
==
null
?
""
:
s
.
getBeginneedpay
().
toString
();
objs
[
8
]
=
s
.
getDescription
();
objs
[
9
]
=
s
.
getFax
();
objs
[
10
]
=
s
.
getTelephone
();
objs
[
11
]
=
s
.
getAddress
();
objs
[
12
]
=
s
.
getTaxnum
();
objs
[
13
]
=
s
.
getBankname
();
objs
[
14
]
=
s
.
getAccountnumber
();
objs
[
15
]
=
s
.
getTaxrate
()
==
null
?
""
:
s
.
getTaxrate
().
toString
();
objs
[
16
]
=
s
.
getEnabled
()
?
"启用"
:
"禁用"
;
objects
.
add
(
objs
);
}
}
File
file
=
ExcelUtils
.
exportObjectsWithoutTitle
(
title
,
names
,
title
,
objects
);
ExportExecUtil
.
showExec
(
file
,
file
.
getName
(),
response
);
res
.
code
=
200
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
message
=
"导出失败"
;
res
.
code
=
500
;
}
finally
{
map
.
put
(
"message"
,
message
);
res
.
data
=
map
;
}
return
res
;
}
/**
* 导入excel表格-供应商
* @param supplierFile
* @param request
* @param response
* @return
*/
@PostMapping
(
value
=
"/importExcelVendor"
)
public
void
importExcelVendor
(
MultipartFile
supplierFile
,
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
importFun
(
supplierFile
);
response
.
sendRedirect
(
"../pages/manage/vendor.html"
);
}
/**
* 导入excel表格-客户
* @param supplierFile
* @param request
* @param response
* @return
*/
@PostMapping
(
value
=
"/importExcelCustomer"
)
public
void
importExcelCustomer
(
MultipartFile
supplierFile
,
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
importFun
(
supplierFile
);
response
.
sendRedirect
(
"../pages/manage/customer.html"
);
}
/**
* 导入excel表格-会员
* @param supplierFile
* @param request
* @param response
* @return
*/
@PostMapping
(
value
=
"/importExcelMember"
)
public
void
importExcelMember
(
MultipartFile
supplierFile
,
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
importFun
(
supplierFile
);
response
.
sendRedirect
(
"../pages/manage/member.html"
);
}
public
String
importFun
(
MultipartFile
supplierFile
){
BaseResponseInfo
info
=
new
BaseResponseInfo
();
Map
<
String
,
Object
>
data
=
new
HashMap
<
String
,
Object
>();
String
message
=
"成功"
;
try
{
Sheet
src
=
null
;
//文件合法性校验
try
{
Workbook
workbook
=
Workbook
.
getWorkbook
(
supplierFile
.
getInputStream
());
src
=
workbook
.
getSheet
(
0
);
}
catch
(
Exception
e
)
{
message
=
"导入文件不合法,请检查"
;
data
.
put
(
"message"
,
message
);
info
.
code
=
400
;
info
.
data
=
data
;
}
//读取所有的摄像机编码
//每行中数据顺序 "名称","类型","联系人","电话","电子邮箱","预收款","期初应收","期初应付","备注","传真","手机","地址","纳税人识别号","开户行","账号","税率","状态"
List
<
Supplier
>
sList
=
new
ArrayList
<
Supplier
>();
for
(
int
i
=
1
;
i
<
src
.
getRows
();
i
++)
{
Supplier
s
=
new
Supplier
();
s
.
setSupplier
(
ExcelUtils
.
getContent
(
src
,
i
,
0
));
s
.
setType
(
ExcelUtils
.
getContent
(
src
,
i
,
1
));
s
.
setContacts
(
ExcelUtils
.
getContent
(
src
,
i
,
2
));
s
.
setPhonenum
(
ExcelUtils
.
getContent
(
src
,
i
,
3
));
s
.
setEmail
(
ExcelUtils
.
getContent
(
src
,
i
,
4
));
s
.
setAdvancein
(
parseDoubleEx
(
ExcelUtils
.
getContent
(
src
,
i
,
5
)));
s
.
setBeginneedget
(
parseDoubleEx
(
ExcelUtils
.
getContent
(
src
,
i
,
6
)));
s
.
setBeginneedpay
(
parseDoubleEx
(
ExcelUtils
.
getContent
(
src
,
i
,
7
)));
s
.
setDescription
(
ExcelUtils
.
getContent
(
src
,
i
,
8
));
s
.
setFax
(
ExcelUtils
.
getContent
(
src
,
i
,
9
));
s
.
setTelephone
(
ExcelUtils
.
getContent
(
src
,
i
,
10
));
s
.
setAddress
(
ExcelUtils
.
getContent
(
src
,
i
,
11
));
s
.
setTaxnum
(
ExcelUtils
.
getContent
(
src
,
i
,
12
));
s
.
setBankname
(
ExcelUtils
.
getContent
(
src
,
i
,
13
));
s
.
setAccountnumber
(
ExcelUtils
.
getContent
(
src
,
i
,
14
));
s
.
setTaxrate
(
parseDoubleEx
(
ExcelUtils
.
getContent
(
src
,
i
,
15
)));
String
enabled
=
ExcelUtils
.
getContent
(
src
,
i
,
16
);
s
.
setEnabled
(
enabled
.
equals
(
"启用"
)?
true
:
false
);
s
.
setIsystem
(
Byte
.
parseByte
(
"1"
));
sList
.
add
(
s
);
}
info
=
supplierService
.
importExcel
(
sList
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
message
=
"导入失败"
;
info
.
code
=
500
;
data
.
put
(
"message"
,
message
);
info
.
data
=
data
;
}
return
null
;
}
public
Double
parseDoubleEx
(
String
str
){
if
(!
StringUtil
.
isEmpty
(
str
))
{
return
Double
.
parseDouble
(
str
);
}
else
{
return
null
;
}
}
}
src/main/java/com/jsh/erp/datasource/entities/DepotItemVo4WithInfoEx.java
View file @
693a7558
...
...
@@ -48,6 +48,8 @@ public class DepotItemVo4WithInfoEx {
private
String
mtype
;
private
Long
MId
;
private
String
MName
;
private
String
MModel
;
...
...
@@ -258,6 +260,14 @@ public class DepotItemVo4WithInfoEx {
this
.
mtype
=
mtype
;
}
public
Long
getMId
()
{
return
MId
;
}
public
void
setMId
(
Long
MId
)
{
this
.
MId
=
MId
;
}
public
String
getMName
()
{
return
MName
;
}
...
...
src/main/java/com/jsh/erp/datasource/mappers/MaterialMapper.java
View file @
693a7558
...
...
@@ -121,4 +121,10 @@ public interface MaterialMapper {
int
updatePriceNullByPrimaryKey
(
Long
id
);
int
updateUnitIdNullByPrimaryKey
(
Long
id
);
List
<
MaterialVo4Unit
>
findByAll
(
@Param
(
"name"
)
String
name
,
@Param
(
"model"
)
String
model
,
@Param
(
"categoryId"
)
Long
categoryId
,
@Param
(
"categoryIds"
)
String
categoryIds
);
}
\ No newline at end of file
src/main/java/com/jsh/erp/datasource/mappers/SupplierMapper.java
View file @
693a7558
...
...
@@ -109,4 +109,11 @@ public interface SupplierMapper {
@Param
(
"phonenum"
)
String
phonenum
,
@Param
(
"telephone"
)
String
telephone
,
@Param
(
"description"
)
String
description
);
List
<
Supplier
>
findByAll
(
@Param
(
"supplier"
)
String
supplier
,
@Param
(
"type"
)
String
type
,
@Param
(
"phonenum"
)
String
phonenum
,
@Param
(
"telephone"
)
String
telephone
,
@Param
(
"description"
)
String
description
);
}
\ No newline at end of file
src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java
View file @
693a7558
...
...
@@ -84,14 +84,18 @@ public class DepotHeadService {
}
depotHead
.
setCreatetime
(
new
Timestamp
(
System
.
currentTimeMillis
()));
depotHead
.
setStatus
(
false
);
return
depotHeadMapper
.
insert
Selective
(
depotHead
);
return
depotHeadMapper
.
insert
(
depotHead
);
}
@Transactional
(
value
=
"transactionManager"
,
rollbackFor
=
Exception
.
class
)
public
int
updateDepotHead
(
String
beanJson
,
Long
id
)
{
DepotHead
dh
=
depotHeadMapper
.
selectByPrimaryKey
(
id
);
DepotHead
depotHead
=
JSONObject
.
parseObject
(
beanJson
,
DepotHead
.
class
);
depotHead
.
setId
(
id
);
return
depotHeadMapper
.
updateByPrimaryKeySelective
(
depotHead
);
depotHead
.
setStatus
(
dh
.
getStatus
());
depotHead
.
setCreatetime
(
dh
.
getCreatetime
());
depotHead
.
setOperpersonname
(
dh
.
getOperpersonname
());
return
depotHeadMapper
.
updateByPrimaryKey
(
depotHead
);
}
@Transactional
(
value
=
"transactionManager"
,
rollbackFor
=
Exception
.
class
)
...
...
src/main/java/com/jsh/erp/service/material/MaterialService.java
View file @
693a7558
...
...
@@ -5,6 +5,7 @@ import com.jsh.erp.datasource.entities.Material;
import
com.jsh.erp.datasource.entities.MaterialExample
;
import
com.jsh.erp.datasource.entities.MaterialVo4Unit
;
import
com.jsh.erp.datasource.mappers.MaterialMapper
;
import
com.jsh.erp.utils.BaseResponseInfo
;
import
com.jsh.erp.utils.StringUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -14,7 +15,9 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Service
public
class
MaterialService
{
...
...
@@ -160,4 +163,32 @@ public class MaterialService {
return
materialMapper
.
selectByExample
(
example
);
}
public
List
<
MaterialVo4Unit
>
findByAll
(
String
name
,
String
model
,
Long
categoryId
,
String
categoryIds
)
{
List
<
MaterialVo4Unit
>
resList
=
new
ArrayList
<
MaterialVo4Unit
>();
List
<
MaterialVo4Unit
>
list
=
materialMapper
.
findByAll
(
name
,
model
,
categoryId
,
categoryIds
);
if
(
null
!=
list
)
{
for
(
MaterialVo4Unit
m
:
list
)
{
resList
.
add
(
m
);
}
}
return
resList
;
}
public
BaseResponseInfo
importExcel
(
List
<
Material
>
mList
)
throws
Exception
{
BaseResponseInfo
info
=
new
BaseResponseInfo
();
Map
<
String
,
Object
>
data
=
new
HashMap
<
String
,
Object
>();
try
{
for
(
Material
m:
mList
)
{
materialMapper
.
insertSelective
(
m
);
}
info
.
code
=
200
;
data
.
put
(
"message"
,
"成功"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
info
.
code
=
500
;
data
.
put
(
"message"
,
e
.
getMessage
());
}
info
.
data
=
data
;
return
info
;
}
}
src/main/java/com/jsh/erp/service/supplier/SupplierService.java
View file @
693a7558
...
...
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.jsh.erp.datasource.entities.Supplier
;
import
com.jsh.erp.datasource.entities.SupplierExample
;
import
com.jsh.erp.datasource.mappers.SupplierMapper
;
import
com.jsh.erp.utils.BaseResponseInfo
;
import
com.jsh.erp.utils.StringUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -12,7 +13,9 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Service
public
class
SupplierService
{
...
...
@@ -123,4 +126,26 @@ public class SupplierService {
List
<
Supplier
>
list
=
supplierMapper
.
selectByExample
(
example
);
return
list
;
}
public
List
<
Supplier
>
findByAll
(
String
supplier
,
String
type
,
String
phonenum
,
String
telephone
,
String
description
)
{
return
supplierMapper
.
findByAll
(
supplier
,
type
,
phonenum
,
telephone
,
description
);
}
public
BaseResponseInfo
importExcel
(
List
<
Supplier
>
mList
)
throws
Exception
{
BaseResponseInfo
info
=
new
BaseResponseInfo
();
Map
<
String
,
Object
>
data
=
new
HashMap
<
String
,
Object
>();
try
{
for
(
Supplier
s:
mList
)
{
supplierMapper
.
insertSelective
(
s
);
}
info
.
code
=
200
;
data
.
put
(
"message"
,
"成功"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
info
.
code
=
500
;
data
.
put
(
"message"
,
e
.
getMessage
());
}
info
.
data
=
data
;
return
info
;
}
}
src/main/java/com/jsh/erp/utils/ExcelUtils.java
0 → 100644
View file @
693a7558
package
com.jsh.erp.utils
;
import
java.io.File
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
com.alibaba.druid.util.StringUtils
;
import
jxl.Cell
;
import
jxl.Sheet
;
import
jxl.Workbook
;
import
jxl.format.*
;
import
jxl.write.Label
;
import
jxl.write.WritableCellFormat
;
import
jxl.write.WritableFont
;
import
jxl.write.WritableSheet
;
import
jxl.write.WritableWorkbook
;
public
class
ExcelUtils
{
public
static
WritableFont
arial14font
=
null
;
public
static
File
exportObjects
(
String
fileName
,
String
[]
names
,
String
title
,
List
<
String
[]>
objects
)
throws
Exception
{
File
excelFile
=
new
File
(
"fileName.xls"
);
WritableWorkbook
wtwb
=
Workbook
.
createWorkbook
(
excelFile
);
WritableSheet
sheet
=
wtwb
.
createSheet
(
title
,
0
);
sheet
.
getSettings
().
setDefaultColumnWidth
(
20
);
WritableFont
wfont
=
new
WritableFont
(
WritableFont
.
createFont
(
"楷书"
),
15
);
WritableCellFormat
format
=
new
WritableCellFormat
(
wfont
);
WritableFont
wfc
=
new
WritableFont
(
WritableFont
.
ARIAL
,
20
,
WritableFont
.
BOLD
,
false
,
UnderlineStyle
.
NO_UNDERLINE
,
jxl
.
format
.
Colour
.
BLACK
);
WritableCellFormat
wcfFC
=
new
WritableCellFormat
(
wfc
);
wcfFC
.
setAlignment
(
Alignment
.
CENTRE
);
wcfFC
.
setVerticalAlignment
(
VerticalAlignment
.
CENTRE
);
// CellView cellView = new CellView();
// cellView.setAutosize(true); //设置自动大小
format
.
setAlignment
(
Alignment
.
LEFT
);
format
.
setVerticalAlignment
(
VerticalAlignment
.
TOP
);
sheet
.
mergeCells
(
0
,
0
,
names
.
length
-
1
,
0
);
sheet
.
addCell
(
new
Label
(
0
,
0
,
title
,
wcfFC
));
int
rowNum
=
2
;
for
(
int
i
=
0
;
i
<
names
.
length
;
i
++)
{
sheet
.
addCell
(
new
Label
(
i
,
1
,
names
[
i
],
format
));
}
for
(
int
j
=
0
;
j
<
objects
.
size
();
j
++)
{
String
[]
obj
=
objects
.
get
(
j
);
for
(
int
h
=
0
;
h
<
obj
.
length
;
h
++)
{
sheet
.
addCell
(
new
Label
(
h
,
rowNum
,
obj
[
h
],
format
));
}
rowNum
=
rowNum
+
1
;
}
wtwb
.
write
();
wtwb
.
close
();
return
excelFile
;
}
/**
* 导出excel,不需要第一行的title
*
* @param fileName
* @param names
* @param title
* @param objects
* @return
* @throws Exception
*/
public
static
File
exportObjectsWithoutTitle
(
String
fileName
,
String
[]
names
,
String
title
,
List
<
String
[]>
objects
)
throws
Exception
{
File
excelFile
=
new
File
(
fileName
);
WritableWorkbook
wtwb
=
Workbook
.
createWorkbook
(
excelFile
);
WritableSheet
sheet
=
wtwb
.
createSheet
(
title
,
0
);
sheet
.
getSettings
().
setDefaultColumnWidth
(
20
);
// 第一行的格式
WritableFont
wfc
=
new
WritableFont
(
WritableFont
.
ARIAL
,
15
,
WritableFont
.
BOLD
,
false
,
UnderlineStyle
.
NO_UNDERLINE
,
jxl
.
format
.
Colour
.
BLACK
);
WritableCellFormat
wcfFC
=
new
WritableCellFormat
(
wfc
);
wcfFC
.
setVerticalAlignment
(
VerticalAlignment
.
CENTRE
);
// 设置字体以及单元格格式
WritableFont
wfont
=
new
WritableFont
(
WritableFont
.
createFont
(
"楷书"
),
15
);
WritableCellFormat
format
=
new
WritableCellFormat
(
wfont
);
format
.
setAlignment
(
Alignment
.
LEFT
);
format
.
setVerticalAlignment
(
VerticalAlignment
.
TOP
);
// 第一行写入标题
for
(
int
i
=
0
;
i
<
names
.
length
;
i
++)
{
sheet
.
addCell
(
new
Label
(
i
,
0
,
names
[
i
],
wcfFC
));
}
// 其余行依次写入数据
int
rowNum
=
1
;
for
(
int
j
=
0
;
j
<
objects
.
size
();
j
++)
{
String
[]
obj
=
objects
.
get
(
j
);
for
(
int
h
=
0
;
h
<
obj
.
length
;
h
++)
{
sheet
.
addCell
(
new
Label
(
h
,
rowNum
,
obj
[
h
],
format
));
}
rowNum
=
rowNum
+
1
;
}
wtwb
.
write
();
wtwb
.
close
();
return
excelFile
;
}
public
static
String
createTempFile
(
String
[]
names
,
String
title
,
List
<
String
[]>
objects
)
throws
Exception
{
File
excelFile
=
File
.
createTempFile
(
System
.
currentTimeMillis
()
+
""
,
".xls"
);
WritableWorkbook
wtwb
=
Workbook
.
createWorkbook
(
excelFile
);
WritableSheet
sheet
=
wtwb
.
createSheet
(
title
,
0
);
sheet
.
getSettings
().
setDefaultColumnWidth
(
20
);
WritableFont
wfont
=
new
WritableFont
(
WritableFont
.
createFont
(
"楷书"
),
15
);
WritableCellFormat
format
=
new
WritableCellFormat
(
wfont
);
WritableFont
wfc
=
new
WritableFont
(
WritableFont
.
ARIAL
,
20
,
WritableFont
.
BOLD
,
false
,
UnderlineStyle
.
NO_UNDERLINE
,
jxl
.
format
.
Colour
.
BLACK
);
WritableCellFormat
wcfFC
=
new
WritableCellFormat
(
wfc
);
wcfFC
.
setAlignment
(
Alignment
.
CENTRE
);
wcfFC
.
setVerticalAlignment
(
VerticalAlignment
.
CENTRE
);
// CellView cellView = new CellView();
// cellView.setAutosize(true); //设置自动大小
format
.
setAlignment
(
Alignment
.
LEFT
);
format
.
setVerticalAlignment
(
VerticalAlignment
.
TOP
);
sheet
.
mergeCells
(
0
,
0
,
names
.
length
-
1
,
0
);
sheet
.
addCell
(
new
Label
(
0
,
0
,
title
,
wcfFC
));
int
rowNum
=
2
;
for
(
int
i
=
0
;
i
<
names
.
length
;
i
++)
{
sheet
.
addCell
(
new
Label
(
i
,
1
,
names
[
i
],
format
));
}
for
(
int
j
=
0
;
j
<
objects
.
size
();
j
++)
{
String
[]
obj
=
objects
.
get
(
j
);
for
(
int
h
=
0
;
h
<
obj
.
length
;
h
++)
{
sheet
.
addCell
(
new
Label
(
h
,
rowNum
,
obj
[
h
],
format
));
}
rowNum
=
rowNum
+
1
;
}
wtwb
.
write
();
wtwb
.
close
();
return
excelFile
.
getName
();
}
public
static
String
createCheckRandomTempFile
(
String
[]
names
,
String
title
,
List
<
String
[]>
objects
,
Map
<
String
,
String
>
infoMap
)
throws
Exception
{
File
excelFile
=
File
.
createTempFile
(
System
.
currentTimeMillis
()
+
""
,
".xls"
);
WritableWorkbook
wtwb
=
Workbook
.
createWorkbook
(
excelFile
);
WritableSheet
sheet
=
wtwb
.
createSheet
(
title
,
0
);
sheet
.
getSettings
().
setDefaultColumnWidth
(
20
);
WritableFont
wfont
=
new
WritableFont
(
WritableFont
.
createFont
(
"楷书"
),
14
);
WritableCellFormat
format
=
new
WritableCellFormat
(
wfont
);
format
.
setBorder
(
Border
.
ALL
,
BorderLineStyle
.
THIN
);
format
.
setAlignment
(
Alignment
.
CENTRE
);
format
.
setVerticalAlignment
(
VerticalAlignment
.
CENTRE
);
WritableFont
wfc
=
new
WritableFont
(
WritableFont
.
ARIAL
,
20
,
WritableFont
.
BOLD
,
false
,
UnderlineStyle
.
NO_UNDERLINE
,
jxl
.
format
.
Colour
.
BLACK
);
WritableCellFormat
wcfFC
=
new
WritableCellFormat
(
wfc
);
wcfFC
.
setAlignment
(
Alignment
.
LEFT
);
wcfFC
.
setVerticalAlignment
(
VerticalAlignment
.
CENTRE
);
WritableFont
nameWfc
=
new
WritableFont
(
WritableFont
.
ARIAL
,
14
,
WritableFont
.
BOLD
,
false
,
UnderlineStyle
.
NO_UNDERLINE
,
jxl
.
format
.
Colour
.
BLACK
);
WritableCellFormat
nameFormat
=
new
WritableCellFormat
(
nameWfc
);
nameFormat
.
setBorder
(
Border
.
ALL
,
BorderLineStyle
.
THIN
);
nameFormat
.
setAlignment
(
Alignment
.
CENTRE
);
nameFormat
.
setVerticalAlignment
(
VerticalAlignment
.
CENTRE
);
WritableCellFormat
infoFormat
=
new
WritableCellFormat
(
wfont
);
infoFormat
.
setAlignment
(
Alignment
.
LEFT
);
infoFormat
.
setVerticalAlignment
(
VerticalAlignment
.
CENTRE
);
sheet
.
mergeCells
(
0
,
0
,
names
.
length
-
1
,
0
);
sheet
.
addCell
(
new
Label
(
0
,
0
,
infoMap
.
get
(
"title"
),
wcfFC
));
sheet
.
addCell
(
new
Label
(
0
,
2
,
infoMap
.
get
(
"info"
),
infoFormat
));
sheet
.
addCell
(
new
Label
(
2
,
2
,
infoMap
.
get
(
"dvrnvr"
),
infoFormat
));
sheet
.
addCell
(
new
Label
(
4
,
2
,
infoMap
.
get
(
"char"
),
infoFormat
));
sheet
.
addCell
(
new
Label
(
0
,
3
,
infoMap
.
get
(
"infoPercent"
),
infoFormat
));
sheet
.
addCell
(
new
Label
(
2
,
3
,
infoMap
.
get
(
"dvrnvrPercent"
),
infoFormat
));
sheet
.
addCell
(
new
Label
(
4
,
3
,
infoMap
.
get
(
"charPercent"
),
infoFormat
));
int
rowNum
=
5
;
for
(
int
i
=
0
;
i
<
names
.
length
;
i
++)
{
sheet
.
addCell
(
new
Label
(
i
,
4
,
names
[
i
],
nameFormat
));
}
for
(
int
j
=
0
;
j
<
objects
.
size
();
j
++)
{
String
[]
obj
=
objects
.
get
(
j
);
for
(
int
h
=
0
;
h
<
obj
.
length
;
h
++)
{
sheet
.
addCell
(
new
Label
(
h
,
rowNum
,
obj
[
h
],
format
));
}
rowNum
=
rowNum
+
1
;
}
wtwb
.
write
();
wtwb
.
close
();
return
excelFile
.
getName
();
}
public
static
String
getContent
(
Sheet
src
,
int
rowNum
,
int
colNum
)
{
return
src
.
getRow
(
rowNum
)[
colNum
].
getContents
().
trim
();
}
/**
* 从第i行开始到最后检测指定列的唯一性
*
* @param src
* @param colNum
* @param fromRow
* 起始行
* @return
*/
public
static
Boolean
checkUnique
(
Sheet
src
,
int
colNum
,
int
fromRow
)
{
Cell
[]
colCells
=
src
.
getColumn
(
colNum
);
Set
<
String
>
set
=
new
HashSet
<
String
>();
for
(
int
i
=
fromRow
;
i
<
colCells
.
length
;
i
++)
{
if
(!
StringUtils
.
isEmpty
(
colCells
[
i
].
getContents
())
&&
!
set
.
add
(
colCells
[
i
].
getContents
()))
{
return
false
;
}
}
return
true
;
}
public
static
File
getTempFile
(
String
fileName
)
{
String
dir
=
System
.
getProperty
(
"java.io.tmpdir"
);
// 获取系统临时目录
return
new
File
(
dir
+
File
.
separator
+
fileName
);
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
String
msg
=
"12345"
;
System
.
out
.
println
(
msg
.
indexOf
(
"@"
));
}
}
src/main/java/com/jsh/erp/utils/ExportExecUtil.java
0 → 100644
View file @
693a7558
package
com.jsh.erp.utils
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.OutputStream
;
public
class
ExportExecUtil
{
public
static
void
showExec
(
File
excelFile
,
String
fileName
,
HttpServletResponse
response
)
throws
Exception
{
response
.
setContentType
(
"application/octet-stream"
);
fileName
=
new
String
(
fileName
.
getBytes
(
"gbk"
),
"ISO8859_1"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename=\""
+
fileName
+
".xls"
+
"\""
);
FileInputStream
fis
=
new
FileInputStream
(
excelFile
);
OutputStream
out
=
response
.
getOutputStream
();
int
SIZE
=
1024
*
1024
;
byte
[]
bytes
=
new
byte
[
SIZE
];
int
LENGTH
=
-
1
;
while
((
LENGTH
=
fis
.
read
(
bytes
))
!=
-
1
){
out
.
write
(
bytes
,
0
,
LENGTH
);
}
out
.
flush
();
fis
.
close
();
}
}
src/main/java/com/jsh/erp/utils/FileUtils.java
0 → 100644
View file @
693a7558
package
com.jsh.erp.utils
;
import
com.alibaba.druid.util.StringUtils
;
import
java.io.*
;
import
java.util.*
;
/**
*
* 文件处理工具类
*
*/
public
class
FileUtils
{
/**
* 功 能: 创建文件夹
*
* @param path
* 参 数:要创建的文件夹名称
* @return 返回值: 如果成功true;否则false 如:FileUtils.mkdir("/usr/apps/upload/");
*/
public
static
boolean
makedir
(
String
path
)
{
File
file
=
new
File
(
path
);
if
(!
file
.
exists
())
return
file
.
mkdirs
();
else
return
true
;
}
/**
* 保存文件
*
* @param stream
* @param path
* 存放路径
* @param filename
* 文件名
* @throws IOException
*/
public
static
void
SaveFileFromInputStream
(
InputStream
stream
,
String
path
,
String
filename
)
throws
IOException
{
File
file
=
new
File
(
path
);
boolean
flag
=
true
;
if
(!
file
.
exists
()){
flag
=
file
.
mkdirs
();
}
if
(
flag
){
FileOutputStream
fs
=
new
FileOutputStream
(
new
File
(
path
+
filename
));
byte
[]
buffer
=
new
byte
[
1024
*
1024
];
int
byteread
=
0
;
while
((
byteread
=
stream
.
read
(
buffer
))
!=
-
1
)
{
fs
.
write
(
buffer
,
0
,
byteread
);
fs
.
flush
();
}
fs
.
close
();
stream
.
close
();
}
}
/**
* 列出某个目录下的所有文件,子目录不列出
* @param folderPath:文件夹路径
* @return
*/
public
static
List
<
String
>
listFile
(
String
folderPath
){
List
<
String
>
fileList
=
new
ArrayList
<
String
>();
//FileViewer.getListFiles(destPath, null, false);
File
f
=
new
File
(
folderPath
);
File
[]
t
=
f
.
listFiles
();
for
(
int
i
=
0
;
i
<
t
.
length
;
i
++){
fileList
.
add
(
t
[
i
].
getAbsolutePath
());
}
return
fileList
;
}
/**
* 判断文件是否存在
*
* @param fileName
* @return
*/
public
static
boolean
exists
(
String
fileName
)
{
File
file
=
new
File
(
fileName
);
if
(
file
.
exists
())
{
return
true
;
}
else
{
return
false
;
}
}
/**
* 取当前路径
*
* @return
*/
public
static
String
getCurrentPath
()
{
File
directory
=
new
File
(
"."
);
String
nowPath
=
""
;
try
{
nowPath
=
directory
.
getCanonicalFile
().
toString
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
nowPath
;
}
/**
* 获取文件扩展名
*
* @param fileName
* @return
* */
public
static
String
getFileExtendName
(
String
fileName
)
{
if
(
fileName
==
null
)
{
return
""
;
}
else
{
return
fileName
.
substring
(
fileName
.
lastIndexOf
(
"."
)
+
1
,
fileName
.
length
());
}
}
/**
* 创建一个新文件,如果存在则报错
*
* @param filePath
* @param fileName
* @return
*/
public
static
void
createFile
(
String
filePath
,
String
fileName
)
throws
RuntimeException
{
String
file
=
null
;
if
(
filePath
==
null
)
{
file
=
fileName
;
}
else
{
file
=
filePath
+
File
.
separator
+
fileName
;
}
createFile
(
file
);
}
/**
* 创建一个新文件(含路径),如果存在则报错
*
* @param fileName
* 含有路径的文件名
* @return
*/
public
static
void
createFile
(
String
fileName
)
throws
RuntimeException
{
File
f
=
new
File
(
fileName
);
if
(
f
.
exists
())
{
throw
new
RuntimeException
(
"FILE_EXIST_ERROR"
);
}
else
{
try
{
File
fileFolder
=
f
.
getParentFile
();
if
(!
fileFolder
.
exists
())
fileFolder
.
mkdirs
();
f
.
createNewFile
();
}
catch
(
IOException
ie
)
{
System
.
out
.
println
(
"文件"
+
fileName
+
"创建失败:"
+
ie
.
getMessage
());
throw
new
RuntimeException
(
"FILE_CREATE_ERROR"
);
}
}
}
/**
* 创建目录,如果存在则不创建
*
* @param path
* @return 返回结果null则创建成功,否则返回的是错误信息
* @return
*/
public
static
String
createDir
(
String
path
,
boolean
isCreateSubPah
)
{
String
msg
=
null
;
File
dir
=
new
File
(
path
);
if
(
dir
==
null
)
{
msg
=
"不能创建空目录"
;
return
msg
;
}
if
(
dir
.
isFile
())
{
msg
=
"已有同名文件存在"
;
return
msg
;
}
if
(!
dir
.
exists
())
{
if
(
isCreateSubPah
&&
!
dir
.
mkdirs
())
{
msg
=
"目录创建失败,原因不明"
;
}
else
if
(!
dir
.
mkdir
())
{
msg
=
"目录创建失败,原因不明"
;
}
}
return
msg
;
}
/**
* 删除指定目录或文件。 如果要删除是目录,同时删除子目录下所有的文件
*
* @file:File 目录
* */
public
static
void
delFileOrFolder
(
String
fileName
)
{
if
(!
exists
(
fileName
))
return
;
File
file
=
new
File
(
fileName
);
delFileOrFolder
(
file
);
}
/**
* 删除指定目录或文件。 如果要删除是目录,同时删除子目录下所有的文件
*
* @file:File 目录
* */
public
static
void
delFileOrFolder
(
File
file
)
{
if
(!
file
.
exists
())
return
;
if
(
file
.
isFile
())
{
file
.
delete
();
}
else
{
File
[]
sub
=
file
.
listFiles
();
if
(
sub
==
null
||
sub
.
length
<=
0
)
{
file
.
delete
();
}
else
{
for
(
int
i
=
0
;
i
<
sub
.
length
;
i
++)
{
delFileOrFolder
(
sub
[
i
]);
}
file
.
delete
();
}
}
}
/**
* 从Properties格式配置文件中获取所有参数并保存到HashMap中。
* 配置中的key值即map表中的key值,如果配置文件保存时用的中文,则返回结果也会转成中文。
*
* @param file
* @return
* @throws IOException
*/
@SuppressWarnings
(
"unchecked"
)
public
static
HashMap
readPropertyFile
(
String
file
,
String
charsetName
)
throws
IOException
{
if
(
charsetName
==
null
||
charsetName
.
trim
().
length
()==
0
){
charsetName
=
"gbk"
;
}
HashMap
map
=
new
HashMap
();
InputStream
is
=
null
;
if
(
file
.
startsWith
(
"file:"
))
is
=
new
FileInputStream
(
new
File
(
file
.
substring
(
5
)));
else
is
=
FileUtils
.
class
.
getClassLoader
().
getResourceAsStream
(
file
);
Properties
properties
=
new
Properties
();
properties
.
load
(
is
);
Enumeration
en
=
properties
.
propertyNames
();
while
(
en
.
hasMoreElements
())
{
String
key
=
(
String
)
en
.
nextElement
();
String
code
=
new
String
(
properties
.
getProperty
(
key
).
getBytes
(
"ISO-8859-1"
),
charsetName
);
map
.
put
(
key
,
code
);
}
return
map
;
}
/**
*
* @param path
* 文件路径
* @param suffix
* 后缀名
* @param isdepth
* 是否遍历子目录
* @return
*/
@SuppressWarnings
(
"unchecked"
)
public
static
List
getListFiles
(
String
path
,
String
suffix
,
boolean
isdepth
)
{
File
file
=
new
File
(
path
);
return
FileUtils
.
listFile
(
file
,
suffix
,
isdepth
);
}
/**
* @param f
* @param suffix:后缀名
* @param isdepth:是否遍历子目录
* @return
*/
@SuppressWarnings
(
"unchecked"
)
public
static
List
listFile
(
File
f
,
String
suffix
,
boolean
isdepth
)
{
// 是目录,同时需要遍历子目录
List
<
String
>
fileList
=
new
ArrayList
<
String
>();
if
(
f
.
isDirectory
()
&&
isdepth
==
true
)
{
File
[]
t
=
f
.
listFiles
();
for
(
int
i
=
0
;
i
<
t
.
length
;
i
++)
{
listFile
(
t
[
i
],
suffix
,
isdepth
);
}
}
else
{
String
filePath
=
f
.
getAbsolutePath
();
if
(
suffix
!=
null
)
{
int
begIndex
=
filePath
.
lastIndexOf
(
"."
);
// 最后一个.(即后缀名前面的.)的索引
String
tempsuffix
=
""
;
if
(
begIndex
!=
-
1
)
// 防止是文件但却没有后缀名结束的文件
{
tempsuffix
=
filePath
.
substring
(
begIndex
+
1
,
filePath
.
length
());
}
if
(
tempsuffix
.
equals
(
suffix
))
{
fileList
.
add
(
filePath
);
}
}
else
{
// 后缀名为null则为所有文件
fileList
.
add
(
filePath
);
}
}
return
fileList
;
}
/**
* 方法追加文件:使用FileWriter
*
* @param fileName
* @param content
*/
public
static
void
appendMethod
(
String
fileName
,
String
content
)
{
try
{
// 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter
writer
=
new
FileWriter
(
fileName
,
true
);
writer
.
write
(
content
+
"\r\n"
);
writer
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
src/main/resources/mapper_xml/DepotItemMapperEx.xml
View file @
693a7558
...
...
@@ -33,6 +33,14 @@
<result
column=
"UName"
jdbcType=
"VARCHAR"
property=
"UName"
/>
</resultMap>
<resultMap
extends=
"BaseResultMap"
id=
"ResultByMaterial"
type=
"com.jsh.erp.datasource.entities.DepotItemVo4WithInfoEx"
>
<result
column=
"MId"
jdbcType=
"VARCHAR"
property=
"MId"
/>
<result
column=
"MName"
jdbcType=
"VARCHAR"
property=
"MName"
/>
<result
column=
"MModel"
jdbcType=
"VARCHAR"
property=
"MModel"
/>
<result
column=
"MaterialUnit"
jdbcType=
"VARCHAR"
property=
"MaterialUnit"
/>
<result
column=
"MColor"
jdbcType=
"VARCHAR"
property=
"MColor"
/>
</resultMap>
<select
id=
"selectByConditionDepotItem"
parameterType=
"com.jsh.erp.datasource.entities.DepotItemExample"
resultMap=
"BaseResultMap"
>
select *
FROM jsh_depotitem
...
...
@@ -125,40 +133,40 @@
from jsh_depotitem di left join jsh_material m on di.MaterialId=m.id
left join jsh_unit u on m.UnitId = u.id
left join jsh_depot dp1 on di.DepotId=dp1.id
left join jsh_depot dp2 on di.AnotherDepotId=dp
1
.id
left join jsh_depot dp2 on di.AnotherDepotId=dp
2
.id
where di.HeaderId = ${headerId}
order by di.id asc
</select>
<select
id=
"findByAll"
parameterType=
"com.jsh.erp.datasource.entities.DepotItemExample"
resultMap=
"Result
WithInfoExMap
"
>
select
di.*
, m.Name MName, m.Model MModel, m.Unit MaterialUnit, m.Color MColor
<select
id=
"findByAll"
parameterType=
"com.jsh.erp.datasource.entities.DepotItemExample"
resultMap=
"Result
ByMaterial
"
>
select
m.id MId
, m.Name MName, m.Model MModel, m.Unit MaterialUnit, m.Color MColor
from jsh_depotitem di
inner join jsh_material m on di.MaterialId=m.id
where 1=1
<if
test=
"headIds != null"
>
and HeaderId in (${headIds})
and
di.
HeaderId in (${headIds})
</if>
<if
test=
"materialIds != null"
>
and MaterialId in (${materialIds})
and
di.
MaterialId in (${materialIds})
</if>
group by
MaterialId
group by
m.id,m.Name, m.Model, m.Unit, m.Color
<if
test=
"offset != null and rows != null"
>
limit #{offset},#{rows}
</if>
</select>
<select
id=
"findByAllCount"
resultType=
"java.lang.Integer"
>
select count(1) from (select
di.I
d
select count(1) from (select
m.i
d
from jsh_depotitem di
inner join jsh_material m on di.MaterialId=m.id
where 1=1
<if
test=
"headIds != null"
>
and HeaderId in (${headIds})
and
di.
HeaderId in (${headIds})
</if>
<if
test=
"materialIds != null"
>
and MaterialId in (${materialIds})
and
di.
MaterialId in (${materialIds})
</if>
group by
MaterialI
d) cc
group by
m.i
d) cc
</select>
<select
id=
"findByTypeInIsPrev"
resultType=
"java.lang.Double"
>
...
...
src/main/resources/mapper_xml/MaterialMapperEx.xml
View file @
693a7558
...
...
@@ -77,4 +77,22 @@
UnitId = null
where Id = #{id,jdbcType=BIGINT}
</update>
<select
id=
"findByAll"
parameterType=
"com.jsh.erp.datasource.entities.MaterialExample"
resultMap=
"ResultMapList"
>
select m.*,u.uname unitName, mc.name categoryName
FROM jsh_material m
left JOIN jsh_unit u on m.UnitId = u.id
left JOIN jsh_materialcategory mc on m.CategoryId = mc.id
where 1=1
<if
test=
"name != null"
>
and m.name like '%${name}%'
</if>
<if
test=
"model != null"
>
and m.model like '%${model}%'
</if>
<if
test=
"categoryId != 1"
>
and m.CategoryId in (${categoryIds})
</if>
order by m.id asc
</select>
</mapper>
\ No newline at end of file
src/main/resources/mapper_xml/SupplierMapperEx.xml
View file @
693a7558
...
...
@@ -45,4 +45,25 @@
and description like '%${description}%'
</if>
</select>
<select
id=
"findByAll"
parameterType=
"com.jsh.erp.datasource.entities.SupplierExample"
resultMap=
"BaseResultMap"
>
select *
FROM jsh_supplier
where 1=1
<if
test=
"supplier != null"
>
and supplier like '%${supplier}%'
</if>
<if
test=
"type != null"
>
and type='${type}'
</if>
<if
test=
"phonenum != null"
>
and phonenum like '%${phonenum}%'
</if>
<if
test=
"telephone != null"
>
and telephone like '%${telephone}%'
</if>
<if
test=
"description != null"
>
and description like '%${description}%'
</if>
</select>
</mapper>
\ No newline at end of file
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment