Bläddra i källkod

作业单导出修改

lzm 3 år sedan
förälder
incheckning
066291c20b

+ 46 - 2
sp-admin/sa-view/tb-partner/tb-business-item-list.html

@@ -27,7 +27,10 @@
 					</el-button>
 				</el-form>
 				<!-- ------------- 快捷按钮 ------------- -->
-				<sa-item type="fast-btn" show="export"></sa-item>
+				<div class="fast-btn">
+					<el-button type="warning" icon="el-icon-download" @click="exportFn()">导出</el-button>
+					<slot></slot>
+				</div>
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList">
 					<sa-td name="单号" prop="no" width="160"></sa-td>
@@ -66,6 +69,21 @@
 					<el-button type="primary" @click="sureConfirm">确 定</el-button>
 				</span>
 			</el-dialog>
+			<el-dialog title="提示" :visible.sync="emodel.visible" width="30%">
+				<span>日期范围:</span>
+				<el-form size="mini">
+					<div class="c-item">
+						<el-date-picker size="mini" v-model="dataTime" type="daterange" unlink-panels="false"
+							range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
+							format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd">
+						</el-date-picker>
+					</div>
+				</el-form>
+				<span slot="footer" class="dialog-footer">
+					<el-button @click="emodel.visible = false">取 消</el-button>
+					<el-button type="primary" @click="sureExport">确 定</el-button>
+				</span>
+			</el-dialog>
 		</div>
 		<script>
 			var app = new Vue({
@@ -90,9 +108,35 @@
 						form: {
 							id: ''
 						}
-					}
+					},
+					emodel: {
+						visible: false,
+						form: {
+							beginTime: '',
+							endTime: ''
+						}
+					},
+					dataTime: [],
 				},
 				methods: {
+					exportFn() {
+						Object.assign(this.emodel, {
+							visible: true,
+						})
+					},
+					sureExport() {
+						if (this.dataTime.length != 0) {
+							this.emodel.form.beginTime = this.dataTime[0];
+							this.emodel.form.endTime = this.dataTime[1];
+						} else{
+							sa.msg("请选择日期范围");
+							return;
+						}
+						sa.ajax('/TbBusinessItem/export/items', this.emodel.form,  function(resp) {
+							window.open(resp.data);
+							this.emodel.visible = false;
+						}.bind(this));
+					},
 					confirmFn(data) {
 						Object.assign(this.confirm, {
 							visible: true,

+ 0 - 1
sp-server/app.pid

@@ -1 +0,0 @@
-45152

+ 6 - 0
sp-server/pom.xml

@@ -123,6 +123,12 @@
 			<artifactId>jackson-dataformat-xml</artifactId>
 			<version>2.9.7</version>
 		</dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>3.0.5</version>
+        </dependency>
 	</dependencies>
 
 	<!-- 构建配置 -->

+ 64 - 0
sp-server/src/main/java/com/pj/project/tb_business_item/ExportItemsDTO.java

@@ -0,0 +1,64 @@
+package com.pj.project.tb_business_item;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * Created with IntelliJ IDEA.
+ * @Auther: lzm*/
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class ExportItemsDTO {
+
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"作业订单","单号"},index = 0)
+    private String no;
+
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"作业订单","货物"},index = 1)
+    private String goodsName;
+
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"作业订单","越南车"},index = 2)
+    private String cardNo;
+
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"作业订单","中国车"},index = 3)
+    private String chinaCarNo;
+
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"作业订单","作业公司"},index = 4)
+    private String pickCustomerName;
+
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"作业订单","项目"},index = 5)
+    private String itemName;
+
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"作业订单","类型"},index = 6)
+    private String itemTypeName;
+
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"作业订单","计费标准"},index = 7)
+    private String unit;
+
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"作业订单","创建时间"},index = 8)
+    private String createTime;
+
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"作业订单","接单时间"},index = 9)
+    private String pickTime;
+
+    @ColumnWidth(15)
+    @ExcelProperty(value = {"作业订单","确认时间"},index = 10)
+    private String confirmTime;
+
+}

+ 11 - 0
sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemController.java

@@ -16,6 +16,8 @@ import com.pj.project4sp.SP;
 import com.pj.current.satoken.StpUserUtil;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 
+import javax.servlet.http.HttpServletResponse;
+
 
 /**
  * Controller: tb_business_item -- 业务作业项
@@ -76,6 +78,15 @@ public class TbBusinessItemController {
         return AjaxJson.getPageData(so.getDataCount(), list);
     }
 
+    @RequestMapping("export/items")
+    public AjaxJson exportItems(HttpServletResponse response) throws Exception{
+        SoMap so = SoMap.getRequestSoMap();
+        String beginTime = so.getString("beginTime");
+        String endTime = so.getString("endTime");
+        String result = tbBusinessItemService.exportItems(beginTime, endTime);
+        return AjaxJson.getSuccessData(result);
+    }
+
 
 
 

+ 4 - 0
sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemMapper.xml

@@ -67,6 +67,10 @@
 			<if test=' this.has("operateTime") '> and a.operate_time = #{operateTime} </if>
 			<if test=' this.has("operaror") '> and a.operaror = #{operaror} </if>
 			<if test=' this.has("typeFlag") '> and a.business_type !='0' </if>
+            <if test=' this.has("beginTime") and this.has("endTime") '>
+                 and date_format(a.create_time,'%Y-%m-%d') >= #{beginTime}
+                 and date_format(a.create_time,'%Y-%m-%d')  &lt;= #{endTime}
+            </if>
 		order by
 		<choose>
 			<when test='sortType == 1'> a.id desc </when>

+ 36 - 0
sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemService.java

@@ -1,10 +1,14 @@
 package com.pj.project.tb_business_item;
 
+import java.io.File;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.excel.EasyExcel;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -16,6 +20,7 @@ import com.pj.project.tb_business.TbBusiness;
 import com.pj.project.tb_business.TbBusinessService;
 import com.pj.project4sp.admin.SpAdmin;
 import com.pj.project4sp.admin.SpAdminService;
+import com.pj.project4sp.uploadfile.UploadUtil;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
@@ -112,4 +117,35 @@ public class TbBusinessItemService extends ServiceImpl<TbBusinessItemMapper, TbB
             wxService.sendTemplateMsg(wxConfig.getBusinessConfirmTemplate(), admin.getOpenid(), msgDataBO, detailUrl);
         });
     }
+
+    public String exportItems(String beginTime, String endTime) {
+        SoMap so = SoMap.getRequestSoMap();
+        so.put("typeFlag",1);
+        so.put("beginTime", beginTime);
+        so.put("endTime", endTime);
+        List<TbBusinessItem> itemList = this.getList(so);
+        List<ExportItemsDTO> itemDTOList = new ArrayList<>();
+        for (TbBusinessItem item : itemList) {
+            ExportItemsDTO itemsDTO = new ExportItemsDTO();
+            BeanUtil.copyProperties(item, itemsDTO,"createTime", "pickTime", "confirmTime");
+            itemsDTO.setUnit(item.getItemPrice() + item.getUnit())
+                .setCreateTime(DateUtil.format(item.getCreateTime(), "yyyy/MM/dd HH:mm:ss"))
+                .setPickTime(DateUtil.format(item.getPickTime(), "yyyy/MM/dd HH:mm:ss"))
+                .setConfirmTime(DateUtil.format(item.getConfirmTime(), "yyyy/MM/dd HH:mm:ss"));
+            itemDTOList.add(itemsDTO);
+        }
+        String separator = File.separator;
+        String today = DateUtil.today();
+        String rootPath = UploadUtil.uploadConfig.rootFolder + separator + UploadUtil.uploadConfig.httpPrefix;
+        String prefix = myConfig.getDomain() + UploadUtil.uploadConfig.httpPrefix;
+        String extPath = "businessItem" + separator + today + separator;
+        String fileName = "items_" + beginTime + "--" + endTime + ".xlsx";
+        String savePath = rootPath + separator + extPath;
+        File saveFIle = new File(savePath);
+        if (!saveFIle.exists()) {
+            saveFIle.mkdirs();
+        }
+        EasyExcel.write(savePath+fileName, ExportItemsDTO.class).sheet("作业订单").doWrite(itemDTOList);
+        return prefix + "/businessItem/" + today + "/items_" + beginTime + "--" + endTime + ".xlsx";
+    }
 }

+ 9 - 0
sp-server/src/main/java/com/pj/project/tb_fee_statistics/TbFeeStatistics.java

@@ -121,6 +121,15 @@ public class TbFeeStatistics implements Serializable {
         private String desc;
     }
 
+    @Getter
+    @AllArgsConstructor
+    public static enum taxRate{
+        PARK(0.09, "停车费税率"),
+        BUSINESS(0.06, "业务费税率");
+        private Double value;
+        private String desc;
+    }
+
 
 
 

+ 1 - 1
sp-server/src/main/java/com/pj/project/tb_fee_statistics/TbFeeStatisticsService.java

@@ -153,7 +153,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
             TbFeeStatistics businessFee = this.getByDayAndFeeType(toDay, feeType);
             if (businessFee == null) {
                 businessFee = new TbFeeStatistics();
-                businessFee.setTaxRate(new BigDecimal(0.06));
+                businessFee.setTaxRate(new BigDecimal(TbFeeStatistics.taxRate.BUSINESS.getValue()));
             }
             businessFee.setTaxMoney(businessFee.getTaxMoney().add(item.getItemPrice()));
             businessFee.setNum(businessFee.getNum() + 1);