Commit ca50112f authored by ZeGang Z Si's avatar ZeGang Z Si

#附件上传

parent 2258f171
package pwc.taxtech.atms.common;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class CustomDateSerializer extends JsonSerializer<Date> {
@Override
public void serialize(Date value, JsonGenerator jgen, SerializerProvider arg2)
throws IOException, JsonProcessingException {
// TODO Auto-generated method stub
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = formatter.format(value);
jgen.writeString(formattedDate);
}
}
package pwc.taxtech.atms.common.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHeaders;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.MultipartFile;
import pwc.taxtech.atms.common.config.FileServiceConfig;
import pwc.taxtech.atms.dto.ApiResultDto;
import pwc.taxtech.atms.exception.ServiceException;
import java.io.IOException;
/**
* author kevin
* ver 1.0
*/
@Configuration
public class FileUploadUtil implements ApplicationContextAware {
protected static final Logger logger = LoggerFactory.getLogger(FileUploadUtil.class);
// Spring应用上下文环境
private static ApplicationContext applicationContext;
private static FileServiceConfig config;
private static final String USER_TEMPLATE_PATH = "pwc/userTemplate/";
private static final String HTTP_HEADER = "application/json;charset=UTF-8";
public static String upload(MultipartFile file) throws ServiceException{
return upload( file, false);
}
public static String serverPath(){
config = (FileServiceConfig)applicationContext.getBean("fileServiceConfig");
return config.getServerUrl() + config.getUploadUrl();
}
/**
* 上传模板
*
* @param file MultipartFile
* @param fullPath 是否返回全路径 默认false ,如果为true返回的路径直接可以用于下载
* @return Boolean
*/
public static String upload( MultipartFile file, boolean fullPath) throws ServiceException {
if (StringUtils.isBlank(file.getOriginalFilename()) || null == file) {
throw new IllegalArgumentException("上传参数为空");
}
CloseableHttpClient httpClient = null;
String filePath = USER_TEMPLATE_PATH + file.getOriginalFilename();
try {
String serverPath = serverPath();
httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(serverPath);
httpPost.addHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.getMimeType());
JSONObject param = new JSONObject();
param.put("path", filePath);
param.put("file", file.getBytes());
HttpEntity httpEntity = new StringEntity(param.toJSONString(), ContentType.APPLICATION_JSON);
httpPost.setEntity(httpEntity);
HttpResponse httpResponse = httpClient.execute(httpPost);
ApiResultDto resultDto = JSON.parseObject(IOUtils.toString(httpResponse.getEntity().getContent(), "UTF-8"), ApiResultDto.class);
if (resultDto.getCode() == ApiResultDto.SUCCESS) {
if(fullPath){
return config.getServerUrl() + "/" + filePath;
}
return filePath;
}
} catch (Exception e) {
e.printStackTrace();
logger.error("uploadTemplate error.", e);
} finally {
if (null != httpClient) {
try {
httpClient.close();
} catch (IOException e) {
logger.error("close httpClient error.", e);
}
}
}
throw new ServiceException("uploadTemplate error.");
}
/**
* 实现ApplicationContextAware接口的回调方法。设置上下文环境
*
* @param applicationContext
*/
public void setApplicationContext(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
/**
* @return ApplicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
}
......@@ -8,15 +8,21 @@ import org.springframework.http.ResponseEntity;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import pwc.taxtech.atms.common.CommonConstants;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.common.util.DateUtils;
import pwc.taxtech.atms.constant.enums.EnumModule;
import pwc.taxtech.atms.dto.FileDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.service.impl.FileService;
import pwc.taxtech.atms.service.impl.HttpFileService;
import pwc.taxtech.atms.vat.service.impl.FileUploadAdapter;
import javax.mail.Session;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
......@@ -33,6 +39,9 @@ public class FileUploadController {
@Autowired
private FileService fileService;
@Autowired
private HttpFileService httpFileService;
@RequestMapping(value = "NewFile", method = RequestMethod.POST, produces = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity getInputInvoiceTreeViewData(MultipartHttpServletRequest request) {
return fileUploadAdapter.upload(request);
......
package pwc.taxtech.atms.controller;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import pwc.taxtech.atms.common.util.DateUtils;
import pwc.taxtech.atms.constant.enums.EnumServiceType;
import pwc.taxtech.atms.dpo.ReportDto;
import pwc.taxtech.atms.dto.FileDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.vatdto.*;
import pwc.taxtech.atms.vat.entity.PeriodCellTemplateConfig;
import pwc.taxtech.atms.vat.entity.PeriodJob;
import pwc.taxtech.atms.vat.entity.PwcReportAttach;
import pwc.taxtech.atms.vat.entity.VatEnterpriseAccount;
import pwc.taxtech.atms.vat.service.impl.ReportServiceImpl;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@RestController
......@@ -149,4 +155,20 @@ public class ReportController {
}
@RequestMapping(value = "doUpload", method = RequestMethod.POST)
public OperationResultDto doUploadAttach(@RequestParam("fileName") String fileName, MultipartFile file, String remarks, @RequestParam("activeCol")Long activeCol, @RequestParam("activeRow")Long activeRow, @RequestParam("activeTemplateId")String activeTemplateId){
System.out.println(activeCol + "----" + activeRow + "-----" + activeTemplateId);
OperationResultDto operationResultDto = reportService.doUploadAttach(file, remarks);
if(!"error".equals(operationResultDto.getResultMsg())){//上传成功绑定
reportService.bindPwcAttach(activeCol, activeRow, activeTemplateId, (FileDto) operationResultDto.getData());
}
return operationResultDto;
}
@RequestMapping(value = "loadAttachList", method = RequestMethod.GET)
public List<PwcReportAttach> loadAttachList(Long col, Long row, String templateId){
return reportService.loadAttachList(col, row, templateId);
}
}
\ No newline at end of file
package pwc.taxtech.atms.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.springframework.format.annotation.DateTimeFormat;
import pwc.taxtech.atms.common.CustomDateSerializer;
import pwc.taxtech.atms.entity.BaseEntity;
import java.util.Date;
//统一返回文件对象
public class FileDto extends BaseEntity {
private String fileName;
private String size;
private String remarks;//备注信息
private String uploadUser;//上传用户
private Date createTime;
protected Date updateTime;
private String fileUrl;
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public String getUploadUser() {
return uploadUser;
}
public void setUploadUser(String uploadUser) {
this.uploadUser = uploadUser;
}
@JsonSerialize(using = CustomDateSerializer.class)
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@JsonSerialize(using = CustomDateSerializer.class)
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
@Override
public String toString() {
return "FileDto{" +
"fileName='" + fileName + '\'' +
", size='" + size + '\'' +
", remarks='" + remarks + '\'' +
", uploadUser='" + uploadUser + '\'' +
", createTime=" + createTime +
", updateTime=" + updateTime +
", fileUrl='" + fileUrl + '\'' +
'}';
}
}
......@@ -16,6 +16,7 @@ public class OperationResultDto<T> extends OperationResultBase {
private T data;
public OperationResultDto() {
}
......
......@@ -198,4 +198,8 @@ public class FileService {
}
}
//上传文件
}
......@@ -23,15 +23,22 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import pwc.taxtech.atms.common.config.FileServiceConfig;
import pwc.taxtech.atms.common.util.DateUtils;
import pwc.taxtech.atms.dto.ApiResultDto;
import pwc.taxtech.atms.dto.FileDto;
import pwc.taxtech.atms.exception.ServiceException;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* version 2.0
* author kevin
*/
@Service
public class HttpFileService extends BaseService {
@Autowired
......@@ -44,21 +51,23 @@ public class HttpFileService extends BaseService {
*
* @param fileName 文件名
* @param file MultipartFile
* @param fullPath 是否返回全路径 默认false ,如果为true返回的路径直接可以用于下载
* @return Boolean
*/
public String uploadTemplate(String fileName, MultipartFile file) throws ServiceException {
public String uploadTemplate(String fileName, MultipartFile file, boolean fullPath) throws ServiceException {
if (StringUtils.isBlank(fileName) || null == file) {
throw new IllegalArgumentException("上传参数为空");
}
CloseableHttpClient httpClient = null;
String fullPath = USER_TEMPLATE_PATH + fileName;
String filePath = USER_TEMPLATE_PATH + fileName;
try {
String serverPath = config.getServerUrl() + config.getUploadUrl();
httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(config.getServerUrl() + config.getUploadUrl());
HttpPost httpPost = new HttpPost(serverPath);
httpPost.addHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.getMimeType());
JSONObject param = new JSONObject();
param.put("path", fullPath);
param.put("path", filePath);
param.put("file", file.getBytes());
HttpEntity httpEntity = new StringEntity(param.toJSONString(), ContentType.APPLICATION_JSON);
......@@ -67,7 +76,10 @@ public class HttpFileService extends BaseService {
HttpResponse httpResponse = httpClient.execute(httpPost);
ApiResultDto resultDto = JSON.parseObject(IOUtils.toString(httpResponse.getEntity().getContent(), "UTF-8"), ApiResultDto.class);
if (resultDto.getCode() == ApiResultDto.SUCCESS) {
return fullPath;
if(fullPath){
return config.getServerUrl() + "/" + filePath;
}
return filePath;
}
} catch (Exception e) {
logger.error("uploadTemplate error.", e);
......@@ -83,6 +95,11 @@ public class HttpFileService extends BaseService {
throw new ServiceException("uploadTemplate error.");
}
public String uploadTemplate(String fileName, MultipartFile file) throws ServiceException{
return uploadTemplate(fileName, file, false);
}
/**
* 下载模板
*
......@@ -117,4 +134,22 @@ public class HttpFileService extends BaseService {
return null;
}
//上传
public FileDto upload(MultipartFile file, String remarks){
FileDto fileDto = new FileDto();
int i = file.getOriginalFilename().lastIndexOf(".");
fileDto.setFileName(file.getOriginalFilename());
if(remarks != null){
fileDto.setRemarks(remarks);
}
fileDto.setFileUrl(uploadTemplate(file.getOriginalFilename(), file, true));
//绑定
fileDto.setSize(String.valueOf(file.getSize()/1024));
fileDto.setUploadUser(authUserHelper.getCurrentAuditor().get());
fileDto.setCreateTime(DateUtils.getNowDate());
return fileDto;
}
}
......@@ -11,18 +11,23 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.common.util.DateUtils;
import pwc.taxtech.atms.common.util.FileUploadUtil;
import pwc.taxtech.atms.common.util.MyAsserts;
import pwc.taxtech.atms.common.util.SpringContextUtil;
import pwc.taxtech.atms.constant.Constant;
import pwc.taxtech.atms.constant.enums.*;
import pwc.taxtech.atms.dao.*;
import pwc.taxtech.atms.dpo.ReportDto;
import pwc.taxtech.atms.dto.FileDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.vatdto.*;
import pwc.taxtech.atms.entity.*;
import pwc.taxtech.atms.exception.Exceptions;
import pwc.taxtech.atms.exception.NotFoundException;
import pwc.taxtech.atms.service.impl.BaseService;
import pwc.taxtech.atms.service.impl.CellConfigTranslater;
import pwc.taxtech.atms.service.impl.DistributedIdService;
import pwc.taxtech.atms.vat.dao.*;
......@@ -44,7 +49,7 @@ import java.util.stream.Collectors;
import static pwc.taxtech.atms.dto.vatdto.WrapPeriodJobDto.*;
@Component
public class ReportServiceImpl {
public class ReportServiceImpl extends BaseService {
private final static Logger logger = LoggerFactory.getLogger(ReportServiceImpl.class);
private BlockingQueue<PeriodJob> queue = new LinkedBlockingQueue<>();
private final static String[] functions = {"SGSR", "FSJZ", "ND", "BB", "XXFP", "GZSD", "PC", "JXFPMX",
......@@ -1295,4 +1300,54 @@ public class ReportServiceImpl {
MyAsserts.assertNotNull(job, Exceptions.NOT_FOUND_EXCEPTION);
return job;
}
public OperationResultDto doUploadAttach(MultipartFile file, String remarks){
OperationResultDto operationResultDto = new OperationResultDto();
try {
FileDto fileDto = new FileDto();
int i = file.getOriginalFilename().lastIndexOf(".");
fileDto.setFileName(file.getOriginalFilename());
if(remarks != null){
fileDto.setRemarks(remarks);
}
fileDto.setFileUrl(FileUploadUtil.upload(file, true));
//绑定
fileDto.setSize(String.valueOf(file.getSize()/1024) + "KB");
fileDto.setUploadUser(authUserHelper.getCurrentAuditor().get());
fileDto.setCreateTime(new Date());
operationResultDto.setData(fileDto);
}catch (Exception e){
e.printStackTrace();
operationResultDto.setResultMsg("error");
}
return operationResultDto;
}
@Autowired
private PwcReportAttachMapper pwcReportAttachMapper;
public void bindPwcAttach(Long activeCol, Long activeRow, String activeTemplateId, FileDto file) {
PwcReportAttach pwcReportAttach = new PwcReportAttach();
pwcReportAttach.setCol(activeCol);
pwcReportAttach.setCreateTime(file.getCreateTime());
pwcReportAttach.setRow(activeRow);
pwcReportAttach.setTemplateId(activeTemplateId);
pwcReportAttach.setFileName(file.getFileName());
pwcReportAttach.setUploadUser(file.getUploadUser());
pwcReportAttach.setFileUrl(file.getFileUrl());
pwcReportAttach.setSize(file.getSize());
pwcReportAttachMapper.insert(pwcReportAttach);
System.out.println("==>>>附件绑定成功");
}
public List<PwcReportAttach> loadAttachList(Long col, Long row, String templateId) {
PwcReportAttachExample example = new PwcReportAttachExample();
PwcReportAttachExample.Criteria criteria = example.createCriteria();
criteria.andColEqualTo(col);
criteria.andRowEqualTo(row);
criteria.andTemplateIdEqualTo(templateId);
example.setOrderByClause("create_time DESC");
return pwcReportAttachMapper.selectByExample(example);
}
}
......@@ -41,7 +41,12 @@
<property name="rootInterface" value="pwc.taxtech.atms.MyVatMapper" />
</javaClientGenerator>
<table tableName="trial_balance_final" domainObjectName="TrialBalanceFinal">
<!-- <table tableName="trial_balance_final" domainObjectName="TrialBalanceFinal">
<property name="useActualColumnNames" value="false"/>
<property name="ignoreQualifiersAtRuntime" value="true"/>
</table>-->
<table tableName="pwc_report_attach" domainObjectName="PwcReportAttach">
<property name="useActualColumnNames" value="false"/>
<property name="ignoreQualifiersAtRuntime" value="true"/>
</table>
......
package pwc.taxtech.atms.vat.dao;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import pwc.taxtech.atms.MyVatMapper;
import pwc.taxtech.atms.vat.entity.PwcReportAttach;
import pwc.taxtech.atms.vat.entity.PwcReportAttachExample;
@Mapper
public interface PwcReportAttachMapper extends MyVatMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
long countByExample(PwcReportAttachExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
int deleteByExample(PwcReportAttachExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
int deleteByPrimaryKey(Long id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
int insert(PwcReportAttach record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
int insertSelective(PwcReportAttach record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
List<PwcReportAttach> selectByExampleWithRowbounds(PwcReportAttachExample example, RowBounds rowBounds);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
List<PwcReportAttach> selectByExample(PwcReportAttachExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
PwcReportAttach selectByPrimaryKey(Long id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
int updateByExampleSelective(@Param("record") PwcReportAttach record, @Param("example") PwcReportAttachExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
int updateByExample(@Param("record") PwcReportAttach record, @Param("example") PwcReportAttachExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
int updateByPrimaryKeySelective(PwcReportAttach record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
int updateByPrimaryKey(PwcReportAttach record);
}
\ No newline at end of file
package pwc.taxtech.atms.vat.entity;
import java.io.Serializable;
import java.util.Date;
import pwc.taxtech.atms.entity.BaseEntity;
/**
*
* This class was generated by MyBatis Generator.
* This class corresponds to the database table pwc_report_attach
*
* @mbg.generated do_not_delete_during_merge
*/
public class PwcReportAttach extends BaseEntity implements Serializable {
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column pwc_report_attach.id
*
* @mbg.generated
*/
private Long id;
/**
* Database Column Remarks:
* 对应sheet模板ID
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column pwc_report_attach.template_id
*
* @mbg.generated
*/
private String templateId;
/**
* Database Column Remarks:
* 列
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column pwc_report_attach.col
*
* @mbg.generated
*/
private Long col;
/**
* Database Column Remarks:
* 行
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column pwc_report_attach.row
*
* @mbg.generated
*/
private Long row;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column pwc_report_attach.del_flag
*
* @mbg.generated
*/
private String delFlag;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column pwc_report_attach.file_name
*
* @mbg.generated
*/
private String fileName;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column pwc_report_attach.file_url
*
* @mbg.generated
*/
private String fileUrl;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column pwc_report_attach.upload_user
*
* @mbg.generated
*/
private String uploadUser;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column pwc_report_attach.size
*
* @mbg.generated
*/
private String size;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column pwc_report_attach.remarks
*
* @mbg.generated
*/
private String remarks;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column pwc_report_attach.create_time
*
* @mbg.generated
*/
private Date createTime;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column pwc_report_attach.update_time
*
* @mbg.generated
*/
private Date updateTime;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
private static final long serialVersionUID = 1L;
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column pwc_report_attach.id
*
* @return the value of pwc_report_attach.id
*
* @mbg.generated
*/
public Long getId() {
return id;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column pwc_report_attach.id
*
* @param id the value for pwc_report_attach.id
*
* @mbg.generated
*/
public void setId(Long id) {
this.id = id;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column pwc_report_attach.template_id
*
* @return the value of pwc_report_attach.template_id
*
* @mbg.generated
*/
public String getTemplateId() {
return templateId;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column pwc_report_attach.template_id
*
* @param templateId the value for pwc_report_attach.template_id
*
* @mbg.generated
*/
public void setTemplateId(String templateId) {
this.templateId = templateId == null ? null : templateId.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column pwc_report_attach.col
*
* @return the value of pwc_report_attach.col
*
* @mbg.generated
*/
public Long getCol() {
return col;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column pwc_report_attach.col
*
* @param col the value for pwc_report_attach.col
*
* @mbg.generated
*/
public void setCol(Long col) {
this.col = col;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column pwc_report_attach.row
*
* @return the value of pwc_report_attach.row
*
* @mbg.generated
*/
public Long getRow() {
return row;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column pwc_report_attach.row
*
* @param row the value for pwc_report_attach.row
*
* @mbg.generated
*/
public void setRow(Long row) {
this.row = row;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column pwc_report_attach.del_flag
*
* @return the value of pwc_report_attach.del_flag
*
* @mbg.generated
*/
public String getDelFlag() {
return delFlag;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column pwc_report_attach.del_flag
*
* @param delFlag the value for pwc_report_attach.del_flag
*
* @mbg.generated
*/
public void setDelFlag(String delFlag) {
this.delFlag = delFlag == null ? null : delFlag.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column pwc_report_attach.file_name
*
* @return the value of pwc_report_attach.file_name
*
* @mbg.generated
*/
public String getFileName() {
return fileName;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column pwc_report_attach.file_name
*
* @param fileName the value for pwc_report_attach.file_name
*
* @mbg.generated
*/
public void setFileName(String fileName) {
this.fileName = fileName == null ? null : fileName.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column pwc_report_attach.file_url
*
* @return the value of pwc_report_attach.file_url
*
* @mbg.generated
*/
public String getFileUrl() {
return fileUrl;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column pwc_report_attach.file_url
*
* @param fileUrl the value for pwc_report_attach.file_url
*
* @mbg.generated
*/
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl == null ? null : fileUrl.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column pwc_report_attach.upload_user
*
* @return the value of pwc_report_attach.upload_user
*
* @mbg.generated
*/
public String getUploadUser() {
return uploadUser;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column pwc_report_attach.upload_user
*
* @param uploadUser the value for pwc_report_attach.upload_user
*
* @mbg.generated
*/
public void setUploadUser(String uploadUser) {
this.uploadUser = uploadUser == null ? null : uploadUser.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column pwc_report_attach.size
*
* @return the value of pwc_report_attach.size
*
* @mbg.generated
*/
public String getSize() {
return size;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column pwc_report_attach.size
*
* @param size the value for pwc_report_attach.size
*
* @mbg.generated
*/
public void setSize(String size) {
this.size = size == null ? null : size.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column pwc_report_attach.remarks
*
* @return the value of pwc_report_attach.remarks
*
* @mbg.generated
*/
public String getRemarks() {
return remarks;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column pwc_report_attach.remarks
*
* @param remarks the value for pwc_report_attach.remarks
*
* @mbg.generated
*/
public void setRemarks(String remarks) {
this.remarks = remarks == null ? null : remarks.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column pwc_report_attach.create_time
*
* @return the value of pwc_report_attach.create_time
*
* @mbg.generated
*/
public Date getCreateTime() {
return createTime;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column pwc_report_attach.create_time
*
* @param createTime the value for pwc_report_attach.create_time
*
* @mbg.generated
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column pwc_report_attach.update_time
*
* @return the value of pwc_report_attach.update_time
*
* @mbg.generated
*/
public Date getUpdateTime() {
return updateTime;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column pwc_report_attach.update_time
*
* @param updateTime the value for pwc_report_attach.update_time
*
* @mbg.generated
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", templateId=").append(templateId);
sb.append(", col=").append(col);
sb.append(", row=").append(row);
sb.append(", delFlag=").append(delFlag);
sb.append(", fileName=").append(fileName);
sb.append(", fileUrl=").append(fileUrl);
sb.append(", uploadUser=").append(uploadUser);
sb.append(", size=").append(size);
sb.append(", remarks=").append(remarks);
sb.append(", createTime=").append(createTime);
sb.append(", updateTime=").append(updateTime);
sb.append("]");
return sb.toString();
}
}
\ No newline at end of file
package pwc.taxtech.atms.vat.entity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class PwcReportAttachExample {
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
protected String orderByClause;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
protected boolean distinct;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
protected List<Criteria> oredCriteria;
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
public PwcReportAttachExample() {
oredCriteria = new ArrayList<Criteria>();
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
public String getOrderByClause() {
return orderByClause;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
public boolean isDistinct() {
return distinct;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
/**
* This class was generated by MyBatis Generator.
* This class corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andTemplateIdIsNull() {
addCriterion("template_id is null");
return (Criteria) this;
}
public Criteria andTemplateIdIsNotNull() {
addCriterion("template_id is not null");
return (Criteria) this;
}
public Criteria andTemplateIdEqualTo(String value) {
addCriterion("template_id =", value, "templateId");
return (Criteria) this;
}
public Criteria andTemplateIdNotEqualTo(String value) {
addCriterion("template_id <>", value, "templateId");
return (Criteria) this;
}
public Criteria andTemplateIdGreaterThan(String value) {
addCriterion("template_id >", value, "templateId");
return (Criteria) this;
}
public Criteria andTemplateIdGreaterThanOrEqualTo(String value) {
addCriterion("template_id >=", value, "templateId");
return (Criteria) this;
}
public Criteria andTemplateIdLessThan(String value) {
addCriterion("template_id <", value, "templateId");
return (Criteria) this;
}
public Criteria andTemplateIdLessThanOrEqualTo(String value) {
addCriterion("template_id <=", value, "templateId");
return (Criteria) this;
}
public Criteria andTemplateIdLike(String value) {
addCriterion("template_id like", value, "templateId");
return (Criteria) this;
}
public Criteria andTemplateIdNotLike(String value) {
addCriterion("template_id not like", value, "templateId");
return (Criteria) this;
}
public Criteria andTemplateIdIn(List<String> values) {
addCriterion("template_id in", values, "templateId");
return (Criteria) this;
}
public Criteria andTemplateIdNotIn(List<String> values) {
addCriterion("template_id not in", values, "templateId");
return (Criteria) this;
}
public Criteria andTemplateIdBetween(String value1, String value2) {
addCriterion("template_id between", value1, value2, "templateId");
return (Criteria) this;
}
public Criteria andTemplateIdNotBetween(String value1, String value2) {
addCriterion("template_id not between", value1, value2, "templateId");
return (Criteria) this;
}
public Criteria andColIsNull() {
addCriterion("col is null");
return (Criteria) this;
}
public Criteria andColIsNotNull() {
addCriterion("col is not null");
return (Criteria) this;
}
public Criteria andColEqualTo(Long value) {
addCriterion("col =", value, "col");
return (Criteria) this;
}
public Criteria andColNotEqualTo(Long value) {
addCriterion("col <>", value, "col");
return (Criteria) this;
}
public Criteria andColGreaterThan(Long value) {
addCriterion("col >", value, "col");
return (Criteria) this;
}
public Criteria andColGreaterThanOrEqualTo(Long value) {
addCriterion("col >=", value, "col");
return (Criteria) this;
}
public Criteria andColLessThan(Long value) {
addCriterion("col <", value, "col");
return (Criteria) this;
}
public Criteria andColLessThanOrEqualTo(Long value) {
addCriterion("col <=", value, "col");
return (Criteria) this;
}
public Criteria andColIn(List<Long> values) {
addCriterion("col in", values, "col");
return (Criteria) this;
}
public Criteria andColNotIn(List<Long> values) {
addCriterion("col not in", values, "col");
return (Criteria) this;
}
public Criteria andColBetween(Long value1, Long value2) {
addCriterion("col between", value1, value2, "col");
return (Criteria) this;
}
public Criteria andColNotBetween(Long value1, Long value2) {
addCriterion("col not between", value1, value2, "col");
return (Criteria) this;
}
public Criteria andRowIsNull() {
addCriterion("`row` is null");
return (Criteria) this;
}
public Criteria andRowIsNotNull() {
addCriterion("`row` is not null");
return (Criteria) this;
}
public Criteria andRowEqualTo(Long value) {
addCriterion("`row` =", value, "row");
return (Criteria) this;
}
public Criteria andRowNotEqualTo(Long value) {
addCriterion("`row` <>", value, "row");
return (Criteria) this;
}
public Criteria andRowGreaterThan(Long value) {
addCriterion("`row` >", value, "row");
return (Criteria) this;
}
public Criteria andRowGreaterThanOrEqualTo(Long value) {
addCriterion("`row` >=", value, "row");
return (Criteria) this;
}
public Criteria andRowLessThan(Long value) {
addCriterion("`row` <", value, "row");
return (Criteria) this;
}
public Criteria andRowLessThanOrEqualTo(Long value) {
addCriterion("`row` <=", value, "row");
return (Criteria) this;
}
public Criteria andRowIn(List<Long> values) {
addCriterion("`row` in", values, "row");
return (Criteria) this;
}
public Criteria andRowNotIn(List<Long> values) {
addCriterion("`row` not in", values, "row");
return (Criteria) this;
}
public Criteria andRowBetween(Long value1, Long value2) {
addCriterion("`row` between", value1, value2, "row");
return (Criteria) this;
}
public Criteria andRowNotBetween(Long value1, Long value2) {
addCriterion("`row` not between", value1, value2, "row");
return (Criteria) this;
}
public Criteria andDelFlagIsNull() {
addCriterion("del_flag is null");
return (Criteria) this;
}
public Criteria andDelFlagIsNotNull() {
addCriterion("del_flag is not null");
return (Criteria) this;
}
public Criteria andDelFlagEqualTo(String value) {
addCriterion("del_flag =", value, "delFlag");
return (Criteria) this;
}
public Criteria andDelFlagNotEqualTo(String value) {
addCriterion("del_flag <>", value, "delFlag");
return (Criteria) this;
}
public Criteria andDelFlagGreaterThan(String value) {
addCriterion("del_flag >", value, "delFlag");
return (Criteria) this;
}
public Criteria andDelFlagGreaterThanOrEqualTo(String value) {
addCriterion("del_flag >=", value, "delFlag");
return (Criteria) this;
}
public Criteria andDelFlagLessThan(String value) {
addCriterion("del_flag <", value, "delFlag");
return (Criteria) this;
}
public Criteria andDelFlagLessThanOrEqualTo(String value) {
addCriterion("del_flag <=", value, "delFlag");
return (Criteria) this;
}
public Criteria andDelFlagLike(String value) {
addCriterion("del_flag like", value, "delFlag");
return (Criteria) this;
}
public Criteria andDelFlagNotLike(String value) {
addCriterion("del_flag not like", value, "delFlag");
return (Criteria) this;
}
public Criteria andDelFlagIn(List<String> values) {
addCriterion("del_flag in", values, "delFlag");
return (Criteria) this;
}
public Criteria andDelFlagNotIn(List<String> values) {
addCriterion("del_flag not in", values, "delFlag");
return (Criteria) this;
}
public Criteria andDelFlagBetween(String value1, String value2) {
addCriterion("del_flag between", value1, value2, "delFlag");
return (Criteria) this;
}
public Criteria andDelFlagNotBetween(String value1, String value2) {
addCriterion("del_flag not between", value1, value2, "delFlag");
return (Criteria) this;
}
public Criteria andFileNameIsNull() {
addCriterion("file_name is null");
return (Criteria) this;
}
public Criteria andFileNameIsNotNull() {
addCriterion("file_name is not null");
return (Criteria) this;
}
public Criteria andFileNameEqualTo(String value) {
addCriterion("file_name =", value, "fileName");
return (Criteria) this;
}
public Criteria andFileNameNotEqualTo(String value) {
addCriterion("file_name <>", value, "fileName");
return (Criteria) this;
}
public Criteria andFileNameGreaterThan(String value) {
addCriterion("file_name >", value, "fileName");
return (Criteria) this;
}
public Criteria andFileNameGreaterThanOrEqualTo(String value) {
addCriterion("file_name >=", value, "fileName");
return (Criteria) this;
}
public Criteria andFileNameLessThan(String value) {
addCriterion("file_name <", value, "fileName");
return (Criteria) this;
}
public Criteria andFileNameLessThanOrEqualTo(String value) {
addCriterion("file_name <=", value, "fileName");
return (Criteria) this;
}
public Criteria andFileNameLike(String value) {
addCriterion("file_name like", value, "fileName");
return (Criteria) this;
}
public Criteria andFileNameNotLike(String value) {
addCriterion("file_name not like", value, "fileName");
return (Criteria) this;
}
public Criteria andFileNameIn(List<String> values) {
addCriterion("file_name in", values, "fileName");
return (Criteria) this;
}
public Criteria andFileNameNotIn(List<String> values) {
addCriterion("file_name not in", values, "fileName");
return (Criteria) this;
}
public Criteria andFileNameBetween(String value1, String value2) {
addCriterion("file_name between", value1, value2, "fileName");
return (Criteria) this;
}
public Criteria andFileNameNotBetween(String value1, String value2) {
addCriterion("file_name not between", value1, value2, "fileName");
return (Criteria) this;
}
public Criteria andFileUrlIsNull() {
addCriterion("file_url is null");
return (Criteria) this;
}
public Criteria andFileUrlIsNotNull() {
addCriterion("file_url is not null");
return (Criteria) this;
}
public Criteria andFileUrlEqualTo(String value) {
addCriterion("file_url =", value, "fileUrl");
return (Criteria) this;
}
public Criteria andFileUrlNotEqualTo(String value) {
addCriterion("file_url <>", value, "fileUrl");
return (Criteria) this;
}
public Criteria andFileUrlGreaterThan(String value) {
addCriterion("file_url >", value, "fileUrl");
return (Criteria) this;
}
public Criteria andFileUrlGreaterThanOrEqualTo(String value) {
addCriterion("file_url >=", value, "fileUrl");
return (Criteria) this;
}
public Criteria andFileUrlLessThan(String value) {
addCriterion("file_url <", value, "fileUrl");
return (Criteria) this;
}
public Criteria andFileUrlLessThanOrEqualTo(String value) {
addCriterion("file_url <=", value, "fileUrl");
return (Criteria) this;
}
public Criteria andFileUrlLike(String value) {
addCriterion("file_url like", value, "fileUrl");
return (Criteria) this;
}
public Criteria andFileUrlNotLike(String value) {
addCriterion("file_url not like", value, "fileUrl");
return (Criteria) this;
}
public Criteria andFileUrlIn(List<String> values) {
addCriterion("file_url in", values, "fileUrl");
return (Criteria) this;
}
public Criteria andFileUrlNotIn(List<String> values) {
addCriterion("file_url not in", values, "fileUrl");
return (Criteria) this;
}
public Criteria andFileUrlBetween(String value1, String value2) {
addCriterion("file_url between", value1, value2, "fileUrl");
return (Criteria) this;
}
public Criteria andFileUrlNotBetween(String value1, String value2) {
addCriterion("file_url not between", value1, value2, "fileUrl");
return (Criteria) this;
}
public Criteria andUploadUserIsNull() {
addCriterion("upload_user is null");
return (Criteria) this;
}
public Criteria andUploadUserIsNotNull() {
addCriterion("upload_user is not null");
return (Criteria) this;
}
public Criteria andUploadUserEqualTo(String value) {
addCriterion("upload_user =", value, "uploadUser");
return (Criteria) this;
}
public Criteria andUploadUserNotEqualTo(String value) {
addCriterion("upload_user <>", value, "uploadUser");
return (Criteria) this;
}
public Criteria andUploadUserGreaterThan(String value) {
addCriterion("upload_user >", value, "uploadUser");
return (Criteria) this;
}
public Criteria andUploadUserGreaterThanOrEqualTo(String value) {
addCriterion("upload_user >=", value, "uploadUser");
return (Criteria) this;
}
public Criteria andUploadUserLessThan(String value) {
addCriterion("upload_user <", value, "uploadUser");
return (Criteria) this;
}
public Criteria andUploadUserLessThanOrEqualTo(String value) {
addCriterion("upload_user <=", value, "uploadUser");
return (Criteria) this;
}
public Criteria andUploadUserLike(String value) {
addCriterion("upload_user like", value, "uploadUser");
return (Criteria) this;
}
public Criteria andUploadUserNotLike(String value) {
addCriterion("upload_user not like", value, "uploadUser");
return (Criteria) this;
}
public Criteria andUploadUserIn(List<String> values) {
addCriterion("upload_user in", values, "uploadUser");
return (Criteria) this;
}
public Criteria andUploadUserNotIn(List<String> values) {
addCriterion("upload_user not in", values, "uploadUser");
return (Criteria) this;
}
public Criteria andUploadUserBetween(String value1, String value2) {
addCriterion("upload_user between", value1, value2, "uploadUser");
return (Criteria) this;
}
public Criteria andUploadUserNotBetween(String value1, String value2) {
addCriterion("upload_user not between", value1, value2, "uploadUser");
return (Criteria) this;
}
public Criteria andSizeIsNull() {
addCriterion("`size` is null");
return (Criteria) this;
}
public Criteria andSizeIsNotNull() {
addCriterion("`size` is not null");
return (Criteria) this;
}
public Criteria andSizeEqualTo(String value) {
addCriterion("`size` =", value, "size");
return (Criteria) this;
}
public Criteria andSizeNotEqualTo(String value) {
addCriterion("`size` <>", value, "size");
return (Criteria) this;
}
public Criteria andSizeGreaterThan(String value) {
addCriterion("`size` >", value, "size");
return (Criteria) this;
}
public Criteria andSizeGreaterThanOrEqualTo(String value) {
addCriterion("`size` >=", value, "size");
return (Criteria) this;
}
public Criteria andSizeLessThan(String value) {
addCriterion("`size` <", value, "size");
return (Criteria) this;
}
public Criteria andSizeLessThanOrEqualTo(String value) {
addCriterion("`size` <=", value, "size");
return (Criteria) this;
}
public Criteria andSizeLike(String value) {
addCriterion("`size` like", value, "size");
return (Criteria) this;
}
public Criteria andSizeNotLike(String value) {
addCriterion("`size` not like", value, "size");
return (Criteria) this;
}
public Criteria andSizeIn(List<String> values) {
addCriterion("`size` in", values, "size");
return (Criteria) this;
}
public Criteria andSizeNotIn(List<String> values) {
addCriterion("`size` not in", values, "size");
return (Criteria) this;
}
public Criteria andSizeBetween(String value1, String value2) {
addCriterion("`size` between", value1, value2, "size");
return (Criteria) this;
}
public Criteria andSizeNotBetween(String value1, String value2) {
addCriterion("`size` not between", value1, value2, "size");
return (Criteria) this;
}
public Criteria andRemarksIsNull() {
addCriterion("remarks is null");
return (Criteria) this;
}
public Criteria andRemarksIsNotNull() {
addCriterion("remarks is not null");
return (Criteria) this;
}
public Criteria andRemarksEqualTo(String value) {
addCriterion("remarks =", value, "remarks");
return (Criteria) this;
}
public Criteria andRemarksNotEqualTo(String value) {
addCriterion("remarks <>", value, "remarks");
return (Criteria) this;
}
public Criteria andRemarksGreaterThan(String value) {
addCriterion("remarks >", value, "remarks");
return (Criteria) this;
}
public Criteria andRemarksGreaterThanOrEqualTo(String value) {
addCriterion("remarks >=", value, "remarks");
return (Criteria) this;
}
public Criteria andRemarksLessThan(String value) {
addCriterion("remarks <", value, "remarks");
return (Criteria) this;
}
public Criteria andRemarksLessThanOrEqualTo(String value) {
addCriterion("remarks <=", value, "remarks");
return (Criteria) this;
}
public Criteria andRemarksLike(String value) {
addCriterion("remarks like", value, "remarks");
return (Criteria) this;
}
public Criteria andRemarksNotLike(String value) {
addCriterion("remarks not like", value, "remarks");
return (Criteria) this;
}
public Criteria andRemarksIn(List<String> values) {
addCriterion("remarks in", values, "remarks");
return (Criteria) this;
}
public Criteria andRemarksNotIn(List<String> values) {
addCriterion("remarks not in", values, "remarks");
return (Criteria) this;
}
public Criteria andRemarksBetween(String value1, String value2) {
addCriterion("remarks between", value1, value2, "remarks");
return (Criteria) this;
}
public Criteria andRemarksNotBetween(String value1, String value2) {
addCriterion("remarks not between", value1, value2, "remarks");
return (Criteria) this;
}
public Criteria andCreateTimeIsNull() {
addCriterion("create_time is null");
return (Criteria) this;
}
public Criteria andCreateTimeIsNotNull() {
addCriterion("create_time is not null");
return (Criteria) this;
}
public Criteria andCreateTimeEqualTo(Date value) {
addCriterion("create_time =", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotEqualTo(Date value) {
addCriterion("create_time <>", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThan(Date value) {
addCriterion("create_time >", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("create_time >=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThan(Date value) {
addCriterion("create_time <", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
addCriterion("create_time <=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeIn(List<Date> values) {
addCriterion("create_time in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotIn(List<Date> values) {
addCriterion("create_time not in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeBetween(Date value1, Date value2) {
addCriterion("create_time between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
addCriterion("create_time not between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andUpdateTimeIsNull() {
addCriterion("update_time is null");
return (Criteria) this;
}
public Criteria andUpdateTimeIsNotNull() {
addCriterion("update_time is not null");
return (Criteria) this;
}
public Criteria andUpdateTimeEqualTo(Date value) {
addCriterion("update_time =", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotEqualTo(Date value) {
addCriterion("update_time <>", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeGreaterThan(Date value) {
addCriterion("update_time >", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("update_time >=", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeLessThan(Date value) {
addCriterion("update_time <", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
addCriterion("update_time <=", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeIn(List<Date> values) {
addCriterion("update_time in", values, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotIn(List<Date> values) {
addCriterion("update_time not in", values, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeBetween(Date value1, Date value2) {
addCriterion("update_time between", value1, value2, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
addCriterion("update_time not between", value1, value2, "updateTime");
return (Criteria) this;
}
}
/**
* This class was generated by MyBatis Generator.
* This class corresponds to the database table pwc_report_attach
*
* @mbg.generated do_not_delete_during_merge
*/
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
/**
* This class was generated by MyBatis Generator.
* This class corresponds to the database table pwc_report_attach
*
* @mbg.generated
*/
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="pwc.taxtech.atms.vat.dao.PwcReportAttachMapper">
<resultMap id="BaseResultMap" type="pwc.taxtech.atms.vat.entity.PwcReportAttach">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="template_id" jdbcType="VARCHAR" property="templateId" />
<result column="col" jdbcType="BIGINT" property="col" />
<result column="row" jdbcType="BIGINT" property="row" />
<result column="del_flag" jdbcType="VARCHAR" property="delFlag" />
<result column="file_name" jdbcType="VARCHAR" property="fileName" />
<result column="file_url" jdbcType="VARCHAR" property="fileUrl" />
<result column="upload_user" jdbcType="VARCHAR" property="uploadUser" />
<result column="size" jdbcType="VARCHAR" property="size" />
<result column="remarks" jdbcType="VARCHAR" property="remarks" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Example_Where_Clause">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
id, template_id, col, `row`, del_flag, file_name, file_url, upload_user, `size`,
remarks, create_time, update_time
</sql>
<select id="selectByExample" parameterType="pwc.taxtech.atms.vat.entity.PwcReportAttachExample" resultMap="BaseResultMap">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from pwc_report_attach
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select
<include refid="Base_Column_List" />
from pwc_report_attach
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
delete from pwc_report_attach
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="pwc.taxtech.atms.vat.entity.PwcReportAttachExample">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
delete from pwc_report_attach
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="pwc.taxtech.atms.vat.entity.PwcReportAttach">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
insert into pwc_report_attach (id, template_id, col,
`row`, del_flag, file_name,
file_url, upload_user, `size`,
remarks, create_time, update_time
)
values (#{id,jdbcType=BIGINT}, #{templateId,jdbcType=VARCHAR}, #{col,jdbcType=BIGINT},
#{row,jdbcType=BIGINT}, #{delFlag,jdbcType=VARCHAR}, #{fileName,jdbcType=VARCHAR},
#{fileUrl,jdbcType=VARCHAR}, #{uploadUser,jdbcType=VARCHAR}, #{size,jdbcType=VARCHAR},
#{remarks,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
)
</insert>
<insert id="insertSelective" parameterType="pwc.taxtech.atms.vat.entity.PwcReportAttach">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
insert into pwc_report_attach
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="templateId != null">
template_id,
</if>
<if test="col != null">
col,
</if>
<if test="row != null">
`row`,
</if>
<if test="delFlag != null">
del_flag,
</if>
<if test="fileName != null">
file_name,
</if>
<if test="fileUrl != null">
file_url,
</if>
<if test="uploadUser != null">
upload_user,
</if>
<if test="size != null">
`size`,
</if>
<if test="remarks != null">
remarks,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="templateId != null">
#{templateId,jdbcType=VARCHAR},
</if>
<if test="col != null">
#{col,jdbcType=BIGINT},
</if>
<if test="row != null">
#{row,jdbcType=BIGINT},
</if>
<if test="delFlag != null">
#{delFlag,jdbcType=VARCHAR},
</if>
<if test="fileName != null">
#{fileName,jdbcType=VARCHAR},
</if>
<if test="fileUrl != null">
#{fileUrl,jdbcType=VARCHAR},
</if>
<if test="uploadUser != null">
#{uploadUser,jdbcType=VARCHAR},
</if>
<if test="size != null">
#{size,jdbcType=VARCHAR},
</if>
<if test="remarks != null">
#{remarks,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="pwc.taxtech.atms.vat.entity.PwcReportAttachExample" resultType="java.lang.Long">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select count(*) from pwc_report_attach
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update pwc_report_attach
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.templateId != null">
template_id = #{record.templateId,jdbcType=VARCHAR},
</if>
<if test="record.col != null">
col = #{record.col,jdbcType=BIGINT},
</if>
<if test="record.row != null">
`row` = #{record.row,jdbcType=BIGINT},
</if>
<if test="record.delFlag != null">
del_flag = #{record.delFlag,jdbcType=VARCHAR},
</if>
<if test="record.fileName != null">
file_name = #{record.fileName,jdbcType=VARCHAR},
</if>
<if test="record.fileUrl != null">
file_url = #{record.fileUrl,jdbcType=VARCHAR},
</if>
<if test="record.uploadUser != null">
upload_user = #{record.uploadUser,jdbcType=VARCHAR},
</if>
<if test="record.size != null">
`size` = #{record.size,jdbcType=VARCHAR},
</if>
<if test="record.remarks != null">
remarks = #{record.remarks,jdbcType=VARCHAR},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
</if>
<if test="record.updateTime != null">
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update pwc_report_attach
set id = #{record.id,jdbcType=BIGINT},
template_id = #{record.templateId,jdbcType=VARCHAR},
col = #{record.col,jdbcType=BIGINT},
`row` = #{record.row,jdbcType=BIGINT},
del_flag = #{record.delFlag,jdbcType=VARCHAR},
file_name = #{record.fileName,jdbcType=VARCHAR},
file_url = #{record.fileUrl,jdbcType=VARCHAR},
upload_user = #{record.uploadUser,jdbcType=VARCHAR},
`size` = #{record.size,jdbcType=VARCHAR},
remarks = #{record.remarks,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_time = #{record.updateTime,jdbcType=TIMESTAMP}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="pwc.taxtech.atms.vat.entity.PwcReportAttach">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update pwc_report_attach
<set>
<if test="templateId != null">
template_id = #{templateId,jdbcType=VARCHAR},
</if>
<if test="col != null">
col = #{col,jdbcType=BIGINT},
</if>
<if test="row != null">
`row` = #{row,jdbcType=BIGINT},
</if>
<if test="delFlag != null">
del_flag = #{delFlag,jdbcType=VARCHAR},
</if>
<if test="fileName != null">
file_name = #{fileName,jdbcType=VARCHAR},
</if>
<if test="fileUrl != null">
file_url = #{fileUrl,jdbcType=VARCHAR},
</if>
<if test="uploadUser != null">
upload_user = #{uploadUser,jdbcType=VARCHAR},
</if>
<if test="size != null">
`size` = #{size,jdbcType=VARCHAR},
</if>
<if test="remarks != null">
remarks = #{remarks,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="pwc.taxtech.atms.vat.entity.PwcReportAttach">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update pwc_report_attach
set template_id = #{templateId,jdbcType=VARCHAR},
col = #{col,jdbcType=BIGINT},
`row` = #{row,jdbcType=BIGINT},
del_flag = #{delFlag,jdbcType=VARCHAR},
file_name = #{fileName,jdbcType=VARCHAR},
file_url = #{fileUrl,jdbcType=VARCHAR},
upload_user = #{uploadUser,jdbcType=VARCHAR},
`size` = #{size,jdbcType=VARCHAR},
remarks = #{remarks,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=BIGINT}
</update>
<select id="selectByExampleWithRowbounds" parameterType="pwc.taxtech.atms.vat.entity.PwcReportAttachExample" resultMap="BaseResultMap">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from pwc_report_attach
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -17,7 +17,7 @@ public class MyBatisGeneratorTest {
boolean overwrite = true;
//配置文件
// File configFile = new File(MyBatisGeneratorTest.class.getClassLoader().getResource("generatorConfig.xml").getPath());
File configFile = new File(MyBatisGeneratorTest.class.getClassLoader().getResource("generatorConfig-invoice.xml").getPath());
File configFile = new File(MyBatisGeneratorTest.class.getClassLoader().getResource("generatorConfig.xml").getPath());
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
......
......@@ -3,9 +3,17 @@ let grunt = require('grunt');
let process = (src, filepath) => {
return src.replace(/@import\s+"~\//g, '@import "');
};
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
appFourJs : 'app/**/**/**/**/*.js',
appThreeJs : 'app/**/**/**/*.js',
appTwoJs : 'app/**/**/*.js',
appOne : 'app/**/*.js',
appFourLess : 'app/**/**/**/**/*.less',
appThreeLess : 'app/**/**/**/*.less',
appTwoLess : 'app/**/**/*.less',
appOneLess : 'app/**/*.less',
concat: {
adminHomePageJs: {
src: ['app/admin/homePage/**/*.js'],
......@@ -516,6 +524,15 @@ grunt.initConfig({
dest: '<%= pkg.bundleDest %>/'
}]
}
},
watch : {
scripts: {
files: ['<%=appFourJs%>','<%=appThreeJs%>','<%=appTwoJs%>','<%=appOne%>','<%=appFourLess%>','<%=appThreeLess%>','<%=appTwoLess%>','<%=appOneLess%>'],
tasks: ['dev'],
options: {
spawn: false
}
}
}
});
......
......@@ -659,7 +659,8 @@
$scope.closeUserCard();
$scope.areaORGGridList.data = [];
$scope.commonCountDataSource = [];
$scope.
= [];
if ($scope.panelArea.organizationList && $scope.panelArea.organizationList.length > 0) {
parseDataGridOnlyOrg();
} else {
......
......@@ -59,6 +59,7 @@
OperationType: '',
OperationContent: '',
OriginalState: '',
UpdateState: '',
CreatorID: vatSessionService.logUser.ID,
Comment: comment,
......
......@@ -1774,7 +1774,7 @@
var showErrTab = function() {
$scope.ImportErrorTab = true;
$scope.ImportErrorTag = true;
$scope.errorMsg = $translate.instant('ImportErrorMsg').formatObj({ "NumberOfError": $scope.errorList.length });
$scope.errorMsg = $translate.instant('ImportErrorMsg').formatObj({ "Nu__RequestVerificationTokenmberOfError": $scope.errorList.length });
};
......
......@@ -18,7 +18,7 @@
<form class="form-inline" id="navigationForm" name="navigationForm">
<div class="form-group" ng-style="setButtonWrapStyle()">
<div class="import-wrapper">
<div class="import-wrapper">chunkSize
<button type="button" atms-permission permission-code="{{$root.vatPermission.dataImport.balanceSheet.importCode}}"
ngf-select="" ng-model="fileNameWrapper" ngf-drag-over-class="'dragover'" accept=".xls,.xlsx" ngf-multiple="false"
ngf-allow-dir="false" class="btn btn-vat-third" style="margin-right:10px">
......
commonModule.controller('taxReportCellDetailModalController', ['$log', '$scope', '$q', '$translate', '$uibModal', '$document', '$rootScope', 'SweetAlert', 'enums',
commonModule.controller('taxReportCellDetailModalController', ['$log', 'apiInterceptor', 'Upload', '$scope', '$q', '$translate', '$uibModal', '$document', '$rootScope', 'SweetAlert', 'enums',
'vatReportService', 'loginContext', 'vatSessionService', 'stdAccountService', 'vatCommonService', 'formulaService', 'KeyValueConfigService', 'modelConfigurationService', '$timeout', 'cellCommentService', 'modifiedReportCellService',
function ($log, $scope, $q, $translate, $uibModal, $document, $rootScope, SweetAlert, enums, vatReportService, loginContext,
function ($log, apiInterceptor, Upload, $scope, $q, $translate, $uibModal, $document, $rootScope, SweetAlert, enums, vatReportService, loginContext,
vatSessionService, stdAccountService, vatCommonService, formulaService, KeyValueConfigService, modelConfigurationService, $timeout, cellCommentService, modifiedReportCellService) {
var activeClass = 'active';
......@@ -23,7 +23,7 @@
};
$scope.$watch('detail.config.cellID', function () {
if ($scope.detail.config != null&&$scope.detail.config.cellID!=null) {
if ($scope.detail.config != null && $scope.detail.config.cellID != null) {
cellCommentService.getCellComments($scope.detail.config.cellID).success(function (op) {
if (op.result === true) {
$scope.remarks = op.data;
......@@ -199,9 +199,8 @@
}
if ($scope.detail.inputValue && ((isNaN($scope.detail.inputValue) || r.test($scope.detail.inputValue))
||parseFloat($scope.detail.inputValue).toFixed(2) > 9999999999999)){
|| parseFloat($scope.detail.inputValue).toFixed(2) > 9999999999999)) {
// $scope.detail.inputValue;
$scope.detail.keyinData = $scope.detail.inputValue;
} else {
......@@ -245,7 +244,7 @@
closeOnCancel: true
},
function (isConfirm) {
if(isConfirm){
if (isConfirm) {
var message;
var r = /^00\d*|^\.\d+|\.$/;
// if ($scope.detail.inputValue && (isNaN($scope.detail.inputValue) || r.test($scope.detail.inputValue))) {
......@@ -277,7 +276,8 @@
if (isConfirm) {
return;
}
})},500);
})
}, 500);
} else {
doConfirmEventHandler();
}
......@@ -595,7 +595,7 @@
column: 'cellName',
customizeText: function (data) {
$("#dataSourceGrid .dx-datagrid-total-footer").hide();
if($scope.detail.cellType == enums.formulaDataSourceType.TrialBalanceSource) {
if ($scope.detail.cellType == enums.formulaDataSourceType.TrialBalanceSource) {
return $scope.detail.cellInfo.money;
}
return $scope.detail.summaryExp;
......@@ -610,7 +610,7 @@
column: 'cellConditionName',
customizeText: function (data) {
$("#dataSourceGrid .dx-datagrid-total-footer").hide();
if($scope.detail.cellType == enums.formulaDataSourceType.TrialBalanceSource) {
if ($scope.detail.cellType == enums.formulaDataSourceType.TrialBalanceSource) {
return $scope.detail.cellInfo.money;
}
return $scope.detail.summaryExp;
......@@ -729,7 +729,7 @@
+ '&nbsp;&nbsp;&nbsp;&nbsp;' + evalVal.formatAmount(precition));
}
else { // For 报表数据源 and BSPL数据源
if ($scope.detail.dataGridSource&&$scope.detail.dataGridSource.length > 0) {
if ($scope.detail.dataGridSource && $scope.detail.dataGridSource.length > 0) {
evalVal = _.reduce($scope.detail.dataGridSource, function (memo, x) {
return memo + x.cellValue;
}, 0);
......@@ -760,7 +760,7 @@
//平衡表数据源
dataGridColumns = [
{
calculateCellValue: function(){
calculateCellValue: function () {
return $scope.projectPeriod
},
// dataField: 'projectPeriod',
......@@ -769,11 +769,11 @@
width: '10%'
},
{
calculateCellValue: function(){
calculateCellValue: function () {
var formula = $scope.detail.config.formula;
if(formula.indexOf('DFFS') > -1){
if (formula.indexOf('DFFS') > -1) {
return '贷方发生';
} else if(formula.indexOf('JFFS') > -1){
} else if (formula.indexOf('JFFS') > -1) {
return '借方发生';
}
return '';
......@@ -784,7 +784,7 @@
width: '30%'
},
{
calculateCellValue: function(){
calculateCellValue: function () {
var formula = $scope.detail.config.formula;
return formula.match(/\"\d+\"/);
},
......@@ -794,7 +794,7 @@
width: '30%'
},
{
calculateCellValue: function(){
calculateCellValue: function () {
return $scope.detail.cellInfo.money;
},
......@@ -809,7 +809,7 @@
//平衡表数据源
dataGridColumns = [
{
calculateCellValue: function(){
calculateCellValue: function () {
return $scope.projectPeriod
},
// dataField: 'projectPeriod',
......@@ -818,7 +818,7 @@
width: '10%'
},
{
calculateCellValue: function(){
calculateCellValue: function () {
return '无票收入';
},
// dataField: 'type',
......@@ -827,7 +827,7 @@
width: '30%'
},
{
calculateCellValue: function(){
calculateCellValue: function () {
return '';
},
// dataField: 'description',
......@@ -836,7 +836,7 @@
width: '30%'
},
{
calculateCellValue: function(){
calculateCellValue: function () {
return $scope.detail.cellInfo.money;
},
......@@ -851,7 +851,7 @@
//进项数据源
dataGridColumns = [
{
calculateCellValue: function(){
calculateCellValue: function () {
return $scope.projectPeriod
},
// dataField: 'projectPeriod',
......@@ -860,7 +860,7 @@
width: '10%'
},
{
calculateCellValue: function(){
calculateCellValue: function () {
return '进项发票';
},
// dataField: 'type',
......@@ -869,7 +869,7 @@
width: '30%'
},
{
calculateCellValue: function(){
calculateCellValue: function () {
return '';
},
// dataField: 'description',
......@@ -878,7 +878,7 @@
width: '30%'
},
{
calculateCellValue: function(){
calculateCellValue: function () {
return $scope.detail.cellInfo.money;
},
......@@ -992,7 +992,7 @@
//销项发票数据源
dataGridColumns = [
{
calculateCellValue: function(){
calculateCellValue: function () {
return $scope.projectPeriod
},
// dataField: 'projectPeriod',
......@@ -1001,7 +1001,7 @@
width: '10%'
},
{
calculateCellValue: function(){
calculateCellValue: function () {
return '销项发票';
},
// dataField: 'type',
......@@ -1010,7 +1010,7 @@
width: '30%'
},
{
calculateCellValue: function(){
calculateCellValue: function () {
return '';
},
// dataField: 'description',
......@@ -1019,7 +1019,7 @@
width: '30%'
},
{
calculateCellValue: function(){
calculateCellValue: function () {
return $scope.detail.cellInfo.money;
},
......@@ -1231,7 +1231,7 @@
dataGridColumns = [
{
dataField: 'period',
caption: $translate.instant ('InvoiceQJ'),
caption: $translate.instant('InvoiceQJ'),
alignment: 'center',
width: '10%',
visible: vatSessionService.citFlag ? false : true
......@@ -1855,7 +1855,7 @@
SweetAlert.warning($translate.instant('AddSuccess'));
$scope.$dismiss({$value: 'cancel'});
});
$rootScope.$broadcast('loadData',{});
$rootScope.$broadcast('loadData', {});
$rootScope.$broadcast('cellValueReset',
{
row: $scope.detail.rowIndex,
......@@ -2330,9 +2330,169 @@
$scope.isWriteBackUpdate = false;
}
}
});
var dataGrid ={}
$scope.cellAttachmentDataGirdOptions = {
dataSource: [],
columns: [{caption: '序号', dataField: "xh"},
{caption: '文件名', dataField: "fileName"},
{caption: '文件大小', dataField: "size"},
{caption: '备注信息', dataField: "remarks"},
{caption: '用户', dataField: "uploadUser"},
{caption: '操作时间', dataField: "createTime"}
],
showBorders: true,
editing: {
mode: "cell",
allowAdding: false,
allowUpdating: false,
allowDeleting: true
},
onInitialized : function(e){
dataGrid = e.component;
}
};
//加载附件信息列表
$scope.loadAttach = function () {
$scope.cellAttachmentDataGirdOptions.dataSource = [];
if ($scope.activeSheet.activeRow && $scope.activeSheet.activeCol && $scope.activeSheet.activeTemplateId) {
//获取附件信息
vatReportService.loadAttachList($scope.activeSheet).success(function (data) {
var _xh = 0;
for(var i = 0; i< data.length; i++){
var _data = {
xh : i+1,
fileName : data[i].fileName,
size : data[i].size,
remarks : data[i].remarks,
uploadUser : data[i].uploadUser,
createTime : data[i].createTime
}
$scope.cellAttachmentDataGirdOptions.dataSource.push(_data);
_xh = i+1;
}
$scope.xh = _xh;
//刷新附件列表
dataGrid.refresh();
// dataGrid.refresh();
}).error(function(error){
SweetAlert.error("附件列表数据加载失败")
});
}
}
$scope.openAddCellAttachmentDialog = function () {
$scope.remarks = "";
$scope.fileNameWrapper = {};
$scope.fileName = "";
$('#addCellAttachmentContainer').modal('show');
}
$scope.hideCellAttachmentModel = function () {
$('#addCellAttachmentContainer').modal('hide');
}
//选择文档后操作
var initImportFile = function (fileName) {
var arr = fileName.name.split('.');
if (arr[arr.length - 1] !== 'xls' && arr[arr.length - 1] !== 'xlsx') {
SweetAlert.warning($translate.instant('ImportFileInvalidType'));
return;
}
$scope.fileName = fileName.name;
///uploadfile($scope.fileNameWrapper, uploadUrl);
//初始化数据
/*$scope.selectedMappingList = [];
//initColumns();
$scope.ImportErrorTab = false;
$scope.ImportErrorTag = false;*/
}
var refreshAttachData = function (dataSource) {
$('#addCellAttachmentContainer').modal('hide');
if($scope.xh){
$scope.xh =$scope.xh + 1;
}else{
dataSource.data.xh = 1;
$scope.xh = 1;
}
var _data = {
xh : $scope.xh,
fileName : dataSource.data.fileName,
size : dataSource.data.size,
remarks : dataSource.data.remarks,
uploadUser : dataSource.data.uploadUser,
createTime : dataSource.data.createTime
}
$scope.cellAttachmentDataGirdOptions.dataSource.push(_data);
dataGrid.refresh();
}
//上传附件
var uploadfile = function (file) {
var uploadUrl = apiInterceptor.vatWebApiHostUrl + '/Report/doUpload';
if (file) {
if (!file.$error) {
//var tempFileName = PWC.newGuid() + '.dat';
var token = $('input[name="__RequestVerificationToken"]').val();
Upload.upload({
url: uploadUrl,
data: {
fileName: file.name,
file: file,
remarks: $scope.cellAttachmentComment,
activeRow: $scope.activeSheet.activeRow,
activeCol: $scope.activeSheet.activeCol,
activeTemplateId: $scope.activeSheet.activeTemplateId
},
headers: {
'Access-Control-Allow-Origin': '*',
Authorization: apiInterceptor.tokenType + ' ' + apiInterceptor.apiToken()
},
__RequestVerificationToken: token,
withCredentials: true
}).progress(function (evt) {
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
console.log('progress: ' + progressPercentage + '% ');
}).success(function (data, status, headers, config) {
if (data.resultMsg) {
SweetAlert.error(data.resultMsg)
return;
}
refreshAttachData(data);
}).error(function (data, status, headers, config) {
$('#addCellAttachmentContainer').modal('hide');
SweetAlert.error(status + '错误' + ",上传失败")
});
}
}
};
$scope.$watch('fileNameWrapper', function (newValue, oldValue) {
if (newValue !== null && newValue !== oldValue) {
if(newValue.name){
initImportFile(newValue);
}
}
});
//保存按钮
$scope.uploadCellAttachment = function () {
uploadfile($scope.fileNameWrapper);
};
///上传成功的回调函数
(function () {
$scope.hidePanel = hidePanel;
$scope.isExpand = true;
$scope.togglePanel = togglePanel;
......@@ -2357,9 +2517,6 @@
voucherKeyword: '',
filterWay: 1
};
$scope.dataSourceOptions = dataGridCommonOptions;
$scope.allItemsDataSourceOptions = allItemsDataSourceOptions;
switch ($scope.detail.cellType) {
......@@ -2407,6 +2564,7 @@
}
});
});
//加载附件信息
})();
}
]);
\ No newline at end of file
......@@ -20,9 +20,12 @@
<!--<span ng-model="tabType" uib-btn-radio="2">-->
<!--<i ng-show="detail.hasModelError" class="fa fa-exclamation-circle red-color"></i>-->
<!--{{'ModelAnalysisResults' | translate}}</span>-->
<span ng-show="detail.validationErrorList && detail.validationErrorList.length > 0" ng-model="tabType" uib-btn-radio="3">
<span ng-show="detail.validationErrorList && detail.validationErrorList.length > 0" ng-model="tabType"
uib-btn-radio="3">
<i class="fa fa-exclamation-circle red-color"></i>{{'ReportCheckResult' | translate}}</span>
<span ng-model="tabType" uib-btn-radio="4">{{'cellComment'|translate}}</span>
<span ng-model="tabType" uib-btn-radio="5" ng-click = "loadAttach()">{{'RelatedAttach'|translate}}</span>
</div>
<div class="content-info" ng-show="tabType === 1">
......@@ -54,7 +57,8 @@
<label class="cell-info-subject-label">{{'CellValue' | translate}}:</label>
<span title="{{detail.cellInfo.modifiedReportCell?detail.cellInfo.modifiedReportCell.comment:''}}">{{detail.cellInfo.money}}</span>
<!--<a href="javascript:void(0)" ng-click="openModifyCellDataDialog()">{{'Change' | translate}}</a>-->
<a href="javascript:void(0)" ng-if="detail.cellInfo.modifiedReportCell != null" ng-click="resetReportCell()">{{'Reset' | translate}}</a>
<a href="javascript:void(0)" ng-if="detail.cellInfo.modifiedReportCell != null"
ng-click="resetReportCell()">{{'Reset' | translate}}</a>
</div>
</div>
</div>
......@@ -65,39 +69,55 @@
<span class="data-source-title-right">{{'DataSourceCountFirst' | translate}}{{detail.dataSourceCount}}{{'DataSourceCountSecond' | translate}}</span>
</div>
<div ng-if="detail.dataSourceCount > 0 || detail.hasKeyIn || detail.config.hasInvoice || detail.config.hasVoucher" class="tab-container">
<div class="tab" data-type="{{item.type}}" data-type-id="{{item.id}}" data-type-name="{{item.name}}" data-tab-index="1" ng-repeat="item in detail.items"
<div ng-if="detail.dataSourceCount > 0 || detail.hasKeyIn || detail.config.hasInvoice || detail.config.hasVoucher"
class="tab-container">
<div class="tab" data-type="{{item.type}}" data-type-id="{{item.id}}" data-type-name="{{item.name}}"
data-tab-index="1" ng-repeat="item in detail.items"
ng-class="{'tab-selected':checkIfSelectedTab(1, item)}"
ng-click="changeTabColor(item.type, item.id, item.name, item.operationType);changeVisibleDataSourceContainer(1);removeVoucherFilterTab($event);">
<!--设置tab的左侧标记信息-->
<div ng-if="(item.operationType==1 || !item.operationType) && !(item.type === InvoiceFilter || item.type === voucherFilter)" style="float:left;color:#fff;width:40px;text-align:center;font-size:12px;">
<div ng-if="(item.operationType==1 || !item.operationType) && !(item.type === InvoiceFilter || item.type === voucherFilter)"
style="float:left;color:#fff;width:40px;text-align:center;font-size:12px;">
<div class="fa fa-plus-circle"></div>
</div>
<div ng-if="item.operationType==2 && !(item.type === InvoiceFilter || item.type === voucherFilter)" style="float:left;color:#fff;width:40px;text-align:center;font-size:12px;">
<div ng-if="item.operationType==2 && !(item.type === InvoiceFilter || item.type === voucherFilter)"
style="float:left;color:#fff;width:40px;text-align:center;font-size:12px;">
<div class="fa fa-minus-circle"></div>
</div>
<div ng-if="(item.operationType==1 || !item.operationType) && (item.type === InvoiceFilter || item.type === voucherFilter)" style="float:left;color:#fff;width:40px;text-align:center;font-size:12px;line-height:16px;">
<div ng-if="(item.operationType==1 || !item.operationType) && (item.type === InvoiceFilter || item.type === voucherFilter)"
style="float:left;color:#fff;width:40px;text-align:center;font-size:12px;line-height:16px;">
<div class="fa fa-plus-circle"></div>
<div style="border:1px solid #eee;border-radius:4px;background-color:#fff;color:#555;width:30px;margin-left:5px;">{{'HandWork' | translate}}</div>
<div style="border:1px solid #eee;border-radius:4px;background-color:#fff;color:#555;width:30px;margin-left:5px;">
{{'HandWork' | translate}}
</div>
</div>
<div ng-if="item.operationType==2 && (item.type === InvoiceFilter || item.type === voucherFilter)" style="float:left;color:#fff;width:40px;text-align:center;font-size:12px;line-height:16px;">
<div ng-if="item.operationType==2 && (item.type === InvoiceFilter || item.type === voucherFilter)"
style="float:left;color:#fff;width:40px;text-align:center;font-size:12px;line-height:16px;">
<div class="fa fa-minus-circle"></div>
<div style="border:1px solid #eee;border-radius:4px;background-color:#fff;color:#555;width:30px;margin-left:5px;">{{'HandWork' | translate}}</div>
<div style="border:1px solid #eee;border-radius:4px;background-color:#fff;color:#555;width:30px;margin-left:5px;">
{{'HandWork' | translate}}
</div>
</div>
<div ng-class="{'tab-text':item.type === InvoiceFilter || item.type === voucherFilter}">{{item.name | translate}}</div>
<span class="removeTab" ng-if="item.type === InvoiceFilter || item.type === voucherFilter || item.type === ModelDatasource">x</span>
<div ng-class="{'tab-text':item.type === InvoiceFilter || item.type === voucherFilter}">
{{item.name | translate}}
</div>
<span class="removeTab"
ng-if="item.type === InvoiceFilter || item.type === voucherFilter || item.type === ModelDatasource">x</span>
</div><!-- Remove blank between two data source tabs
--><div class="tab" data-tab-index="2" ng-class="{'tab-selected':checkIfSelectedTab(2), 'tab-second': detail.dataSourceCount > 1}"
-->
<div class="tab" data-tab-index="2"
ng-class="{'tab-selected':checkIfSelectedTab(2), 'tab-second': detail.dataSourceCount > 1}"
ng-if="detail.hasKeyIn" ng-click="changeVisibleDataSourceContainer(2)">
<div style="float:left;color:#fff;width:40px;text-align:center;font-size:12px;">
<div class="fa fa-plus-circle"></div>
</div>
{{'ManualInput' | translate}}
</div>
<div ng-if="detail.config.hasInvoice || detail.config.hasVoucher" class="tab-add" ng-click="addDataSource()">
<div ng-if="detail.config.hasInvoice || detail.config.hasVoucher" class="tab-add"
ng-click="addDataSource()">
<i class="material-icons add-icon">add_circle</i><a translate="AddDataSource"></a>
</div>
</div>
......@@ -105,8 +125,11 @@
<!--数据源-->
<div class="income-data-source" ng-if="selectedDataSourceTabIndex === 1 && detail.cellType != 0">
<div ng-if="selectedTabIndex === voucherFilter" class="tab-add-voucher-container">
<div ng-click="addInvoiceAndVoucher(voucherFilter)" class="add-voucher">{{'AddCertificate' | translate}}</div>
<a ng-click="openAcctPropover();" atms-popover data-placement="bottom" data-popover-auto-hide="false" data-popover-container=".income-data-source"
<div ng-click="addInvoiceAndVoucher(voucherFilter)" class="add-voucher">{{'AddCertificate' |
translate}}
</div>
<a ng-click="openAcctPropover();" atms-popover data-placement="bottom"
data-popover-auto-hide="false" data-popover-container=".income-data-source"
data-templateurl="/app/common/controls/tax-report-cell-detail-modal/add-voucher-range.html"
class="tab-add-voucher-area">
{{'VoucherRange' | translate}}
......@@ -114,7 +137,9 @@
<div class="clear"></div>
</div>
<div class="add-invoice-top-line" ng-if="detail.cellType == InvoiceFilter">
<div ng-click="addInvoiceAndVoucher(InvoiceFilter)" class="add-invoice">{{'AddInvoice' | translate}}</div>
<div ng-click="addInvoiceAndVoucher(InvoiceFilter)" class="add-invoice">{{'AddInvoice' |
translate}}
</div>
</div>
<div id="dataSourceGrid" ng-if="detail.cellType !== 19" dx-data-grid="dataSourceOptions"></div>
<div id="dataGridFooterSummary" ng-if="detail.cellType !== 19"
......@@ -132,23 +157,29 @@
</div>
</div>
<!--手工输入-->
<div class="hand-input-container" ng-show="selectedDataSourceTabIndex == 2 || (detail.dataSourceCount == 1 && detail.hasKeyIn)">
<div class="hand-input-container"
ng-show="selectedDataSourceTabIndex == 2 || (detail.dataSourceCount == 1 && detail.hasKeyIn)">
<div class="hand-input-line">
<span>{{'HandInputValue' | translate}}:</span>
<span><input id="hand-input-value" ng-if="!detail.keyinData" name="hand-input-value" ng-model="detail.inputValue" type="text" class="hand-input-value" /></span>
<span><input id="hand-input-value" ng-if="detail.keyinData" name="hand-input-value" ng-model="detail.keyinData" type="text" class="hand-input-value" /></span>
<span><input id="hand-input-value" ng-if="!detail.keyinData" name="hand-input-value"
ng-model="detail.inputValue" type="text" class="hand-input-value"/></span>
<span><input id="hand-input-value" ng-if="detail.keyinData" name="hand-input-value"
ng-model="detail.keyinData" type="text" class="hand-input-value"/></span>
</div>
<div class="hand-input-line">
<span>{{'Memo' | translate}}:</span>
<span><textarea id="hand-input-memo" name="hand-input-memo" ng-model="detail.inputMemo" maxlength="500" rows="3" class="hand-input-memo" /></span>
<span><textarea id="hand-input-memo" name="hand-input-memo" ng-model="detail.inputMemo"
maxlength="500" rows="3" class="hand-input-memo"/></span>
</div>
</div>
</div>
</div>
<div class="content-footer">
<button ng-click="confirmEventHandler()" class="btn btn-default btn-focus">{{'Confirm' | translate}}</button>
<button ng-click="hidePanel()" class="btn btn-default btn-second">{{'ButtonCancel' | translate}}</button>
<button ng-click="confirmEventHandler()" class="btn btn-default btn-focus">{{'Confirm' | translate}}
</button>
<button ng-click="hidePanel()" class="btn btn-default btn-second">{{'ButtonCancel' | translate}}
</button>
</div>
</div>
......@@ -162,8 +193,10 @@
<!--</tax-report-analyze-report>-->
<!--</div>-->
<div class="report-check-result" ng-if="detail.validationErrorList && detail.validationErrorList.length > 0" ng-show="tabType===3">
<div ng-repeat="item in detail.validationErrorList" style="display: inline-block; margin: 25px; height: 535px;">
<div class="report-check-result" ng-if="detail.validationErrorList && detail.validationErrorList.length > 0"
ng-show="tabType===3">
<div ng-repeat="item in detail.validationErrorList"
style="display: inline-block; margin: 25px; height: 535px;">
<span style="width: 50px;"><i class="fa fa-exclamation-circle red-color"></i></span>
<span style="font-weight: bold; margin-left: 10px;">{{'Exception' | translate}}</span>
<span style="margin-left: 15px;">{{item.validationDescription}}</span>
......@@ -189,7 +222,9 @@
<div class="cell-info-subject">
<label class="cell-info-subject-label">{{'Formula' | translate}}</label>
<formula-translator formula-list="formulaList" key-value-list="keyValueList"
account-data-source="accountDataSource" formula-exp="detail.config.formula"></formula-translator>{{}}
account-data-source="accountDataSource"
formula-exp="detail.config.formula"></formula-translator>
{{}}
</div>
<div class="cell-info-subject">
<label class="cell-info-subject-label">{{'SourceOrFormula' | translate}}:</label>
......@@ -211,12 +246,15 @@
<textarea id="remark-input-textarea" class="form-control" ng-model="addingRemark"></textarea>
</div>
<div style="height:60px;">
<button class="btn btn-primary add-remark-btn" ng-click="addCellComment()">{{'cellCommentCommit' | translate}}</button>
<button class="btn btn-primary add-remark-btn" ng-click="addCellComment()">{{'cellCommentCommit'
| translate}}
</button>
</div>
</div>
<div ng-if="remarks.length > 1" class="remark-summary">{{remarks.length}}条备注</div>
<div class="remark-list" style="height:200px;">
<perfect-scrollbar class="scroller" wheel-propagation="true" wheel-speed="1" min-scrollbar-length="20">
<perfect-scrollbar class="scroller" wheel-propagation="true" wheel-speed="1"
min-scrollbar-length="20">
<div class="remark-item" ng-repeat="remark in remarks">
<div>
<i class="material-icons">&#xE7FD;</i><span>{{remark.userName}}</span>
......@@ -226,18 +264,35 @@
</div>
<div class="remark-content">
<span>{{remark.comment}}</span>
<a style="float:right" ng-if="remark.userName === currentUserName" href="javascript:void(0)" ng-click="deleteComment(remark)">{{'cellCommentDelete' | translate}}</a>
<a style="float:right;margin-right:10px;" href="#" ng-click="openReplyBox(remark)">{{'cellCommentReply' | translate}}</a>
<a style="float:right" ng-if="remark.userName === currentUserName"
href="javascript:void(0)" ng-click="deleteComment(remark)">{{'cellCommentDelete' |
translate}}</a>
<a style="float:right;margin-right:10px;" href="#" ng-click="openReplyBox(remark)">{{'cellCommentReply'
| translate}}</a>
</div>
</div>
</perfect-scrollbar>
</div>
</div>
</div>
<div class="attach-upload" ng-show="tabType===5" style="">
<button style="margin-bottom:20px;" class="btn btn-primary" ng-click="openAddCellAttachmentDialog();">上传文档
</button>
<div id="cellAttachmentDataGrid" dx-data-grid="cellAttachmentDataGirdOptions"
class="dx-widget dx-visibility-change-handler" role="application" aria-label="Data grid"
style="height: 450px;">
</div>
</div>
</div>
<account-multi-selector is-show="isShowAccounts" account-data-source="accountDataSource" selector-api="accountSelectorApi" data-title="accountTitle"
selected-account-codes="selectedAccountCodes" selector-options="accountSelectorOptions"></account-multi-selector>
<account-multi-selector is-show="isShowAccounts" account-data-source="accountDataSource"
selector-api="accountSelectorApi" data-title="accountTitle"
selected-account-codes="selectedAccountCodes"
selector-options="accountSelectorOptions"></account-multi-selector>
</div>
<div class="tax-report-cell-detail" id="addSourceContainer"></div>
......@@ -255,8 +310,14 @@
<div class="col-md-4 title"><label>{{'DatasourceType' | translate}}</label></div>
<div class="col-md-8">
<div class="btn-group">
<button type="button" ng-show="config.hasInvoice" ng-click="choiceGroupButton(config,'invoiceClass','voucherClass')" ng-class="config.invoiceClass" class="btn btn-default">{{'InvoiceDataSource' | translate}}</button>
<button type="button" ng-show="config.hasVoucher" ng-click="choiceGroupButton(config,'voucherClass','invoiceClass')" ng-class="config.voucherClass" class="btn btn-default">{{'VoucherDataSource' | translate}}</button>
<button type="button" ng-show="config.hasInvoice"
ng-click="choiceGroupButton(config,'invoiceClass','voucherClass')"
ng-class="config.invoiceClass" class="btn btn-default">{{'InvoiceDataSource' | translate}}
</button>
<button type="button" ng-show="config.hasVoucher"
ng-click="choiceGroupButton(config,'voucherClass','invoiceClass')"
ng-class="config.voucherClass" class="btn btn-default">{{'VoucherDataSource' | translate}}
</button>
</div>
</div>
</div>
......@@ -264,24 +325,30 @@
<div class="col-md-4 title"><label>{{'ComputeMode' | translate}}</label></div>
<div class="col-md-8">
<div class="btn-group">
<button type="button" ng-click="choiceGroupButton(config,'addClass','reduceClass')" ng-class="config.addClass" class="btn btn-default">{{'ComputeModeAdd' | translate}}</button>
<button type="button" ng-click="choiceGroupButton(config,'reduceClass','addClass')" ng-class="config.reduceClass" class="btn btn-default">{{'ComputeModeReduce' | translate}}</button>
<button type="button" ng-click="choiceGroupButton(config,'addClass','reduceClass')"
ng-class="config.addClass" class="btn btn-default">{{'ComputeModeAdd' | translate}}
</button>
<button type="button" ng-click="choiceGroupButton(config,'reduceClass','addClass')"
ng-class="config.reduceClass" class="btn btn-default">{{'ComputeModeReduce' | translate}}
</button>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4 title"><label>{{'DatasourceName' | translate}}</label></div>
<div class="col-md-6">
<input type="text" class="form-control" ng-model="config.dataSourceName" />
<input type="text" class="form-control" ng-model="config.dataSourceName"/>
</div>
</div>
</div>
<div ng-if="config.contentStatus === 'allItems'" class="modal-body selectItems">
<div id="dataSourceGrid" dx-data-grid="allItemsDataSourceOptions"></div>
<div id="_dataSourceGrid" dx-data-grid="allItemsDataSourceOptions"></div>
</div>
<div class="content-footer add-footer">
<button ng-click="confirmAddDataSource(config);" class="btn btn-default btn-focus">{{'Confirm' | translate}}</button>
<button ng-click="hideAddDataSourcePanel()" class="btn btn-default btn-second">{{'ButtonCancel' | translate}}</button>
<button ng-click="confirmAddDataSource(config);" class="btn btn-default btn-focus">{{'Confirm' | translate}}
</button>
<button ng-click="hideAddDataSourcePanel()" class="btn btn-default btn-second">{{'ButtonCancel' | translate}}
</button>
</div>
</script>
<script type="text/ng-template" class="content" id="modifyCellData.html">
......@@ -306,7 +373,8 @@
<div class="form-group">
<label for="modify-comment" class="col-sm-2 control-label">{{'modifyReason' | translate}}</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="modify-comment" ng-model="modifyReportCellModel.comment">
<input type="text" class="form-control" id="modify-comment"
ng-model="modifyReportCellModel.comment">
</div>
</div>
</form>
......@@ -314,6 +382,52 @@
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" ng-click="saveModification()">{{'Save' | translate}}</button>
<button type="button" class="btn btn-default" data-dismiss="modal" ng-click="hide()">{{'Cancel' | translate}}</button>
<button type="button" class="btn btn-default" data-dismiss="modal" ng-click="hide()">{{'Cancel' | translate}}
</button>
</div>
</script>
<div class="modal fade" id="addCellAttachmentContainer" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" >
<div class="modal-content" uib-modal-transclude="">
<div class="modal-header">
<span class="close" data-dismiss="modal" aria-hidden="true" ng-click="hideCellAttachmentModel()">×</span>
<h4 class="modal-title">附件</h4>
</div>
<div class="modal-body">
<div>
<form class="form-horizontal ng-pristine ng-valid ng-valid-maxlength" style="">
<div class="form-group">
<label class="col-sm-3 control-label">文件名:</label>
<div class="col-sm-6"><input type="text"
class="form-control ng-pristine ng-untouched ng-valid ng-empty"
ng-model="fileName" style=""></div>
<span class="col-sm-3">
<button type="button" ngf-select="" ng-model="fileNameWrapper" ngf-drag-over-class="'dragover'"
accept=".xls,.xlsx" ngf-multiple="false" ngf-allow-dir="false"
class="btn btn-vat-third ng-pristine ng-untouched ng-valid ng-empty"
style="margin-right: 10px;">
选择文件...
</button>
</span>
</div>
<div class="form-group">
<label for="addAttachment-comment" class="col-sm-3 control-label">备注:</label>
<div class="col-sm-6">
<input class="form-control ng-pristine ng-valid ng-empty ng-valid-maxlength ng-touched"
maxlength="500" type="text" id="addAttachment-comment"
ng-model="cellAttachmentComment" style="">
</div>
</div>
</form>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" ng-click="uploadCellAttachment()">保存</button>
<button type="button" class="btn btn-default" data-dismiss="modal" ng-click="hideCellAttachmentModel()">取消
</button>
</div>
</div>
</div>
</div>
......@@ -5,7 +5,8 @@ function ($log) {
templateUrl: '/app/common/controls/tax-report-cell-detail-modal/tax-report-cell-detail-modal.html' + '?_=' + Math.random(),
scope: {
detail: '=',
onConfirm: '&'
onConfirm: '&',
activeSheet : '='
},
controller: 'taxReportCellDetailModalController',
link: function ($scope, $element, $attr) {
......
......@@ -160,6 +160,7 @@
scope.internalApi.onCellDoubleClick({
'sender': sender,
'args': args,
'templateId' : scope.templateId,
'data': JSON.parse(args.sheet.getTag(args.row, args.col))
});
$log.debug(args.sheet.getTag(args.row, args.col));
......
......@@ -19,6 +19,13 @@
$scope.manualSpread = {};
$scope.file = null;
$scope.activeSheet = {
activeCol : null,
activeRow : null,
activeTemplateId : null
};
//Notice: ************************************
//$scope.templateCode, $scope.reportId, $scope.initRow, $scope.initCol等都是外部传递进来的数据。
//$scope.templateCode对应的是TaxAdmin.Template中的Code字段
......@@ -438,11 +445,15 @@
showTaxReportCellDetail(isSingleClick);
};
var setTaxReportCellPopInfo = function (cellEvent, isSingleClick) {
var row = cellEvent.args.row;
var column = cellEvent.args.col;
//纳税申报表
var sheets = $scope.spread.sheets;
$scope.activeSheet.activeTemplateId = cellEvent.templateId;
$scope.activeSheet.activeCol = cellEvent.args.col;
$scope.activeSheet.activeRow = cellEvent.args.row;
if (sheets && sheets.length > 0) {
var tagInfo = sheets[0].getTag(row, column);
if (constant.regesterInformation.active) {
......@@ -845,6 +856,8 @@
setTaxReportCellPopInfo($event);
}
//
};
$scope.exportExcel = function () {
......
......@@ -23,11 +23,11 @@
</vat-report-sheet>
</div>
<cell-detail-panel detail="cellDetail" id="cell-detail" source-type="isBSPLSpecial"></cell-detail-panel>
<tax-report-cell-detail-modal on-confirm="confirm()" detail="taxCellDetail" id="tax-cell-detail"
service-type="serviceType"
<tax-report-cell-detail-modal on-confirm="confirm()" detail="taxCellDetail" id="tax-cell-detail" active-sheet = "activeSheet"
<!--service-type="serviceType"
on-update-data-source="updateCellByManualChange(manualData)"
on-delete-data-source="updateCellByManualSourceDelete(dataSourceId, cellId)"
on-delete-data-source-detail="updateCellBySourceDetailDelete(dataSource, detailId, opType)">
on-delete-data-source-detail="updateCellBySourceDetailDelete(dataSource, detailId, opType)"-->>
</tax-report-cell-detail-modal>
<vat-operate-log period="period" module-type="moduleid" is-show="isShowLog"></vat-operate-log>
<div class='export-container hidden'></div>
......
......@@ -194,6 +194,9 @@
},
hasManualDataSource: function (projectId, period) {
return $http.get('/Report/hasManualDataSource/' + projectId+ '/' +period, apiConfig.createVat());
},
loadAttachList : function(activeSheet){
return $http.get('/Report/loadAttachList?col='+ activeSheet.activeCol + "&row=" + activeSheet.activeRow + "&templateId=" +activeSheet.activeTemplateId, apiConfig.createVat());
}
};
......
a{color:#404041}a:active,a:checked,a:hover,a:visited{color:#602320}.badge{background-color:#968c6d}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ef9800}.align-right{float:right;display:inline-block;margin-right:15px}.alert-info{background-image:none;background-repeat:repeat-x;border-color:#c7c8ca;color:#404041;background-color:#f5f4f0;border-color:#c7c8ca}.alert-warning{background-image:none;background-repeat:repeat-x;border-color:#f7cbc7;color:#404041;background-color:#fae2bf;border-color:#f7cbc7}.alert-danger{background-image:none;background-repeat:repeat-x;border-color:#e0301e;color:#fff;background-color:#e0301e;border-color:#e0301e}.cursorpointer{cursor:pointer}.link-no-underline,.link-no-underline:active,.link-no-underline:hover{text-decoration:none}.btn-customer{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:5px 12px;line-height:1.5;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn-customer-group-lg>.btn-customer,.btn-customer-lg{padding:6px 12px;font-size:20px;line-height:1.33;border-radius:6px}.btn-customer.active:focus,.btn-customer:active:focus,.btn-customer:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn-customer.active,.btn-customer:active{outline:0;background-image:none;background-color:#bed1e1}.btn-customer.disabled,.btn-customer[disabled],.form-control-customer{display:block;width:100%;height:31px;padding:5px 12px;font-size:20px;line-height:1.5;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control.select-fix{width:auto;display:inline-block;font-size:14px;margin-right:15px}.btn-fix.disabled,.btn-fix[disabled]{display:inline-block;font-size:14px;width:auto}.form-control-customer:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control-customer[disabled],.form-control-customer[readonly],fieldset[disabled] .form-control-customer{cursor:not-allowed;background-color:#f2f2f2;opacity:1}textarea.form-control-customer{height:auto}span.form-control-customer{border:none;box-shadow:none}.progress-bar{background-color:#eb8c00}body.login-body{background:#999 url(/app-resources/images/login_pic.jpg) no-repeat;color:#333;overflow-y:auto}.login{display:block;margin-top:108px;margin-left:120px;width:648px;float:right;font-family:"Helvetica Neue",Helvetica,Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif}.tilte{clear:both;margin-left:50px;width:227px;height:114px;font-family:'Papyrus Bold',Papyrus;font-weight:700;font-style:normal;font-size:72px;color:#a32020}.tilte .text{position:absolute}.background-frame{background-repeat:no-repeat;background-image:url(/app-resources/images/form_bg.png);float:left;display:block;width:643px;height:358px;opacity:.7;z-index:-99}.loginframe{position:relative;display:block;width:410px;height:158px;float:left;margin-top:-248px;z-index:10;padding-left:120px}.frame{display:none}.show{display:block!important}.form-wrapper{width:400px;font-weight:400;font-style:normal;font-size:13px;color:#333;text-align:center;line-height:normal;margin-top:-45px}.form-wrapper button,.form-wrapper input{opacity:1}.loginfull{width:270px;height:150px;float:left;color:#fff;clear:both!important}.button-wrapper{display:block;float:left;margin-left:40px;height:150px}.login-button{background-color:#eb8c00;color:#fff;width:100px;height:100px}.login-button:hover{color:#fff;background-color:#dc6900}.login-button:disabled{background-color:#968c6d;color:#fff;width:100px;height:100px}.loginfull input::-webkit-input-placeholder{font-weight:400;font-size:18px;font-style:normal;color:#fff!important;font-family:"Helvetica Neue",Helvetica,Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif}.loginfull input:-moz-placeholder{font-weight:400;font-size:18px;font-style:normal;color:#fff!important;font-family:"Helvetica Neue",Helvetica,Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif}.loginfull input::-moz-placeholder{font-weight:400;font-size:18px;font-style:normal;color:#fff!important;font-family:"Helvetica Neue",Helvetica,Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif}.loginfull input:-ms-input-placeholder{font-weight:400;font-size:18px;font-style:normal;color:#fff!important;font-family:"Helvetica Neue",Helvetica,Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif}.loginfull .form-control-customer{background-color:#404041;color:#fff;font-weight:400;font-size:18px;font-style:normal;height:28px;border-radius:10px}.loginfull .form-control-customer.has-error{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.loginfull .successMsg{float:left;text-decoration:none;color:#a94442;font-size:28px;font-weight:200;margin-left:56px}.loginfull .form-forget-password{float:left;text-decoration:none;color:#dc6900;font-size:18px;font-weight:200;margin-left:6px}.has-error.label{color:#a94442;font-weight:700}.loadingImg{margin-top:135px;z-index:-9;margin-left:310px}.form-group{margin-bottom:20px}form.active{display:block!important;height:auto}form.email_sent .form-group,form.forgot_fivetimes .form-group,form.forgot_password .form-group,form.login .form-group,form.loginfull .form-group{margin:20px 0 20px 0}form.userchoose .form-group{margin:0 0 10px 0}.login .list-group-item-heading{margin:5px 0 5px 0}.navbar-brand{float:left;padding:15.5px 15px;font-size:32px;line-height:19px;height:50px;font-family:'Papyrus Bold',Papyrus;font-weight:700;font-style:normal;color:#a32020}.navbar-default .navbar-brand{color:#a32020;margin-left:37px;margin-right:37px}.sidebar-closed .navbar-default .navbar-brand{display:none}.navbar-brand:focus,.navbar-brand:hover{color:#a32020;text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-fixed-top .navbar-collapse{max-height:440px}.panelfix{margin-bottom:0;border-radius:0}.navbarfix{border-radius:0}.nav-split{background-color:#a32020;display:inline-block;height:42px;width:2px;margin-top:2px;float:left;margin-bottom:0;margin-right:10px}.nav-company-name{font-size:25px;margin-bottom:0;margin-top:10px;font-weight:100}.nav-company{display:none}@media(min-width:768px){.nav-company{display:block}}.navbar-customer{margin-top:0;width:46px;height:50px;margin-bottom:0;margin-right:10px;padding-left:11px;padding-right:11px;border-radius:0}.row-fix-width{width:960px}.progress-table{text-align:center}.progress-table>tbody>tr>td:first-child{text-align:left}.progress-table>tbody>tr>td{border-top:0}.progress-table>tbody>tr>td:after{border-top:0}.progress-title{text-shadow:none}.btn-city{width:130px;text-align:left}.btn-default.step1{background-color:#e5e2db}.btn-default.step2{background-color:#fae2bf}.btn-default.step3{background-color:#f7cbc7}.btn-default.step4{background-color:#f6d4da}.btn-default.step5{background-color:#d7c8c7}.btn-default.step6{background-color:#e5e2db}.btn-default.review{color:#fff;background-color:#a32020}.btn-default.signoff{color:#fff;background-color:#dc6900}.td-line:after{content:"";position:absolute;margin-top:-16px;width:150px;border-bottom:2px dashed #ccc}.tr-hr:after{content:"";position:absolute;margin-top:23px;margin-left:-720px;width:680px;border-bottom:2px dashed #e8c7c7}.btn-customer.disabled,.btn-customer[disabled],fieldset[disabled] .btn-customer{opacity:.5}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:15px;border-bottom-right-radius:15px}.bootstrap-switch-gap{margin-right:10px}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{background:#a32020}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:hover{background:#602320}.bootstrap-switch.bootstrap-switch-focused{border-color:#dc6900}.nav-tabs>li .close{margin:-2px 0 0 10px;font-size:18px}.marginBottom{padding-top:3px;margin-bottom:1px!important;margin-left:-15px}.operationDiv{padding:5px 10px 5px 5px}.operationDivWrapper{margin-top:-1px}.firstTab{margin-left:15px}.leftMenu{height:70%;background-color:#e6e6e6;border-right:2px solid #bfbfbf}.close-tab-button{margin-top:-41px;margin-right:6px;font-size:18px;margin:-41px 6px 0 0!important}.btn-position-fix{margin-top:25px}.removeBackgroud>li>a:focus{background-color:transparent;color:#000}.notice-center{position:fixed;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}@-webkit-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@-webkit-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@-moz-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@-ms-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@-moz-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@-webkit-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@-o-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}.uil-flickr-css>div{width:100px;height:100px;border-radius:50px;position:absolute;top:50px}.uil-flickr-css>div:nth-of-type(1){left:0;background:#e35839;z-index:5;-ms-animation:uil-flickr-anim1 1s linear infinite;-moz-animation:uil-flickr-anim1 1s linear infinite;-webkit-animation:uil-flickr-anim1 1s linear infinite;-o-animation:uil-flickr-anim1 1s linear infinite;animation:uil-flickr-anim1 1s linear infinite}.uil-flickr-css>div:nth-of-type(2){left:100px;background:#d28d4f;-ms-animation:uil-flickr-anim2 1s linear infinite;-moz-animation:uil-flickr-anim2 1s linear infinite;-webkit-animation:uil-flickr-anim2 1s linear infinite;-o-animation:uil-flickr-anim2 1s linear infinite;animation:uil-flickr-anim2 1s linear infinite}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{color:#fff;background-color:#eb8c00}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{color:#fff;background-color:#eb8c00}.datepicker table tr td span.active.active.focus,.datepicker table tr td span.active.active:focus,.datepicker table tr td span.active.active:hover,.datepicker table tr td span.active.disabled.active.focus,.datepicker table tr td span.active.disabled.active:focus,.datepicker table tr td span.active.disabled.active:hover,.datepicker table tr td span.active.disabled:active.focus,.datepicker table tr td span.active.disabled:active:focus,.datepicker table tr td span.active.disabled:active:hover,.datepicker table tr td span.active.disabled:hover.active.focus,.datepicker table tr td span.active.disabled:hover.active:focus,.datepicker table tr td span.active.disabled:hover.active:hover,.datepicker table tr td span.active.disabled:hover:active.focus,.datepicker table tr td span.active.disabled:hover:active:focus,.datepicker table tr td span.active.disabled:hover:active:hover,.datepicker table tr td span.active:active.focus,.datepicker table tr td span.active:active:focus,.datepicker table tr td span.active:active:hover,.datepicker table tr td span.active:hover.active.focus,.datepicker table tr td span.active:hover.active:focus,.datepicker table tr td span.active:hover.active:hover,.datepicker table tr td span.active:hover:active.focus,.datepicker table tr td span.active:hover:active:focus,.datepicker table tr td span.active:hover:active:hover{color:#fff;background-color:#dc6900}.datepicker table tr td,.datepicker table tr th{text-align:center}.ui-select-has-border,.ui-select-no-border{display:inline-block;cursor:pointer}.search-container.ui-select-search-hidden{display:none}.ui-select-no-border .select2-container-active .select2-choice,.ui-select-no-border .select2-container-active .select2-choices{border:1px solid rgba(0,0,0,.15)}.ui-select-no-border .select2-results .select2-highlighted{background:#e0301e}.ui-select-no-border .select2-container,.ui-select-no-border .select2-results,.ui-select-no-border .select2-results li{outline:0}.ui-select-no-border .select2-container-active .select2-choice,.ui-select-no-border .select2-container-active .select2-choices,.ui-select-no-border .select2-drop,.ui-select-no-border .select2-dropdown-open .select2-choice{border-radius:0;box-shadow:none;-webkit-box-shadow:none}.ui-select-no-border .select2-drop-active{border:1px solid rgba(0,0,0,.15)}.ui-select-no-border .select2-container .select2-choice .select2-arrow{margin-right:8px}.ui-select-no-border .select2-container .select2-choice .select2-arrow,.ui-select-no-border .select2-dropdown-open .select2-choice{border-left:none;background:0 0;background-image:none}.ui-select-no-border .select2-container .select2-choice .select2-arrow b{background:url(/app-resources/images/vat/down.png) no-repeat scroll right center transparent}.ui-select-no-border .select2-container .select2-choice{border:none;background-image:none;background:0 0}.ui-select-has-border .select2-drop-active{border:1px solid #adb4bd;border-top:1px solid #adb4bd}.ui-select-has-border .select2-dropdown-open .select2-choice{box-shadow:none;background-color:none}.ui-select-has-border .select2-container-active .select2-choices{border:none}.ui-select-has-border .select2-results .select2-highlighted{background:#e0301e}.ui-select-has-border .select2-container-active .select2-choice,.ui-select-has-border .select2-container-active .select2-choices{border:1px solid #aaa}.ui-select-has-border .select2-container,.ui-select-has-border .select2-results,.ui-select-has-border .select2-results li{outline:0}.ui-select-has-border .select2-container .select2-choice .select2-arrow{border-left:none;background:0 0;background-image:none}.ui-select-has-border .select2-container .select2-choice .select2-arrow b{margin-top:2px}.ui-select-has-border .select2-container .select2-choice,.ui-select-has-border .select2-container-active .select2-choice{background-image:none;background:0 0;outline:0;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.dx-checkbox-checked .dx-checkbox-icon{color:#e0301e}.dx-checkbox-indeterminate .dx-checkbox-icon:before{background-color:#e0301e}.dx-texteditor.dx-state-hover{border-color:rgba(239,213,189,.5)}.dx-texteditor.dx-state-active,.dx-texteditor.dx-state-focused{border-color:rgba(239,213,189,.5)}.dx-list.dx-list-select-decorator-enabled .dx-list-item.dx-state-focused .dx-checkbox-icon,.dx-list.dx-list-select-decorator-enabled .dx-list-item.dx-state-focused .dx-radiobutton-icon:before{border:1px solid rgba(239,213,189,.5)}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-focused{background-color:#dc6900}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-focused.dx-list-item-selected{background-color:#dc6900}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-active{background-color:#dc6900}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-active .dx-list-slide-item-content{background-color:#dc6900}.dx-list-item.dx-list-item-ghost-reordering.dx-state-focused.dx-state-hover{border-top:1px solid rgba(239,213,189,.5);border-bottom:1px solid rgba(239,213,189,.5)}.dx-list-slide-menu-button-menu{background-color:#dc6900}.dx-checkbox.dx-state-hover .dx-checkbox-icon{border:1px solid rgba(239,213,189,.5)}.dx-checkbox.dx-state-focused .dx-checkbox-icon{border:1px solid rgba(239,213,189,.5)}.dx-treeview .dx-treeview-node.dx-treeview-item-with-checkbox.dx-state-focused>.dx-checkbox .dx-checkbox-icon{border:1px solid rgba(239,213,189,1)}
\ No newline at end of file
a{color:#404041}a:active,a:checked,a:hover,a:visited{color:#602320}.badge{background-color:#968c6d}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ef9800}.align-right{float:right;display:inline-block;margin-right:15px}.alert-info{background-image:none;background-repeat:repeat-x;border-color:#c7c8ca;color:#404041;background-color:#f5f4f0;border-color:#c7c8ca}.alert-warning{background-image:none;background-repeat:repeat-x;border-color:#f7cbc7;color:#404041;background-color:#fae2bf;border-color:#f7cbc7}.alert-danger{background-image:none;background-repeat:repeat-x;border-color:#e0301e;color:#fff;background-color:#e0301e;border-color:#e0301e}.cursorpointer{cursor:pointer}.link-no-underline,.link-no-underline:active,.link-no-underline:hover{text-decoration:none}.btn-customer{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:5px 12px;line-height:1.5;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn-customer-group-lg>.btn-customer,.btn-customer-lg{padding:6px 12px;font-size:20px;line-height:1.33;border-radius:6px}.btn-customer.active:focus,.btn-customer:active:focus,.btn-customer:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn-customer.active,.btn-customer:active{outline:0;background-image:none;background-color:#bed1e1}.btn-customer.disabled,.btn-customer[disabled],.form-control-customer{display:block;width:100%;height:31px;padding:5px 12px;font-size:20px;line-height:1.5;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control.select-fix{width:auto;display:inline-block;font-size:14px;margin-right:15px}.btn-fix.disabled,.btn-fix[disabled]{display:inline-block;font-size:14px;width:auto}.form-control-customer:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control-customer[disabled],.form-control-customer[readonly],fieldset[disabled] .form-control-customer{cursor:not-allowed;background-color:#f2f2f2;opacity:1}textarea.form-control-customer{height:auto}span.form-control-customer{border:none;box-shadow:none}.progress-bar{background-color:#eb8c00}body.login-body{background:#999 url(/app-resources/images/login_pic.jpg) no-repeat;color:#333;overflow-y:auto}.login{display:block;margin-top:108px;margin-left:120px;width:648px;float:right;font-family:"Helvetica Neue",Helvetica,Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif}.tilte{clear:both;margin-left:50px;width:227px;height:114px;font-family:'Papyrus Bold',Papyrus;font-weight:700;font-style:normal;font-size:72px;color:#a32020}.tilte .text{position:absolute}.background-frame{background-repeat:no-repeat;background-image:url(/app-resources/images/form_bg.png);float:left;display:block;width:643px;height:358px;opacity:.7;z-index:-99}.loginframe{position:relative;display:block;width:410px;height:158px;float:left;margin-top:-248px;z-index:10;padding-left:120px}.frame{display:none}.show{display:block!important}.form-wrapper{width:400px;font-weight:400;font-style:normal;font-size:13px;color:#333;text-align:center;line-height:normal;margin-top:-45px}.form-wrapper button,.form-wrapper input{opacity:1}.loginfull{width:270px;height:150px;float:left;color:#fff;clear:both!important}.button-wrapper{display:block;float:left;margin-left:40px;height:150px}.login-button{background-color:#eb8c00;color:#fff;width:100px;height:100px}.login-button:hover{color:#fff;background-color:#dc6900}.login-button:disabled{background-color:#968c6d;color:#fff;width:100px;height:100px}.loginfull input::-webkit-input-placeholder{font-weight:400;font-size:18px;font-style:normal;color:#fff!important;font-family:"Helvetica Neue",Helvetica,Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif}.loginfull input:-moz-placeholder{font-weight:400;font-size:18px;font-style:normal;color:#fff!important;font-family:"Helvetica Neue",Helvetica,Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif}.loginfull input::-moz-placeholder{font-weight:400;font-size:18px;font-style:normal;color:#fff!important;font-family:"Helvetica Neue",Helvetica,Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif}.loginfull input:-ms-input-placeholder{font-weight:400;font-size:18px;font-style:normal;color:#fff!important;font-family:"Helvetica Neue",Helvetica,Microsoft Yahei,Hiragino Sans GB,WenQuanYi Micro Hei,sans-serif}.loginfull .form-control-customer{background-color:#404041;color:#fff;font-weight:400;font-size:18px;font-style:normal;height:28px;border-radius:10px}.loginfull .form-control-customer.has-error{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.loginfull .successMsg{float:left;text-decoration:none;color:#a94442;font-size:28px;font-weight:200;margin-left:56px}.loginfull .form-forget-password{float:left;text-decoration:none;color:#dc6900;font-size:18px;font-weight:200;margin-left:6px}.has-error.label{color:#a94442;font-weight:700}.loadingImg{margin-top:135px;z-index:-9;margin-left:310px}.form-group{margin-bottom:20px}form.active{display:block!important;height:auto}form.email_sent .form-group,form.forgot_fivetimes .form-group,form.forgot_password .form-group,form.login .form-group,form.loginfull .form-group{margin:20px 0 20px 0}form.userchoose .form-group{margin:0 0 10px 0}.login .list-group-item-heading{margin:5px 0 5px 0}.navbar-brand{float:left;padding:15.5px 15px;font-size:32px;line-height:19px;height:50px;font-family:'Papyrus Bold',Papyrus;font-weight:700;font-style:normal;color:#a32020}.navbar-default .navbar-brand{color:#a32020;margin-left:37px;margin-right:37px}.sidebar-closed .navbar-default .navbar-brand{display:none}.navbar-brand:focus,.navbar-brand:hover{color:#a32020;text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-fixed-top .navbar-collapse{max-height:440px}.panelfix{margin-bottom:0;border-radius:0}.navbarfix{border-radius:0}.nav-split{background-color:#a32020;display:inline-block;height:42px;width:2px;margin-top:2px;float:left;margin-bottom:0;margin-right:10px}.nav-company-name{font-size:25px;margin-bottom:0;margin-top:10px;font-weight:100}.nav-company{display:none}@media(min-width:768px){.nav-company{display:block}}.navbar-customer{margin-top:0;width:46px;height:50px;margin-bottom:0;margin-right:10px;padding-left:11px;padding-right:11px;border-radius:0}.row-fix-width{width:960px}.progress-table{text-align:center}.progress-table>tbody>tr>td:first-child{text-align:left}.progress-table>tbody>tr>td{border-top:0}.progress-table>tbody>tr>td:after{border-top:0}.progress-title{text-shadow:none}.btn-city{width:130px;text-align:left}.btn-default.step1{background-color:#e5e2db}.btn-default.step2{background-color:#fae2bf}.btn-default.step3{background-color:#f7cbc7}.btn-default.step4{background-color:#f6d4da}.btn-default.step5{background-color:#d7c8c7}.btn-default.step6{background-color:#e5e2db}.btn-default.review{color:#fff;background-color:#a32020}.btn-default.signoff{color:#fff;background-color:#dc6900}.td-line:after{content:"";position:absolute;margin-top:-16px;width:150px;border-bottom:2px dashed #ccc}.tr-hr:after{content:"";position:absolute;margin-top:23px;margin-left:-720px;width:680px;border-bottom:2px dashed #e8c7c7}.btn-customer.disabled,.btn-customer[disabled],fieldset[disabled] .btn-customer{opacity:.5}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:15px;border-bottom-right-radius:15px}.bootstrap-switch-gap{margin-right:10px}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{background:#a32020}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:hover{background:#602320}.bootstrap-switch.bootstrap-switch-focused{border-color:#dc6900}.nav-tabs>li .close{margin:-2px 0 0 10px;font-size:18px}.marginBottom{padding-top:3px;margin-bottom:1px!important;margin-left:-15px}.operationDiv{padding:5px 10px 5px 5px}.operationDivWrapper{margin-top:-1px}.firstTab{margin-left:15px}.leftMenu{height:70%;background-color:#e6e6e6;border-right:2px solid #bfbfbf}.close-tab-button{margin-top:-41px;margin-right:6px;font-size:18px;margin:-41px 6px 0 0!important}.btn-position-fix{margin-top:25px}.removeBackgroud>li>a:focus{background-color:transparent;color:#000}.notice-center{position:fixed;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}@-webkit-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@-webkit-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@-moz-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@-ms-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@-moz-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@-webkit-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@-o-keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}@keyframes uil-flickr-anim1{0%{left:0}50%{left:100px}100%{left:0}}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}49%{z-index:1}50%{left:0;z-index:10}100%{left:100px;z-index:10}.uil-flickr-css>div{width:100px;height:100px;border-radius:50px;position:absolute;top:50px}.uil-flickr-css>div:nth-of-type(1){left:0;background:#e35839;z-index:5;-ms-animation:uil-flickr-anim1 1s linear infinite;-moz-animation:uil-flickr-anim1 1s linear infinite;-webkit-animation:uil-flickr-anim1 1s linear infinite;-o-animation:uil-flickr-anim1 1s linear infinite;animation:uil-flickr-anim1 1s linear infinite}.uil-flickr-css>div:nth-of-type(2){left:100px;background:#d28d4f;-ms-animation:uil-flickr-anim2 1s linear infinite;-moz-animation:uil-flickr-anim2 1s linear infinite;-webkit-animation:uil-flickr-anim2 1s linear infinite;-o-animation:uil-flickr-anim2 1s linear infinite;animation:uil-flickr-anim2 1s linear infinite}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{color:#fff;background-color:#eb8c00}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{color:#fff;background-color:#eb8c00}.datepicker table tr td span.active.active.focus,.datepicker table tr td span.active.active:focus,.datepicker table tr td span.active.active:hover,.datepicker table tr td span.active.disabled.active.focus,.datepicker table tr td span.active.disabled.active:focus,.datepicker table tr td span.active.disabled.active:hover,.datepicker table tr td span.active.disabled:active.focus,.datepicker table tr td span.active.disabled:active:focus,.datepicker table tr td span.active.disabled:active:hover,.datepicker table tr td span.active.disabled:hover.active.focus,.datepicker table tr td span.active.disabled:hover.active:focus,.datepicker table tr td span.active.disabled:hover.active:hover,.datepicker table tr td span.active.disabled:hover:active.focus,.datepicker table tr td span.active.disabled:hover:active:focus,.datepicker table tr td span.active.disabled:hover:active:hover,.datepicker table tr td span.active:active.focus,.datepicker table tr td span.active:active:focus,.datepicker table tr td span.active:active:hover,.datepicker table tr td span.active:hover.active.focus,.datepicker table tr td span.active:hover.active:focus,.datepicker table tr td span.active:hover.active:hover,.datepicker table tr td span.active:hover:active.focus,.datepicker table tr td span.active:hover:active:focus,.datepicker table tr td span.active:hover:active:hover{color:#fff;background-color:#dc6900}.datepicker table tr td,.datepicker table tr th{text-align:center}.ui-select-has-border,.ui-select-no-border{display:inline-block;cursor:pointer}.search-container.ui-select-search-hidden{display:none}.ui-select-no-border .select2-container-active .select2-choice,.ui-select-no-border .select2-container-active .select2-choices{border:1px solid rgba(0,0,0,.15)}.ui-select-no-border .select2-results .select2-highlighted{background:#e0301e}.ui-select-no-border .select2-container,.ui-select-no-border .select2-results,.ui-select-no-border .select2-results li{outline:0}.ui-select-no-border .select2-container-active .select2-choice,.ui-select-no-border .select2-container-active .select2-choices,.ui-select-no-border .select2-drop,.ui-select-no-border .select2-dropdown-open .select2-choice{border-radius:0;box-shadow:none;-webkit-box-shadow:none}.ui-select-no-border .select2-drop-active{border:1px solid rgba(0,0,0,.15)}.ui-select-no-border .select2-container .select2-choice .select2-arrow{margin-right:8px}.ui-select-no-border .select2-container .select2-choice .select2-arrow,.ui-select-no-border .select2-dropdown-open .select2-choice{border-left:none;background:0 0;background-image:none}.ui-select-no-border .select2-container .select2-choice .select2-arrow b{background:url(/app-resources/images/vat/down.png) no-repeat scroll right center transparent}.ui-select-no-border .select2-container .select2-choice{border:none;background-image:none;background:0 0}.ui-select-has-border .select2-drop-active{border:1px solid #adb4bd;border-top:1px solid #adb4bd}.ui-select-has-border .select2-dropdown-open .select2-choice{box-shadow:none;background-color:none}.ui-select-has-border .select2-container-active .select2-choices{border:none}.ui-select-has-border .select2-results .select2-highlighted{background:#e0301e}.ui-select-has-border .select2-container-active .select2-choice,.ui-select-has-border .select2-container-active .select2-choices{border:1px solid #aaa}.ui-select-has-border .select2-container,.ui-select-has-border .select2-results,.ui-select-has-border .select2-results li{outline:0}.ui-select-has-border .select2-container .select2-choice .select2-arrow{border-left:none;background:0 0;background-image:none}.ui-select-has-border .select2-container .select2-choice .select2-arrow b{margin-top:2px}.ui-select-has-border .select2-container .select2-choice,.ui-select-has-border .select2-container-active .select2-choice{background-image:none;background:0 0;outline:0;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.dx-checkbox-checked .dx-checkbox-icon{color:#e0301e}.dx-checkbox-indeterminate .dx-checkbox-icon:before{background-color:#e0301e}.dx-texteditor.dx-state-hover{border-color:rgba(239,213,189,.5)}.dx-texteditor.dx-state-active,.dx-texteditor.dx-state-focused{border-color:rgba(239,213,189,.5)}.dx-list.dx-list-select-decorator-enabled .dx-list-item.dx-state-focused .dx-checkbox-icon,.dx-list.dx-list-select-decorator-enabled .dx-list-item.dx-state-focused .dx-radiobutton-icon:before{border:1px solid rgba(239,213,189,.5)}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-focused{background-color:#dc6900}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-focused.dx-list-item-selected{background-color:#dc6900}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-active{background-color:#dc6900}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-active .dx-list-slide-item-content{background-color:#dc6900}.dx-list-item.dx-list-item-ghost-reordering.dx-state-focused.dx-state-hover{border-top:1px solid rgba(239,213,189,.5);border-bottom:1px solid rgba(239,213,189,.5)}.dx-list-slide-menu-button-menu{background-color:#dc6900}.dx-checkbox.dx-state-hover .dx-checkbox-icon{border:1px solid rgba(239,213,189,.5)}.dx-checkbox.dx-state-focused .dx-checkbox-icon{border:1px solid rgba(239,213,189,.5)}.dx-treeview .dx-treeview-node.dx-treeview-item-with-checkbox.dx-state-focused>.dx-checkbox .dx-checkbox-icon{border:1px solid rgba(239,213,189,1)}.wrapper{overflow:hidden}.page-wrapper{position:static;overflow:hidden}.tree-i{padding:0 5px;vertical-align:middle;outline-color:#fff}.navbar-custom{width:250px;position:static;border:none;float:left}.navbar-custom-top{top:0;height:55px;position:fixed;width:100%;border:none;background-color:#602320;z-index:1000}.nav-container{position:relative;width:100%;height:100%;font-size:17px;font-family:"Microsoft YaHei Bold","Microsoft YaHei Regular","Microsoft YaHei";color:#fff;padding-left:30px}.nav-element-left{font-size:15px;position:relative;float:left;height:55px;line-height:55px;width:155px;text-align:center}.nav-element-right{position:relative;float:right;height:55px;line-height:55px;margin-right:20px;text-align:center}.nav-element-right a{text-decoration:none;display:inline-block;height:50px;width:50px}.nav-element-right a:hover i{color:#e0301e}.nav-element-left a{text-decoration:none;display:inline-block;height:100%;width:100%}.nav-element-left a:hover{color:#fff;background-color:#833836}.nav-element-left a.active{background-color:#e0301e;color:#fff}.nav-sub-container{height:55px;background-color:#fff;box-shadow:2px 2px 4px #946d6d;display:none}.nav-sub-container:after{border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid #fff;content:" ";position:relative;top:-28px;height:0;width:0}.nav-sub-container.first{padding-left:136px}.nav-sub-container.second{padding-left:550px}.nav-sub-container.first:after{left:-740px}.nav-sub-container.second:after{left:-160px}.nav-sub-container .element-left{font-size:15px;position:relative;float:left;height:55px;line-height:55px;width:140px;text-align:center}.nav-sub-container .element-right{position:relative;float:right;height:55px;line-height:55px;margin-right:20px;text-align:center}.nav-sub-container .element-left a{text-decoration:none;display:inline-block;height:100%;width:100%}.nav-sub-container .element-left a:hover{color:#e0301e}.nav-sub-container .element-left a.active{color:#e0301e}.nav-icon-color{color:#fff}.sidebar{width:250px!important}.nav-left{width:250px;height:70px}.nav>li>a.active{text-decoration:none;background-color:rgba(238,238,238,.38)!important}.nav>ul>li:focus,.nav>ul>li:hover{background-color:rgba(238,238,238,.38)!important}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:rgba(238,238,238,.38)!important}.project{float:left;margin:18px 10px}.project img{display:none}.project-info .progress-bar{background-color:#ffca00}.project-info{float:left;margin:15px 5px 0 0;color:#fff;font-size:13px;width:100px;margin-left:30px}.project-info .project-percentage{float:right;font-family:Arial}.project-info>div{margin-top:3px;margin-left:8px;font-family:'Arial Bold',Arial;font-weight:700;font-style:normal;font-size:20px;color:#fff}.custom-progress{background-color:#fff;height:5px;border-radius:0;box-shadow:none}.custom-progress .progress-bar{box-shadow:none}.custom-arrow{float:right;font-size:1.5em;line-height:55px;vertical-align:middle}.project-info .progress{margin-bottom:0}.nav-left .navbar-custom-button{border:none;float:right;margin:0 -2px 0 0;padding:3px 5px;display:block;color:#fff}.nav-left .navbar-custom-button:focus,.nav-left .navbar-custom-button:hover{opacity:.45}#sidebar-area>.nav>li>a{height:55px;padding:10px 15px 0 15px;color:#fff}.nav>li>a{line-height:55px;vertical-align:middle;padding:0 20px}.nav .menu-number{font-family:'Arial Bold',Arial;font-weight:700;font-style:normal;font-size:16px;color:#fff;overflow:hidden;float:left}.nav-second-level>li>a{height:55px;padding:0 15px 20px 15px;line-height:55px;color:#fff}.nav-second-level>li.active>a>i{color:#fff}.nav-second-level>li.active>a>span{color:#fff}.second-menu-title{margin-left:15px}.side-menu-title{margin-left:25px}.side-menu-title span{padding-left:10px}body.sidebar-closed .sidebar{width:70px!important}body.sidebar-closed .nav-left{width:70px!important}body.sidebar-closed .navbar-custom{width:70px}body.sidebar-closed .project{float:left;margin:18px 17px 5px 17px}body.sidebar-closed .number-toggler{text-align:center;line-height:60px;vertical-align:middle;float:none;margin:0;font-family:'Arial Bold',Arial;font-weight:700;font-style:normal;font-size:12px}body.sidebar-closed #sidebar-area>.nav>li>a{padding:0}body.sidebar-closed .nav-second-level>li>a{height:55px;padding:0;text-align:center;line-height:55px;color:#fff}body.sidebar-closed .nav-second-level>li{border-bottom:none;border-right:none}body.sidebar-closed .custom-arrow,body.sidebar-closed .project-toggler,body.sidebar-closed .second-menu-title,body.sidebar-closed .side-menu-title{display:none}.clear{clear:both}.page-nav-header{height:70px;background-color:#fff;border-bottom:1px solid #d4d4d4}.page-nav-header .vertical-align-middle{line-height:70px;height:70px;overflow:hidden;margin-left:42px}.page-nav-header .vertical-align-middle .page-nav-header-left{font-size:18px;float:left;padding:0 45px 0 0;border-right-style:solid;border-width:1px;border-color:#dadada}.login-user .profile-image{width:60px;border-radius:60px;height:60px;line-height:50px;vertical-align:middle;text-align:center;margin:0 auto;border:1px solid #fff;margin-top:16px}.login-user .profile-image i{font-size:35px}.login-user-below .ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#fff}.profile-name{overflow:hidden;text-align:center;margin-top:6px}.profile-name i{vertical-align:middle}.profile-name :hover{cursor:pointer}.sidebar-closed .profile-image{width:40px;border-radius:40px;height:40px;line-height:35px;vertical-align:middle;text-align:center;margin:0 auto;border:1px solid #fff;margin-top:16px}.sidebar-closed .login-user .profile-image i{font-size:22px}.busy-indicator-container{width:100%;height:100%;background-color:rgba(0,0,0,.6);position:fixed;top:0;left:0;bottom:0;right:0;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;transition:all .3s ease;z-index:9000;opacity:.6}.busy-indicator{margin:17% 45%}input[type=text]::-ms-clear{display:none}.nav-element-right .user-info{outline:0}.nav-element-right .user-menu{line-height:40px;border:1px solid #d4d4d4;background-color:#fff;display:none;width:100px;position:absolute;top:55px;left:0;color:#333;border-radius:5px 5px;-webkit-border-radius:5px 5px;-moz-border-radius:5px 5px;box-shadow:4px 4px 4px #7b7a7a;-webkit-box-shadow:4px 4px 4px #7b7a7a;-moz-box-shadow:4px 4px 4px #7b7a7a}.nav-element-right .user-menu p{text-align:center;height:30px;line-height:30px;margin:0;font-size:15px}.nav-element-right .user-menu p:hover{background-color:#efe1df}.nav-element-right .user-menu a{text-decoration:none;width:100%;height:30px}.tree-view{padding-top:20px;padding-left:15px;border-right:1px solid #e7e7e7;width:257px;min-height:720px}.expander-container{display:inline-block;margin-left:-22px}.angular-ui-tree-handle input[type=checkbox]{margin-right:4px;vertical-align:top}.tree-expander{vertical-align:top;cursor:pointer}.tree-menu-item{display:inline-block}.expander{float:left;line-height:44px;margin-left:-10px}@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:local('Material Icons'),local('MaterialIcons-Regular'),url(/Content/icons/MaterialIcons-Regular.woff) format('woff'),url(/Content/icons/MaterialIcons-Regular.woff2) format('woff2'),url(/Content/icons/MaterialIcons-Regular.ttf) format('truetype')}.material-icons{font-family:'Material Icons';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:'liga'}.button-icons{vertical-align:middle;margin-right:10px;font-size:18px}.primary-toolbar-icons{vertical-align:middle;margin-right:10px;font-size:18px;color:#dc6900}.toolbar-icons{vertical-align:middle;margin-right:10px;font-size:18px}.menu-icons{vertical-align:middle;font-size:18px}.abn-tree-animate-enter,li.abn-tree-row.ng-enter{transition:.2s linear all;position:relative;display:block;opacity:0;max-height:0}.abn-tree-animate-enter.abn-tree-animate-enter-active,li.abn-tree-row.ng-enter-active{opacity:1;max-height:30px}.abn-tree-animate-leave,li.abn-tree-row.ng-leave{transition:.2s linear all;position:relative;display:block;height:30px;max-height:30px;opacity:1}.abn-tree-animate-leave.abn-tree-animate-leave-active,li.abn-tree-row.ng-leave-active{height:0;max-height:0;opacity:0}ul.abn-tree li.abn-tree-row .disabled-item{color:#888}ul.abn-tree li.abn-tree-row{padding:5px;margin:0}ul.abn-tree li.abn-tree-row a{font-weight:400;font-style:normal;font-size:14px;color:#333!important;border-radius:4px;height:28px;line-height:28px}ul.abn-tree li.abn-tree-row a i{vertical-align:middle}ul.abn-tree i.indented{padding:2px}.abn-tree{cursor:pointer}ul.nav.abn-tree .level-1 .indented{position:relative;left:0}ul.nav.abn-tree .level-2 .indented{position:relative;left:20px}ul.nav.abn-tree .level-3 .indented{position:relative;left:40px}ul.nav.abn-tree .level-4 .indented{position:relative;left:60px}ul.nav.abn-tree .level-5 .indented{position:relative;left:80px}ul.nav.abn-tree .level-6 .indented{position:relative;left:100px}ul.nav.nav-list.abn-tree .level-7 .indented{position:relative;left:120px}ul.nav.nav-list.abn-tree .level-8 .indented{position:relative;left:140px}ul.nav.nav-list.abn-tree .level-9 .indented{position:relative;left:160px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover,.nav-pills>li.active>a>i,.nav-pills>li.active>a>i:focus,.nav-pills>li.active>a>i:hover,.nav-pills>li.active>a>span,.nav-pills>li.active>a>span:focus,.nav-pills>li.active>a>span:hover{color:#fff!important;background-color:#dc6900!important}.content-padding{padding-left:30px;padding-top:10px;padding-right:10px;padding-bottom:10px}.popover{max-width:none}.header-bar{padding-left:30px;padding-top:20px}.header-info{display:inline-block;padding-top:10px}.header-split{margin-left:20px;margin-right:20px;font-weight:100;font-family:aria;color:#a39f99}.number-cell{font-family:Arial;text-align:right}.check-cell{text-align:center}.number-header-cell{text-align:right;padding-left:8px}.ui-grid-header-cell-row{background-color:#727671;color:#fff;font-weight:400}.ui-grid-cell-contents{padding:12px;line-height:1.42857143;font-size:14px}.ui-grid-cell{border-bottom:1px solid #d4d4d4;cursor:pointer}.ui-grid-row.ui-grid-row-selected>[ui-grid-row]>.ui-grid-cell{background-color:#fed5a9}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-cell:last-child{border-right-color:#d4d4d4}.ui-grid-row .ui-grid-cell.ui-grid-row-header-cell{background-color:none}.ui-grid-invisible{display:none}
\ No newline at end of file
.account-tree-wrapper{display:inline-block}.account-tree-container{overflow-y:scroll;max-height:500px;width:250px;position:absolute;background-color:#fff;-moz-box-shadow:0 10px 20px #000;-webkit-box-shadow:0 10px 20px #000;box-shadow:0 10px 20px #000}.selector-input{width:250px}.account-tree .angular-ui-tree-handle{margin-bottom:0}.account-tree .expander{line-height:initial}.account-tree .angular-ui-tree-node .angular-ui-tree-node .angular-ui-tree-handle:hover{background-color:#ccc}.menu-tree-wrapper{display:inline-block}.menu-tree-container{overflow-y:scroll;overflow-x:hidden;max-height:150px;width:250px;position:absolute;z-index:2;background-color:#fff;-moz-box-shadow:0 10px 20px #000;-webkit-box-shadow:0 10px 20px #000;box-shadow:0 10px 20px #000}.selector-input{width:250px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.menu-tree-wrapper .tree-view{padding:10px 0 0 0;min-height:150px}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
.import-trial-balance .weight-normal{font-weight:400}.import-trial-balance{height:700px;overflow-y:auto;background-color:#fff}.import-trial-balance .title-normal{font-weight:bolder;font-size:20px}.import-trial-balance .weight-normal{font-weight:bolder;font-size:14px}.import-trial-balance .nav-button{background-color:#d3d3d3;width:106px}.import-trial-balance .nav-button:hover{background-color:red;color:#fff}.import-trial-balance .import-button{background-color:red}.import-trial-balance .import-button:hover{color:#fff}.import-trial-balance .a-border{border:none}.import-trial-balance .table-container{padding-top:30px;padding-left:20px;padding-right:20px;padding-bottom:30px}.import-trial-balance .table-gray-header thead tr{background-color:#e7e5e2;color:#000}.import-trial-balance .table-gray-header tbody tr td:first-child{text-align:center}.import-trial-balance .operation-row{background-color:#fff!important}.import-trial-balance .operation-row td{padding:0!important}.import-trial-balance .table-bordered>thead>tr>th{border:none}.import-trial-balance .dropdown-wrapper{display:inline-block;width:100%}.import-trial-balance .dropdown-wrapper>.btn-white{width:100%;text-align:left}.import-trial-balance .btn-white,.import-trial-balance .btn-white:active,.import-trial-balance .btn-white:focus,.import-trial-balance .btn-white:hover,.import-trial-balance .open>.dropdown-toggle.btn-white{background-color:#fff;border-color:#fff;color:#000}.import-trial-balance .caret-outer{float:right;display:inline-block;height:25px;width:25px;background-color:#dc6900}.import-trial-balance .caret-import-inner-data{color:#fff;margin-top:4px;border-top:6px dashed;border-right:6px solid transparent;border-left:6px solid transparent;margin-left:6px!important}.import-trial-balance .table-error{max-height:400px;padding-top:30px;padding-left:20px;padding-right:20px;overflow:scroll}
\ No newline at end of file
......@@ -15,6 +15,7 @@
"grunt-contrib-copy": "^1.0.0",
"grunt-contrib-cssmin": "^3.0.0",
"grunt-contrib-less": "1.4.1",
"grunt-contrib-uglify": "^4.0.0"
"grunt-contrib-uglify": "^4.0.0",
"grunt-contrib-watch": "^1.1.0"
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment