Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
T
traffic-front
Project
Project
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangxiaoming
traffic-front
Commits
80e5a036
Commit
80e5a036
authored
Mar 15, 2019
by
gary
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev_mysql' into dev_mysql
parents
b4f3bdf6
4bf2c10e
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
47 changed files
with
1243 additions
and
72 deletions
+1243
-72
pom.xml
atms-api/pom.xml
+0
-5
CommonUtils.java
...pi/src/main/java/pwc/taxtech/atms/common/CommonUtils.java
+3
-1
Constant.java
...api/src/main/java/pwc/taxtech/atms/constant/Constant.java
+3
-0
OperationLogFileTypeController.java
...xtech/atms/controller/OperationLogFileTypeController.java
+5
-4
RevenueConfController.java
...va/pwc/taxtech/atms/controller/RevenueConfController.java
+6
-0
RevenueConfMappingController.java
...taxtech/atms/controller/RevenueConfMappingController.java
+51
-0
TemplateController.java
.../java/pwc/taxtech/atms/controller/TemplateController.java
+84
-1
RevTypeAddDto.java
...n/java/pwc/taxtech/atms/dto/revenuconf/RevTypeAddDto.java
+17
-0
RevenueConfResult.java
...va/pwc/taxtech/atms/dto/revenuconf/RevenueConfResult.java
+4
-0
RevenueTypeResult.java
...va/pwc/taxtech/atms/dto/revenuconf/RevenueTypeResult.java
+10
-0
OperationLogFileTypeServiceImpl.java
...ch/atms/service/impl/OperationLogFileTypeServiceImpl.java
+3
-1
OrganizationServiceImpl.java
...wc/taxtech/atms/service/impl/OrganizationServiceImpl.java
+14
-0
RevenueConfService.java
...ava/pwc/taxtech/atms/service/impl/RevenueConfService.java
+8
-1
RevenueTypeMappingService.java
.../taxtech/atms/service/impl/RevenueTypeMappingService.java
+138
-0
TaxDocumentServiceImpl.java
...pwc/taxtech/atms/service/impl/TaxDocumentServiceImpl.java
+21
-12
TemplateServiceImpl.java
...va/pwc/taxtech/atms/service/impl/TemplateServiceImpl.java
+13
-1
vatGeneratorConfig.xml
atms-dao/etc/generator-mysql/vatGeneratorConfig.xml
+1
-0
OrganizationMapper.java
...rc/main/java/pwc/taxtech/atms/dao/OrganizationMapper.java
+12
-1
TaxDocumentMapper.java
...src/main/java/pwc/taxtech/atms/dao/TaxDocumentMapper.java
+3
-0
OrgCodeIdDto.java
...-dao/src/main/java/pwc/taxtech/atms/dpo/OrgCodeIdDto.java
+22
-0
OperationLogFileType.java
...in/java/pwc/taxtech/atms/entity/OperationLogFileType.java
+11
-0
TaxDocumentExample.java
...main/java/pwc/taxtech/atms/entity/TaxDocumentExample.java
+5
-0
RevenueTypeMappingMapper.java
...va/pwc/taxtech/atms/vat/dao/RevenueTypeMappingMapper.java
+3
-0
RevenueTypeMapping.java
.../java/pwc/taxtech/atms/vat/entity/RevenueTypeMapping.java
+36
-0
RevenueTypeMappingExample.java
...wc/taxtech/atms/vat/entity/RevenueTypeMappingExample.java
+60
-0
OrganizationExtendsMapper.xml
...wc/taxtech/atms/dao/extends/OrganizationExtendsMapper.xml
+7
-0
TaxDocumentMapper.xml
...ources/pwc/taxtech/atms/dao/extends/TaxDocumentMapper.xml
+9
-0
RevenueTypeMappingMapper.xml
...ces/pwc/taxtech/atms/vat/dao/RevenueTypeMappingMapper.xml
+59
-7
module-part2.js
atms-web/src/main/webapp/Scripts/module-part2.js
+18
-0
infrastructure.json
.../main/webapp/app-resources/i18n/en-us/infrastructure.json
+1
-0
infrastructure.json
.../main/webapp/app-resources/i18n/zh-CN/infrastructure.json
+1
-0
vat.json
atms-web/src/main/webapp/app-resources/i18n/zh-CN/vat.json
+7
-1
doc-manage.ctrl.js
...app/app/admin/infrastructure/docManage/doc-manage.ctrl.js
+16
-12
doc-manage.html
...webapp/app/admin/infrastructure/docManage/doc-manage.html
+2
-0
vat-report-sheet.js
.../app/common/controls/vat-report-sheet/vat-report-sheet.js
+3
-1
template.svc.js
...eb/src/main/webapp/app/common/webservices/template.svc.js
+43
-0
vat-revenue-conf-mapping.ctrl.js
...vat-revenue-conf-mapping/vat-revenue-conf-mapping.ctrl.js
+0
-0
vat-revenue-conf-mapping.html
...rt/vat-revenue-conf-mapping/vat-revenue-conf-mapping.html
+99
-0
vat-revenue-conf-mapping.js
...port/vat-revenue-conf-mapping/vat-revenue-conf-mapping.js
+20
-0
vat-revenue-conf-mapping.less
...rt/vat-revenue-conf-mapping/vat-revenue-conf-mapping.less
+344
-0
vat-revenue-config.ctrl.js
.../dataImport/vat-revenue-config/vat-revenue-config.ctrl.js
+25
-5
vat-revenue-config.html
...app/dataImport/vat-revenue-config/vat-revenue-config.html
+1
-1
app-multi-select.html
...bapp/app/framework/app-multi-select/app-multi-select.html
+25
-3
app-multi-select.js
...webapp/app/framework/app-multi-select/app-multi-select.js
+5
-5
app-usr-operate-log.ctrl.js
...framework/app-usr-operate-log/app-usr-operate-log.ctrl.js
+5
-5
tax-document-list.ctrl.js
...ocumentManage/tax-document-list/tax-document-list.ctrl.js
+0
-0
tax-document-list.html
...axDocumentManage/tax-document-list/tax-document-list.html
+20
-5
No files found.
atms-api/pom.xml
View file @
80e5a036
...
...
@@ -295,11 +295,6 @@
<artifactId>
reflectasm
</artifactId>
<version>
1.11.7
</version>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
1.18.0
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
...
...
atms-api/src/main/java/pwc/taxtech/atms/common/CommonUtils.java
View file @
80e5a036
...
...
@@ -12,7 +12,9 @@ import pwc.taxtech.atms.dpo.EnterpriseAccountSetOrgDto;
public
class
CommonUtils
{
public
static
final
int
BATCH_NUM
=
500
;
public
static
final
int
BATCH_NUM_1000
=
1000
;
public
static
final
int
BATCH_NUM_2000
=
2000
;
public
static
String
getUUID
()
{
return
UUID
.
randomUUID
().
toString
().
toUpperCase
();
}
...
...
atms-api/src/main/java/pwc/taxtech/atms/constant/Constant.java
View file @
80e5a036
package
pwc
.
taxtech
.
atms
.
constant
;
import
java.io.File
;
import
java.text.DecimalFormat
;
import
java.util.Locale
;
import
java.util.UUID
;
public
final
class
Constant
{
...
...
@@ -129,6 +131,7 @@ public final class Constant {
public
static
String
DECIMAL_FORMAT
=
"#,##0.00"
;
public
static
String
ZERO_STR
=
"0"
;
public
static
final
String
DEFAULT_END_DATE
=
"9999-12"
;
public
static
class
ReportDataValidateLog
{
...
...
atms-api/src/main/java/pwc/taxtech/atms/controller/OperationLogFileTypeController.java
View file @
80e5a036
...
...
@@ -2,6 +2,7 @@ package pwc.taxtech.atms.controller;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
pwc.taxtech.atms.dto.ReturnData
;
...
...
@@ -42,11 +43,11 @@ public class OperationLogFileTypeController {
*/
@RequestMapping
(
"/selectListForLog"
)
@ResponseBody
public
ReturnData
selectListForLog
(
List
<
String
>
fileTypeIds
){
List
<
OperationLogFileType
>
operationLogFileType
=
operationLogFileTypeService
.
selectListForLog
(
fileTypeIds
);
public
ReturnData
selectListForLog
(
@RequestBody
OperationLogFileType
operationLogFileType
){
List
<
OperationLogFileType
>
operationLogFileType
s
=
operationLogFileTypeService
.
selectListForLog
(
operationLogFileType
.
getFileTypeIds
()
);
ReturnData
returnData
=
new
ReturnData
();
returnData
.
setItems
(
operationLogFileType
);
returnData
.
setTotalCount
(
operationLogFileType
.
size
());
returnData
.
setItems
(
operationLogFileType
s
);
returnData
.
setTotalCount
(
operationLogFileType
s
.
size
());
return
returnData
;
}
...
...
atms-api/src/main/java/pwc/taxtech/atms/controller/RevenueConfController.java
View file @
80e5a036
...
...
@@ -43,4 +43,10 @@ public class RevenueConfController extends BaseController {
revenueConfService
.
updateConfig
(
config
);
return
ApiResultDto
.
success
();
}
@PostMapping
(
"del"
)
public
ApiResultDto
delConf
(
@RequestBody
List
<
Long
>
idList
)
{
revenueConfService
.
delConfig
(
idList
);
return
ApiResultDto
.
success
();
}
}
atms-api/src/main/java/pwc/taxtech/atms/controller/RevenueConfMappingController.java
0 → 100644
View file @
80e5a036
package
pwc
.
taxtech
.
atms
.
controller
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
pwc.taxtech.atms.dto.ApiResultDto
;
import
pwc.taxtech.atms.dto.input.CamelPagingResultDto
;
import
pwc.taxtech.atms.dto.revenuconf.RevTypeAddDto
;
import
pwc.taxtech.atms.dto.revenuconf.RevenueConfParam
;
import
pwc.taxtech.atms.dto.revenuconf.RevenueTypeResult
;
import
pwc.taxtech.atms.service.impl.RevenueTypeMappingService
;
import
pwc.taxtech.atms.vat.entity.RevenueTypeMapping
;
import
javax.annotation.Resource
;
import
java.util.List
;
@RestController
@RequestMapping
(
value
=
"api/v1/revenueConfMapping"
)
public
class
RevenueConfMappingController
extends
BaseController
{
@Resource
private
RevenueTypeMappingService
mappingService
;
@PostMapping
(
"queryPage"
)
public
CamelPagingResultDto
<
RevenueTypeResult
>
queryPage
(
@RequestBody
RevenueConfParam
param
)
{
return
new
CamelPagingResultDto
<>(
mappingService
.
queryPage
(
param
));
}
@PostMapping
(
"add"
)
public
ApiResultDto
addConf
(
@RequestBody
RevTypeAddDto
addDto
)
{
mappingService
.
addConfig
(
addDto
);
return
ApiResultDto
.
success
();
}
@PostMapping
(
"update"
)
public
ApiResultDto
updateConf
(
@RequestBody
RevenueTypeMapping
mapping
)
{
mappingService
.
updateConfig
(
mapping
);
return
ApiResultDto
.
success
();
}
@PostMapping
(
"del"
)
public
ApiResultDto
delConf
(
@RequestBody
List
<
Long
>
idList
)
{
mappingService
.
delConfig
(
idList
);
return
ApiResultDto
.
success
();
}
@PostMapping
(
"upload"
)
public
ApiResultDto
upload
(
@RequestParam
MultipartFile
file
,
@RequestParam
Integer
type
)
throws
Exception
{
mappingService
.
upload
(
file
,
type
);
return
ApiResultDto
.
success
();
}
}
atms-api/src/main/java/pwc/taxtech/atms/controller/TemplateController.java
View file @
80e5a036
package
pwc
.
taxtech
.
atms
.
controller
;
import
com.github.pagehelper.PageInfo
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -14,22 +15,25 @@ import org.springframework.http.MediaType;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
pwc.taxtech.atms.common.message.ErrorMessage
;
import
pwc.taxtech.atms.common.message.ErrorMessageCN
;
import
pwc.taxtech.atms.common.util.MyAsserts
;
import
pwc.taxtech.atms.constant.enums.EnumAnalysisImportType
;
import
pwc.taxtech.atms.constant.enums.EnumCitImportType
;
import
pwc.taxtech.atms.constant.enums.EnumImportType
;
import
pwc.taxtech.atms.dpo.TemplateUniqDto
;
import
pwc.taxtech.atms.dto.*
;
import
pwc.taxtech.atms.dto.didiFileUpload.DidiFileIUploadParam
;
import
pwc.taxtech.atms.dto.didiFileUpload.DidiFileUploadDetailResult
;
import
pwc.taxtech.atms.dto.vatdto.TemplateByGroupDto
;
import
pwc.taxtech.atms.entity.Template
;
import
pwc.taxtech.atms.exception.ApplicationException
;
import
pwc.taxtech.atms.exception.BadParameterException
;
import
pwc.taxtech.atms.exception.NotFoundException
;
import
pwc.taxtech.atms.exception.ServiceException
;
import
pwc.taxtech.atms.service.impl.DidiFileUploadService
;
import
pwc.taxtech.atms.service.impl.HttpFileService
;
import
pwc.taxtech.atms.service.impl.ReportUploadService
;
import
pwc.taxtech.atms.service.impl.TemplateServiceImpl
;
import
pwc.taxtech.atms.vat.entity.PeriodTemplate
;
import
pwc.taxtech.atms.vat.entity.ReportUpload
;
import
javax.servlet.ServletContext
;
...
...
@@ -37,8 +41,10 @@ import javax.servlet.ServletOutputStream;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.net.URISyntaxException
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
@RestController
@RequestMapping
(
value
=
"api/v1/template"
)
...
...
@@ -55,6 +61,8 @@ public class TemplateController extends BaseController {
@Autowired
ReportUploadService
reportUploadService
;
@Autowired
DidiFileUploadService
didiFileUploadService
;
@RequestMapping
(
value
=
"get"
,
method
=
RequestMethod
.
GET
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
public
@ResponseBody
List
<
TemplateDto
>
get
(
@RequestParam
(
name
=
"templateGroupID"
)
Long
templateGroupId
,
@RequestParam
(
name
=
"reportType"
)
String
reportType
)
{
...
...
@@ -170,6 +178,81 @@ public class TemplateController extends BaseController {
}
}
@RequestMapping
(
value
=
"getPeriodTemplateJson"
,
method
=
RequestMethod
.
POST
,
produces
=
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
)
public
@ResponseBody
void
getPeriodTemplateBlob
(
@RequestParam
(
name
=
"templateId"
)
Long
templateId
,
@RequestParam
(
name
=
"period"
)
Integer
period
,
@RequestParam
(
name
=
"projectId"
)
String
projectId
,
HttpServletResponse
response
)
throws
URISyntaxException
{
String
filePath
;
File
templateFile
;
InputStream
inputStream
=
null
;
List
<
PeriodTemplate
>
templates
=
templateService
.
getPeriodTemplates
(
templateId
,
period
,
projectId
);
MyAsserts
.
assertNotEmpty
(
templates
,
new
NotFoundException
());
PeriodTemplate
template
=
templates
.
get
(
0
);
String
templatePath
=
template
.
getPath
();
MyAsserts
.
assertNotEmpty
(
templatePath
,
new
NotFoundException
());
filePath
=
this
.
getClass
().
getResource
(
""
).
toURI
().
getPath
();
String
tempPath
=
filePath
.
substring
(
0
,
filePath
.
indexOf
(
"classes"
)
+
"\\classes"
.
length
());
templateFile
=
new
File
(
tempPath
+
templatePath
);
OutputStream
out
=
null
;
try
{
//如果是系统报表就取本地文件夹,如果不是就取FTP
if
(
template
.
getIsSystemType
())
{
inputStream
=
new
BufferedInputStream
(
new
FileInputStream
(
templateFile
));
}
else
{
if
(
templatePath
.
indexOf
(
"/"
)
<=
0
)
{
DidiFileIUploadParam
fileParam
=
new
DidiFileIUploadParam
();
fileParam
.
setUuids
(
Arrays
.
asList
(
templatePath
));
PageInfo
<
DidiFileUploadDetailResult
>
uploadDetail
=
didiFileUploadService
.
queryPage
(
fileParam
);
Map
<
String
,
String
>
urlMap
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
uploadDetail
.
getList
()))
{
templatePath
=
uploadDetail
.
getList
().
get
(
0
).
getViewHttpUrl
();
}
}
inputStream
=
httpFileService
.
getUserTemplate
(
templatePath
);
}
//客户端保存的文件名
String
customFileName
=
"template_"
+
DateTime
.
now
().
toString
(
"yyyyMMddHHmmss"
)
+
".xlsx"
;
response
.
setHeader
(
"Content-Disposition"
,
String
.
format
(
"inline; filename=\""
+
customFileName
+
"\""
));
response
.
setContentType
(
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
);
// int len = 0;
// byte[] buffer = new byte[1024];
// out = response.getOutputStream();
// while ((len = inputStream.read(buffer)) > 0) {
// out.write(buffer, 0, len);
// }
out
=
response
.
getOutputStream
();
IOUtils
.
copy
(
handleFomularView
(
inputStream
),
out
);
out
.
flush
();
}
catch
(
FileNotFoundException
e
)
{
e
.
printStackTrace
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"Error downloading template file template.xlsx"
,
e
);
throw
new
ApplicationException
(
"Error downloading template file template.xlsx"
,
e
);
}
finally
{
if
(
out
!=
null
)
{
try
{
out
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
out
=
null
;
}
if
(
inputStream
!=
null
)
{
try
{
inputStream
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
inputStream
=
null
;
}
}
}
private
File
getTempFile
(
String
templatePath
)
throws
URISyntaxException
{
String
filePath
=
this
.
getClass
().
getResource
(
""
).
toURI
().
getPath
();
String
tempPath
=
filePath
.
substring
(
0
,
filePath
.
indexOf
(
"classes"
)
+
"\\classes"
.
length
());
...
...
atms-api/src/main/java/pwc/taxtech/atms/dto/revenuconf/RevTypeAddDto.java
0 → 100644
View file @
80e5a036
package
pwc
.
taxtech
.
atms
.
dto
.
revenuconf
;
import
pwc.taxtech.atms.vat.entity.RevenueTypeMapping
;
import
java.util.List
;
public
class
RevTypeAddDto
extends
RevenueTypeMapping
{
private
List
<
String
>
orgList
;
public
List
<
String
>
getOrgList
()
{
return
this
.
orgList
;
}
public
void
setOrgList
(
List
<
String
>
orgList
)
{
this
.
orgList
=
orgList
;
}
}
atms-api/src/main/java/pwc/taxtech/atms/dto/revenuconf/RevenueConfResult.java
View file @
80e5a036
...
...
@@ -24,4 +24,8 @@ public class RevenueConfResult extends RevenueConfig {
public
String
getStatusStr
()
{
return
RevenueConfEnum
.
Status
.
MAPPING
.
get
(
this
.
getStatus
());
}
public
String
getIdStr
()
{
return
this
.
getId
().
toString
();
}
}
atms-api/src/main/java/pwc/taxtech/atms/dto/revenuconf/RevenueTypeResult.java
0 → 100644
View file @
80e5a036
package
pwc
.
taxtech
.
atms
.
dto
.
revenuconf
;
import
pwc.taxtech.atms.constant.enums.RevenueConfEnum
;
import
pwc.taxtech.atms.vat.entity.RevenueTypeMapping
;
public
class
RevenueTypeResult
extends
RevenueTypeMapping
{
public
String
getStatusStr
()
{
return
RevenueConfEnum
.
Status
.
MAPPING
.
get
(
this
.
getStatus
());
}
}
atms-api/src/main/java/pwc/taxtech/atms/service/impl/OperationLogFileTypeServiceImpl.java
View file @
80e5a036
...
...
@@ -51,7 +51,9 @@ public class OperationLogFileTypeServiceImpl {
public
List
<
OperationLogFileType
>
selectListForLog
(
List
<
String
>
fileTypeIds
)
{
OperationLogFileTypeExample
example
=
new
OperationLogFileTypeExample
();
OperationLogFileTypeExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andIdIn
(
fileTypeIds
);
if
(
null
!=
fileTypeIds
&&
fileTypeIds
.
size
()>
0
){
criteria
.
andIdIn
(
fileTypeIds
);
}
return
operationLogFileTypeMapper
.
selectByExample
(
example
);
}
}
atms-api/src/main/java/pwc/taxtech/atms/service/impl/OrganizationServiceImpl.java
View file @
80e5a036
...
...
@@ -3230,4 +3230,18 @@ public class OrganizationServiceImpl extends BaseService{
return
organizationMapper
.
getMyOrgSelectList
(
uid
);
}
}
public
List
<
OrgCodeIdDto
>
getMyOrgCodeList
()
{
String
uid
=
authUserHelper
.
getCurrentUserId
();
User
user
=
userMapper
.
selectByPrimaryKey
(
uid
);
if
(
user
.
getIsSuperAdmin
())
{
return
organizationMapper
.
getAllOrgCodeList
();
}
else
{
return
organizationMapper
.
getMyOrgCodeList
(
uid
);
}
}
public
String
queryBusinessByCompanyId
(
String
companyId
)
{
return
organizationMapper
.
queryBusinessByCompanyId
(
companyId
);
}
}
atms-api/src/main/java/pwc/taxtech/atms/service/impl/RevenueConfService.java
View file @
80e5a036
...
...
@@ -51,8 +51,9 @@ public class RevenueConfService extends BaseService {
RevenueConfigExample
example
=
new
RevenueConfigExample
();
example
.
createCriteria
().
andOrgIdEqualTo
(
param
.
getOrgId
()).
andStartDateLessThanOrEqualTo
(
param
.
getStartDate
()).
andEndDateGreaterThanOrEqualTo
(
param
.
getEndDate
());
return
revenueConfigMapper
.
selectByExample
(
example
).
stream
()
.
map
(
o
->
beanUtil
.
copyProperties
(
o
,
new
RevenueConfResult
())).
collect
(
Collectors
.
toList
());
.
map
(
o
->
beanUtil
.
copyProperties
(
o
,
new
RevenueConfResult
())).
collect
(
Collectors
.
toList
());
}
/**
* 新增配置
*
...
...
@@ -89,6 +90,12 @@ public class RevenueConfService extends BaseService {
revenueConfigMapper
.
updateByPrimaryKeySelective
(
parseEntity
(
config
));
}
public
void
delConfig
(
List
<
Long
>
idList
)
{
if
(!
CollectionUtils
.
isEmpty
(
idList
))
{
idList
.
forEach
(
id
->
revenueConfigMapper
.
deleteByPrimaryKey
(
id
));
}
}
private
RevenueConfig
parseEntity
(
RevenueConfig
config
)
{
if
(
config
.
getAccountType
()
!=
RevenueConfEnum
.
AccountType
.
Account
.
getCode
().
intValue
())
{
config
.
setTbSegment3
(
StringUtils
.
EMPTY
);
...
...
atms-api/src/main/java/pwc/taxtech/atms/service/impl/RevenueTypeMappingService.java
0 → 100644
View file @
80e5a036
package
pwc
.
taxtech
.
atms
.
service
.
impl
;
import
com.github.pagehelper.Page
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.ss.usermodel.Row
;
import
org.apache.poi.ss.usermodel.Sheet
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.apache.poi.ss.usermodel.WorkbookFactory
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
import
pwc.taxtech.atms.common.CommonUtils
;
import
pwc.taxtech.atms.dpo.OrgCodeIdDto
;
import
pwc.taxtech.atms.dpo.OrgSelectDto
;
import
pwc.taxtech.atms.dto.revenuconf.RevTypeAddDto
;
import
pwc.taxtech.atms.dto.revenuconf.RevenueConfParam
;
import
pwc.taxtech.atms.dto.revenuconf.RevenueTypeResult
;
import
pwc.taxtech.atms.vat.dao.RevenueTypeMappingMapper
;
import
pwc.taxtech.atms.vat.entity.RevenueTypeMapping
;
import
pwc.taxtech.atms.vat.entity.RevenueTypeMappingExample
;
import
javax.annotation.Resource
;
import
java.io.InputStream
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
static
pwc
.
taxtech
.
atms
.
constant
.
Constant
.
DEFAULT_END_DATE
;
@Service
public
class
RevenueTypeMappingService
extends
BaseService
{
@Resource
private
RevenueTypeMappingMapper
typeMappingMapper
;
@Resource
private
OrganizationServiceImpl
organizationService
;
/**
* 分页查询可查看的配置信息
*
* @param param RevenueConfParam
* @return PageInfo
*/
public
PageInfo
<
RevenueTypeResult
>
queryPage
(
RevenueConfParam
param
)
{
List
<
OrgSelectDto
>
orgDtoList
=
organizationService
.
getMyOrgList
();
if
(
CollectionUtils
.
isEmpty
(
orgDtoList
))
{
return
new
PageInfo
<>();
}
Page
page
=
PageHelper
.
startPage
(
param
.
getPageInfo
().
getPageIndex
(),
param
.
getPageInfo
().
getPageSize
());
RevenueTypeMappingExample
example
=
new
RevenueTypeMappingExample
();
example
.
createCriteria
().
andOrgIdIn
(
orgDtoList
.
stream
().
map
(
OrgSelectDto:
:
getId
).
collect
(
Collectors
.
toList
()));
PageInfo
<
RevenueTypeResult
>
pageInfo
=
new
PageInfo
<>(
typeMappingMapper
.
selectByExample
(
example
).
stream
()
.
map
(
o
->
beanUtil
.
copyProperties
(
o
,
new
RevenueTypeResult
())).
collect
(
Collectors
.
toList
()));
pageInfo
.
setTotal
(
page
.
getTotal
());
return
pageInfo
;
}
/**
* 新增配置
*
* @param mapping RevenueTypeMapping
*/
public
void
addConfig
(
RevenueTypeMapping
mapping
)
{
//todo 重复校验
mapping
.
setId
(
idService
.
nextId
());
typeMappingMapper
.
insertSelective
(
mapping
);
}
/**
* 前台批量新增
*
* @param addDto RevTypeAddDto
*/
public
void
addConfig
(
RevTypeAddDto
addDto
)
{
if
(!
CollectionUtils
.
isEmpty
(
addDto
.
getOrgList
()))
{
addDto
.
getOrgList
().
forEach
(
id
->
{
addDto
.
setId
(
idService
.
nextId
());
addDto
.
setOrgId
(
id
);
typeMappingMapper
.
insertSelective
(
addDto
);
});
}
}
/**
* 更新配置
*
* @param mapping RevenueConfig
*/
public
void
updateConfig
(
RevenueTypeMapping
mapping
)
{
//todo 重复校验
typeMappingMapper
.
updateByPrimaryKeySelective
(
mapping
);
}
public
void
delConfig
(
List
<
Long
>
idList
)
{
if
(!
CollectionUtils
.
isEmpty
(
idList
))
{
idList
.
forEach
(
id
->
typeMappingMapper
.
deleteByPrimaryKey
(
id
));
}
}
public
void
upload
(
MultipartFile
file
,
Integer
type
)
throws
Exception
{
InputStream
inputStream
=
file
.
getInputStream
();
Workbook
workbook
=
WorkbookFactory
.
create
(
inputStream
);
Sheet
sheet
=
workbook
.
getSheetAt
(
0
);
List
<
RevenueTypeMapping
>
list
=
new
ArrayList
<>();
List
<
OrgCodeIdDto
>
orgDtoList
=
organizationService
.
getMyOrgCodeList
();
for
(
int
r
=
sheet
.
getFirstRowNum
();
r
<=
sheet
.
getLastRowNum
();
r
++)
{
Row
row
=
sheet
.
getRow
(
r
);
String
orgCode
=
row
.
getCell
(
0
).
getStringCellValue
();
Optional
<
OrgCodeIdDto
>
optional
=
orgDtoList
.
stream
().
filter
(
o
->
StringUtils
.
equals
(
o
.
getCode
(),
orgCode
)).
findFirst
();
if
(!
optional
.
isPresent
())
{
continue
;
}
RevenueTypeMapping
mapping
=
new
RevenueTypeMapping
();
mapping
.
setId
(
idService
.
nextId
());
mapping
.
setOrgId
(
optional
.
get
().
getId
());
mapping
.
setOuName
(
StringUtils
.
defaultString
(
row
.
getCell
(
1
).
getStringCellValue
()));
mapping
.
setContent
(
StringUtils
.
defaultString
(
row
.
getCell
(
2
).
getStringCellValue
()));
mapping
.
setTaxRate
(
new
BigDecimal
(
row
.
getCell
(
3
).
getNumericCellValue
()));
mapping
.
setRevenueTypeName
(
StringUtils
.
defaultString
(
row
.
getCell
(
4
).
getStringCellValue
()));
mapping
.
setStartDate
(
StringUtils
.
defaultString
(
row
.
getCell
(
5
).
getStringCellValue
()));
mapping
.
setEndDate
(
StringUtils
.
defaultString
(
row
.
getCell
(
6
).
getStringCellValue
(),
DEFAULT_END_DATE
));
list
.
add
(
mapping
);
}
if
(
1
==
type
)
{
//todo 覆盖导入 具体覆盖哪些
}
if
(!
CollectionUtils
.
isEmpty
(
list
))
{
List
<
List
<
RevenueTypeMapping
>>
batchList
=
CommonUtils
.
subListWithLen
(
list
,
CommonUtils
.
BATCH_NUM_2000
);
batchList
.
forEach
(
l
->
typeMappingMapper
.
batchInsert
(
l
));
}
}
}
atms-api/src/main/java/pwc/taxtech/atms/service/impl/TaxDocumentServiceImpl.java
View file @
80e5a036
...
...
@@ -47,6 +47,12 @@ public class TaxDocumentServiceImpl {
@Autowired
DidiFileUploadService
didiFileUploadService
;
@Autowired
private
BusinessUnitServiceImpl
businessUnitService
;
@Autowired
private
OrganizationServiceImpl
organizationService
;
public
List
<
TaxDocument
>
selectTaxDocumentList
(
TaxDocumentDto
taxDocumentDto
)
{
List
<
TaxDocument
>
dataList
=
taxDocumentMapper
.
selectByExample
(
getExample
(
taxDocumentDto
));
DidiFileIUploadParam
fileParam
=
new
DidiFileIUploadParam
();
...
...
@@ -123,15 +129,15 @@ public class TaxDocumentServiceImpl {
}
//实物索引号 physicalIndexNumber
if
(
StringUtils
.
isNotBlank
(
taxDocumentDto
.
getPhysicalIndexNumber
()))
{
criteria
.
andPhysicalIndexNumber
EqualTo
(
taxDocumentDto
.
getPhysicalIndexNumber
()
);
criteria
.
andPhysicalIndexNumber
Like
(
"%"
+
taxDocumentDto
.
getPhysicalIndexNumber
()
+
"%"
);
}
//实物存放地点 storageArea
if
(
StringUtils
.
isNotBlank
(
taxDocumentDto
.
getStorageArea
()))
{
criteria
.
andStorageArea
EqualTo
(
taxDocumentDto
.
getStorageArea
()
);
criteria
.
andStorageArea
Like
(
"%"
+
taxDocumentDto
.
getStorageArea
()
+
"%"
);
}
//实物保管人 keeper
if
(
StringUtils
.
isNotBlank
(
taxDocumentDto
.
getKeeper
()))
{
criteria
.
andKeeper
EqualTo
(
taxDocumentDto
.
getKeeper
()
);
criteria
.
andKeeper
Like
(
"%"
+
taxDocumentDto
.
getKeeper
()
+
"%"
);
}
//审批状态 auditStatus
if
(
null
!=
taxDocumentDto
.
getAuditStatus
())
{
...
...
@@ -179,6 +185,11 @@ public class TaxDocumentServiceImpl {
taxDocument
.
setUploadTime
(
new
Date
());
taxDocument
.
setYearRedundancy
(
Calendar
.
getInstance
().
get
(
Calendar
.
YEAR
));
Long
id
=
taxDocumentMapper
.
insert
(
taxDocument
);
//根据公司Id 设置业务线
String
businessLine
=
organizationService
.
queryBusinessByCompanyId
(
taxDocument
.
getCompanyId
());
if
(
StringUtils
.
isNotBlank
(
businessLine
))
{
taxDocument
.
setBusinessLine
(
businessLine
);
}
if
(
id
>
0
)
{
OperationLogTaxDocument
actionEntity
=
buildOperationLogTaxDocument
();
actionEntity
.
setId
(
id
.
toString
());
...
...
@@ -232,24 +243,22 @@ public class TaxDocumentServiceImpl {
@Transactional
public
boolean
batchDelete
(
List
<
Long
>
ids
)
{
try
{
if
(
null
==
ids
||
ids
.
size
()
<
1
)
{
if
(
null
==
ids
||
ids
.
size
()
<
1
)
{
return
false
;
}
for
(
Long
id
:
ids
)
{
int
num
=
taxDocumentMapper
.
deleteByPrimaryKey
(
id
);
if
(
num
>
0
)
{
int
num
=
taxDocumentMapper
.
batchDelete
(
ids
);
if
(
num
>
0
)
{
for
(
Long
id
:
ids
)
{
OperationLogTaxDocument
actionEntity
=
buildOperationLogTaxDocument
();
actionEntity
.
setOperationAction
(
"删除"
);
actionEntity
.
setId
(
id
.
toString
());
boolean
result
=
operationLogTaxDocService
.
addTaxDocumentList
(
actionEntity
);
if
(
result
)
{
return
true
;
}
else
{
if
(!
result
)
{
throw
new
RuntimeException
(
"TaxDocumentServiceImpl batchDeleteTaxDocument log error"
);
}
}
else
{
return
false
;
}
}
else
{
return
false
;
}
return
true
;
}
catch
(
Exception
e
)
{
...
...
atms-api/src/main/java/pwc/taxtech/atms/service/impl/TemplateServiceImpl.java
View file @
80e5a036
...
...
@@ -18,8 +18,12 @@ import pwc.taxtech.atms.dto.didiFileUpload.DidiFileUploadDetailResult;
import
pwc.taxtech.atms.dto.vatdto.TemplateByGroupDto
;
import
pwc.taxtech.atms.entity.*
;
import
pwc.taxtech.atms.vat.dao.PeriodReportMapper
;
import
pwc.taxtech.atms.vat.dao.PeriodTemplateMapper
;
import
pwc.taxtech.atms.vat.entity.PeriodReportExample
;
import
pwc.taxtech.atms.vat.entity.PeriodTemplate
;
import
pwc.taxtech.atms.vat.entity.PeriodTemplateExample
;
import
javax.annotation.Resource
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -28,9 +32,11 @@ import static java.util.stream.Collectors.groupingBy;
@Service
public
class
TemplateServiceImpl
extends
AbstractService
{
@
Autowired
@
Resource
private
PeriodReportMapper
periodReportMapper
;
@Resource
private
PeriodTemplateMapper
periodTemplateMapper
;
@Autowired
private
DidiFileUploadService
didiFileUploadService
;
public
void
addExistTemplate
(
TemplateAddExistDto
templateAddExistDto
){
...
...
@@ -112,6 +118,12 @@ public class TemplateServiceImpl extends AbstractService {
return
templateDtos
;
}
public
List
<
PeriodTemplate
>
getPeriodTemplates
(
Long
templateId
,
Integer
period
,
String
projectId
){
PeriodTemplateExample
example
=
new
PeriodTemplateExample
();
example
.
createCriteria
().
andProjectIdEqualTo
(
projectId
).
andTemplateIdEqualTo
(
templateId
).
andPeriodEqualTo
(
period
);
return
periodTemplateMapper
.
selectByExample
(
example
);
}
public
String
getTemplatePath
(
Long
templateId
)
{
String
result
=
""
;
Template
template
=
templateMapper
.
selectByPrimaryKey
(
templateId
);
...
...
atms-dao/etc/generator-mysql/vatGeneratorConfig.xml
View file @
80e5a036
...
...
@@ -46,6 +46,7 @@
<table tableName="profit_loss_statement_prc" domainObjectName="ProfitLossStatementPrc">
<property name="useActualColumnNames" value="false"/>
<property name="ignoreQualifiersAtRuntime" value="true"/>
<columnOverride column="status" javaType="java.lang.Integer" jdbcType="TINYINT"/>
</table>
<table tableName="profit_loss_statement_prc_manual" domainObjectName="ProfitLossStatementPrcManual">
...
...
atms-dao/src/main/java/pwc/taxtech/atms/dao/OrganizationMapper.java
View file @
80e5a036
package
pwc
.
taxtech
.
atms
.
dao
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
...
...
@@ -10,6 +9,8 @@ import pwc.taxtech.atms.dpo.*;
import
pwc.taxtech.atms.entity.Organization
;
import
pwc.taxtech.atms.entity.OrganizationExample
;
import
java.util.List
;
@Mapper
public
interface
OrganizationMapper
extends
MyMapper
{
/**
...
...
@@ -138,4 +139,13 @@ public interface OrganizationMapper extends MyMapper {
@Select
(
"select id, name from organization;"
)
List
<
OrgSelectDto
>
getAllOrgSelectList
();
@Select
(
"select tb.id,tb.code from user_organization ta left join organization tb on ta.organization_id = tb.id "
+
"where ta.user_id = #{uid}"
)
List
<
OrgCodeIdDto
>
getMyOrgCodeList
(
String
uid
);
@Select
(
"select id, code from organization;"
)
List
<
OrgCodeIdDto
>
getAllOrgCodeList
();
String
queryBusinessByCompanyId
(
String
companyId
);
}
\ No newline at end of file
atms-dao/src/main/java/pwc/taxtech/atms/dao/TaxDocumentMapper.java
View file @
80e5a036
...
...
@@ -113,4 +113,6 @@ public interface TaxDocumentMapper extends MyMapper {
* @return
*/
int
updateEnableToF
(
Long
id
);
int
batchDelete
(
List
<
Long
>
ids
);
}
\ No newline at end of file
atms-dao/src/main/java/pwc/taxtech/atms/dpo/OrgCodeIdDto.java
0 → 100644
View file @
80e5a036
package
pwc
.
taxtech
.
atms
.
dpo
;
public
class
OrgCodeIdDto
{
private
String
id
;
private
String
code
;
public
String
getId
()
{
return
this
.
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getCode
()
{
return
this
.
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
}
atms-dao/src/main/java/pwc/taxtech/atms/entity/OperationLogFileType.java
View file @
80e5a036
...
...
@@ -2,6 +2,7 @@ package pwc.taxtech.atms.entity;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
*
...
...
@@ -110,6 +111,16 @@ public class OperationLogFileType implements Serializable {
*/
private
Date
createTime
;
private
List
<
String
>
fileTypeIds
;
public
List
<
String
>
getFileTypeIds
()
{
return
fileTypeIds
;
}
public
void
setFileTypeIds
(
List
<
String
>
fileTypeIds
)
{
this
.
fileTypeIds
=
fileTypeIds
;
}
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table operation_log_file_type
...
...
atms-dao/src/main/java/pwc/taxtech/atms/entity/TaxDocumentExample.java
View file @
80e5a036
...
...
@@ -500,6 +500,11 @@ public class TaxDocumentExample {
return
(
Criteria
)
this
;
}
public
Criteria
andPhysicalIndexNumberLike
(
String
value
)
{
addCriterion
(
"physical_index_number like"
,
value
,
"physicalIndexNumber"
);
return
(
Criteria
)
this
;
}
public
Criteria
andFileNameNotLike
(
String
value
)
{
addCriterion
(
"file_name not like"
,
value
,
"fileName"
);
return
(
Criteria
)
this
;
...
...
atms-dao/src/main/java/pwc/taxtech/atms/vat/dao/RevenueTypeMappingMapper.java
View file @
80e5a036
...
...
@@ -105,4 +105,6 @@ public interface RevenueTypeMappingMapper extends MyVatMapper {
* @mbg.generated
*/
int
updateByPrimaryKey
(
RevenueTypeMapping
record
);
int
batchInsert
(
List
<
RevenueTypeMapping
>
list
);
}
\ No newline at end of file
atms-dao/src/main/java/pwc/taxtech/atms/vat/entity/RevenueTypeMapping.java
View file @
80e5a036
...
...
@@ -99,6 +99,17 @@ public class RevenueTypeMapping extends BaseEntity implements Serializable {
*/
private
String
endDate
;
/**
* Database Column Remarks:
* 状态 0:启用 1:停用
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column revenue_type_mapping.status
*
* @mbg.generated
*/
private
Integer
status
;
/**
*
* This field was generated by MyBatis Generator.
...
...
@@ -335,6 +346,30 @@ public class RevenueTypeMapping extends BaseEntity implements Serializable {
this
.
endDate
=
endDate
==
null
?
null
:
endDate
.
trim
();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column revenue_type_mapping.status
*
* @return the value of revenue_type_mapping.status
*
* @mbg.generated
*/
public
Integer
getStatus
()
{
return
status
;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column revenue_type_mapping.status
*
* @param status the value for revenue_type_mapping.status
*
* @mbg.generated
*/
public
void
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column revenue_type_mapping.create_by
...
...
@@ -451,6 +486,7 @@ public class RevenueTypeMapping extends BaseEntity implements Serializable {
sb
.
append
(
", revenueTypeName="
).
append
(
revenueTypeName
);
sb
.
append
(
", startDate="
).
append
(
startDate
);
sb
.
append
(
", endDate="
).
append
(
endDate
);
sb
.
append
(
", status="
).
append
(
status
);
sb
.
append
(
", createBy="
).
append
(
createBy
);
sb
.
append
(
", updateBy="
).
append
(
updateBy
);
sb
.
append
(
", createTime="
).
append
(
createTime
);
...
...
atms-dao/src/main/java/pwc/taxtech/atms/vat/entity/RevenueTypeMappingExample.java
View file @
80e5a036
...
...
@@ -736,6 +736,66 @@ public class RevenueTypeMappingExample {
return
(
Criteria
)
this
;
}
public
Criteria
andStatusIsNull
()
{
addCriterion
(
"`status` is null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusIsNotNull
()
{
addCriterion
(
"`status` is not null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusEqualTo
(
Integer
value
)
{
addCriterion
(
"`status` ="
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusNotEqualTo
(
Integer
value
)
{
addCriterion
(
"`status` <>"
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusGreaterThan
(
Integer
value
)
{
addCriterion
(
"`status` >"
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusGreaterThanOrEqualTo
(
Integer
value
)
{
addCriterion
(
"`status` >="
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusLessThan
(
Integer
value
)
{
addCriterion
(
"`status` <"
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusLessThanOrEqualTo
(
Integer
value
)
{
addCriterion
(
"`status` <="
,
value
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusIn
(
List
<
Integer
>
values
)
{
addCriterion
(
"`status` in"
,
values
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusNotIn
(
List
<
Integer
>
values
)
{
addCriterion
(
"`status` not in"
,
values
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusBetween
(
Integer
value1
,
Integer
value2
)
{
addCriterion
(
"`status` between"
,
value1
,
value2
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andStatusNotBetween
(
Integer
value1
,
Integer
value2
)
{
addCriterion
(
"`status` not between"
,
value1
,
value2
,
"status"
);
return
(
Criteria
)
this
;
}
public
Criteria
andCreateByIsNull
()
{
addCriterion
(
"create_by is null"
);
return
(
Criteria
)
this
;
...
...
atms-dao/src/main/resources/pwc/taxtech/atms/dao/extends/OrganizationExtendsMapper.xml
View file @
80e5a036
...
...
@@ -671,4 +671,10 @@
ACC_SET.is_active = 1
AND SET_ORG.enterprise_account_set_id = ACC_SET.id
</select>
<select
id=
"queryBusinessByCompanyId"
resultType=
"string"
>
SELECT bus.name
FROM organization org
LEFT JOIN business_unit bus ON org.business_unit_id = bus.id
WHERE bus.is_active = 1 AND org.id = #{companyId}
</select>
</mapper>
\ No newline at end of file
atms-dao/src/main/resources/pwc/taxtech/atms/dao/extends/TaxDocumentMapper.xml
View file @
80e5a036
...
...
@@ -150,6 +150,15 @@
delete from tax_document
where id = #{id,jdbcType=BIGINT}
</delete>
<delete
id=
"batchDelete"
>
DELETE FROM tax_document
WHERE id IN
<foreach
collection=
"list"
item=
"id"
separator=
","
open=
"("
close=
")"
>
#{id}
</foreach>
</delete>
<delete
id=
"deleteByExample"
parameterType=
"pwc.taxtech.atms.entity.TaxDocumentExample"
>
<!--
WARNING - @mbg.generated
...
...
atms-dao/src/main/resources/pwc/taxtech/atms/vat/dao/RevenueTypeMappingMapper.xml
View file @
80e5a036
...
...
@@ -14,6 +14,7 @@
<result
column=
"revenue_type_name"
jdbcType=
"VARCHAR"
property=
"revenueTypeName"
/>
<result
column=
"start_date"
jdbcType=
"VARCHAR"
property=
"startDate"
/>
<result
column=
"end_date"
jdbcType=
"VARCHAR"
property=
"endDate"
/>
<result
column=
"status"
jdbcType=
"TINYINT"
property=
"status"
/>
<result
column=
"create_by"
jdbcType=
"VARCHAR"
property=
"createBy"
/>
<result
column=
"update_by"
jdbcType=
"VARCHAR"
property=
"updateBy"
/>
<result
column=
"create_time"
jdbcType=
"TIMESTAMP"
property=
"createTime"
/>
...
...
@@ -91,7 +92,7 @@
This element is automatically generated by MyBatis Generator, do not modify.
-->
id, org_id, ou_name, content, tax_rate, revenue_type_name, start_date, end_date,
create_by, update_by, create_time, update_time
`status`,
create_by, update_by, create_time, update_time
</sql>
<select
id=
"selectByExample"
parameterType=
"pwc.taxtech.atms.vat.entity.RevenueTypeMappingExample"
resultMap=
"BaseResultMap"
>
<!--
...
...
@@ -146,14 +147,14 @@
-->
insert into revenue_type_mapping (id, org_id, ou_name,
content, tax_rate, revenue_type_name,
start_date, end_date,
create_by
,
update_by, create_time, update_time
)
start_date, end_date,
`status`
,
create_by, update_by, create_time,
update_time
)
values (#{id,jdbcType=BIGINT}, #{orgId,jdbcType=VARCHAR}, #{ouName,jdbcType=VARCHAR},
#{content,jdbcType=VARCHAR}, #{taxRate,jdbcType=DECIMAL}, #{revenueTypeName,jdbcType=VARCHAR},
#{startDate,jdbcType=VARCHAR}, #{endDate,jdbcType=VARCHAR}, #{
createBy,jdbcType=VARCHAR
},
#{
updateBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
)
#{startDate,jdbcType=VARCHAR}, #{endDate,jdbcType=VARCHAR}, #{
status,jdbcType=TINYINT
},
#{
createBy,jdbcType=VARCHAR}, #{updateBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP}
)
</insert>
<insert
id=
"insertSelective"
parameterType=
"pwc.taxtech.atms.vat.entity.RevenueTypeMapping"
>
<!--
...
...
@@ -186,6 +187,9 @@
<if
test=
"endDate != null"
>
end_date,
</if>
<if
test=
"status != null"
>
`status`,
</if>
<if
test=
"createBy != null"
>
create_by,
</if>
...
...
@@ -224,6 +228,9 @@
<if
test=
"endDate != null"
>
#{endDate,jdbcType=VARCHAR},
</if>
<if
test=
"status != null"
>
#{status,jdbcType=TINYINT},
</if>
<if
test=
"createBy != null"
>
#{createBy,jdbcType=VARCHAR},
</if>
...
...
@@ -279,6 +286,9 @@
<if
test=
"record.endDate != null"
>
end_date = #{record.endDate,jdbcType=VARCHAR},
</if>
<if
test=
"record.status != null"
>
`status` = #{record.status,jdbcType=TINYINT},
</if>
<if
test=
"record.createBy != null"
>
create_by = #{record.createBy,jdbcType=VARCHAR},
</if>
...
...
@@ -310,6 +320,7 @@
revenue_type_name = #{record.revenueTypeName,jdbcType=VARCHAR},
start_date = #{record.startDate,jdbcType=VARCHAR},
end_date = #{record.endDate,jdbcType=VARCHAR},
`status` = #{record.status,jdbcType=TINYINT},
create_by = #{record.createBy,jdbcType=VARCHAR},
update_by = #{record.updateBy,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=TIMESTAMP},
...
...
@@ -346,6 +357,9 @@
<if
test=
"endDate != null"
>
end_date = #{endDate,jdbcType=VARCHAR},
</if>
<if
test=
"status != null"
>
`status` = #{status,jdbcType=TINYINT},
</if>
<if
test=
"createBy != null"
>
create_by = #{createBy,jdbcType=VARCHAR},
</if>
...
...
@@ -374,6 +388,7 @@
revenue_type_name = #{revenueTypeName,jdbcType=VARCHAR},
start_date = #{startDate,jdbcType=VARCHAR},
end_date = #{endDate,jdbcType=VARCHAR},
`status` = #{status,jdbcType=TINYINT},
create_by = #{createBy,jdbcType=VARCHAR},
update_by = #{updateBy,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
...
...
@@ -398,4 +413,40 @@
order by ${orderByClause}
</if>
</select>
<insert
id=
"batchInsert"
parameterType=
"pwc.taxtech.atms.vat.entity.RevenueTypeMapping"
>
insert into revenue_type_mapping (id, org_id, ou_name,
content, tax_rate, revenue_type_name,
start_date, end_date, `status`
<if
test=
"createBy != null"
>
,create_by
</if>
<if
test=
"updateBy != null"
>
,update_by
</if>
<if
test=
"createTime != null"
>
,create_time
</if>
<if
test=
"updateTime != null"
>
,update_time
</if>
) values
<foreach
collection=
"list"
item=
"item"
index=
"index"
separator=
","
>
(#{id,jdbcType=BIGINT}, #{orgId,jdbcType=VARCHAR}, #{ouName,jdbcType=VARCHAR},
#{content,jdbcType=VARCHAR}, #{taxRate,jdbcType=DECIMAL}, #{revenueTypeName,jdbcType=VARCHAR},
#{startDate,jdbcType=VARCHAR}, #{endDate,jdbcType=VARCHAR}, #{status,jdbcType=TINYINT}
<if
test=
"createBy != null"
>
,create_by = #{createBy,jdbcType=VARCHAR}
</if>
<if
test=
"updateBy != null"
>
,update_by = #{updateBy,jdbcType=VARCHAR}
</if>
<if
test=
"createTime != null"
>
,create_time = #{createTime,jdbcType=TIMESTAMP}
</if>
<if
test=
"updateTime != null"
>
,update_time = #{updateTime,jdbcType=TIMESTAMP}
</if>
)
</foreach>
</insert>
</mapper>
\ No newline at end of file
atms-web/src/main/webapp/Scripts/module-part2.js
View file @
80e5a036
...
...
@@ -1528,6 +1528,24 @@ var dataImpModule = angular.module('app.dataImp', ['ui.grid', 'ui.router','ui.gr
sticky
:
true
});
$stateProvider
.
state
({
name
:
'dataImportConfigRevenueTypeMapping'
,
url
:
"/dataImportConfig/revenueTypeMapping"
,
dsr
:
true
,
views
:
{
'importContent'
:
{
controller
:
[
'$scope'
,
'$state'
,
'appTranslation'
,
function
(
$scope
,
$state
,
appTranslation
)
{
$scope
.
state
=
$state
;
appTranslation
.
load
([
appTranslation
.
appPart
]);
}],
template
:
'<vat-revenue-conf-mapping></vat-revenue-conf-mapping>'
}
},
resolve
:
scriptDependencyProvider
.
createDependenciesMap
(
scriptDependencyProvider
.
dataImp
),
sticky
:
true
});
$stateProvider
.
state
({
name
:
'citProfitPrcAdjustImportDistribution'
,
url
:
"/importDistribution/citProfitPrcAdjust"
,
...
...
atms-web/src/main/webapp/app-resources/i18n/en-us/infrastructure.json
View file @
80e5a036
...
...
@@ -70,6 +70,7 @@
"ProjectYearCol"
:
"年份"
,
"AssignRoleCol"
:
"分配角色"
,
"SequenceNoCol"
:
"序号"
,
"DocumentID"
:
"Doc ID"
,
"TaxGroup"
:
"税种"
,
"ReportTemplate"
:
"Report Template"
,
...
...
atms-web/src/main/webapp/app-resources/i18n/zh-CN/infrastructure.json
View file @
80e5a036
...
...
@@ -93,6 +93,7 @@
"ProjectYearCol"
:
"年份"
,
"AssignRoleCol"
:
"分配角色"
,
"SequenceNoCol"
:
"序号"
,
"DocumentID"
:
"档案ID"
,
"TaxGroup"
:
"税种"
,
"DocumentAttr"
:
"档案属性"
,
"DocumentType"
:
"档案类型"
,
...
...
atms-web/src/main/webapp/app-resources/i18n/zh-CN/vat.json
View file @
80e5a036
...
...
@@ -2150,6 +2150,7 @@
"RevenueNoOrgData"
:
"没有机构权限"
,
"RevenueGetOrgError"
:
"获取机构信息失败"
,
"RevenueAddSuccess"
:
"添加成功"
,
"RevenueDelSuccess"
:
"删除成功"
,
"RevenueUpdateSuccess"
:
"更新成功"
,
"dataValidate"
:
"数据校验"
,
"RevDetail"
:
"收入明细"
,
...
...
@@ -2177,6 +2178,10 @@
"RevDetailType"
:
"收入类型"
,
"RevDetailCategory"
:
"收入类别"
,
"RevDetailTaxOn"
:
"计税方法"
,
"RevCMTitle"
:
"开票记录与收入类型映射配置"
,
"RevCMApplyBU"
:
"申请部门"
,
"RevCMInvoiceCTX"
:
"开票内容"
,
"BillDetail"
:
"开票明细"
,
"BillEditRevenueType"
:
"编辑收入类型"
,
"BillDtlHandle"
:
"操作"
,
...
...
@@ -2273,4 +2278,4 @@
"DriverType"
:
"司机类型"
,
"~MustBeEndOneApp"
:
"我必须是最后一个!"
}
}
\ No newline at end of file
atms-web/src/main/webapp/app/admin/infrastructure/docManage/doc-manage.ctrl.js
View file @
80e5a036
...
...
@@ -82,7 +82,7 @@
columns
:
[
{
dataField
:
"id"
,
caption
:
$translate
.
instant
(
'
SequenceNoCol
'
),
caption
:
$translate
.
instant
(
'
DocumentID
'
),
allowHeaderFiltering
:
true
,
cellTemplate
:
function
(
container
,
options
)
{
try
{
...
...
@@ -185,15 +185,15 @@
}
},
{
dataField
:
"
cre
ateTime"
,
caption
:
$translate
.
instant
(
'
Created
Time'
),
dataField
:
"
upd
ateTime"
,
caption
:
$translate
.
instant
(
'
Update
Time'
),
allowHeaderFiltering
:
true
,
cellTemplate
:
function
(
container
,
options
)
{
try
{
var
style
=
options
.
data
.
status
==
1
?
''
:
'style="color:#999"'
;
if
(
options
.
data
.
cre
ateTime
)
{
$
(
'<span '
+
style
+
'>'
).
text
(
$filter
(
'date'
)(
options
.
data
.
cre
ateTime
,
'yyyy-MM-dd'
)).
appendTo
(
container
);
if
(
options
.
data
.
upd
ateTime
)
{
$
(
'<span '
+
style
+
'>'
).
text
(
$filter
(
'date'
)(
options
.
data
.
upd
ateTime
,
'yyyy-MM-dd'
)).
appendTo
(
container
);
}
else
{
$
(
'<span>'
).
text
().
appendTo
(
container
);
}
...
...
@@ -209,8 +209,10 @@
cellTemplate
:
function
(
container
,
options
)
{
try
{
if
(
options
.
data
.
status
==
1
)
{
$
(
'<span>'
).
text
(
$translate
.
instant
(
'Enabled'
)).
appendTo
(
container
);
options
.
data
.
status
=
$translate
.
instant
(
'Enabled'
);
$
(
'<span>'
).
text
(
options
.
data
.
status
).
appendTo
(
container
);
}
else
{
options
.
data
.
status
=
$translate
.
instant
(
'Disabled'
);
$
(
'<span style="color:#999">'
).
text
(
$translate
.
instant
(
'Disabled'
)).
appendTo
(
container
);
}
}
catch
(
e
)
{
...
...
@@ -224,13 +226,11 @@
allowHeaderFiltering
:
false
,
cellTemplate
:
function
(
container
,
options
)
{
try
{
var
eventTarget
=
$
(
'<a style="color:#506bf7;" href="javascript:void(0)" ng-click="openEditPop('
+
options
.
data
.
id
+
')">'
+
'<span>{{"Edit"|translate}}</span></a>'
);
$compile
(
eventTarget
)(
$scope
);
var
eventTarget
=
$
(
'<a style="color:#506bf7;" data-id="'
+
options
.
data
.
id
+
'" href="javascript:void(0)"><span>'
+
$translate
.
instant
(
"Edit"
)
+
'</span></a>'
);
eventTarget
.
off
(
'click'
).
on
(
'click'
,
function
(){
$scope
.
openEditPop
(
options
.
data
.
id
);
});
container
.
append
(
eventTarget
);
}
catch
(
e
)
{
$log
.
error
(
e
);
}
...
...
@@ -248,6 +248,10 @@
$scope
.
localData
.
forEach
(
function
(
item
)
{
if
(
item
.
id
==
rowId
)
{
$scope
.
editModel
=
angular
.
copy
(
item
);
if
(
$scope
.
editModel
.
status
!=
1
||
$scope
.
editModel
.
status
!=
0
){
// 特殊处理状态值,1 = “已启用”, 0 = “已禁用”
$scope
.
editModel
.
status
=
item
.
status
==
$translate
.
instant
(
"Enabled"
)
?
1
:
0
;
}
}
});
}
...
...
atms-web/src/main/webapp/app/admin/infrastructure/docManage/doc-manage.html
View file @
80e5a036
...
...
@@ -145,12 +145,14 @@
<label
class=
"col-sm-5 DM-state-label"
>
<input
type=
"radio"
name=
"editModelState"
value=
1
ng-checked=
"editModel.status == 1"
ng-model=
"editModel.status"
required
/>
<span
translate=
"Enable"
></span>
</label>
<label
class=
"col-sm-5 DM-state-label"
>
<input
type=
"radio"
name=
"editModelState"
value=
0
ng-checked=
"editModel.status == 0"
ng-model=
"editModel.status"
required
/>
<span
translate=
"Disable"
></span>
</label>
...
...
atms-web/src/main/webapp/app/common/controls/vat-report-sheet/vat-report-sheet.js
View file @
80e5a036
...
...
@@ -87,7 +87,9 @@
};
var
loadSheet
=
function
(
templateId
)
{
return
templateService
.
getTemplateJson
(
templateId
).
then
(
function
(
reportSpread
)
{
var
prokjectId
=
vatSessionService
.
project
.
id
;
var
period
=
vatSessionService
.
month
;
return
templateService
.
getPeriodTemplateJson
(
templateId
,
period
,
prokjectId
).
then
(
function
(
reportSpread
)
{
var
spreadCtrl
=
getSpreadControl
();
if
(
spreadCtrl
)
{
spreadCtrl
.
destroy
();
...
...
atms-web/src/main/webapp/app/common/webservices/template.svc.js
View file @
80e5a036
...
...
@@ -13,6 +13,16 @@ webservices.factory('templateService', ['$log', '$http', '$q', 'apiConfig', 'htt
return
getJsonFromExcel
(
templateID
);
//}
};
var
getPeriodTemplateJson
=
function
(
templateId
,
period
,
projectId
)
{
//return $http.get('/template/getTemplateJson?templateID=' + templateID, apiConfig.create());
//var url = '/template/getTemplateJson?templateID=' + templateID;
//var result = httpCacheService.get(url);
// if (result.finishedCache) {
// return result;
// } else {
return
getJsonFromExcelForPeriod
(
templateId
,
period
,
projectId
);
//}
};
var
getCookie
=
function
(
cname
)
{
...
...
@@ -105,6 +115,38 @@ webservices.factory('templateService', ['$log', '$http', '$q', 'apiConfig', 'htt
};
var
getJsonFromExcelForPeriod
=
function
(
templateID
,
period
,
projectId
)
{
var
deferred
=
$q
.
defer
();
var
promise
=
deferred
.
promise
;
var
url
=
loginContext
.
apiHost
+
constant
.
webapi
.
prefix
+
'/template/getPeriodTemplateJson?templateId='
+
templateID
+
"&period="
+
period
+
"&projectId="
+
projectId
;
var
xhr
=
new
XMLHttpRequest
();
xhr
.
open
(
'POST'
,
url
,
true
);
// 也可以使用POST方式,根据接口
xhr
.
responseType
=
"blob"
;
// 返回类型blob
var
apiTokenObj
=
JSON
.
parse
(
getCookie
(
'AtmsApiToken'
));
var
apiToken
=
apiTokenObj
.
access_token
;
var
tokenType
=
apiTokenObj
.
token_type
;
xhr
.
setRequestHeader
(
'Authorization'
,
tokenType
+
' '
+
apiToken
);
// 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑
xhr
.
onload
=
function
()
{
// 请求完成
if
(
this
.
status
===
200
)
{
// 返回200
var
blob
=
this
.
response
;
var
excelIo
=
new
GC
.
Spread
.
Excel
.
IO
();
excelIo
.
open
(
blob
,
function
(
json
)
{
deferred
.
resolve
(
json
);
},
function
(
e
)
{
// console.error(e.errorMessage);
//alert(e.errorMessage);
deferred
.
reject
(
e
.
errorMessage
);
},
{});
}
};
// 发送ajax请求
xhr
.
send
();
return
promise
;
};
var
renderSpreadExcelSimple
=
function
(
id
,
templateID
)
{
var
deferred
=
$q
.
defer
();
var
promise
=
deferred
.
promise
;
...
...
@@ -126,6 +168,7 @@ webservices.factory('templateService', ['$log', '$http', '$q', 'apiConfig', 'htt
renderSpreadExcelSimple
:
renderSpreadExcelSimple
,
setRowColName
:
setRowColName
,
getTemplateJson
:
getTemplateJson
,
getPeriodTemplateJson
:
getPeriodTemplateJson
,
downloadTemplate
:
function
(
fileType
)
{
return
$http
.
get
(
'/template/file/downloadTemplate?fileType='
+
fileType
,
apiConfig
.
create
({
responseType
:
'arraybuffer'
}));
},
...
...
atms-web/src/main/webapp/app/dataImport/vat-revenue-conf-mapping/vat-revenue-conf-mapping.ctrl.js
0 → 100644
View file @
80e5a036
This diff is collapsed.
Click to expand it.
atms-web/src/main/webapp/app/dataImport/vat-revenue-conf-mapping/vat-revenue-conf-mapping.html
0 → 100644
View file @
80e5a036
<div
class=
"vat-revenue-conf-mapping"
>
<!--标题-->
<div
class=
"nav-wrapper"
>
<div
class=
"nav-header"
translate=
"RevCMTitle"
></div>
</div>
<div
id=
"tab_total"
>
<form
class=
"form-inline"
>
<div
class=
"form-group"
>
<button
type=
"button"
class=
"btn btn-secondary"
ng-click=
"addConfig()"
>
{{'RevenueAddBtn' | translate }}
</button>
<button
type=
"button"
class=
"btn btn-third"
ng-click=
"delConfig()"
>
{{'RevenueDelBtn' | translate }}
</button>
<label
class=
"control-label"
>
文件:
</label>
<input
class=
"form-control"
type=
"text"
name=
"fileName"
ng-model=
"uploadFile.file.name"
readonly
placeholder=
""
/>
<button
type=
"button"
type=
"file"
ngf-select
ng-model=
"uploadFile.file"
accept=
".xls,.xlsx"
class=
"btn btn-secondary browse"
>
{{'SelectFile' | translate }}
</button>
<button
type=
"button"
class=
"btn btn-secondary"
translate=
"CoverImportBtn"
ng-click=
"upload()"
></button>
<button
type=
"button"
class=
"btn btn-secondary"
translate=
"AddImportBtn"
ng-click=
"upload()"
></button>
<button
type=
"button"
class=
"btn btn-in-grid inline-div"
ng-click=
"downEntepriseAccountTemplate()"
><i
class=
"fa fa-download"
aria-hidden=
"true"
></i>
下载模板
</button>
</div>
</form>
<div
class=
"dt-init-wrapper"
>
<div
class=
"dx-viewport grid-container"
>
<div
id=
"revenueGridContainer"
dx-data-grid=
"revenueGridOptions"
style=
"margin-top: 0px;"
>
<div
data-options=
"dxTemplate:{ name:'editCellTemplate' }"
>
</div>
</div>
</div>
<div
class=
"page-footer"
>
<ack-pagination
page-options=
"pagingOptions"
refresh-table=
"refreshConfigGrid()"
></ack-pagination>
</div>
</div>
</div>
<div
class=
"modal fade"
id=
"revenueTypeAddDiv"
tabindex=
"-1"
role=
"dialog"
>
<div
class=
"modal-dialog"
style=
"width: 1200px;"
role=
"document"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<h3
class=
"modal-title"
id=
"modal-title"
>
<span
translate=
"RevCMTitle"
></span>
</h3>
</div>
<div
class=
"modal-body"
id=
"modal-body"
>
<form
class=
"form-horizontal"
id=
"configForm"
>
<div
class=
"form-group"
>
<label
class=
"col-sm-2 control-label"
><span
style=
"color: red"
>
*
</span>
{{'RevenueColOrg' | translate}}:
</label>
<div
class=
"col-sm-4"
>
<div
dx-tag-box=
"selectOrgOptions"
></div>
</div>
<label
class=
"col-sm-2 control-label"
><span
style=
"color: red"
>
*
</span>
{{'RevCMApplyBU' | translate}}:
</label>
<div
class=
"col-sm-4"
>
<input
class=
"form-control"
name=
"name"
ng-model=
"formParam.ouName"
maxlength=
"255"
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"col-sm-2 control-label"
><span
style=
"color: red"
>
*
</span>
{{'RevCMInvoiceCTX' | translate}}:
</label>
<div
class=
"col-sm-4"
>
<input
class=
"form-control"
name=
"name"
ng-model=
"formParam.content"
maxlength=
"255"
>
</div>
<label
class=
"col-sm-2 control-label"
><span
style=
"color: red"
>
*
</span>
{{'RevenueColTaxRate' | translate}}:
</label>
<div
class=
"col-sm-4"
>
<div
dx-select-box=
"selectTaxRateOptions"
></div>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"col-sm-2 control-label"
><span
style=
"color: red"
>
*
</span>
{{'RevDetailType' | translate}}:
</label>
<div
class=
"col-sm-4"
>
<input
class=
"form-control"
name=
"name"
ng-model=
"formParam.revenueTypeName"
maxlength=
"255"
>
</div>
<label
class=
"col-sm-2 control-label"
><span
style=
"color: red"
>
*
</span>
{{'RevenueColStatus' | translate}}:
</label>
<div
class=
"col-sm-4"
>
<div
dx-select-box=
"selectStatusOptions"
></div>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"col-sm-2 control-label"
><span
style=
"color: red"
>
*
</span>
{{'RevenueColEnable' | translate}}:
</label>
<div
class=
"col-sm-4"
>
<div
dx-date-box=
"dateBoxStart"
></div>
</div>
<label
class=
"col-sm-2 control-label"
><span
style=
"color: red"
>
*
</span>
{{'RevenueColDisable' | translate}}:
</label>
<div
class=
"col-sm-4"
>
<div
dx-date-box=
"dateBoxEnd"
></div>
</div>
</div>
</form>
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-primary"
ng-click=
"saveConfig()"
>
{{'Confirm' | translate }}
</button>
<button
type=
"button"
class=
"btn btn-third"
data-dismiss=
"modal"
ng-click=
"cancelModal()"
>
{{'Cancel' | translate }}
</button>
</div>
</div>
</div>
</div>
</div>
atms-web/src/main/webapp/app/dataImport/vat-revenue-conf-mapping/vat-revenue-conf-mapping.js
0 → 100644
View file @
80e5a036
citModule
.
directive
(
'vatRevenueConfMapping'
,
[
'$log'
,
'browserService'
,
'$translate'
,
'region'
,
'$timeout'
,
function
(
$log
,
browserService
,
$translate
,
region
,
$timeout
)
{
$log
.
debug
(
'vatPreviewProfitLoss.ctor()...'
);
return
{
restrict
:
'E'
,
templateUrl
:
'/app/dataImport/vat-revenue-conf-mapping/vat-revenue-conf-mapping.html'
+
'?_='
+
Math
.
random
(),
scope
:
{},
controller
:
'VatRevenueConfMappingController'
,
link
:
function
(
$scope
,
element
)
{
$
(
'.main-contents'
)[
0
].
style
.
width
=
"260px"
;
$
(
'.data-import-contents'
)[
0
].
style
.
display
=
"block"
;
$
(
'.main-contents'
)[
0
].
style
.
float
=
"left"
;
$
(
'.main-contents'
)[
0
].
style
.
styleFloat
=
"left"
;
$
(
'.main-contents'
)[
0
].
style
.
cssFloat
=
"left"
;
}
}
}
]);
\ No newline at end of file
atms-web/src/main/webapp/app/dataImport/vat-revenue-conf-mapping/vat-revenue-conf-mapping.less
0 → 100644
View file @
80e5a036
@import "~/app-resources/less/theme.less";
.vat-revenue-conf-mapping {
/*background-color: @color-white;*/
padding-left: 20px;
/*min-height: 800px;*/
height: 96%;
.nav-wrapper {
/*padding-bottom: 5px;
border-bottom: 1px solid #DBD8D3;*/
.nav-header {
height: 54px;
line-height: 54px;
font-family: "Microsoft YaHei Bold", "Microsoft YaHei Regular", "Microsoft YaHei";
font-weight: 700;
font-style: normal;
font-size: 15px;
color: #333;
display: inline-block;
}
.nav-tab {
span {
display: inline-block;
height: 34px;
line-height: 34px;
padding: 0 10px;
background-color: #B90808;
color: #FFF;
font-family: "Microsoft YaHei";
font-weight: 400;
font-style: normal;
font-size: 14px;
cursor: pointer;
}
.active {
background-color: #F91000;
}
}
.alert-warning {
background-color: #FDE2DE;
cursor: pointer;
}
.alert {
color: #CF2D1B;
font-weight: bold;
display: inline-block;
padding: 5px;
margin-left: 60px;
margin-bottom: 0px;
i {
font-size: 20px;
vertical-align: middle;
margin-right: 5px;
}
}
.operation-wrapper {
margin: 15px 25px 10px 10px;
span {
cursor: pointer;
}
}
}
.dropdown-common() {
display: inline-block;
.select-button {
background-color: #F5F5F5;
padding: 6px 0;
width: 100px;
}
.caret {
margin-top: 8px;
}
.dropdown-menu {
min-width: 100px;
li {
text-align: center;
min-height: 0px;
height: 30px;
line-height: 30px;
color: #000;
font-weight: normal;
&:hover {
background-color: #F91000;
color: #FFF;
}
}
}
}
#tab_total {
display: block;
height: calc(~'100% - 40px');
position: relative;
.import-wrapper {
span {
margin-left: 10px;
color: #333;
font-family: "Microsoft YaHei";
font-style: normal;
font-size: 14px;
font-weight: bold;
}
.period-picker {
width: 150px;
border: 1px solid #c7c5c0;
display: inline-block;
line-height: 20px;
margin-top: 7px;
}
.imp-subheader {
display: inline-block;
font-size: 15px;
height: 30px;
line-height: 30px;
vertical-align: middle;
border: none;
select {
appearance: none;
-moz-appearance: none;
-webkit-appearance: none;
background: transparent;
}
}
.dropdown {
.dropdown-common();
}
input {
width: 50px;
outline: none;
border-radius: 3px;
border: 1px solid #3c3a36;
padding: 2px;
text-align: center;
}
> button:last-child {
float: right;
margin-right: 20px;
}
.btn-wrapper {
border-radius: 5px;
background-color: #e0301e;
color: #FFF;
display: inline-block;
float: right;
margin-right: 10px;
.btn-vat-primary {
min-width: 80px;
}
}
}
.dt-init-wrapper {
margin: 30px 0;
max-width: 99%;
height: calc(~'100% - 25px');
position: relative;
.dropdown {
.dropdown-common();
i {
color: #F85550;
}
}
.importPLStatusGridContainer {
height: calc(~'100% - 30px');
overflow: hidden;
position: absolute;
top: 0;
bottom: 136px; /* 130 + 6 */
left: 0;
right: 0;
background-color: #FFF;
}
}
.error-info-wrapper {
position: absolute;
height: 150px;
bottom: 0;
left: 0;
right: 0;
overflow: hidden;
background-color: #FFF;
margin-left: -40px;
}
#content-resizer {
width: 110%;
position: absolute;
height: 4px;
bottom: 150px;
left: 0;
right: 0;
background-color: red;
cursor: n-resize;
margin-left: -40px;
#topIcon {
cursor: pointer;
margin-top: -19px;
width: 38px;
margin-left: 46%;
z-index: 999;
bottom: -381px;
text-align: center;
display: block !important;
}
}
.dt-import-wrapper {
margin: 60px 0;
max-width: 99%;
overflow: auto;
height: calc(~"100% - 35px");
.dropdown {
.dropdown-common();
i {
color: #F85550;
}
}
}
}
.error-list-modal {
.modal-title {
color: #FF0000;
}
.modal-body {
max-height: 300px;
overflow-y: auto;
table {
border: 1px solid #CCC;
thead tr th {
height: 30px;
border: 1px solid #CCC;
}
tbody tr td {
height: 25px;
border: 1px solid #CCC;
}
}
}
.modal-footer {
text-align: center;
}
}
#tab_detail {
display: none;
}
/*覆写ack-pagination.less中:.page-size, .pagination 中的margin演示 */
.page-form-group{
float:right;
.page-size{
margin:0;
}
.pagination {
margin:0;
}
}
}
.tb-model-period-dropdow-popup {
width: 400px;
height: 500px;
position: fixed;
top: 25%;
left: 40%;
.modal-dialog {
width: 100%;
height: 90%;
margin: 20px auto;
.modal-content {
width: 100%;
.modal-body {
height: 90%;
}
}
}
}
#totalWrapper {
margin: 5px 10px 10px -10px;
width: 100%;
padding-left: 10px;
font-family: Microsoft YaHei;
font-size: 13px;
float:right;
.total_span{
color: #B4122A !important;
background-color:#ddd !important;
font-size: 12px !important;
font-weight:bold !important;
border-radius:10px !important;
padding-left: 8px !important;
padding-right: 8px !important;
}
.total-column{
width:15%;
float:left;
padding-left: 15px;
}
}
\ No newline at end of file
atms-web/src/main/webapp/app/dataImport/vat-revenue-config/vat-revenue-config.ctrl.js
View file @
80e5a036
...
...
@@ -6,7 +6,7 @@
//表格配置
$scope
.
revenueGridOptions
=
$
.
extend
(
true
,
{},
dxDataGridService
.
BASIC_GRID_OPTIONS
,
{
columns
:
[
// {dataField: 'serialNo', caption: $translate.instant('RevenueColSerialNo'), fixed: true, allowHeaderFiltering: tru
e},
{
dataField
:
'idStr'
,
caption
:
''
,
visible
:
fals
e
},
{
dataField
:
'name'
,
caption
:
$translate
.
instant
(
'RevenueColName'
),
fixed
:
true
,
allowHeaderFiltering
:
true
,
minWidth
:
'300px'
},
{
dataField
:
'orgId'
,
caption
:
$translate
.
instant
(
'RevenueColOrg'
),
fixed
:
true
,
allowHeaderFiltering
:
true
,
minWidth
:
'300px'
,
calculateCellValue
:
function
(
data
)
{
...
...
@@ -35,7 +35,7 @@
}).
appendTo
(
container
);
$
(
'<i class="fa fa-trash" style="cursor: pointer;margin-left: 5px;"></i>'
)
.
on
(
'click'
,
function
()
{
$scope
.
editConfig
(
options
.
data
);
$scope
.
delConfig
([
options
.
data
.
idStr
]
);
}).
appendTo
(
container
);
}
catch
(
e
)
{
...
...
@@ -50,7 +50,11 @@
mode
:
'multiple'
,
showCheckBoxesMode
:
'always'
,
allowSelectAll
:
true
}
},
onSelectionChanged
:
function
(
data
)
{
$scope
.
selectedItems
=
data
.
selectedRowsData
;
$scope
.
selectedRecourdCount
=
data
.
selectedRowsData
.
length
;
},
});
//刷新页面
...
...
@@ -74,8 +78,24 @@
};
//删除配置
$scope
.
delConfig
=
function
()
{
SweetAlert
.
info
(
'del'
);
$scope
.
delConfig
=
function
(
idList
)
{
$http
.
post
(
'/revenueConf/del'
,
idList
,
apiConfig
.
createVat
())
.
success
(
function
(
res
)
{
if
(
res
&&
0
===
res
.
code
)
{
SweetAlert
.
success
(
$translate
.
instant
(
'RevenueDelSuccess'
));
$scope
.
refreshConfigGrid
();
}
else
{
SweetAlert
.
error
(
$translate
.
instant
(
'SystemError'
));
}
})
};
$scope
.
batchDelConfig
=
function
()
{
if
(
!!
$scope
.
selectedRecourdCount
)
{
$scope
.
delConfig
(
_
.
map
(
$scope
.
selectedItems
,
function
(
item
){
return
item
.
idStr
;
}));
}
else
{
SweetAlert
.
warning
(
$translate
.
instant
(
'PleaseSelectAtLeastOneItem'
));
}
};
//添加配置
...
...
atms-web/src/main/webapp/app/dataImport/vat-revenue-config/vat-revenue-config.html
View file @
80e5a036
...
...
@@ -7,7 +7,7 @@
<form
class=
"form-inline"
>
<div
class=
"form-group"
><div
class=
"import-wrapper"
>
<button
type=
"button"
class=
"btn btn-primary"
ng-click=
"addConfig()"
>
{{'RevenueAddBtn' | translate }}
</button>
<button
type=
"button"
class=
"btn btn-third"
ng-click=
"
d
elConfig()"
>
{{'RevenueDelBtn' | translate }}
</button>
<button
type=
"button"
class=
"btn btn-third"
ng-click=
"
batchD
elConfig()"
>
{{'RevenueDelBtn' | translate }}
</button>
</div></div>
</form>
...
...
atms-web/src/main/webapp/app/framework/app-multi-select/app-multi-select.html
View file @
80e5a036
...
...
@@ -68,20 +68,42 @@
overflow
:
hidden
;
outline
:
none
;
}
.input-reset-button
:before
{
.input-arrow-drop-button
{
position
:
absolute
;
margin
:
0
;
border
:
0
;
background
:
#fff
;
top
:
0
;
right
:
0
;
color
:
#969696
;
overflow
:
hidden
;
outline
:
none
;
}
.input-arrow-drop-button
:before
{
content
:
"▾"
;
height
:
inherit
;
width
:
inherit
;
position
:
relative
;
background
:
inherit
;
}
.input-reset-button
:after
{
content
:
"x"
;
height
:
inherit
;
width
:
inherit
;
position
:
relative
;
background
:
inherit
;
}
</style>
<div
class=
"select-simulator"
>
<input
class=
"for-fake-input"
ng-click=
"showMenu();"
placeholder=
"请选择"
title=
"{{selected}}"
readonly
ng-model=
"selected"
>
<button
class=
"input-reset-button"
<button
type=
"button"
class=
"input-arrow-drop-button"
>
</button>
<button
type=
"button"
class=
"input-reset-button"
ng-click=
"clearInput()"
ng-mouseleave=
"activeWatcher()"
ng-mouseenter=
"closeWatcher()"
...
...
@@ -99,7 +121,7 @@
<input
type=
"{{optionType}}"
name=
"simulatorOptionMenu"
value=
"{{value}}"
ng-checked=
"
defaultChecked[optionKeys[$index]]
"
ng-checked=
"
selected.indexOf(optionValues[$index]) > -1
"
data-key=
"{{optionKeys[$index]}}"
/>
<span>
{{value}}
</span>
</label>
...
...
atms-web/src/main/webapp/app/framework/app-multi-select/app-multi-select.js
View file @
80e5a036
...
...
@@ -43,12 +43,12 @@ frameworkModule.directive('appMultiSelect', ['$log',
function
runDefaultChecked
(){
if
(
$scope
.
defaultChecked
.
length
){
// 一般defaultChecked就是optionMap的下表数组
$scope
.
optionKeys
.
forEach
(
function
(
item
)
{
$scope
.
optionKeys
.
forEach
(
function
(
key
)
{
var
defaultLen
=
$scope
.
defaultChecked
.
length
;
while
(
defaultLen
--
){
if
(
$scope
.
defaultChecked
[
defaultLen
]
==
item
){
$scope
.
checkedKeys
.
push
(
item
);
$scope
.
checkedValues
.
push
(
$scope
.
optionMap
[
item
]);
if
(
$scope
.
defaultChecked
[
defaultLen
]
==
$scope
.
optionMap
[
key
]
){
$scope
.
checkedKeys
.
push
(
key
);
$scope
.
checkedValues
.
push
(
$scope
.
optionMap
[
key
]);
break
;
}
}
...
...
@@ -142,7 +142,7 @@ frameworkModule.directive('appMultiSelect', ['$log',
$scope
.
checkedValues
.
length
=
0
;
$scope
.
checkedKeys
.
length
=
0
;
$scope
.
selected
=
""
;
confirmSelected
(
false
);
//
confirmSelected(false);
}
else
{
// 如果弹出下拉菜单时,当前输入框内容为空,就直接关闭下拉菜单
$scope
.
showOptionMenu
=
false
;
...
...
atms-web/src/main/webapp/app/framework/app-usr-operate-log/app-usr-operate-log.ctrl.js
View file @
80e5a036
...
...
@@ -105,11 +105,11 @@ frameworkModule.controller('appUsrOperateLogController',
}
}
},
{
dataField
:
"operationObject"
,
caption
:
$translate
.
instant
(
'LogOperateObject'
),
allowHeaderFiltering
:
true
,
},
//
{
//
dataField: "operationObject",
//
caption: $translate.instant('LogOperateObject'),
//
allowHeaderFiltering: true,
//
},
{
dataField
:
"operationAction"
,
caption
:
$translate
.
instant
(
'LogOperationDescription'
),
...
...
atms-web/src/main/webapp/app/taxDocumentManage/tax-document-list/tax-document-list.ctrl.js
View file @
80e5a036
This diff is collapsed.
Click to expand it.
atms-web/src/main/webapp/app/taxDocumentManage/tax-document-list/tax-document-list.html
View file @
80e5a036
...
...
@@ -54,14 +54,21 @@
max-width
:
68%
;
padding-left
:
1rem
;
box-sizing
:
border-box
;
position
:
relative
;
}
.TDL-query-bar
.TDL-query-val
.TDL-query-val-multi
{
width
:
45%
;
max-width
:
45%
;
left
:
0
;
display
:
inline-block
;
margin
:
0
;
position
:
absolute
;
top
:
-24px
;
left
:
1rem
;
}
.TDL-query-bar
.TDL-query-val
.TDL-query-val-multi
:nth-child
(
even
)
{
left
:
45%
;
border-radius
:
0
4px
4px
0
;
}
.TDL-query-bar
.TDL-query-more
{
...
...
@@ -467,8 +474,16 @@
<span
translate=
"TaxType"
></span>
</div>
<div
class=
"TDL-query-val"
>
<input
type=
"text"
class=
"form-control radius3"
ng-model=
"queryFieldModel.taxType"
/>
<!--<input type="text" class="form-control radius3"-->
<!--ng-model="queryFieldModel.taxType"/>-->
<select
ng-model=
"queryFieldModel.taxType"
class=
"form-control radius3"
>
<option
ng-repeat=
"taxType in taxTypeSelects track by $index"
ng-selected=
"(queryFieldModel.taxType == taxType)"
value=
"{{taxType}}"
>
{{taxType}}
</option>
</select>
</div>
</div>
<div
class=
"TDL-query-block"
>
...
...
@@ -728,7 +743,7 @@
</label>
<div
class=
"col-sm-11"
style=
"width:61.67%"
>
<input
type=
'text'
placeholder=
"{{'PleaseSelected' | translate}}"
date-time-picker
data-date-format=
"yyyy/mm
/dd
"
data-date-format=
"yyyy/mm"
class=
"form-control"
ng-model=
"editFieldModel.ownTime"
required
data-min-view-mode=
"1"
/>
</div>
...
...
@@ -963,7 +978,7 @@
</label>
<div
class=
"col-sm-11"
style=
"width:61.67%"
>
<input
type=
'text'
placeholder=
"{{'PleaseSelected' | translate}}"
date-time-picker
data-date-format=
"yyyy/mm
/dd
"
date-time-picker
data-date-format=
"yyyy/mm"
class=
"form-control"
ng-model=
"editFieldItem.ownTime"
required
data-min-view-mode=
"1"
/>
</div>
...
...
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