Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
patzn-cloud-service-hmhj
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangweidong
patzn-cloud-service-hmhj
Commits
d26d8ca8
Commit
d26d8ca8
authored
Apr 17, 2023
by
lijingjing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WMS推送数据接口修改;
parent
b3eed0e1
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
220 additions
and
283 deletions
+220
-283
ServiceProperties.java
...om/patzn/cloud/service/lims/config/ServiceProperties.java
+14
-0
ErpRequest.java
.../com/patzn/cloud/service/lims/hmhj/common/ErpRequest.java
+59
-0
RestTemplateUtils.java
...tzn/cloud/service/lims/hmhj/common/RestTemplateUtils.java
+10
-2
WmsRequest.java
.../com/patzn/cloud/service/lims/hmhj/common/WmsRequest.java
+16
-16
HttpConst.java
...atzn/cloud/service/lims/hmhj/common/consts/HttpConst.java
+9
-3
WmsStockDeliveryController.java
...vice/lims/hmhj/controller/WmsStockDeliveryController.java
+1
-0
IEntrustSampleService.java
...loud/service/lims/hmhj/service/IEntrustSampleService.java
+2
-0
IWmsStockDeliveryService.java
...d/service/lims/hmhj/service/IWmsStockDeliveryService.java
+1
-0
EntrustReportServiceImpl.java
...vice/lims/hmhj/service/impl/EntrustReportServiceImpl.java
+1
-1
EntrustSampleItemServiceImpl.java
.../lims/hmhj/service/impl/EntrustSampleItemServiceImpl.java
+82
-57
EntrustSampleServiceImpl.java
...vice/lims/hmhj/service/impl/EntrustSampleServiceImpl.java
+9
-1
EntrustServiceImpl.java
...ud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
+6
-2
StatisticsServiceImpl.java
...service/lims/hmhj/service/impl/StatisticsServiceImpl.java
+2
-4
WmsStockServiceImpl.java
...d/service/lims/hmhj/service/impl/WmsStockServiceImpl.java
+2
-2
application-dev.yml
src/main/resources/application-dev.yml
+0
-3
application-hmhj.yml
src/main/resources/application-hmhj.yml
+1
-5
application-local.yml
src/main/resources/application-local.yml
+0
-5
application.yml
src/main/resources/application.yml
+5
-4
IDWorkTest.java
...st/java/com/patzn/cloud/service/lims/test/IDWorkTest.java
+0
-26
JsonObjectTest.java
...ava/com/patzn/cloud/service/lims/test/JsonObjectTest.java
+0
-16
Test.java
src/test/java/com/patzn/cloud/service/lims/test/Test.java
+0
-98
TestThreadLocal.java
...va/com/patzn/cloud/service/lims/test/TestThreadLocal.java
+0
-38
No files found.
src/main/java/com/patzn/cloud/service/lims/config/ServiceProperties.java
View file @
d26d8ca8
...
...
@@ -19,6 +19,8 @@ public class ServiceProperties {
*/
private
String
soffice
;
private
String
libOfficeUrl
;
private
String
url
;
private
String
apiUrl
;
...
...
@@ -107,7 +109,19 @@ public class ServiceProperties {
this
.
provinceItemUrl
=
provinceItemUrl
;
}
public
String
getLibOfficeUrl
()
{
return
libOfficeUrl
;
}
public
void
setLibOfficeUrl
(
String
libOfficeUrl
)
{
this
.
libOfficeUrl
=
libOfficeUrl
;
}
public
String
buildWmsUrl
(
String
method
)
{
return
this
.
wmsUrl
+
method
;
}
public
String
buildErpUrl
(
String
method
)
{
return
this
.
erpUrl
+
method
;
}
}
src/main/java/com/patzn/cloud/service/lims/hmhj/common/ErpRequest.java
0 → 100644
View file @
d26d8ca8
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
common
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.patzn.cloud.commons.toolkit.JacksonUtils
;
import
com.patzn.cloud.service.hmhj.model.ErpRespResult
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.http.HttpHeaders
;
import
java.util.Map
;
import
java.util.Objects
;
/**
* @author Meazty
*/
public
class
ErpRequest
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ErpRequest
.
class
);
public
static
ErpRespResult
sendPost
(
String
url
,
Map
<
String
,
?>
params
,
HttpHeaders
headers
)
{
try
{
String
resultStr
=
RestTemplateUtils
.
sendPost
(
url
,
params
,
headers
);
if
(
StringUtils
.
isBlank
(
resultStr
))
{
logger
.
error
(
"✦✦✦✦ ErpRequest ✦✦✦✦ sendPost ✦✦✦✈ DPS响应结果为空!"
);
return
ErpRespResult
.
failure
(
"DPS响应结果为空!"
);
}
ErpRespResult
result
=
JacksonUtils
.
readValue
(
resultStr
,
new
TypeReference
<
ErpRespResult
>()
{
});
if
(
Objects
.
isNull
(
result
))
{
logger
.
error
(
"✦✦✦✦ ErpRequest ✦✦✦✦ sendPost ✦✦✦✈ 请求DPS接口失败:{}"
,
JacksonUtils
.
toJSONString
(
result
));
return
ErpRespResult
.
failure
(
"请求DPS接口失败!"
);
}
return
result
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"✦✦✦✦ ErpRequest ✦✦✦✦ sendPost ✦✦✦✈ 请求DPS接口异常:"
,
e
);
return
ErpRespResult
.
failure
(
"请求DPS接口异常!"
);
}
}
public
static
<
T
>
ErpRespResult
<
T
>
sendGet
(
String
url
,
Map
<
String
,
?>
params
,
TypeReference
<
ErpRespResult
<
T
>>
typeReference
)
{
try
{
String
resultStr
=
RestTemplateUtils
.
sendGet
(
url
,
params
);
if
(
StringUtils
.
isBlank
(
resultStr
))
{
logger
.
error
(
"✦✦✦✦ ErpRequest ✦✦✦✦ sendGet ✦✦✦✈ DPS响应结果为空!"
);
return
ErpRespResult
.
failure
(
"DPS响应结果为空!"
);
}
ErpRespResult
<
T
>
result
=
JacksonUtils
.
readValue
(
resultStr
,
typeReference
);
if
(
Objects
.
isNull
(
result
))
{
logger
.
error
(
"✦✦✦✦ ErpRequest ✦✦✦✦ sendGet ✦✦✦✈ 请求DPS接口失败:{}"
,
JacksonUtils
.
toJSONString
(
result
));
return
ErpRespResult
.
failure
(
"请求DPS接口失败!"
);
}
return
result
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"✦✦✦✦ ErpRequest ✦✦✦✦ sendGet ✦✦✦✈ 请求DPS接口异常:"
,
e
);
return
ErpRespResult
.
failure
(
"请求DPS接口异常!"
);
}
}
}
src/main/java/com/patzn/cloud/service/lims/hmhj/common/RestTemplateUtils.java
View file @
d26d8ca8
...
...
@@ -81,8 +81,16 @@ public class RestTemplateUtils {
return
send
(
url
,
urlParam
,
body
,
method
,
headers
);
}
public
static
String
sendJson
(
String
url
,
Map
<
String
,
?>
body
)
{
return
sendJson
(
url
,
null
,
body
,
HttpMethod
.
POST
,
new
HttpHeaders
());
public
static
String
sendPost
(
String
url
,
Map
<
String
,
?>
body
)
{
return
sendPost
(
url
,
body
,
new
HttpHeaders
());
}
public
static
String
sendPost
(
String
url
,
Map
<
String
,
?>
body
,
HttpHeaders
headers
)
{
return
sendJson
(
url
,
null
,
body
,
HttpMethod
.
POST
,
headers
);
}
public
static
String
sendGet
(
String
url
,
Map
<
String
,
?>
params
)
{
return
sendSimple
(
url
,
params
);
}
public
static
String
sendJson
(
String
url
,
Map
<
String
,
?>
urlParam
,
Map
<
String
,
?>
body
)
{
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/common/WmsRequest.java
View file @
d26d8ca8
...
...
@@ -16,44 +16,44 @@ public class WmsRequest {
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
WmsRequest
.
class
);
public
static
<
T
>
T
send
Json
(
String
url
,
Map
<
String
,
?>
params
,
TypeReference
<
WmsRespResult
<
T
>>
typeReference
)
{
public
static
<
T
>
T
send
Post
(
String
url
,
Map
<
String
,
?>
params
,
TypeReference
<
WmsRespResult
<
T
>>
typeReference
)
{
try
{
String
resultStr
=
RestTemplateUtils
.
send
Json
(
url
,
params
);
String
resultStr
=
RestTemplateUtils
.
send
Post
(
url
,
params
);
if
(
StringUtils
.
isBlank
(
resultStr
))
{
logger
.
error
(
"✦✦✦✦ WmsRequest ✦✦✦✦ send
Json
✦✦✦✈ WMS响应结果为空!"
);
logger
.
error
(
"✦✦✦✦ WmsRequest ✦✦✦✦ send
Post
✦✦✦✈ WMS响应结果为空!"
);
return
null
;
}
WmsRespResult
<
T
>
result
=
JacksonUtils
.
readValue
(
resultStr
,
typeReference
);
if
(!
WmsRespResult
.
isSuccess
(
result
))
{
logger
.
error
(
"✦✦✦✦ WmsRequest ✦✦✦✦ send
Json
✦✦✦✈ 请求WMS接口失败:{}"
,
JacksonUtils
.
toJSONString
(
result
));
if
(!
result
.
success
(
))
{
logger
.
error
(
"✦✦✦✦ WmsRequest ✦✦✦✦ send
Post
✦✦✦✈ 请求WMS接口失败:{}"
,
JacksonUtils
.
toJSONString
(
result
));
return
null
;
}
T
data
=
result
.
getData
();
logger
.
info
(
"✦✦✦✦ WmsRequest ✦✦✦✦ send
Json
✦✦✦✈ [url, params]: {}"
,
JacksonUtils
.
toJSONString
(
data
.
toString
()));
logger
.
info
(
"✦✦✦✦ WmsRequest ✦✦✦✦ send
Post
✦✦✦✈ [url, params]: {}"
,
JacksonUtils
.
toJSONString
(
data
.
toString
()));
return
data
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"✦✦✦✦ WmsRequest ✦✦✦✦ send
Json
✦✦✦✈ 请求WMS接口异常:"
,
e
);
logger
.
error
(
"✦✦✦✦ WmsRequest ✦✦✦✦ send
Post
✦✦✦✈ 请求WMS接口异常:"
,
e
);
}
return
null
;
}
public
static
WmsRespResult
send
Json
(
String
url
,
Map
<
String
,
?>
params
)
{
public
static
WmsRespResult
send
Post
(
String
url
,
Map
<
String
,
?>
params
)
{
try
{
String
resultStr
=
RestTemplateUtils
.
send
Json
(
url
,
params
);
String
resultStr
=
RestTemplateUtils
.
send
Post
(
url
,
params
);
if
(
StringUtils
.
isBlank
(
resultStr
))
{
logger
.
error
(
"✦✦✦✦ WmsRequest ✦✦✦✦ send
Json
✦✦✦✈ WMS响应结果为空!"
);
return
null
;
logger
.
error
(
"✦✦✦✦ WmsRequest ✦✦✦✦ send
Post
✦✦✦✈ WMS响应结果为空!"
);
return
WmsRespResult
.
failure
(
"WMS响应结果为空!"
)
;
}
WmsRespResult
result
=
JacksonUtils
.
readValue
(
resultStr
,
new
TypeReference
<
WmsRespResult
>()
{
});
if
(!
WmsRespResult
.
isSuccess
(
result
))
{
logger
.
error
(
"✦✦✦✦ WmsRequest ✦✦✦✦ send
Json
✦✦✦✈ 请求WMS接口失败:{}"
,
JacksonUtils
.
toJSONString
(
result
));
return
null
;
if
(!
result
.
success
(
))
{
logger
.
error
(
"✦✦✦✦ WmsRequest ✦✦✦✦ send
Post
✦✦✦✈ 请求WMS接口失败:{}"
,
JacksonUtils
.
toJSONString
(
result
));
return
WmsRespResult
.
failure
(
result
.
getDescription
())
;
}
return
result
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"✦✦✦✦ WmsRequest ✦✦✦✦ sendJson ✦✦✦✈ 请求WMS接口异常:"
,
e
);
logger
.
error
(
"✦✦✦✦ WmsRequest ✦✦✦✦ sendPost ✦✦✦✈ 请求WMS接口异常:"
,
e
);
return
WmsRespResult
.
failure
(
"请求WMS接口异常"
);
}
return
null
;
}
}
src/main/java/com/patzn/cloud/service/lims/hmhj/common/consts/HttpConst.java
View file @
d26d8ca8
...
...
@@ -14,10 +14,16 @@ public class HttpConst {
/**
* 委托编码同步接口
*/
public
static
final
String
WMS_SYNC_WTBH
=
"
/
SyncWTbh"
;
public
static
final
String
WMS_SYNC_WTBH
=
"SyncWTbh"
;
public
static
final
String
WMS_SYNC_STOCK
=
"/SyncStock"
;
/**
* 库存信息查询
*/
public
static
final
String
WMS_SYNC_GET_UNIT_LOADS
=
"GetUnitLoads"
;
public
static
final
String
WMS_SYNC_STOCK_SITUATION
=
"/SyncStockSituation"
;
/**
* 大屏信息
*/
public
static
final
String
WMS_SYNC_GET_SCREEN
=
"GetDataShow"
;
}
src/main/java/com/patzn/cloud/service/lims/hmhj/controller/WmsStockDeliveryController.java
View file @
d26d8ca8
...
...
@@ -83,4 +83,5 @@ public class WmsStockDeliveryController extends ServiceController {
public
RestResult
<
Boolean
>
syncStockDelivery
(
@RequestBody
WmsStockDeliveryData
data
)
{
return
success
(
wmsStockDeliveryService
.
syncStockDelivery
(
data
));
}
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/IEntrustSampleService.java
View file @
d26d8ca8
...
...
@@ -151,4 +151,6 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
List
<
Long
>
getEntrustIdsBySampleCodes
(
List
<
String
>
sampleCodes
);
void
postWmsEntrustData
(
List
<
Entrust
>
entrustList
);
List
<
EntrustSample
>
listByEntrustIds
(
List
<
Long
>
entrustIds
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/IWmsStockDeliveryService.java
View file @
d26d8ca8
...
...
@@ -40,4 +40,5 @@ public interface IWmsStockDeliveryService extends IBaseService<WmsStockDelivery>
* @return the boolean
*/
boolean
syncStockDelivery
(
WmsStockDeliveryData
data
);
}
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustReportServiceImpl.java
View file @
d26d8ca8
...
...
@@ -92,7 +92,7 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
@Resource
private
IItemComparisonService
itemComparisonService
;
@Value
(
"${
libreOffice.
url}"
)
@Value
(
"${
service.lib-office-
url}"
)
private
String
libreOfficeUrl
;
@Override
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustSampleItemServiceImpl.java
View file @
d26d8ca8
package
com
.
patzn
.
cloud
.
service
.
lims
.
hmhj
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.mapper.Condition
;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.baomidou.mybatisplus.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.toolkit.IOUtils
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.patzn.cloud.commons.api.RestAssert
;
...
...
@@ -20,7 +19,6 @@ import com.patzn.cloud.commons.toolkit.*;
import
com.patzn.cloud.oss.starter.OssClient
;
import
com.patzn.cloud.oss.starter.OssFileResult
;
import
com.patzn.cloud.service.BaseEntity
;
import
com.patzn.cloud.service.hmhj.model.KV
;
import
com.patzn.cloud.service.hmhj.dto.QueryDTO
;
import
com.patzn.cloud.service.hmhj.dto.SampleItemDTO
;
import
com.patzn.cloud.service.hmhj.entity.*
;
...
...
@@ -28,6 +26,8 @@ import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum;
import
com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum
;
import
com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum
;
import
com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum
;
import
com.patzn.cloud.service.hmhj.model.ErpRespResult
;
import
com.patzn.cloud.service.hmhj.model.KV
;
import
com.patzn.cloud.service.hmhj.vo.*
;
import
com.patzn.cloud.service.lims.base.entity.LmsUserRelGroup
;
import
com.patzn.cloud.service.lims.base.enums.FlowTypeEnum
;
...
...
@@ -37,9 +37,11 @@ import com.patzn.cloud.service.lims.common.CompareUtils;
import
com.patzn.cloud.service.lims.common.DateKit
;
import
com.patzn.cloud.service.lims.common.StringHandleUtils
;
import
com.patzn.cloud.service.lims.common.service.IExportService
;
import
com.patzn.cloud.service.lims.config.ServiceProperties
;
import
com.patzn.cloud.service.lims.hmhj.common.ErpRequest
;
import
com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil
;
import
com.patzn.cloud.service.lims.hmhj.common.LabreOfficeUtil
;
import
com.patzn.cloud.service.lims.hmhj.common.
OkHttpUtils
;
import
com.patzn.cloud.service.lims.hmhj.common.
consts.HttpConst
;
import
com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleItemMapper
;
import
com.patzn.cloud.service.lims.hmhj.original.Operation
;
import
com.patzn.cloud.service.lims.hmhj.original.OriginalFactory
;
...
...
@@ -52,11 +54,12 @@ import org.apache.poi.xssf.usermodel.XSSFCell;
import
org.apache.poi.xssf.usermodel.XSSFRow
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.springframework.
beans.factory.annotation.Autowired
;
import
org.springframework.
beans.factory.annotation.Valu
e
;
import
org.springframework.
http.HttpHeaders
;
import
org.springframework.
http.MediaTyp
e
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
java.io.InputStream
;
...
...
@@ -79,88 +82,82 @@ import static java.util.stream.Collectors.toSet;
@Service
public
class
EntrustSampleItemServiceImpl
extends
BaseServiceImpl
<
EntrustSampleItemMapper
,
EntrustSampleItem
>
implements
IEntrustSampleItemService
{
@
Autowired
@
Resource
private
IEntrustSampleService
entrustSampleService
;
@
Autowired
@
Resource
private
IEntrustReportService
entrustReportService
;
@
Autowired
@
Resource
private
IEntrustRecordService
entrustRecordService
;
@
Autowired
@
Resource
private
IEntrustSampleItemIndexService
entrustSampleItemIndexService
;
@
Autowired
@
Resource
private
IEntrustSampleItemRecordService
entrustSampleItemRecordService
;
@
Autowired
@
Resource
private
IOriginalTemplateService
originalTemplateService
;
@
Autowired
@
Resource
private
IOriginalTemplateConfigService
originalTemplateConfigService
;
@
Autowired
@
Resource
private
IEntrustReportTemplateService
entrustReportTemplateService
;
@
Autowired
@
Resource
private
IEntrustReportTemplateConfigService
entrustReportTemplateConfigService
;
@
Autowired
@
Resource
private
IOriginalRecordService
originalRecordService
;
@
Autowired
@
Resource
private
IEntrustService
entrustService
;
@
Autowired
@
Resource
private
IItemDeviateService
itemDeviateService
;
@
Autowired
@
Resource
private
IContractSampleService
contractSampleService
;
@
Autowired
@
Resource
private
IItemRelOriginalRecordService
itemRelOriginalRecordService
;
@
Autowired
@
Resource
private
IGradingStandardService
gradingStandardService
;
@
Autowired
@
Resource
private
IGradingProductService
gradingProductService
;
@
Autowired
@
Resource
private
IGradingItemService
gradingItemService
;
@
Autowired
@
Resource
private
OssClient
ossClient
;
@
Autowired
@
Resource
private
IExportService
exportService
;
@
Autowired
@
Resource
private
Executor
executor1
;
@
Autowired
@
Resource
private
UserInfoServiceImpl
userInfoService
;
@Value
(
"${libreOffice.url}"
)
private
String
libreOfficeUrl
;
@Value
(
"${service.erp-url}"
)
private
String
erpUrl
;
@Value
(
"${service.erp-token}"
)
private
String
erpToken
;
@Resource
private
ServiceProperties
serviceProperties
;
@
Autowired
@
Resource
private
ILmsOriginalRecordInfoService
originalRecordInfoService
;
@
Autowired
@
Resource
private
IQualificationService
qualificationService
;
@
Autowired
@
Resource
private
IContractSampleItemService
contractSampleItemService
;
@
Autowired
@
Resource
private
IItemComparisonService
itemComparisonService
;
@Override
...
...
@@ -437,7 +434,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
for
(
OriginalRecord
record
:
originalRecordList
)
{
InputStream
io
=
ossClient
.
download
(
record
.
getObjectKey
());
File
file
=
LabreOfficeUtil
.
inputStream2File
(
io
);
File
filePdf
=
LabreOfficeUtil
.
convertOffice2PDF
(
libreOfficeUrl
,
file
);
File
filePdf
=
LabreOfficeUtil
.
convertOffice2PDF
(
serviceProperties
.
getLibOfficeUrl
()
,
file
);
OssFileResult
fileResult
=
ossClient
.
upload
(
filePdf
);
...
...
@@ -1473,10 +1470,11 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
* @param sampleBrandMap
*/
private
void
sendTestDataToErp
(
List
<
Long
>
ids
,
Map
<
Long
,
String
>
sampleBrandMap
)
{
log
(
"执行发送的样品IDS:"
+
StringUtils
.
join
(
ids
,
","
));
logger
.
info
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ sendTestDataToErp ✦✦✦✈ [ids]: {}"
,
StringUtils
.
join
(
ids
,
","
));
logger
.
info
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ sendTestDataToErp ✦✦✦✈ [sampleBrandMap]: {}"
,
JacksonUtils
.
toJSONString
(
sampleBrandMap
));
List
<
EntrustSample
>
sampleList
=
entrustSampleService
.
getBatchIds
(
ids
);
if
(
CollectionUtils
.
isEmpty
(
sampleList
))
{
log
(
"数据为空,不
发送!"
);
log
ger
.
error
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ sendTestDataToErp ✦✦✦✈ sampleList为空,不予
发送!"
);
return
;
}
// 获取编号集
...
...
@@ -1485,11 +1483,11 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
//
EntrustSample
sample
=
sampleList
.
get
(
0
);
String
sampleName
=
sample
.
getName
();
log
(
"样品名称:"
+
sampleName
);
log
ger
.
info
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ sendTestDataToErp ✦✦✦✈ [样品名称]: {}"
,
sampleName
);
// 只针对原铝和铝成品,原铝重取只是对原铝的补充
final
String
ylname
=
"原铝"
,
cqname
=
"原铝重取"
,
cpname
=
"铝成品"
;
if
(!(
Objects
.
equals
(
ylname
,
sampleName
)
||
Objects
.
equals
(
cqname
,
sampleName
)
||
Objects
.
equals
(
cpname
,
sampleName
)))
{
log
(
"
非原铝或铝成品,不予发送!"
);
log
ger
.
error
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ sendTestDataToErp ✦✦✦✈
非原铝或铝成品,不予发送!"
);
return
;
}
...
...
@@ -1506,7 +1504,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 当为原铝时,判断是否存在重取,如果存在重取,需要在重取时触发,也就是下个条件下触发,如果不存在重取,那么直接发
// == 若存在,那么需要在重取阶段处理(重取样品,报告发送再处理)
if
(
itemComparisonService
.
isExistCompareData
(
sampleCodeList
))
{
log
(
"
存在需要重取的样品,需要重取时再发送!"
);
log
ger
.
error
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ sendTestDataToErp ✦✦✦✈
存在需要重取的样品,需要重取时再发送!"
);
return
;
}
dataList
=
entrustSampleItemIndexService
.
listSampleItemIndex
(
null
,
ids
);
...
...
@@ -1530,7 +1528,7 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 基本上不可能为空的
if
(
CollectionUtils
.
isEmpty
(
entrustIds
))
{
log
(
"根据样品编号获取委托id失败
"
);
log
ger
.
error
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ sendTestDataToErp ✦✦✦✈ 根据样品编号获取委托id失败!
"
);
return
;
}
// 根据委托去查询,也只能根据委托去查询
...
...
@@ -1571,11 +1569,10 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
logger
.
error
(
"DATA_ITEM: {}"
,
t
);
});
try
{
log
(
"准备发送数据
"
);
log
ger
.
info
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ sendTestDataToErp ✦✦✦✈ 开始准备发送ERP数据!
"
);
doSendErpData
(
dataList
);
}
catch
(
Exception
e
)
{
log
(
"请求失败,请稍后重试!"
);
logger
.
error
(
e
.
getMessage
());
logger
.
error
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ sendTestDataToErp ✦✦✦✈ 发送ERP数据时异常:"
,
e
);
}
}
...
...
@@ -1596,16 +1593,20 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
return
codeList
;
}
private
void
log
(
String
str
)
{
logger
.
error
(
"HMHJ====>ERP===={}...."
,
str
);
}
private
void
doSendErpData
(
List
<
Map
<
String
,
Object
>>
dataList
)
{
log
(
"开始发送数据"
);
logger
.
info
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ doSendErpData ✦✦✦✈ 开始发送数据!"
);
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
add
(
"token"
,
getErpToken
());
headers
.
add
(
"Content-Type"
,
HttpConst
.
CONTENT_TYPE
);
headers
.
add
(
"Accept-Encoding"
,
HttpConst
.
ACCEPT_ENCODING
);
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
for
(
Map
<
String
,
Object
>
data
:
dataList
)
{
/*
String json = JSONObject.toJSONString(data);
log("要发送的样品数据为:" + json);
String
result
=
OkHttpUtils
.
sendByPostJson
(
erpUrl
,
erpToken
,
json
);
String result = OkHttpUtils.sendByPostJson(
serviceProperties.buildErpUrl("SaveData"), getErpToken()
, json);
log("发送结果:" + result);
if (StringUtils.isNotBlank(result)) {
JSONObject jsonObject = JSON.parseObject(result);
...
...
@@ -1625,8 +1626,33 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} else {
log("响应失败!,错误为:" + msg);
}
}*/
ErpRespResult
result
=
ErpRequest
.
sendPost
(
serviceProperties
.
buildErpUrl
(
"SaveData"
),
data
,
headers
);
if
(!
result
.
success
())
{
logger
.
error
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ doSendErpData ✦✦✦✈ :{}"
,
JacksonUtils
.
toJSONString
(
result
));
}
else
{
logger
.
info
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ doSendErpData ✦✦✦✈ 推送DPS数据成功,更新样品推送状态!"
);
entrustSampleService
.
update
(
new
EntrustSample
().
setSendErp
(
1
),
Condition
.
create
().
eq
(
"code"
,
data
.
get
(
"sample_code"
)));
}
}
}
private
String
getErpToken
()
{
String
url
=
serviceProperties
.
buildWmsUrl
(
"Login"
);
String
token
=
""
;
ErpRespResult
<
String
>
result
=
ErpRequest
.
sendGet
(
url
,
null
,
new
TypeReference
<
ErpRespResult
<
String
>>()
{
});
if
(
result
.
success
())
{
token
=
result
.
getMessage
();
logger
.
info
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ getErpToken ✦✦✦✈ [token]: {}"
,
token
);
}
else
{
logger
.
error
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ getErpToken ✦✦✦✈ token获取失败!:{}"
,
JacksonUtils
.
toJSONString
(
result
));
// 若为空,使用默认token
token
=
serviceProperties
.
getErpToken
();
logger
.
error
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ getErpToken ✦✦✦✈ 使用默认[token]:{}"
,
token
);
}
return
token
;
}
@Override
...
...
@@ -1764,12 +1790,11 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
List
<
Map
<
String
,
Object
>>
mapList
=
entrustSampleItemIndexService
.
listSampleItemIndex
(
entrustIds
,
null
);
RestAssert
.
fail
(
CollectionUtils
.
isEmpty
(
mapList
),
"数据为空,取消发送!"
);
try
{
log
(
"准备发送数据
"
);
log
ger
.
info
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ sendErpData ✦✦✦✈ 准备发送数据!
"
);
doSendErpData
(
mapList
);
return
true
;
}
catch
(
Exception
e
)
{
log
(
"请求失败,请稍后重试!"
);
logger
.
error
(
"exception while sending data to server: {}"
,
e
.
getMessage
());
logger
.
error
(
"✦✦✦✦ EntrustSampleItemServiceImpl ✦✦✦✦ sendErpData ✦✦✦✈ 发送数据时异常:"
,
e
);
RestAssert
.
fail
(
"请求失败,请稍后重试!"
);
}
return
false
;
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustSampleServiceImpl.java
View file @
d26d8ca8
...
...
@@ -2419,6 +2419,14 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
});
}
@Override
public
List
<
EntrustSample
>
listByEntrustIds
(
List
<
Long
>
entrustIds
)
{
if
(
CollectionUtils
.
isEmpty
(
entrustIds
))
{
return
Collections
.
emptyList
();
}
return
list
(
Condition
.<
EntrustSample
>
wrapper
().
in
(
"entrust_id"
,
entrustIds
));
}
private
void
doSendWmsEntrustData
(
String
code
,
EntrustSample
sample
)
{
logger
.
info
(
"✦✦✦✦ EntrustSampleServiceImpl ✦✦✦✦ doSendWmsEntrustData ✦✦✦✈ 开始推送委托数据至WMS系统!"
);
String
url
=
serviceProperties
.
buildWmsUrl
(
HttpConst
.
WMS_SYNC_WTBH
);
...
...
@@ -2428,7 +2436,7 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
map
.
put
(
"MaterialName"
,
sample
.
getName
());
map
.
put
(
"MaterialCode"
,
sample
.
getNameCode
());
map
.
put
(
"CreateDate"
,
new
Date
());
WmsRespResult
result
=
WmsRequest
.
send
Json
(
url
,
map
);
WmsRespResult
result
=
WmsRequest
.
send
Post
(
url
,
map
);
if
(
Objects
.
nonNull
(
result
))
{
logger
.
info
(
"✦✦✦✦ EntrustSampleServiceImpl ✦✦✦✦ doSendWmsEntrustData ✦✦✦✈ 委托信息推送WMS数据成功!"
);
return
;
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/EntrustServiceImpl.java
View file @
d26d8ca8
...
...
@@ -1700,11 +1700,15 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
logger
.
error
(
"进入提交委托流程......"
);
RestAssert
.
fail
(
null
==
ids
||
0
==
ids
.
length
,
"请选择要提交的委托!"
);
List
<
Entrust
>
entrustList
=
getBatchIds
(
Arrays
.
asList
(
ids
));
List
<
Long
>
specialIds
=
new
ArrayList
<>(),
normalIds
=
new
ArrayList
<>();
List
<
Long
>
specialIds
=
new
ArrayList
<>(),
normalIds
=
new
ArrayList
<>();
List
<
Long
>
sendUserIdList
=
new
ArrayList
<>();
List
<
EntrustSample
>
samples
=
entrustSampleService
.
listByEntrustIds
(
Arrays
.
asList
(
ids
));
Map
<
Long
,
List
<
EntrustSample
>>
entrustSampleMap
=
new
HashMap
<>(
8
);
Optional
.
ofNullable
(
samples
).
ifPresent
(
dl
->
dl
.
forEach
(
d
->
MapMergeUtils
.
getorCreateMapArrayList
(
d
.
getEntrustId
(),
entrustSampleMap
,
d
)));
for
(
Entrust
entrust
:
entrustList
)
{
RestAssert
.
fail
(!
Objects
.
equals
(
entrust
.
getFlowStatus
(),
EntrustFlowEnum
.
DRAFT
.
name
()),
"只能提交草稿状态的委托!"
);
List
<
EntrustSample
>
sampleList
=
entrustSample
Service
.
getByEntrustId
(
entrust
.
getId
());
List
<
EntrustSample
>
sampleList
=
entrustSample
Map
.
get
(
entrust
.
getId
());
RestAssert
.
fail
(
CollectionUtils
.
isEmpty
(
sampleList
),
String
.
format
(
"委托编号为的【%s】样品为空!"
,
entrust
.
getCode
()));
// 若存在任何一个样品的编号为空,那么需要自动生成其编号
for
(
EntrustSample
sample
:
sampleList
)
{
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/StatisticsServiceImpl.java
View file @
d26d8ca8
...
...
@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.patzn.cloud.commons.api.RestAssert
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.cloud.commons.toolkit.JacksonUtils
;
import
com.patzn.cloud.commons.toolkit.MapMergeUtils
;
import
com.patzn.cloud.service.hmhj.dto.*
;
import
com.patzn.cloud.service.hmhj.entity.CenterCost
;
...
...
@@ -272,7 +271,7 @@ public class StatisticsServiceImpl extends BaseServiceImpl<StatisticsMapper, Sta
@Override
public
List
<
WmsInventory
>
getInventoryList
(
WmsInventoryDTO
dto
)
{
List
<
WmsInventory
>
dataList
=
new
ArrayList
<>();
String
url
=
serviceProperties
.
buildWmsUrl
(
HttpConst
.
WMS_SYNC_
STOCK_SITUATIO
N
);
String
url
=
serviceProperties
.
buildWmsUrl
(
HttpConst
.
WMS_SYNC_
GET_SCREE
N
);
// 设置请求参数
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>(
2
);
...
...
@@ -292,9 +291,8 @@ public class StatisticsServiceImpl extends BaseServiceImpl<StatisticsMapper, Sta
map
.
put
(
"Unit"
,
dto
.
getUnit
());
}
url
=
"https://mock.apifox.cn/m1/1293503-0-default/v1/stock/data"
;
try
{
List
<
WmsInventoryData
>
inventoryList
=
WmsRequest
.
send
Json
(
url
,
map
,
new
TypeReference
<
WmsRespResult
<
List
<
WmsInventoryData
>>>()
{
List
<
WmsInventoryData
>
inventoryList
=
WmsRequest
.
send
Post
(
url
,
map
,
new
TypeReference
<
WmsRespResult
<
List
<
WmsInventoryData
>>>()
{
});
if
(
CollectionUtils
.
isNotEmpty
(
inventoryList
))
{
return
inventoryList
.
stream
().
map
(
d
->
d
.
convert
(
WmsInventory
.
class
)).
collect
(
Collectors
.
toList
());
...
...
src/main/java/com/patzn/cloud/service/lims/hmhj/service/impl/WmsStockServiceImpl.java
View file @
d26d8ca8
...
...
@@ -68,10 +68,10 @@ public class WmsStockServiceImpl extends BaseServiceImpl<WmsStockMapper, WmsStoc
@Override
public
void
syncWmsStockData
()
{
String
url
=
serviceProperties
.
buildWmsUrl
(
HttpConst
.
WMS_SYNC_
STOCK
);
String
url
=
serviceProperties
.
buildWmsUrl
(
HttpConst
.
WMS_SYNC_
GET_UNIT_LOADS
);
// 设置请求参数
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>(
2
);
List
<
WmsStockData
>
dataList
=
WmsRequest
.
send
Json
(
url
,
map
,
new
TypeReference
<
WmsRespResult
<
List
<
WmsStockData
>>>()
{
List
<
WmsStockData
>
dataList
=
WmsRequest
.
send
Post
(
url
,
map
,
new
TypeReference
<
WmsRespResult
<
List
<
WmsStockData
>>>()
{
});
if
(
CollectionUtils
.
isEmpty
(
dataList
))
{
logger
.
error
(
"✦✦✦✦ WmsStockServiceImpl ✦✦✦✦ syncWmsStockData ✦✦✦✈ 出入库数据为空!"
);
...
...
src/main/resources/application-dev.yml
View file @
d26d8ca8
...
...
@@ -49,9 +49,6 @@ oss:
jobs
:
admin-address
:
http://api.dev.patzn.com:7000/print
#libreOffice 安装信息
libreOffice
:
url
:
C:/Program Files/LibreOffice
# ribbon 路由配置
food.ribbon.NFLoadBalancerRuleClassName
:
com.patzn.cloud.zuul.LocalRule
print.ribbon.NFLoadBalancerRuleClassName
:
com.patzn.cloud.zuul.LocalRule
...
...
src/main/resources/application-hmhj.yml
View file @
d26d8ca8
...
...
@@ -13,7 +13,7 @@ service:
province-item-url
:
http://60.216.97.250:8087/
soffice
:
/opt/libreoffice6.2/program/soffice
static-url
:
static.hmlims.com:9000
erp-url
:
http://192.168.0.216:5050/api/LimsData/
SaveData
erp-url
:
http://192.168.0.216:5050/api/LimsData/
erp-token
:
VkI+Gi2pizx9uaX+xP+nXAgJKfcBevaruxijYtXXQdU577BLv3jdoLpnQ13BZ5hdPTD90jLmvlr7ygxh18kuLdD9Ha9MdTXIxWJKbNbBn6fnrHU/9lsXBnOVyOEB1DIXW0VQniyjuobU5qolBr2Y99NTQ/l9giZlXGVXAE+1WvY=
spring
:
datasource
:
...
...
@@ -66,9 +66,6 @@ oss:
grid-fs
:
true
bucket-name
:
base
#libreOffice 安装信息
libreOffice
:
url
:
D:/Program Files/LibreOffice
### jobs
jobs
:
admin-address
:
http://api.hmlims.com:9000/print
\ No newline at end of file
src/main/resources/application-local.yml
View file @
d26d8ca8
...
...
@@ -7,8 +7,6 @@ swagger:
service
:
api-url
:
http://api.dev.patzn.com:7000
url
:
http://api.dev.patzn.com:7000
erp-url
:
http://192.168.0.19:5050/api/LimsData/SaveData
erp-token
:
VkI+Gi2pizx9uaX+xP+nXAgJKfcBevaruxijYtXXQdU577BLv3jdoLpnQ13BZ5hdPTD90jLmvlr7ygxh18kuLdD9Ha9MdTXIxWJKbNbBn6fnrHU/9lsXBnOVyOEB1DIXW0VQniyjuobU5qolBr2Y99NTQ/l9giZlXGVXAE+1WvY=
spring
:
datasource
:
type
:
com.zaxxer.hikari.HikariDataSource
...
...
@@ -54,9 +52,6 @@ oss:
jobs
:
admin-address
:
http://api.dev.patzn.com:7000/print
#libreOffice 安装信息
libreOffice
:
url
:
C:/Program Files/LibreOffice
# ribbon 路由配置
food.ribbon.NFLoadBalancerRuleClassName
:
com.patzn.cloud.zuul.LocalRule
print.ribbon.NFLoadBalancerRuleClassName
:
com.patzn.cloud.zuul.LocalRule
...
...
src/main/resources/application.yml
View file @
d26d8ca8
...
...
@@ -7,15 +7,16 @@ server:
enabled
:
true
mime-types
:
application/json
service
:
soffice
:
/opt/libreoffice6.2/program/soffice
url
:
http://api.dev.patzn.com:7000
api-url
:
http://api.dev.patzn.com:7000
erp-url
:
http://192.168.0.216:5050/api/LimsData/
wms-url
:
http://192.168.207.103:9001/InterfaceAddr/
soffice
:
/opt/libreoffice6.2/program/soffice
food-url
:
http://food.hmlims.com:9000
static-url
:
static.hmlims.com:9000
lib-office-url
:
D:/Program Files/LibreOffice
province-item-url
:
http://60.216.97.250:8087/
api-url
:
http://api.dev.patzn.com:7000
erp-url
:
http://192.168.0.216:5050/api/LimsData/SaveData
erp-token
:
VkI+Gi2pizx9uaX+xP+nXAgJKfcBevaruxijYtXXQdU577BLv3jdoLpnQ13BZ5hdPTD90jLmvlr7ygxh18kuLdD9Ha9MdTXIxWJKbNbBn6fnrHU/9lsXBnOVyOEB1DIXW0VQniyjuobU5qolBr2Y99NTQ/l9giZlXGVXAE+1WvY=
wms-url
:
http://192.168.207.103:9001/LIMS
spring
:
# 环境 dev|test|pro
profiles
:
...
...
src/test/java/com/patzn/cloud/service/lims/test/IDWorkTest.java
deleted
100644 → 0
View file @
b3eed0e1
package
com
.
patzn
.
cloud
.
service
.
lims
.
test
;
import
org.apache.commons.lang.StringUtils
;
public
class
IDWorkTest
{
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
getCodeByCqCode
(
"Y2204262017C"
));
System
.
out
.
println
(
getCodeByCqCode
(
"2110164032C12"
));
System
.
out
.
println
(
getCodeByCqCode
(
"Y2201086159C1"
));
System
.
out
.
println
(
getCodeByCqCode
(
"Y2112052110C2"
));
}
private
static
String
getCodeByCqCode
(
String
code
)
{
//Y2204262017C
//2110164032C12
//Y2201086159C1
//Y2112052110C2
if
(
StringUtils
.
isBlank
(
code
))
{
return
code
;
}
code
=
code
.
startsWith
(
"Y"
)
?
code
:
"Y"
+
code
;
code
=
code
.
substring
(
0
,
7
)
+
"-"
+
code
.
substring
(
7
,
11
);
return
code
;
}
}
src/test/java/com/patzn/cloud/service/lims/test/JsonObjectTest.java
deleted
100644 → 0
View file @
b3eed0e1
package
com
.
patzn
.
cloud
.
service
.
lims
.
test
;
import
com.patzn.cloud.commons.toolkit.JacksonUtils
;
import
com.patzn.cloud.service.hmhj.entity.WmsStock
;
import
com.patzn.cloud.service.hmhj.vo.WmsStockData
;
public
class
JsonObjectTest
{
public
static
void
main
(
String
[]
args
)
{
// language=JSON
String
json
=
"{\"ContainerCode\": \"1111\",\"Wtbh\": \"2033333323\"}"
;
WmsStockData
stock
=
JacksonUtils
.
readValue
(
json
,
WmsStockData
.
class
);
System
.
out
.
println
(
stock
.
getContainerCode
());
System
.
out
.
println
(
stock
.
getWtbh
());
}
}
src/test/java/com/patzn/cloud/service/lims/test/Test.java
deleted
100644 → 0
View file @
b3eed0e1
package
com
.
patzn
.
cloud
.
service
.
lims
.
test
;
import
com.patzn.cloud.service.lims.common.StringHandleUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
public
class
Test
{
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
getTestValue
(
"65.475"
,
2
));
System
.
out
.
println
(
getTestValue
(
"0.1952"
,
2
));
System
.
out
.
println
(
getTestValue
(
"0.2056"
,
2
));
}
private
static
String
getTestValue
(
String
value
,
int
roundNum
)
{
if
(
StringUtils
.
isNotBlank
(
value
))
{
if
(!
StringHandleUtils
.
validateNumber
(
value
))
{
if
(
value
.
startsWith
(
"!"
))
{
value
=
value
.
substring
(
1
);
}
else
{
return
value
;
}
}
// IF(ABS(TRUNC(A1,B1+5)*10^B1-TRUNC(A1,B1+5)*10^B1)<0.499999,ROUND(A1,B1),
// IF(ABS(TRUNC(A1,B1+5)*10^B1-TRUNC(A1,B1+5)*10^B1)>0.500001,ROUND(A1,B1),
// CEILING(ABS(TRUNC(A1,B1+1)-0.5*10^(-B1),2*10^(-B1)*SIGN(A1)))
int
beginIndex
=
value
.
lastIndexOf
(
"."
)
+
1
,
valueLength
=
value
.
length
();
String
intVal
=
value
.
substring
(
0
,
value
.
indexOf
(
"."
)
+
1
);
int
remindLength
=
valueLength
-
beginIndex
;
String
truncValue
=
""
,
zeroStr
=
"000000000"
;
// bdA = TRUNC(A1,B1+5)*10^B1
if
(
remindLength
>=
roundNum
+
5
)
{
truncValue
=
intVal
+
value
.
substring
(
beginIndex
,
beginIndex
+
roundNum
+
5
);
}
else
{
truncValue
=
intVal
+
value
.
substring
(
beginIndex
)
+
zeroStr
.
substring
(
0
,
roundNum
+
5
-
remindLength
);
}
BigDecimal
bdDiff
=
new
BigDecimal
(
truncValue
).
scaleByPowerOfTen
(
roundNum
);
// bdB = TRUNC(A1,B1+5)*10^B1
if
(
remindLength
>=
roundNum
)
{
truncValue
=
intVal
+
value
.
substring
(
beginIndex
,
beginIndex
+
roundNum
);
}
else
{
truncValue
=
intVal
+
value
.
substring
(
beginIndex
)
+
zeroStr
.
substring
(
0
,
roundNum
-
remindLength
);
}
bdDiff
=
bdDiff
.
subtract
(
new
BigDecimal
(
truncValue
).
scaleByPowerOfTen
(
roundNum
)).
abs
();
// 若 < 0.499999 或 大于 0.500001
if
(
bdDiff
.
compareTo
(
new
BigDecimal
(
"0.499999"
))
<
0
||
bdDiff
.
compareTo
(
new
BigDecimal
(
"0.500001"
))
>
0
)
{
return
new
BigDecimal
(
value
).
setScale
(
roundNum
,
RoundingMode
.
HALF_EVEN
).
toPlainString
();
}
// 处理第三种情况
// CEILING(ABS(TRUNC(A1,B1+1)-0.5*10^(-B1),2*10^(-B1)*SIGN(A1))
if
(
remindLength
>=
roundNum
+
1
)
{
truncValue
=
intVal
+
value
.
substring
(
beginIndex
,
beginIndex
+
roundNum
+
1
);
}
else
{
truncValue
=
intVal
+
value
.
substring
(
beginIndex
)
+
zeroStr
.
substring
(
0
,
roundNum
+
1
-
remindLength
);
}
bdDiff
=
new
BigDecimal
(
truncValue
);
bdDiff
=
bdDiff
.
subtract
(
new
BigDecimal
(
"0.5"
).
scaleByPowerOfTen
(-
roundNum
)).
abs
();
int
signValue
=
Double
.
valueOf
(
value
).
compareTo
(
0.0
);
BigDecimal
significance
=
new
BigDecimal
(
"2"
).
scaleByPowerOfTen
(-
roundNum
).
multiply
(
BigDecimal
.
valueOf
(
signValue
)).
abs
();
// ceiling
BigDecimal
[]
result
=
bdDiff
.
divideAndRemainder
(
significance
);
if
(
result
[
1
].
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
return
bdDiff
.
setScale
(
roundNum
).
toPlainString
();
}
else
{
return
result
[
0
].
add
(
BigDecimal
.
ONE
).
multiply
(
significance
).
setScale
(
roundNum
).
toPlainString
();
}
}
return
value
;
}
private
static
String
rounding
(
String
value
,
Integer
roundNum
)
{
if
(
StringUtils
.
isNotBlank
(
value
))
{
if
(!
StringHandleUtils
.
validateNumber
(
value
))
{
if
(
value
.
startsWith
(
"!"
))
{
value
=
value
.
substring
(
1
);
}
else
{
return
value
;
}
}
BigDecimal
bd1
=
new
BigDecimal
(
value
);
BigDecimal
bd2
=
bd1
.
setScale
(
roundNum
,
BigDecimal
.
ROUND_HALF_EVEN
);
return
bd2
.
toPlainString
();
}
return
""
;
}
}
src/test/java/com/patzn/cloud/service/lims/test/TestThreadLocal.java
deleted
100644 → 0
View file @
b3eed0e1
package
com
.
patzn
.
cloud
.
service
.
lims
.
test
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
public
class
TestThreadLocal
{
public
static
ExecutorService
executorService
=
Executors
.
newFixedThreadPool
(
16
);
private
static
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
public
static
void
main
(
String
[]
args
)
throws
InterruptedException
{
for
(
int
i
=
0
;
i
<
1000
;
i
++){
executorService
.
submit
(
new
Runnable
()
{
@Override
public
void
run
()
{
String
format
=
simpleDateFormat
.
format
(
new
Date
());
try
{
Date
parse
=
simpleDateFormat
.
parse
(
"2021-09-01 00:00:00"
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
System
.
out
.
println
(
format
);
}
});
}
Thread
.
sleep
(
3000
);
executorService
.
shutdownNow
();
}
}
Write
Preview
Markdown
is supported
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