Commit 63aac1da authored by ken.q.you's avatar ken.q.you

Ken

待处理及之前的功能完善
parent b4d69ee4
package pwc.taxtech.atms.common.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import org.apache.commons.lang.StringUtils;
/**
* 日期工具类
*
*/
public class DateUtil {
// 默认日期格式
public static final String DATE_DEFAULT_FORMAT = "yyyy/MM/dd";
// 默认时间格式
public static final String DATETIME_DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static final String TIME_DEFAULT_FORMAT = "HH:mm:ss";
// 日期格式化
private static DateFormat dateFormat = null;
// 时间格式化
private static DateFormat dateTimeFormat = null;
private static DateFormat timeFormat = null;
private static Calendar gregorianCalendar = null;
static {
dateFormat = new SimpleDateFormat(DATE_DEFAULT_FORMAT);
dateTimeFormat = new SimpleDateFormat(DATETIME_DEFAULT_FORMAT);
timeFormat = new SimpleDateFormat(TIME_DEFAULT_FORMAT);
gregorianCalendar = new GregorianCalendar();
}
/**
* 日期格式化yyyy-MM-dd
*
* @param date
* @return
*/
public static Date formatDate(String date, String format) {
try {
return new SimpleDateFormat(format).parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
/**
* 日期格式化yyyy-MM-dd
*
* @param date
* @return
*/
public static String getDateFormat(Date date) {
return dateFormat.format(date);
}
/**
* 日期格式化yyyy-MM-dd HH:mm:ss
*
* @param date
* @return
*/
public static String getDateTimeFormat(Date date) {
return dateTimeFormat.format(date);
}
/**
* 时间格式化
*
* @param date
* @return HH:mm:ss
*/
public static String getTimeFormat(Date date) {
return timeFormat.format(date);
}
/**
* 日期格式化
*
* @param date
* @param 格式类型
* @return
*/
public static String getDateFormat(Date date, String formatStr) {
if (StringUtils.isNotBlank(formatStr)) {
return new SimpleDateFormat(formatStr).format(date);
}
return null;
}
/**
* 日期格式化
*
* @param date
* @return
*/
public static Date getDateFormat(String date) {
try {
return dateFormat.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
/**
* 时间格式化
*
* @param date
* @return
*/
public static Date getDateTimeFormat(String date) {
try {
return dateTimeFormat.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
/**
* 获取当前日期(yyyy-MM-dd)
*
* @param date
* @return
*/
public static Date getNowDate() {
return DateUtil.getDateFormat(dateFormat.format(new Date()));
}
/**
* 获取当前日期星期一日期
*
* @return date
*/
public static Date getFirstDayOfWeek() {
gregorianCalendar.setFirstDayOfWeek(Calendar.MONDAY);
gregorianCalendar.setTime(new Date());
gregorianCalendar.set(Calendar.DAY_OF_WEEK, gregorianCalendar.getFirstDayOfWeek()); // Monday
return gregorianCalendar.getTime();
}
/**
* 获取当前日期星期日日期
*
* @return date
*/
public static Date getLastDayOfWeek() {
gregorianCalendar.setFirstDayOfWeek(Calendar.MONDAY);
gregorianCalendar.setTime(new Date());
gregorianCalendar.set(Calendar.DAY_OF_WEEK, gregorianCalendar.getFirstDayOfWeek() + 6); // Monday
return gregorianCalendar.getTime();
}
/**
* 获取日期星期一日期
*
* @param 指定日期
* @return date
*/
public static Date getFirstDayOfWeek(Date date) {
if (date == null) {
return null;
}
gregorianCalendar.setFirstDayOfWeek(Calendar.MONDAY);
gregorianCalendar.setTime(date);
gregorianCalendar.set(Calendar.DAY_OF_WEEK, gregorianCalendar.getFirstDayOfWeek()); // Monday
return gregorianCalendar.getTime();
}
/**
* 获取日期星期一日期
*
* @param 指定日期
* @return date
*/
public static Date getLastDayOfWeek(Date date) {
if (date == null) {
return null;
}
gregorianCalendar.setFirstDayOfWeek(Calendar.MONDAY);
gregorianCalendar.setTime(date);
gregorianCalendar.set(Calendar.DAY_OF_WEEK, gregorianCalendar.getFirstDayOfWeek() + 6); // Monday
return gregorianCalendar.getTime();
}
/**
* 获取当前月的第一天
*
* @return date
*/
public static Date getFirstDayOfMonth() {
gregorianCalendar.setTime(new Date());
gregorianCalendar.set(Calendar.DAY_OF_MONTH, 1);
return gregorianCalendar.getTime();
}
/**
* 获取当前月的最后一天
*
* @return
*/
public static Date getLastDayOfMonth() {
gregorianCalendar.setTime(new Date());
gregorianCalendar.set(Calendar.DAY_OF_MONTH, 1);
gregorianCalendar.add(Calendar.MONTH, 1);
gregorianCalendar.add(Calendar.DAY_OF_MONTH, -1);
return gregorianCalendar.getTime();
}
/**
* 获取指定月的第一天
*
* @param date
* @return
*/
public static Date getFirstDayOfMonth(Date date) {
gregorianCalendar.setTime(date);
gregorianCalendar.set(Calendar.DAY_OF_MONTH, 1);
return gregorianCalendar.getTime();
}
/**
* 获取指定月的最后一天
*
* @param date
* @return
*/
public static Date getLastDayOfMonth(Date date) {
gregorianCalendar.setTime(date);
gregorianCalendar.set(Calendar.DAY_OF_MONTH, 1);
gregorianCalendar.add(Calendar.MONTH, 1);
gregorianCalendar.add(Calendar.DAY_OF_MONTH, -1);
return gregorianCalendar.getTime();
}
/**
* 获取日期前一天
*
* @param date
* @return
*/
public static Date getDayBefore(Date date) {
gregorianCalendar.setTime(date);
int day = gregorianCalendar.get(Calendar.DATE);
gregorianCalendar.set(Calendar.DATE, day - 1);
return gregorianCalendar.getTime();
}
/**
* 获取日期后一天
*
* @param date
* @return
*/
public static Date getDayAfter(Date date) {
gregorianCalendar.setTime(date);
int day = gregorianCalendar.get(Calendar.DATE);
gregorianCalendar.set(Calendar.DATE, day + 1);
return gregorianCalendar.getTime();
}
/**
* 获取当前年
*
* @return
*/
public static int getNowYear() {
Calendar d = Calendar.getInstance();
return d.get(Calendar.YEAR);
}
/**
* 获取当前月份
*
* @return
*/
public static int getNowMonth() {
Calendar d = Calendar.getInstance();
return d.get(Calendar.MONTH) + 1;
}
/**
* 获取当月天数
*
* @return
*/
public static int getNowMonthDay() {
Calendar d = Calendar.getInstance();
return d.getActualMaximum(Calendar.DATE);
}
/**
* 获取时间段的每一天
*
* @param 开始日期
* @param 结算日期
* @return 日期列表
*/
public static List<Date> getEveryDay(Date startDate, Date endDate) {
if (startDate == null || endDate == null) {
return null;
}
// 格式化日期(yy-MM-dd)
startDate = DateUtil.getDateFormat(DateUtil.getDateFormat(startDate));
endDate = DateUtil.getDateFormat(DateUtil.getDateFormat(endDate));
List<Date> dates = new ArrayList<Date>();
gregorianCalendar.setTime(startDate);
dates.add(gregorianCalendar.getTime());
while (gregorianCalendar.getTime().compareTo(endDate) < 0) {
// 加1天
gregorianCalendar.add(Calendar.DAY_OF_MONTH, 1);
dates.add(gregorianCalendar.getTime());
}
return dates;
}
/**
* 获取提前多少个月
*
* @param monty
* @return
*/
public static Date getFirstMonth(int monty) {
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, -monty);
return c.getTime();
}
}
package pwc.taxtech.atms.common.util;
import pwc.taxtech.atms.constant.enums.CodeEnum;
/**
* 枚举工具类,根据code拿bean
* @author Ken Q You
*
*/
public class EnumUtil {
public static <T extends CodeEnum> T getByCode(Integer code, Class<T> enumClass) {
if(code!=null) {
for (T each: enumClass.getEnumConstants()) {
if (code.equals(each.getCode())) {
return each;
}
}
}
return null;
}
}
package pwc.taxtech.atms.constant.enums;
public interface CodeEnum {
Integer getCode();
}
\ No newline at end of file
package pwc.taxtech.atms.constant.enums;
public enum EnumInputInvoiceEntityType {
/**
*
* @author Ken Q You
*
*/
public enum EnumInputInvoiceEntityType implements CodeEnum{
InvoicePaperTicket(1,"纸票"),
InvoiceElectronicTicket(2,"电子票"),
InvoiceUnKnown(99,"未知");
InvoiceElectronicTicket(2,"电子票");
//InvoiceUnKnown(99,"未知");
private int code;
private Integer code;
private String name;
public int getCode() {
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
EnumInputInvoiceEntityType(int code, String name) {
EnumInputInvoiceEntityType(Integer code, String name) {
this.code = code;
this.name = name;
}
}
......@@ -5,7 +5,7 @@ package pwc.taxtech.atms.constant.enums;
* @author Ken Q You
*
*/
public enum EnumInputInvoiceRefundReason {
public enum EnumInputInvoiceRefundReason implements CodeEnum{
FakeInvoice(1),
InvoicePackage(2),
......
package pwc.taxtech.atms.constant.enums;
public enum EnumInputInvoiceSourceType {
InvoiceRawMaterialPurchase(1,"原料采购"),
InvoiceNonRawMaterialPurchase(2,"非原料集中采购"),
InvoiceClaim(3,"报销"),
InvoiceStampIncorrect(4,"发票章错误"),
InvoiceUnKnown(99,"未知");
private int code;
/**
*
* @author Ken Q You
*
*/
public enum EnumInputInvoiceSourceType implements CodeEnum{
InvoiceExpenseControlSys(5,"费控系统"),
InvoiceNonExpenseControlSys(6,"非费控系统"),
InvoiceCertificationClean(7,"认证清理");
private Integer code;
private String name;
public int getCode() {
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
EnumInputInvoiceSourceType(int code, String name) {
EnumInputInvoiceSourceType(Integer code, String name) {
this.code = code;
this.name = name;
}
}
}
package pwc.taxtech.atms.constant.enums;
public enum EnumInputInvoiceStatusType {
public enum EnumInputInvoiceStatusType implements CodeEnum{
InvoiceHasUpload(1,"已上传"),
InvoiceUnrecognize(3,"无法识别"),
InvoiceHasRefund(4,"已退票"),
InvoiceVerifyFailure(6,"验真失败"),
InvoicePendingMatc(7,"待匹配"),
InvoiceHasMatch(8,"已匹配"),
InvoicePendingVerify(9,"待认证"),
InvoiceHasVerify(10,"已认证"),
InvoiceUnableVerify(11,"无法认证"),
InvoiceHasClean(13,"已清理"),
InvoiceHasExpired(14,"已失效"),
InvoicePendingRefund(16,"待退票"),
InvoiceDuplicate(18,"已重复"),
InvoiceRecognizeInProgress(100,"正在识别");
private int code;
InvoicePendingVerify(9,"待验真"),
InvoiceVerifyFailure(6,"验真失败"),
InvoiceUnableVerify(11,"无法验真"),
InvoiceHasRefund(4,"已退票"),
InvoicePendingMatch(7,"待匹配"),
InvoiceMatchFailure(23,"匹配失败"),
InvoicePendingAuthenticate(24,"待认证"),
InvoiceHasAuthenticate(25,"已认证"),
InvoiceUnableAuthenticate(26,"无法认证"),
InvoiceHasManualAuthenticate(27,"已手动认证"),
InvoiceHasClean(13,"已清理"),
InvoiceHasExpired(14,"已失效");
private Integer code;
private String name;
public int getCode() {
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
EnumInputInvoiceStatusType(int code, String name) {
EnumInputInvoiceStatusType(Integer code, String name) {
this.code = code;
this.name = name;
}
}
}
package pwc.taxtech.atms.constant.enums;
public enum EnumInputInvoiceType {
/**
*
* @author Ken Q You
*
*/
public enum EnumInputInvoiceType implements CodeEnum{
VatInvoiceSpecialTicket(1, "增值税专用发票"),
VatInvoiceOrdinaryTicketl(2, "增值税普通发票");
private int code;
VatInvoiceOrdinaryTicket(2, "增值税普通发票");
private Integer code;
private String name;
public int getCode() {
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
private EnumInputInvoiceType(int code, String name) {
EnumInputInvoiceType(Integer code, String name) {
this.code = code;
this.name = name;
}
}
}
package pwc.taxtech.atms.constant.enums;
public enum EnumInputInvoiceUploadType {
public enum EnumInputInvoiceUploadType implements CodeEnum{
InvoiceModePDF(1,"PDF上传"),
InvoiceModeScan(2,"扫描上传"),
InvoiceModeMobileDevice(3,"扫描枪上传"),
InvoiceFromAPI(4,"未认证发票来自接口");
private int code;
private Integer code;
private String name;
public int getCode() {
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
EnumInputInvoiceUploadType(int code, String name) {
EnumInputInvoiceUploadType(Integer code, String name) {
this.code = code;
this.name = name;
}
......
......@@ -7,24 +7,28 @@ import org.joda.time.Years;
* @author Ken Q You
*
*/
public enum EnumIsIncludedInTaxAmountType {
public enum EnumIsIncludedInTaxAmountType implements CodeEnum{
Year(1,"是"),
No(2,"否"),
NotRecognized(3,"未识别"),
Partial(4,"部分计入进项税额");
private int code;
private Integer code;
private String name;
public int getCode() {
return code;
}
public String getName() {
return name;
}
EnumIsIncludedInTaxAmountType(int code, String name) {
public Integer getCode() {
return code;
}
EnumIsIncludedInTaxAmountType(Integer code, String name) {
this.code = code;
this.name = name;
}
}
......@@ -5,7 +5,7 @@ package pwc.taxtech.atms.constant.enums;
* @author Ken Q You
*
*/
public enum EnumProductionServiceType {
public enum EnumProductionServiceType implements CodeEnum{
AcquireIntangibleAssets(1,"取得无形资产"),
TheRightToUseTheLand(2,"受让土地使用权"),
TransportService(3,"运输服务"),
......@@ -16,17 +16,21 @@ public enum EnumProductionServiceType {
FinancialInsuranceService(8,"金融保险服务"),
ServiceForLife(9,"生活服务");
private int code;
private Integer code;
private String name;
public int getCode() {
return code;
}
public String getName() {
return name;
}
EnumProductionServiceType(int code, String name) {
public Integer getCode() {
return code;
}
EnumProductionServiceType(Integer code, String name) {
this.code = code;
this.name = name;
}
}
......@@ -4,7 +4,7 @@ package pwc.taxtech.atms.constant.enums;
* @author Ken Q You
*
*/
public enum EnumProductionType {
public enum EnumProductionType implements CodeEnum{
RawMaterialForProduce(1,"用于生产的原材料"),
RawMaterialForSale(2,"用于直接销售的原材料"),
FixedAssetsMovable(3,"固定资产-动产"),
......@@ -16,15 +16,15 @@ public enum EnumProductionType {
GoodsAndProcessingRepairAndRepairServices(9,"货物及加工修理修配劳务"),
Other(10,"其他");
private int code;
private Integer code;
private String name;
public int getCode() {
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
EnumProductionType(int code, String name) {
EnumProductionType(Integer code, String name) {
this.code = code;
this.name = name;
}
......
package pwc.taxtech.atms.constant.enums;
public enum EnumVerifyWay implements CodeEnum {
OCRVerify(1,"OCR"),
SecondVerify(2,"二次验真"),
ManualVerify(3,"手动验真")
;
private Integer code;
private String name;
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
EnumVerifyWay(Integer code, String name) {
this.code = code;
this.name = name;
}
}
package pwc.taxtech.atms.controller.input;
import org.apache.commons.net.nntp.NewGroupsOrNewsQuery;
import org.apache.http.HttpStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
......@@ -7,8 +8,10 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.github.junrar.unpack.decode.LitDecode;
import com.github.pagehelper.PageHelper;
import io.swagger.annotations.ApiOperation;
......@@ -17,6 +20,7 @@ import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.input.CamelPagingDto;
import pwc.taxtech.atms.dto.input.CamelPagingResultDto;
import pwc.taxtech.atms.dto.input.InputInvoiceDto;
import pwc.taxtech.atms.dto.input.InputInvoiceItemDto;
import pwc.taxtech.atms.dto.input.InputInvoiceQueryDto;
import pwc.taxtech.atms.dto.input.InvoiceFilterDto;
import pwc.taxtech.atms.dto.vatdto.CustomsInvoiceFilter;
......@@ -31,6 +35,7 @@ import pwc.taxtech.atms.thirdparty.ExcelUtil;
import java.io.IOException;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -61,6 +66,22 @@ public class InvoiceManageController extends BaseController {
return resultDto;
}
@ApiOperation(value="根据发票查询所有货物")
@ResponseBody
@RequestMapping(value="getInputInvoiceItemList",method=RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public List<InputInvoiceItemDto> getInputInvoiceItemList(@RequestParam("inputInvoiceId") String inputInvoiceId){
List<InputInvoiceItemDto> inputInvoiceItemDtos=new ArrayList<InputInvoiceItemDto>();
try {
if(inputInvoiceId!=null)
inputInvoiceItemDtos=invoiceManageService.getInputInvoiceItemList(inputInvoiceId);
} catch (Exception e) {
logger.error("getInputInvoiceList error.",e);
}
return inputInvoiceItemDtos;
}
@RequestMapping(value = "exportInputInvoiceList", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public void downloadInvoiceQueryData(@RequestBody InputInvoiceQueryDto inputInvoiceQueryDto, HttpServletResponse response) {
response.setContentType("application/vnd.ms-excel;charset=utf-8");
......@@ -71,7 +92,7 @@ public class InvoiceManageController extends BaseController {
try {
os = response.getOutputStream();
int count = getDownloadFilePath(inputInvoiceQueryDto, os);
System.out.println(count);
if(count==0){
response.setStatus(HttpStatus.SC_NO_CONTENT);
}
......@@ -88,7 +109,7 @@ public class InvoiceManageController extends BaseController {
List<InputInvoiceDto> list = invoiceManageService.getInputInvoiceDtoList(inputInvoiceQueryDto);
if(list.size()>0) {
for(InputInvoiceDto i:list) {
System.out.println(i.getBuyerName());
System.out.println(i.getBuyerName()+"11111");
}
}
if (list.size() == 0) {
......@@ -96,18 +117,18 @@ public class InvoiceManageController extends BaseController {
}
Map<String, String> header = new HashMap<>();
header.put("invoiceCode", "发票代码");
header.put("invoiceNumber", "发票号码");
header.put("invoiceDate", "开票日期");
header.put("buyerTaxNumber", "购方税号");
header.put("buyerName", "购方企业名称");
header.put("sellerTaxNumber", "销售方税号");
header.put("sellerName", "销售方名称");
header.put("amount", "票面金额(不含税)");
header.put("taxAmount", "税额");
header.put("InvoiceCode", "发票代码123");
header.put("InvoiceNumber", "发票号码");
header.put("InvoiceDate", "开票日期");
header.put("BuyerTaxNumber", "购方税号");
header.put("BuyerName", "购方企业名称");
header.put("SellerTaxNumber", "销售方税号");
header.put("SellerName", "销售方名称");
header.put("Amount", "票面金额(不含税)");
header.put("TaxAmount", "税额");
//header.put(" ", "票面金额(含税)");
header.put("invoiceType", "发票类型");
header.put("uploadType", "上传方式");
header.put("InvoiceType", "发票类型");
header.put("UploadType", "上传方式");
header.put("UploadDate", "上传日期");
header.put("InvoiceEntityType", "发票实体");
header.put("InvoiceSourceType", "发票来源");
......
......@@ -105,4 +105,6 @@ public interface InputInvoiceItemMapper extends MyMapper {
* @mbg.generated
*/
int updateByPrimaryKey(InputInvoiceItem record);
List<InputInvoiceItem> selectByInputInvoiceId(String inputInvoiceId);
}
\ No newline at end of file
package pwc.taxtech.atms.dao;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import pwc.taxtech.atms.MyMapper;
import pwc.taxtech.atms.entitiy.InputInvoice;
import pwc.taxtech.atms.entitiy.InputInvoiceExample;
......@@ -137,4 +139,5 @@ public interface InputInvoiceMapper extends MyMapper {
* @mbg.generated
*/
int updateByPrimaryKey(InputInvoice record);
}
\ No newline at end of file
......@@ -3,9 +3,12 @@ package pwc.taxtech.atms.dto.input;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonProperty;
import pwc.taxtech.atms.thirdparty.ExcelCell;
public class InputInvoiceDto {
private Long id;
//发票关联文件ID
......@@ -66,13 +69,17 @@ public class InputInvoiceDto {
private BigDecimal taxAmount;
//加税合计大写
@JsonProperty("totalPriceUpperCase")
private String totalPriceUppercase;
//加税合计小写
@JsonProperty("totalPriceLowerCase")
private BigDecimal totalPriceLowercase;
//发票类型
private Integer invoiceType;
private String isRedInvoice;
//上传类别
private Integer uploadType;
......@@ -95,6 +102,29 @@ public class InputInvoiceDto {
//状态
private Integer status;
private String createBy;
private String updateBy;
private Date createTime;
private Date updateTime;
private String invoiceEntityTypeString;
private String invoiceSourceTypeString;
private String invoiceTypeString;
private String uploadTypeString;
private String verifyTypeString;
private String statusString;
private Integer productionType;
private Integer invoicePeriod;
private Integer serviceType;
private Integer isIncludedInTaxAmount;
//抵扣区间
private String deductiblePeriod;
......@@ -119,8 +149,6 @@ public class InputInvoiceDto {
private Integer deductibleResult;
private Boolean isRedInvoice;
//备注
private String remark;
......@@ -429,12 +457,110 @@ public class InputInvoiceDto {
this.deductibleResult = deductibleResult;
}
public Boolean getIsRedInvoice() {
return isRedInvoice;
public String getCreateBy() {
return createBy;
}
public void setIsRedInvoice(Boolean isRedInvoice) {
this.isRedInvoice = isRedInvoice;
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getInvoiceEntityTypeString() {
return invoiceEntityTypeString;
}
public void setInvoiceEntityTypeString(String invoiceEntityTypeString) {
this.invoiceEntityTypeString = invoiceEntityTypeString;
}
public String getInvoiceSourceTypeString() {
return invoiceSourceTypeString;
}
public void setInvoiceSourceTypeString(String invoiceSourceTypeString) {
this.invoiceSourceTypeString = invoiceSourceTypeString;
}
public String getInvoiceTypeString() {
return invoiceTypeString;
}
public void setInvoiceTypeString(String invoiceTypeString) {
this.invoiceTypeString = invoiceTypeString;
}
public String getUploadTypeString() {
return uploadTypeString;
}
public void setUploadTypeString(String uploadTypeString) {
this.uploadTypeString = uploadTypeString;
}
public String getVerifyTypeString() {
return verifyTypeString;
}
public void setVerifyTypeString(String verifyTypeString) {
this.verifyTypeString = verifyTypeString;
}
public Integer getProductionType() {
return productionType;
}
public void setProductionType(Integer productionType) {
this.productionType = productionType;
}
public Integer getInvoicePeriod() {
return invoicePeriod;
}
public void setInvoicePeriod(Integer invoicePeriod) {
this.invoicePeriod = invoicePeriod;
}
public Integer getServiceType() {
return serviceType;
}
public void setServiceType(Integer serviceType) {
this.serviceType = serviceType;
}
public Integer getIsIncludedInTaxAmount() {
return isIncludedInTaxAmount;
}
public void setIsIncludedInTaxAmount(Integer isIncludedInTaxAmount) {
this.isIncludedInTaxAmount = isIncludedInTaxAmount;
}
public String getRemark() {
......@@ -444,4 +570,20 @@ public class InputInvoiceDto {
public void setRemark(String remark) {
this.remark = remark;
}
public String getIsRedInvoice() {
return isRedInvoice;
}
public void setIsRedInvoice(String isRedInvoice) {
this.isRedInvoice = isRedInvoice;
}
public String getStatusString() {
return statusString;
}
public void setStatusString(String statusString) {
this.statusString = statusString;
}
}
package pwc.taxtech.atms.dto.input;
import java.math.BigDecimal;
import java.util.Date;
public class InputInvoiceItemDto {
private String id;
private String inputInvoiceID;
private String invoiceCode;
private String invoiceNumber;
public Integer productionType;
public Integer serviceType ;
private String productionName;
private String specification;
private String unit;
private String quantity ;
private String unitPrice;
public BigDecimal amount;
public BigDecimal taxRate;
public BigDecimal taxAmount;
private String remark;
private String createBy;
private String updateBy;
public Date createTime ;
public Date updateTime ;
public Integer rowNo ;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getInputInvoiceID() {
return inputInvoiceID;
}
public void setInputInvoiceID(String inputInvoiceID) {
this.inputInvoiceID = inputInvoiceID;
}
public String getInvoiceCode() {
return invoiceCode;
}
public void setInvoiceCode(String invoiceCode) {
this.invoiceCode = invoiceCode;
}
public String getInvoiceNumber() {
return invoiceNumber;
}
public void setInvoiceNumber(String invoiceNumber) {
this.invoiceNumber = invoiceNumber;
}
public Integer getProductionType() {
return productionType;
}
public void setProductionType(Integer productionType) {
this.productionType = productionType;
}
public Integer getServiceType() {
return serviceType;
}
public void setServiceType(Integer serviceType) {
this.serviceType = serviceType;
}
public String getProductionName() {
return productionName;
}
public void setProductionName(String productionName) {
this.productionName = productionName;
}
public String getSpecification() {
return specification;
}
public void setSpecification(String specification) {
this.specification = specification;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getQuantity() {
return quantity;
}
public void setQuantity(String quantity) {
this.quantity = quantity;
}
public String getUnitPrice() {
return unitPrice;
}
public void setUnitPrice(String unitPrice) {
this.unitPrice = unitPrice;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public BigDecimal getTaxRate() {
return taxRate;
}
public void setTaxRate(BigDecimal taxRate) {
this.taxRate = taxRate;
}
public BigDecimal getTaxAmount() {
return taxAmount;
}
public void setTaxAmount(BigDecimal taxAmount) {
this.taxAmount = taxAmount;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getRowNo() {
return rowNo;
}
public void setRowNo(Integer rowNo) {
this.rowNo = rowNo;
}
}
......@@ -6,9 +6,7 @@ import java.util.List;
public class InputInvoiceQuery {
public Date getInvoiceDateTo() {
return invoiceDateTo;
}
private Boolean isP2P;
private Boolean isP2PAndMailroom;
......@@ -22,15 +20,15 @@ public class InputInvoiceQuery {
private List<Integer> allInvoiceUploadType;
private String buyerName;
private Date invoiceDateFrom;
private Date invoiceDateTo;
private String invoiceDateFrom;
private String invoiceDateTo;
private String invoiceNumber;
private String invoiceCode;
private Integer status;
private Integer invoiceEntityType;
private String sellerName;
private Date uploadDateFrom;
private Date uploadDateTo;
private String uploadDateFrom;
private String uploadDateTo;
private BigDecimal amountFrom;
private BigDecimal amountTo;
private Integer invoiceType;
......@@ -93,16 +91,16 @@ public class InputInvoiceQuery {
public void setBuyerName(String buyerName) {
this.buyerName = buyerName;
}
public Date getInvoiceDateFrom() {
public String getInvoiceDateFrom() {
return invoiceDateFrom;
}
public void setInvoiceDateFrom(Date invoiceDateFrom) {
public void setInvoiceDateFrom(String invoiceDateFrom) {
this.invoiceDateFrom = invoiceDateFrom;
}
public Date UploadDateTo() {
public String getInvoiceDateTo() {
return invoiceDateTo;
}
public void setInvoiceDateTo(Date invoiceDateTo) {
public void setInvoiceDateTo(String invoiceDateTo) {
this.invoiceDateTo = invoiceDateTo;
}
public String getInvoiceNumber() {
......@@ -135,19 +133,18 @@ public class InputInvoiceQuery {
public void setSellerName(String sellerName) {
this.sellerName = sellerName;
}
public Date getUploadDateFrom() {
public String getUploadDateFrom() {
return uploadDateFrom;
}
public void setUploadDateFrom(Date uploadDateFrom) {
public void setUploadDateFrom(String uploadDateFrom) {
this.uploadDateFrom = uploadDateFrom;
}
public Date getUploadDateTo() {
public String getUploadDateTo() {
return uploadDateTo;
}
public void setUploadDateTo(Date uploadDateTo) {
public void setUploadDateTo(String uploadDateTo) {
this.uploadDateTo = uploadDateTo;
}
public BigDecimal getAmountFrom() {
return amountFrom;
}
......
......@@ -5,6 +5,7 @@ import java.util.List;
import pwc.taxtech.atms.dto.input.CamelPagingDto;
import pwc.taxtech.atms.dto.input.CamelPagingResultDto;
import pwc.taxtech.atms.dto.input.InputInvoiceDto;
import pwc.taxtech.atms.dto.input.InputInvoiceItemDto;
import pwc.taxtech.atms.dto.input.InputInvoiceQuery;
import pwc.taxtech.atms.dto.input.InputInvoiceQueryDto;
import pwc.taxtech.atms.dto.input.InvoiceFilterDto;
......@@ -39,5 +40,12 @@ public interface InvoiceManageService {
* @return
*/
InvoiceFilterDto getInvoiceFilterBasicData();
/**
* 根据发票查询所有货物
* @param inputInvoiceId
* @return
*/
List<InputInvoiceItemDto> getInputInvoiceItemList(String inputInvoiceId);
}
......@@ -493,4 +493,13 @@
order by ${orderByClause}
</if>
</select>
<select id="selectByInputInvoiceId" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from input_invoice_item
where input_invoice_id = #{inputInvoiceId,jdbcType=VARCHAR}
<![CDATA[
ORDER BY row_no ASC
]]>
</select>
</mapper>
\ No newline at end of file
package pwc.taxtech.atms.service.impl;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import java.text.ParseException;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.constant.enums.EnumInputInvoiceType;
import pwc.taxtech.atms.constant.enums.EnumTbImportType;
import pwc.taxtech.atms.dto.input.InputInvoiceQueryDto;
import pwc.taxtech.atms.service.InvoiceManageService;
public class InvoiceManageServiceImplTest extends CommonIT{
private static final Logger logger = LoggerFactory.getLogger(InvoiceManageServiceImplTest.class);
@Autowired
private InvoiceManageService invoiceManageService;
@Test
public void testGetInputInvoiceList() {
InputInvoiceQueryDto inputInvoiceQueryDto=new InputInvoiceQueryDto();
//inputInvoiceQueryDto.setBuyerBankName("aa");
//inputInvoiceQueryDto.setAmount(amount);
// inputInvoiceQueryDto.setInvoiceDate(new Date());
// inputInvoiceQueryDto.setInvoiceEntityType(1);
// inputInvoiceQueryDto.setInvoiceNumber("11");
// inputInvoiceQueryDto.setInvoiceSourceType(1);
// inputInvoiceQueryDto.setInvoiceType(1);
// inputInvoiceQueryDto.setSellerName("bb");
// inputInvoiceQueryDto.setSerialNo("sdada");
// inputInvoiceQueryDto.setStaffId("12231");
// inputInvoiceQueryDto.setStatus(1);
// inputInvoiceQueryDto.setUploadDate(new Date());
// inputInvoiceQueryDto.setUploadType(1);
// inputInvoiceQueryDto.setAmount(new BigDecimal(10));
// CamelPagingDto camelPagingDto=new CamelPagingDto();
// camelPagingDto.setPageIndex(1);
// camelPagingDto.setPageSize(10);
// inputInvoiceQueryDto.setPagingDto(camelPagingDto);
// List<InputInvoice> list=new InvoiceManageServiceImpl().getInputInvoiceList(inputInvoiceQueryDto);
}
public static Date StrToDate(String str) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
public static void main(String[] args) throws ParseException {
Date date = new SimpleDateFormat("yyyy/MM/dd").parse("2018/06/04");
System.out.println(date);
//System.out.println(StrToDate("2018/06/04"));
for (EnumTbImportType e : EnumTbImportType.values()) {
System.out.println(e.name()+":"+e.getCode());
}
for (EnumInputInvoiceType e : EnumInputInvoiceType.values()) {
System.out.println(e.name()+":"+e.getCode()+":"+e.getName());
}
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -1188,12 +1188,21 @@
"PagingNextPage": "下一页",
"PagingLastPage": "最后一页",
"InvoiceExpenseControlSys":"费控系统",
"InvoiceNonExpenseControlSys":"非费控系统",
"InvoiceCertificationClean":"认证清理",
"InvoiceRawMaterialPurchase": "原料采购",
"InvoicePendingAuthenticate":"待认证",
"InvoiceHasAuthenticate":"已认证",
"InvoiceUnableAuthenticate":"无法认证",
"InvoiceHasManualAuthenticate":"已手动认证",
"InvoiceNonRawMaterialPurchase": "非原料集中采购",
"InvoiceClaim": "报销及本地采购",
"InvoiceLocalPurchase": "本地采购",
"BatchUpdate": "批量更新",
"InvoiceUpload": "上传",
"InvoicePendingVerify":"待验真",
"InvoiceHasUpload": "已上传",
"InvoiceHasAddRecord": "已补录",
"InvoiceUnrecognize": "无法识别",
......@@ -1204,10 +1213,11 @@
"InvoiceRecognizeSuccess": "识别成功",
"InvoiceVerifyFailure": "验真失败",
"InvoicePendingMatch": "待匹配",
"InvoiceMatchFailure": "匹配失败",
"InvoiceHasMatch": "已匹配",
"InvoicePendingVerify": "待认证",
"InvoicePendingVerify": "待验真",
"InvoiceHasVerify": "已认证",
"InvoiceUnableVerify": "无法认证",
"InvoiceUnableVerify": "无法验真",
"InvoiceManualVerify": "手动认证",
"InvoiceInputTransferOut": "进项转出",
"InvoiceHasExpired": "已失效",
......
......@@ -276,19 +276,20 @@
if (data) {
//主页面
if ($scope.permission.isP2PAndMailroom) {
//去掉重复,已删除,和无法补录的状态
//去掉已退票,已认证,已手动认证,已清理,已失效
data.invoiceStatusList = _.filter(data.invoiceStatusList, function (item) {
return item.id !== constant.inputInvoice.statusType.InvoiceDuplicate.id
&& item.id !== constant.inputInvoice.statusType.InvoiceHasRefund.id
&& item.id !== constant.inputInvoice.statusType.InvoiceHasMatch.id
&& item.id !== constant.inputInvoice.statusType.InvoiceHasVerify.id
&& item.id !== constant.inputInvoice.statusType.InvoiceHasClean.id
&& item.id !== constant.inputInvoice.statusType.InvoicePendingRefund.id
&& item.id !== constant.inputInvoice.statusType.InvoiceHasExpired.id;
console.log($scope.permission.isP2PAndMailroom);
return item.id !== constant.inputInvoice.statusType.InvoiceHasRefund.id//已退票
&&item.id !== constant.inputInvoice.statusType.InvoiceHasAuthenticate.id//已认证
&& item.id !== constant.inputInvoice.statusType.InvoiceHasManualAuthenticate.id//已手动认证
&& item.id !== constant.inputInvoice.statusType.InvoiceHasClean.id//已清理
&& item.id !== constant.inputInvoice.statusType.InvoiceHasExpired.id//已失效
});
}
else if ($scope.permission.isP2P) {
data.invoiceStatusList = _.filter(data.invoiceStatusList, function (item) {
console.log($scope.permission.isP2P);
return item.id === constant.inputInvoice.statusType.InvoiceHasUpload.id//已上传
|| item.id === constant.inputInvoice.statusType.InvoiceUnrecognize.id//无法识别
|| item.id === constant.inputInvoice.statusType.InvoiceVerifyFailure.id//验真失败,20180228新加逻辑,税号跟名称不匹配,要报错
......@@ -379,7 +380,7 @@
});
$scope.searchEntity.allInvoiceUploadType = _.map($scope.searchFilterOptions.invoiceUploadTypeList, function (item) {
return item.id;
return item.id;
});
$scope.searchEntity.isP2P = $scope.permission.isP2P;
......
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