Yansen 2 年之前
父節點
當前提交
ab0d2d7500

+ 3
- 1
deploy/.s/1636896505560465-cn-shanghai-stategrid-service-invoice-filling-httpTrigger.json 查看文件

21
       "authType": "anonymous"
21
       "authType": "anonymous"
22
     },
22
     },
23
     "createdTime": "2022-07-18T02:02:16Z",
23
     "createdTime": "2022-07-18T02:02:16Z",
24
-    "lastModifiedTime": "2022-07-19T07:13:25Z",
24
+    "lastModifiedTime": "2022-11-15T06:43:32Z",
25
+    "status": null,
26
+    "targetArn": null,
25
     "name": "httpTrigger"
27
     "name": "httpTrigger"
26
   }
28
   }
27
 }
29
 }

+ 5
- 3
deploy/.s/1636896505560465-cn-shanghai-stategrid-service-invoice-filling.json 查看文件

8
     "timeout": 30,
8
     "timeout": 30,
9
     "initializer": "",
9
     "initializer": "",
10
     "initializationTimeout": 3,
10
     "initializationTimeout": 3,
11
-    "codeSize": 69220537,
12
-    "codeChecksum": "5731091282673601247",
11
+    "codeSize": 69222278,
12
+    "codeChecksum": "17422496305130090700",
13
     "memorySize": 1024,
13
     "memorySize": 1024,
14
     "gpuMemorySize": null,
14
     "gpuMemorySize": null,
15
     "environmentVariables": {},
15
     "environmentVariables": {},
16
     "createdTime": "2022-07-18T02:02:16Z",
16
     "createdTime": "2022-07-18T02:02:16Z",
17
-    "lastModifiedTime": "2022-07-19T07:13:16Z",
17
+    "lastModifiedTime": "2022-11-15T06:43:21Z",
18
     "instanceConcurrency": 1,
18
     "instanceConcurrency": 1,
19
     "instanceSoftConcurrency": null,
19
     "instanceSoftConcurrency": null,
20
     "customContainerConfig": null,
20
     "customContainerConfig": null,
21
     "caPort": 9000,
21
     "caPort": 9000,
22
     "instanceType": "e1",
22
     "instanceType": "e1",
23
     "layers": null,
23
     "layers": null,
24
+    "layersArnV2": null,
24
     "instanceLifecycleConfig": {
25
     "instanceLifecycleConfig": {
25
       "preFreeze": {
26
       "preFreeze": {
26
         "handler": "",
27
         "handler": "",
40
         "org.springframework.boot.loader.JarLauncher"
41
         "org.springframework.boot.loader.JarLauncher"
41
       ]
42
       ]
42
     },
43
     },
44
+    "customHealthCheckConfig": null,
43
     "name": "invoice-filling"
45
     "name": "invoice-filling"
44
   }
46
   }
45
 }
47
 }

+ 4
- 1
deploy/.s/1636896505560465-cn-shanghai-stategrid-service.json 查看文件

12
     },
12
     },
13
     "serviceId": "6e96fa7b-9988-4908-b06a-0aa7e510c881",
13
     "serviceId": "6e96fa7b-9988-4908-b06a-0aa7e510c881",
14
     "createdTime": "2022-02-26T04:50:56Z",
14
     "createdTime": "2022-02-26T04:50:56Z",
15
-    "lastModifiedTime": "2022-07-19T07:13:25Z",
15
+    "lastModifiedTime": "2022-11-15T06:43:32Z",
16
     "vpcConfig": {
16
     "vpcConfig": {
17
       "vpcId": "",
17
       "vpcId": "",
18
       "vSwitchIds": [],
18
       "vSwitchIds": [],
26
       "groupId": -1,
26
       "groupId": -1,
27
       "mountPoints": []
27
       "mountPoints": []
28
     },
28
     },
29
+    "ossMountConfig": {
30
+      "mountPoints": []
31
+    },
29
     "vendorConfig": null,
32
     "vendorConfig": null,
30
     "tracingConfig": {
33
     "tracingConfig": {
31
       "type": null,
34
       "type": null,

+ 1
- 1
deploy/.s/invoice-filling.stategrid.njyunzhi.com.json 查看文件

33
     ]
33
     ]
34
   },
34
   },
35
   "createdTime": "2022-07-18T02:03:47Z",
35
   "createdTime": "2022-07-18T02:03:47Z",
36
-  "lastModifiedTime": "2022-07-19T07:13:25Z"
36
+  "lastModifiedTime": "2022-11-15T06:43:32Z"
37
 }
37
 }

+ 1
- 1
deploy/s.prod.yaml 查看文件

49
       function:
49
       function:
50
         name: invoice-filling
50
         name: invoice-filling
51
         description: '发票确认'
51
         description: '发票确认'
52
-        codeUri: ../target/invoice-0.0.3.jar
52
+        codeUri: ../target/invoice-0.0.5.jar
53
         runtime: custom
53
         runtime: custom
54
         memorySize: 1024
54
         memorySize: 1024
55
         timeout: 30
55
         timeout: 30

+ 1
- 1
pom.xml 查看文件

10
 	</parent>
10
 	</parent>
11
 	<groupId>com.njyunzhi</groupId>
11
 	<groupId>com.njyunzhi</groupId>
12
 	<artifactId>invoice</artifactId>
12
 	<artifactId>invoice</artifactId>
13
-	<version>0.0.3</version>
13
+	<version>0.0.5</version>
14
 	<name>invoice-fill</name>
14
 	<name>invoice-fill</name>
15
 	<description>发票填报</description>
15
 	<description>发票填报</description>
16
 	<properties>
16
 	<properties>

+ 70
- 0
src/main/java/com/njyunzhi/invoice/config/JacksonConfig.java 查看文件

1
+package com.njyunzhi.invoice.config;
2
+
3
+import com.fasterxml.jackson.databind.DeserializationFeature;
4
+import com.fasterxml.jackson.databind.ObjectMapper;
5
+import com.fasterxml.jackson.databind.SerializationFeature;
6
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
7
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
8
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
9
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
10
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
11
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
12
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
13
+import org.springframework.context.annotation.Bean;
14
+import org.springframework.context.annotation.Configuration;
15
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
16
+
17
+import java.text.SimpleDateFormat;
18
+import java.time.LocalDate;
19
+import java.time.LocalDateTime;
20
+import java.time.LocalTime;
21
+import java.time.format.DateTimeFormatter;
22
+import java.util.TimeZone;
23
+
24
+/**
25
+ * 处理 RequestBody 中的日期
26
+ */
27
+
28
+@Configuration
29
+public class JacksonConfig {
30
+
31
+    /** 默认日期时间格式 */
32
+    public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
33
+    /** 默认日期格式 */
34
+    public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
35
+    /** 默认时间格式 */
36
+    public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";
37
+
38
+    @Bean
39
+    public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
40
+        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
41
+        ObjectMapper objectMapper = new ObjectMapper();
42
+
43
+        // 忽略json字符串中不识别的属性
44
+        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
45
+        // 忽略无法转换的对象
46
+        objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
47
+        // PrettyPrinter 格式化输出
48
+        objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
49
+        // NULL不参与序列化
50
+//        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
51
+
52
+        // 指定时区
53
+        objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
54
+        // 日期类型字符串处理
55
+        objectMapper.setDateFormat(new SimpleDateFormat(DEFAULT_DATE_TIME_FORMAT));
56
+
57
+        // java8日期日期处理
58
+        JavaTimeModule javaTimeModule = new JavaTimeModule();
59
+        javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)));
60
+        javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)));
61
+        javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));
62
+        javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)));
63
+        javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)));
64
+        javaTimeModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));
65
+        objectMapper.registerModule(javaTimeModule);
66
+
67
+        converter.setObjectMapper(objectMapper);
68
+        return converter;
69
+    }
70
+}

+ 27
- 1
src/main/java/com/njyunzhi/invoice/controller/TaInvoiceDetailController.java 查看文件

88
         return ResponseBean.success(result);
88
         return ResponseBean.success(result);
89
     }
89
     }
90
 
90
 
91
+
92
+    /**
93
+     * 分页查询列表
94
+     * @param pageNum
95
+     * @param pageSize
96
+     * @return
97
+     */
98
+    @RequestMapping(value="/admin/invoice/{invoiceId}/detail/history",method= RequestMethod.GET)
99
+    @ApiOperation(value="报销列表", notes = "报销列表", httpMethod = "GET", response = ResponseBean.class)
100
+    public ResponseBean getHistory(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
101
+                                @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
102
+                                @ApiParam("班级ID") @PathVariable(value ="invoiceId") String invoiceId,
103
+                                @ApiParam("人员ID") @PathVariable(value ="personId") String personId) throws Exception{
104
+
105
+        IPage<TaInvoiceDetail> pg = new Page<>(pageNum, pageSize);
106
+        QueryWrapper<TaInvoiceDetail> queryWrapper = new QueryWrapper<>();
107
+        queryWrapper.eq("invoice_id", invoiceId);
108
+        queryWrapper.eq("person_id", personId);
109
+        queryWrapper.gt("status", Constants.STATUS_DELETE);
110
+        queryWrapper.orderByDesc("create_date");
111
+
112
+        IPage<TaInvoiceDetail> result = iTaInvoiceDetailService.page(pg, queryWrapper);
113
+        return ResponseBean.success(result);
114
+    }
115
+
91
     @RequestMapping(value="/admin/invoice/{invoiceId}/detail-tpl",method= RequestMethod.POST)
116
     @RequestMapping(value="/admin/invoice/{invoiceId}/detail-tpl",method= RequestMethod.POST)
92
     @ApiOperation(value="一键生成", notes = "一键生成", httpMethod = "POST", response = ResponseBean.class)
117
     @ApiOperation(value="一键生成", notes = "一键生成", httpMethod = "POST", response = ResponseBean.class)
93
     public ResponseBean taInvoiceDetailAdd(@ApiParam("班级ID") @PathVariable(value ="invoiceId") String invoiceId) throws Exception{
118
     public ResponseBean taInvoiceDetailAdd(@ApiParam("班级ID") @PathVariable(value ="invoiceId") String invoiceId) throws Exception{
157
         TaPerson taPerson = currentPerson();
182
         TaPerson taPerson = currentPerson();
158
         taInvoiceDetail.setPersonId(taPerson.getPersonId());
183
         taInvoiceDetail.setPersonId(taPerson.getPersonId());
159
         taInvoiceDetail.setInvoiceId(invoiceId);
184
         taInvoiceDetail.setInvoiceId(invoiceId);
185
+
160
         if (iTaInvoiceDetailService.createOrMergeInvoiceDetail(taInvoiceDetail)){
186
         if (iTaInvoiceDetailService.createOrMergeInvoiceDetail(taInvoiceDetail)){
161
             return ResponseBean.success(taInvoiceDetail);
187
             return ResponseBean.success(taInvoiceDetail);
162
         } else {
188
         } else {
174
     public ResponseBean getDetailByPerson(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
200
     public ResponseBean getDetailByPerson(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
175
                                           @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
201
                                           @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
176
                                           @ApiParam("班级ID") @PathVariable(value ="invoiceId", required = false) String invoiceId,
202
                                           @ApiParam("班级ID") @PathVariable(value ="invoiceId", required = false) String invoiceId,
177
-                                          @ApiParam("人员ID") @PathVariable(value ="personId", required = false) String personId,
203
+                                          @ApiParam("人员ID") @RequestParam(value ="personId", required = false) String personId,
178
                                           @ApiParam("人员名称") @RequestParam(value ="personName", required = false) String personName) throws Exception {
204
                                           @ApiParam("人员名称") @RequestParam(value ="personName", required = false) String personName) throws Exception {
179
 
205
 
180
         if (StringUtils.isEmpty(invoiceId) && StringUtils.isEmpty(personId)) {
206
         if (StringUtils.isEmpty(invoiceId) && StringUtils.isEmpty(personId)) {

+ 7
- 6
src/main/java/com/njyunzhi/invoice/controller/TaInvoiceFillController.java 查看文件

34
 import javax.servlet.http.HttpServletResponse;
34
 import javax.servlet.http.HttpServletResponse;
35
 import java.io.File;
35
 import java.io.File;
36
 import java.io.InputStream;
36
 import java.io.InputStream;
37
+import java.util.HashMap;
37
 import java.util.List;
38
 import java.util.List;
39
+import java.util.Map;
38
 import java.util.stream.Collectors;
40
 import java.util.stream.Collectors;
39
 
41
 
40
 /**
42
 /**
78
         QueryWrapper<TaInvoiceFill> queryWrapper = new QueryWrapper<>();
80
         QueryWrapper<TaInvoiceFill> queryWrapper = new QueryWrapper<>();
79
         queryWrapper.gt("status", Constants.STATUS_DELETE);
81
         queryWrapper.gt("status", Constants.STATUS_DELETE);
80
         queryWrapper.like(!StringUtils.isEmpty(name), "name", "%" + name + "%");
82
         queryWrapper.like(!StringUtils.isEmpty(name), "name", "%" + name + "%");
81
-        queryWrapper.orderByDesc("create_date");
83
+        queryWrapper.orderByAsc("create_date");
82
 
84
 
83
         // H5 端只能查看自己的报销单
85
         // H5 端只能查看自己的报销单
84
         if ("h5".equals(client)) {
86
         if ("h5".equals(client)) {
108
         response.setContentType("application/vnd.ms-excel");
110
         response.setContentType("application/vnd.ms-excel");
109
         response.setCharacterEncoding("utf-8");
111
         response.setCharacterEncoding("utf-8");
110
         response.setHeader("Content-disposition", "attachment;filename="+expFile);
112
         response.setHeader("Content-disposition", "attachment;filename="+expFile);
111
-//        EasyExcel.write(response.getOutputStream(), TaInvoiceDetail.class)
112
-//                .withTemplate(inputStream)
113
-//                .excelType(ExcelTypeEnum.XLSX)
114
-//                .sheet()
115
-//                .doFill(list);
116
 
113
 
117
         List<Object> mergeDataList = list.stream().map(x -> x.getPersonName()).collect(Collectors.toList());
114
         List<Object> mergeDataList = list.stream().map(x -> x.getPersonName()).collect(Collectors.toList());
118
         ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), TaInvoiceDetail.class).withTemplate(inputStream).build();
115
         ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), TaInvoiceDetail.class).withTemplate(inputStream).build();
119
         WriteSheet writeSheet = EasyExcel.writerSheet().registerWriteHandler(new MergeRowStrategy(mergeDataList, 2, 0)).build();
116
         WriteSheet writeSheet = EasyExcel.writerSheet().registerWriteHandler(new MergeRowStrategy(mergeDataList, 2, 0)).build();
120
         FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
117
         FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
121
 
118
 
119
+        Map<String, Object> map = new HashMap<>();
120
+        map.put("title", invoiceFill.getName());
121
+
122
         excelWriter.fill(list, fillConfig, writeSheet);
122
         excelWriter.fill(list, fillConfig, writeSheet);
123
+        excelWriter.fill(map, writeSheet);
123
         excelWriter.finish();
124
         excelWriter.finish();
124
     }
125
     }
125
 
126
 

+ 16
- 0
src/main/java/com/njyunzhi/invoice/controller/TaInvoicePersonController.java 查看文件

75
         return ResponseBean.success(result);
75
         return ResponseBean.success(result);
76
     }
76
     }
77
 
77
 
78
+    /**
79
+     * 未填写列表
80
+     * @param pageNum
81
+     * @param pageSize
82
+     * @return
83
+     */
84
+    @RequestMapping(value="/admin/invoice/{invoiceId}/person/nofill",method= RequestMethod.GET)
85
+    @ApiOperation(value="未填写列表", notes = "未填写列表", httpMethod = "GET", response = ResponseBean.class)
86
+    public ResponseBean noFillList(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
87
+                                            @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
88
+                                            @ApiParam("班级ID") @PathVariable(value ="invoiceId") String invoiceId) throws Exception {
89
+        IPage<TaInvoicePerson> pg = new Page<>(pageNum, pageSize);
90
+        IPage<TaInvoicePerson> result = iTaInvoicePersonService.getNoFillList(pg, invoiceId);
91
+        return ResponseBean.success(result);
92
+    }
93
+
78
     /**
94
     /**
79
      * 保存对象
95
      * 保存对象
80
      * @param taInvoicePerson 实体对象
96
      * @param taInvoicePerson 实体对象

+ 3
- 0
src/main/java/com/njyunzhi/invoice/mapper/TaInvoicePersonMapper.java 查看文件

1
 package com.njyunzhi.invoice.mapper;
1
 package com.njyunzhi.invoice.mapper;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
3
 import com.njyunzhi.invoice.entity.TaInvoicePerson;
4
 import com.njyunzhi.invoice.entity.TaInvoicePerson;
4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
 import org.apache.ibatis.annotations.Mapper;
6
 import org.apache.ibatis.annotations.Mapper;
19
 public interface TaInvoicePersonMapper extends BaseMapper<TaInvoicePerson> {
20
 public interface TaInvoicePersonMapper extends BaseMapper<TaInvoicePerson> {
20
 
21
 
21
     List<TaInvoicePerson> getByName(@Param("invoiceId") String invoiceId, @Param("invoiceOrgId") String invoiceOrgId, @Param("name") String name);
22
     List<TaInvoicePerson> getByName(@Param("invoiceId") String invoiceId, @Param("invoiceOrgId") String invoiceOrgId, @Param("name") String name);
23
+
24
+    IPage<TaInvoicePerson> getNoFillList(IPage<TaInvoicePerson> pg, @Param("invoiceId") String invoiceId);
22
 }
25
 }

+ 3
- 0
src/main/java/com/njyunzhi/invoice/service/ITaInvoicePersonService.java 查看文件

1
 package com.njyunzhi.invoice.service;
1
 package com.njyunzhi.invoice.service;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
3
 import com.njyunzhi.invoice.entity.TaInvoicePerson;
4
 import com.njyunzhi.invoice.entity.TaInvoicePerson;
4
 import com.njyunzhi.invoice.entity.TaPerson;
5
 import com.njyunzhi.invoice.entity.TaPerson;
5
 import org.springframework.web.multipart.MultipartFile;
6
 import org.springframework.web.multipart.MultipartFile;
25
     TaInvoicePerson getByPerson(String invoiceId, String invoicePerson) throws Exception;
26
     TaInvoicePerson getByPerson(String invoiceId, String invoicePerson) throws Exception;
26
 
27
 
27
     boolean bind(TaInvoicePerson taInvoicePerson, TaPerson taPerson) throws Exception;
28
     boolean bind(TaInvoicePerson taInvoicePerson, TaPerson taPerson) throws Exception;
29
+
30
+    IPage<TaInvoicePerson> getNoFillList(IPage<TaInvoicePerson> pg, String invoiceId);
28
 }
31
 }

+ 24
- 20
src/main/java/com/njyunzhi/invoice/service/impl/TaInvoiceDetailServiceImpl.java 查看文件

89
 
89
 
90
         // 如果不是新生成, 二次编辑
90
         // 如果不是新生成, 二次编辑
91
         if (null != origin) {
91
         if (null != origin) {
92
-            origin.setInvoicePersonId(taInvoiceDetail.getInvoicePersonId());
93
-            origin.setPersonName(taInvoiceDetail.getPersonName());
94
-            origin.setInvoiceOrgId(taInvoiceDetail.getInvoiceOrgId());
95
-            origin.setInvoiceOrgName(taInvoiceDetail.getInvoiceOrgName());
96
-            origin.setOrgId(taInvoiceDetail.getOrgId());
97
-            origin.setOrgName(taInvoiceDetail.getOrgName());
98
-            origin.setTaxNo(taInvoiceDetail.getTaxNo());
99
-            origin.setAddress(taInvoiceDetail.getAddress());
100
-            origin.setPhone(taInvoiceDetail.getPhone());
101
-            origin.setBankId(taInvoiceDetail.getBankId());
102
-            origin.setBankName(taInvoiceDetail.getBankName());
103
-            origin.setCardNo(taInvoiceDetail.getCardNo());
104
-            origin.setPersonId(taInvoiceDetail.getPersonId());
105
-            origin.setMergeRemark(taInvoiceDetail.getMergeRemark());
106
-            origin.setStayRemark(taInvoiceDetail.getStayRemark());
107
-            origin.setMailAddress(taInvoiceDetail.getMailAddress());
108
-            origin.setMailPhone(taInvoiceDetail.getMailPhone());
109
-            origin.setMailUser(taInvoiceDetail.getMailUser());
110
-
111
-            return updateById(origin);
92
+            origin.setStatus(Constants.STATUS_READY);
93
+            updateById(origin);
94
+//            origin.setInvoicePersonId(taInvoiceDetail.getInvoicePersonId());
95
+//            origin.setPersonName(taInvoiceDetail.getPersonName());
96
+//            origin.setInvoiceOrgId(taInvoiceDetail.getInvoiceOrgId());
97
+//            origin.setInvoiceOrgName(taInvoiceDetail.getInvoiceOrgName());
98
+//            origin.setOrgId(taInvoiceDetail.getOrgId());
99
+//            origin.setOrgName(taInvoiceDetail.getOrgName());
100
+//            origin.setTaxNo(taInvoiceDetail.getTaxNo());
101
+//            origin.setAddress(taInvoiceDetail.getAddress());
102
+//            origin.setPhone(taInvoiceDetail.getPhone());
103
+//            origin.setBankId(taInvoiceDetail.getBankId());
104
+//            origin.setBankName(taInvoiceDetail.getBankName());
105
+//            origin.setCardNo(taInvoiceDetail.getCardNo());
106
+//            origin.setPersonId(taInvoiceDetail.getPersonId());
107
+//            origin.setMergeRemark(taInvoiceDetail.getMergeRemark());
108
+//            origin.setStayRemark(taInvoiceDetail.getStayRemark());
109
+//            origin.setMailAddress(taInvoiceDetail.getMailAddress());
110
+//            origin.setMailPhone(taInvoiceDetail.getMailPhone());
111
+//            origin.setMailUser(taInvoiceDetail.getMailUser());
112
+//
113
+//            return updateById(origin);
112
         }
114
         }
113
 
115
 
114
         // 否则就是全新生成
116
         // 否则就是全新生成
117
+        taInvoiceDetail.setDetailId(null);
118
+        taInvoiceDetail.setStatus(Constants.STATUS_NORMAL);
115
         return save(taInvoiceDetail);
119
         return save(taInvoiceDetail);
116
     }
120
     }
117
 
121
 

+ 6
- 0
src/main/java/com/njyunzhi/invoice/service/impl/TaInvoicePersonServiceImpl.java 查看文件

3
 import com.alibaba.excel.EasyExcel;
3
 import com.alibaba.excel.EasyExcel;
4
 import com.alibaba.excel.read.listener.PageReadListener;
4
 import com.alibaba.excel.read.listener.PageReadListener;
5
 import com.alibaba.excel.support.ExcelTypeEnum;
5
 import com.alibaba.excel.support.ExcelTypeEnum;
6
+import com.baomidou.mybatisplus.core.metadata.IPage;
6
 import com.njyunzhi.invoice.common.Constants;
7
 import com.njyunzhi.invoice.common.Constants;
7
 import com.njyunzhi.invoice.common.DateUtils;
8
 import com.njyunzhi.invoice.common.DateUtils;
8
 import com.njyunzhi.invoice.common.StringUtils;
9
 import com.njyunzhi.invoice.common.StringUtils;
118
         return true;
119
         return true;
119
     }
120
     }
120
 
121
 
122
+    @Override
123
+    public IPage<TaInvoicePerson> getNoFillList(IPage<TaInvoicePerson> pg, String invoiceId) {
124
+        return baseMapper.getNoFillList(pg, invoiceId);
125
+    }
126
+
121
     private TaInvoiceOrg createByPerson(TaInvoicePerson taInvoicePerson) {
127
     private TaInvoiceOrg createByPerson(TaInvoicePerson taInvoicePerson) {
122
         TaInvoiceOrg taInvoiceOrg = new TaInvoiceOrg();
128
         TaInvoiceOrg taInvoiceOrg = new TaInvoiceOrg();
123
         taInvoiceOrg.setInvoiceId(taInvoicePerson.getInvoiceId());
129
         taInvoiceOrg.setInvoiceId(taInvoicePerson.getInvoiceId());

二進制
src/main/resources/excel/invoice_tpl.xlsx 查看文件


+ 4
- 4
src/main/resources/mapper/TaInvoiceDetailMapper.xml 查看文件

75
         WHERE
75
         WHERE
76
             t.invoice_id = #{invoiceId}
76
             t.invoice_id = #{invoiceId}
77
           AND t.person_id = #{personId}
77
           AND t.person_id = #{personId}
78
-          AND t.`status` &gt; -1
78
+          AND t.`status` = 1
79
     </select>
79
     </select>
80
 
80
 
81
     <sql id="getInvoiceDetail">
81
     <sql id="getInvoiceDetail">
113
     <select id="getListByMainId" resultType="com.njyunzhi.invoice.entity.TaInvoiceDetail">
113
     <select id="getListByMainId" resultType="com.njyunzhi.invoice.entity.TaInvoiceDetail">
114
         <include refid="getInvoiceDetail"></include>
114
         <include refid="getInvoiceDetail"></include>
115
         WHERE
115
         WHERE
116
-            t.`status` &gt; -1
116
+            t.`status` = 1
117
             AND t.invoice_id = #{invoiceId}
117
             AND t.invoice_id = #{invoiceId}
118
         ORDER BY
118
         ORDER BY
119
             t.org_name ASC,
119
             t.org_name ASC,
154
             ta_invoice_detail t
154
             ta_invoice_detail t
155
             INNER JOIN ta_invoice_fill s ON s.invoice_id = t.invoice_id
155
             INNER JOIN ta_invoice_fill s ON s.invoice_id = t.invoice_id
156
         WHERE
156
         WHERE
157
-            t.`status` &gt; -1
157
+            t.`status` = 1
158
         <if test="invoiceId != null and invoiceId != ''">
158
         <if test="invoiceId != null and invoiceId != ''">
159
             AND t.invoice_id = #{invoiceId}
159
             AND t.invoice_id = #{invoiceId}
160
         </if>
160
         </if>
194
     <select id="getPageBy" resultType="com.njyunzhi.invoice.entity.TaInvoiceDetail">
194
     <select id="getPageBy" resultType="com.njyunzhi.invoice.entity.TaInvoiceDetail">
195
         <include refid="getInvoiceDetail"></include>
195
         <include refid="getInvoiceDetail"></include>
196
         WHERE
196
         WHERE
197
-            t.`status` &gt; -1
197
+            t.`status` = 1
198
             AND t.invoice_id = #{invoiceId}
198
             AND t.invoice_id = #{invoiceId}
199
         <if test="orgName != null and orgName != ''">
199
         <if test="orgName != null and orgName != ''">
200
             AND t.org_name LIKE CONCAT( '%', #{orgName}, '%' )
200
             AND t.org_name LIKE CONCAT( '%', #{orgName}, '%' )

+ 22
- 0
src/main/resources/mapper/TaInvoicePersonMapper.xml 查看文件

13
           AND t.`name` = #{name}
13
           AND t.`name` = #{name}
14
           AND t.`status` &gt; -1
14
           AND t.`status` &gt; -1
15
     </select>
15
     </select>
16
+    <select id="getNoFillList" resultType="com.njyunzhi.invoice.entity.TaInvoicePerson">
17
+        SELECT
18
+            *
19
+        FROM
20
+            ta_invoice_person t
21
+        WHERE
22
+            t.invoice_id = #{invoiceId}
23
+          AND NOT EXISTS (
24
+                SELECT
25
+                    *
26
+                FROM
27
+                    ta_invoice_detail s
28
+                WHERE
29
+                    t.invoice_id = s.invoice_id
30
+                  AND t.invoice_org_id = s.invoice_org_id
31
+                  AND t.`name` = s.person_name
32
+            )
33
+          AND t.`status` &gt; - 1
34
+        ORDER BY
35
+            t.org_name ASC,
36
+            t.`name` ASC
37
+    </select>
16
 </mapper>
38
 </mapper>