Commit ba172580 authored by frank.xa.zhang's avatar frank.xa.zhang

Merge branch 'dev' into dev_frank

parents 5b968322 cb8c7d2f
......@@ -10,3 +10,4 @@ rebel.xml
/atms-web/src/main/webapp/node_modules
**/*.iml
**/.idea/
atms-api/~
......@@ -51,7 +51,7 @@ public class InputInvoiceImportController {
}
@RequestMapping(value = "getInputInvoiceList/{period}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity getInputInvoiceList(Integer period) {
public ResponseEntity getInputInvoiceList(@PathVariable Integer period) {
return ResponseEntity.ok().body(inputInvoiceDataImportService.getInputInvoiceList(period));
}
......
......@@ -4,6 +4,7 @@ import org.apache.http.HttpStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
......@@ -13,7 +14,7 @@ import pwc.taxtech.atms.dto.vatdto.OutputVATInvoiceInfoDto;
import pwc.taxtech.atms.dto.vatdto.QueryEvidenceDto;
import pwc.taxtech.atms.dto.vatdto.QueryOutputDto;
import pwc.taxtech.atms.thirdparty.ExcelUtil;
import pwc.taxtech.atms.vat.service.OutputInvoiceService;
import pwc.taxtech.atms.vat.service.impl.OutputInvoiceServiceImpl;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
......@@ -28,7 +29,7 @@ import java.util.UUID;
public class OutputInvoiceController {
@Autowired
OutputInvoiceService outputInvoiceService;
OutputInvoiceServiceImpl outputInvoiceService;
@RequestMapping(value = "queryOutputInvoiceList", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public PagingResultDto<OutputVATInvoiceInfoDto> queryOutputInvoiceList(@RequestBody QueryOutputDto queryDto) {
......@@ -61,6 +62,11 @@ public class OutputInvoiceController {
return ResponseEntity.ok().body(outputInvoiceService.getEvidenceList(queryDto));
}
@RequestMapping(value = "getOutputInvoiceList/{period:int}", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity getEvidenceList(@PathVariable Integer period) {
return ResponseEntity.ok().body(outputInvoiceService.getOutputInvoiceList(period));
}
private int getDownloadFilePath(QueryOutputDto paras, OutputStream outputStream) {
List<OutputVATInvoiceInfoDto> list = outputInvoiceService.getExportOutputInvoiceList(paras).getData();
if (list.size() == 0) {
......@@ -89,4 +95,6 @@ public class OutputInvoiceController {
ExcelUtil.exportExcel(header, list, outputStream);
return list.size();
}
}
......@@ -191,7 +191,7 @@ public interface ProjectMapper extends MyMapper {
" st.Name AS ServiceTypeName, " +
" org.Name AS OrganizationName, " +
" ind.Name AS IndustryName, " +
" ostg.TemplateGroupID AS TemplateGroupID, " +
" ostg.template_group_id AS TemplateGroupID, " +
" '' AS TemplateGroupName, " +
" org.ClientCode AS ClientCode, " +
" '' AS DbName, " +
......@@ -206,9 +206,9 @@ public interface ProjectMapper extends MyMapper {
" JOIN " +
" EnterpriseAccountSetOrg ea ON org.ID = ea.OrganizationID " +
" JOIN " +
" OrganizationServiceTemplateGroup ostg ON org.ID = ostg.OrganizationID " +
" organization_service_template_group ostg ON org.ID = ostg.organization_id " +
" JOIN " +
" ServiceType st ON ostg.ServiceTypeID = st.ID " +
" ServiceType st ON ostg.service_type_id = st.ID " +
" JOIN " +
" Industry ind ON org.IndustryID = ind.ID " +
" JOIN " +
......
......@@ -3,6 +3,7 @@ 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.annotations.Select;
import org.apache.ibatis.session.RowBounds;
import pwc.taxtech.atms.MyVatMapper;
import pwc.taxtech.atms.dto.vatdto.OutputVATInvoiceInfoDto;
......@@ -109,4 +110,75 @@ public interface OutputVATInvoiceMapper extends MyVatMapper {
int updateByPrimaryKey(OutputVATInvoice record);
List<OutputVATInvoiceInfoDto> selectOutputVATInvoiceInfoLeftJoinItem(@Param("queryDto")QueryOutputDto queryDto);
@Select("SELECT " +
" o.PeriodID, " +
" o.InvoiceType, " +
" o.ClassCode, " +
" o.InvoiceNumber, " +
" o.BuyerName, " +
" o.BuyerTaxNumber, " +
" o.BankAccount, " +
" o.PhoneNum, " +
" o.InvoiceDate, " +
" oi.CodeVersion, " +
" oi.ProductName, " +
" oi.DocumentNum, " +
" oi.ProductStandard, " +
" oi.Unit, " +
" oi.Quantity, " +
" oi.UnitPrice, " +
" oi.Amount, " +
" oi.TaxRate, " +
" oi.TaxAmount, " +
" oi.TaxClassCode " +
"FROM " +
" OutputVATInvoice o, " +
" OutputVATInvoiceItem oi, " +
" (SELECT " +
" InvoiceID, MIN(SeqNo) minSeqNo " +
" FROM " +
" OutputVATInvoiceItem " +
" GROUP BY InvoiceID) m " +
"WHERE " +
" o.InvoiceID = oi.InvoiceID " +
" AND o.InvoiceID = m.InvoiceID " +
" AND oi.SeqNo = m.minSeqNo " +
" AND o.PeriodID = #{period}" +
"UNION SELECT " +
" o2.PeriodID, " +
" NULL AS InvoiceType, " +
" '' AS ClassCode, " +
" '' AS InvoiceNumber, " +
" '' AS BuyerName, " +
" '' AS BuyerTaxNumber, " +
" '' AS BankAccount, " +
" '' AS PhoneNum, " +
" NULL AS InvoiceDate, " +
" oi2.CodeVersion, " +
" oi2.ProductName, " +
" oi2.DocumentNum, " +
" oi2.ProductStandard, " +
" oi2.Unit, " +
" oi2.Quantity, " +
" oi2.UnitPrice, " +
" oi2.Amount, " +
" oi2.TaxRate, " +
" oi2.TaxAmount, " +
" oi2.TaxClassCode " +
"FROM " +
" OutputVATInvoice o2, " +
" OutputVATInvoiceItem oi2, " +
" (SELECT " +
" InvoiceID, MIN(SeqNo) minSeqNo " +
" FROM " +
" OutputVATInvoiceItem " +
" GROUP BY InvoiceID) m2 " +
"WHERE " +
" o2.InvoiceID = oi2.InvoiceID " +
" AND o2.InvoiceID = m2.InvoiceID " +
" AND oi2.SeqNo != m2.minSeqNo " +
" AND o.PeriodID = #{period}" +
" ")
List<OutputVATInvoiceInfoDto> queryOutputDetailWithItem(Integer period);
}
\ No newline at end of file
......@@ -466,72 +466,72 @@ public class VoucherMappingExample {
}
public Criteria andGroupIsNull() {
addCriterion("Group is null");
addCriterion("\"Group\" is null");
return (Criteria) this;
}
public Criteria andGroupIsNotNull() {
addCriterion("Group is not null");
addCriterion("\"Group\" is not null");
return (Criteria) this;
}
public Criteria andGroupEqualTo(String value) {
addCriterion("Group =", value, "group");
addCriterion("\"Group\" =", value, "group");
return (Criteria) this;
}
public Criteria andGroupNotEqualTo(String value) {
addCriterion("Group <>", value, "group");
addCriterion("\"Group\" <>", value, "group");
return (Criteria) this;
}
public Criteria andGroupGreaterThan(String value) {
addCriterion("Group >", value, "group");
addCriterion("\"Group\" >", value, "group");
return (Criteria) this;
}
public Criteria andGroupGreaterThanOrEqualTo(String value) {
addCriterion("Group >=", value, "group");
addCriterion("\"Group\" >=", value, "group");
return (Criteria) this;
}
public Criteria andGroupLessThan(String value) {
addCriterion("Group <", value, "group");
addCriterion("\"Group\" <", value, "group");
return (Criteria) this;
}
public Criteria andGroupLessThanOrEqualTo(String value) {
addCriterion("Group <=", value, "group");
addCriterion("\"Group\" <=", value, "group");
return (Criteria) this;
}
public Criteria andGroupLike(String value) {
addCriterion("Group like", value, "group");
addCriterion("\"Group\" like", value, "group");
return (Criteria) this;
}
public Criteria andGroupNotLike(String value) {
addCriterion("Group not like", value, "group");
addCriterion("\"Group\" not like", value, "group");
return (Criteria) this;
}
public Criteria andGroupIn(List<String> values) {
addCriterion("Group in", values, "group");
addCriterion("\"Group\" in", values, "group");
return (Criteria) this;
}
public Criteria andGroupNotIn(List<String> values) {
addCriterion("Group not in", values, "group");
addCriterion("\"Group\" not in", values, "group");
return (Criteria) this;
}
public Criteria andGroupBetween(String value1, String value2) {
addCriterion("Group between", value1, value2, "group");
addCriterion("\"Group\" between", value1, value2, "group");
return (Criteria) this;
}
public Criteria andGroupNotBetween(String value1, String value2) {
addCriterion("Group not between", value1, value2, "group");
addCriterion("\"Group\" not between", value1, value2, "group");
return (Criteria) this;
}
......
package pwc.taxtech.atms.vat.service;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.PagingResultDto;
import pwc.taxtech.atms.dto.vatdto.OutputVATInvoiceInfoDto;
import pwc.taxtech.atms.dto.vatdto.QueryEvidenceDto;
import pwc.taxtech.atms.dto.vatdto.QueryOutputDto;
import pwc.taxtech.atms.vat.entity.ImportFile;
import java.util.List;
public interface OutputInvoiceService {
PagingResultDto<OutputVATInvoiceInfoDto> queryOutputInvoiceList(QueryOutputDto queryDto);
OperationResultDto<List<OutputVATInvoiceInfoDto>> getExportOutputInvoiceList(QueryOutputDto queryDto);
List<ImportFile> getEvidenceList(QueryEvidenceDto queryDto);
}
......@@ -14,9 +14,9 @@ import pwc.taxtech.atms.dto.vatdto.QueryOutputDto;
import pwc.taxtech.atms.vat.dao.ImportFileMapper;
import pwc.taxtech.atms.vat.entity.ImportFile;
import pwc.taxtech.atms.vat.entity.ImportFileExample;
import pwc.taxtech.atms.vat.entity.OutputVATInvoiceExample;
import pwc.taxtech.atms.vat.entity.OutputVATInvoiceItem;
import pwc.taxtech.atms.vat.entity.OutputVATInvoiceItemExample;
import pwc.taxtech.atms.vat.service.OutputInvoiceService;
import java.math.BigDecimal;
import java.util.ArrayList;
......@@ -28,11 +28,10 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service
public class OutputInvoiceServiceImpl extends VatAbstractService implements OutputInvoiceService {
public class OutputInvoiceServiceImpl extends VatAbstractService {
@Autowired
private ImportFileMapper importFileMapper;
@Override
public PagingResultDto<OutputVATInvoiceInfoDto> queryOutputInvoiceList(QueryOutputDto queryDto) {
PagingResultDto<OutputVATInvoiceInfoDto> qResult = new PagingResultDto<>();
qResult.setPageInfo(queryDto.getPageInfo());
......@@ -47,7 +46,6 @@ public class OutputInvoiceServiceImpl extends VatAbstractService implements Outp
return qResult;
}
@Override
public OperationResultDto<List<OutputVATInvoiceInfoDto>> getExportOutputInvoiceList(QueryOutputDto queryDto) {
OperationResultDto<List<OutputVATInvoiceInfoDto>> result = new OperationResultDto<>();
List<OutputVATInvoiceInfoDto> finalList = getQueryList(queryDto);
......@@ -57,7 +55,6 @@ public class OutputInvoiceServiceImpl extends VatAbstractService implements Outp
return result;
}
@Override
public List<ImportFile> getEvidenceList(QueryEvidenceDto queryDto) {
ImportFileExample example = new ImportFileExample();
......@@ -77,6 +74,20 @@ public class OutputInvoiceServiceImpl extends VatAbstractService implements Outp
return importFileMapper.selectByExample(example);
}
public OperationResultDto<List<OutputVATInvoiceInfoDto>> getOutputInvoiceList(Integer period) {
List<OutputVATInvoiceInfoDto> result = outputVATInvoiceMapper.queryOutputDetailWithItem(period);
result.sort(Comparator.comparing(OutputVATInvoiceInfoDto::getInvoiceID));
OperationResultDto<List<OutputVATInvoiceInfoDto>> dtoResult = new OperationResultDto();
OutputVATInvoiceExample example = new OutputVATInvoiceExample();
example.createCriteria().andPeriodIDEqualTo(period.intValue());
dtoResult.setData(result);
dtoResult.setReturnCode(Long.valueOf(outputVATInvoiceMapper.countByExample(example)).intValue());
dtoResult.setResult(true);
return dtoResult;
}
private List<OutputVATInvoiceInfoDto> getOutputDetailInfoList(List<OutputVATInvoiceInfoDto> query) {
List<OutputVATInvoiceInfoDto> list = new ArrayList<>();
List<OutputVATInvoiceItem> outItem = outputVATInvoiceItemMapper.selectByExample(new OutputVATInvoiceItemExample());
......
......@@ -86,7 +86,7 @@
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
ID, TranCode, VID, Period, Group, ItemID, CreatorID, CreateTime
ID, TranCode, VID, Period, "Group", ItemID, CreatorID, CreateTime
</sql>
<select id="selectByExample" parameterType="pwc.taxtech.atms.vat.entity.VoucherMappingExample" resultMap="BaseResultMap">
<!--
......@@ -140,7 +140,7 @@
This element is automatically generated by MyBatis Generator, do not modify.
-->
insert into VoucherMapping (ID, TranCode, VID,
Period, Group, ItemID,
Period, "Group", ItemID,
CreatorID, CreateTime)
values (#{ID,jdbcType=VARCHAR}, #{tranCode,jdbcType=VARCHAR}, #{VID,jdbcType=VARCHAR},
#{period,jdbcType=INTEGER}, #{group,jdbcType=VARCHAR}, #{itemID,jdbcType=VARCHAR},
......@@ -166,7 +166,7 @@
Period,
</if>
<if test="group != null">
Group,
"Group",
</if>
<if test="itemID != null">
ItemID,
......@@ -235,7 +235,7 @@
Period = #{record.period,jdbcType=INTEGER},
</if>
<if test="record.group != null">
Group = #{record.group,jdbcType=VARCHAR},
"Group" = #{record.group,jdbcType=VARCHAR},
</if>
<if test="record.itemID != null">
ItemID = #{record.itemID,jdbcType=VARCHAR},
......@@ -261,7 +261,7 @@
TranCode = #{record.tranCode,jdbcType=VARCHAR},
VID = #{record.VID,jdbcType=VARCHAR},
Period = #{record.period,jdbcType=INTEGER},
Group = #{record.group,jdbcType=VARCHAR},
"Group" = #{record.group,jdbcType=VARCHAR},
ItemID = #{record.itemID,jdbcType=VARCHAR},
CreatorID = #{record.creatorID,jdbcType=VARCHAR},
CreateTime = #{record.createTime,jdbcType=TIMESTAMP}
......@@ -286,7 +286,7 @@
Period = #{period,jdbcType=INTEGER},
</if>
<if test="group != null">
Group = #{group,jdbcType=VARCHAR},
"Group" = #{group,jdbcType=VARCHAR},
</if>
<if test="itemID != null">
ItemID = #{itemID,jdbcType=VARCHAR},
......@@ -309,7 +309,7 @@
set TranCode = #{tranCode,jdbcType=VARCHAR},
VID = #{VID,jdbcType=VARCHAR},
Period = #{period,jdbcType=INTEGER},
Group = #{group,jdbcType=VARCHAR},
"Group" = #{group,jdbcType=VARCHAR},
ItemID = #{itemID,jdbcType=VARCHAR},
CreatorID = #{creatorID,jdbcType=VARCHAR},
CreateTime = #{createTime,jdbcType=TIMESTAMP}
......
package pwc.taxtech.atms;
import pwc.taxtech.atms.dto.taxadmin.ProjectDisplayDto;
import pwc.taxtech.atms.entitiy.Project;
import java.lang.reflect.Field;
public class FieldsCompare {
public static <S, D> void map(S source, D dest) throws ClassNotFoundException, IllegalAccessException {
Class destClass = Class.forName(dest.getClass().getName());
Class clsSource = Class.forName(source.getClass().getName());
Field[] declaredFields = destClass.getDeclaredFields();
Field[] clsFields = clsSource.getDeclaredFields();
System.out.println(clsSource.getName()+":"+clsFields.length);
System.out.println(destClass.getName()+":"+declaredFields.length);
Field[] fieldsMax=null;
Class fieldsMinClass=null;
if(declaredFields.length>clsFields.length){
fieldsMax=declaredFields;
fieldsMinClass=clsSource;
}else {
fieldsMax=clsFields;
fieldsMinClass=destClass;
}
for (Field field : fieldsMax) {
field.setAccessible(true);
String fieldName = field.getName();
try {
if ("serialVersionUID".equals(fieldName)) {
continue;
}
fieldsMinClass.getDeclaredField(fieldName);
} catch (NoSuchFieldException e) {
System.out.println("NoSuchFieldException "+fieldsMinClass.getName()+ "."+ fieldName);
}
}
}
public static void main(String[] args) throws IllegalAccessException, ClassNotFoundException {
map(new Project(),new ProjectDisplayDto());
}
}
\ No newline at end of file
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