From 8315f9f712469e099fc31edf4695e0bf78dd4abb Mon Sep 17 00:00:00 2001 From: luozukai Date: Tue, 3 Sep 2019 18:32:10 +0800 Subject: [PATCH 01/16] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=BB=93=E7=AE=97=E5=8D=95]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/rent/WxBillSettleController.java | 5 ++++- .../iformall/service/impl/WxBillAllServiceImpl.java | 10 +++++----- .../service/impl/WxRentContractServiceImpl.java | 2 +- .../src/main/java/com/iformall/utils/WordUtil.java | 12 ++++++++---- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java index 8e56f556a..b4cabc8e4 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java @@ -8,6 +8,7 @@ import com.iformall.controller.base.BaseController; import com.iformall.domain.po.BaseEntity; import com.iformall.domain.po.WxBillSettle; import com.iformall.domain.po.WxBillSettleRecord; +import com.iformall.service.WxBillAllService; import com.iformall.service.WxBillSettleRecordService; import com.iformall.service.WxBillSettleService; import io.swagger.annotations.ApiImplicitParam; @@ -32,6 +33,8 @@ public class WxBillSettleController extends BaseController { private WxBillSettleService wxBillSettleService; @Autowired private WxBillSettleRecordService wxBillSettleRecordService; + @Autowired + private WxBillAllService wxBillAllService; @GetMapping("list") @ApiOperation("账单管理-结算对冲列表") @@ -88,6 +91,6 @@ public class WxBillSettleController extends BaseController { @SystemControllerLog(description = "账单管理-结算单-下载") public void downloadSettle(@ModelAttribute WxBillSettle wxBillSettle, HttpServletRequest request, HttpServletResponse response) { wxBillSettle.setTenantId(getTenantId()); - wxBillSettleService.exportBill(request, response, wxBillSettle); + wxBillAllService.exportSettleBill(wxBillSettle,request,response); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index 156f2c22c..8b8116690 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -786,7 +786,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { String filepath = fmUploadDir; String filename = UUID.randomUUID() + ".docx"; String exportFileName = "催缴单.docx"; - WordUtil.exportWord(templatePath, filepath, filename, exportFileName, result, request, response); + WordUtil.exportWord(templatePath, filepath, filename, exportFileName, result, request, response,null); } @Override @@ -818,14 +818,14 @@ public class WxBillAllServiceImpl implements WxBillAllService { int size = wxBillSettle.getReceiveBillIds().size() > wxBillSettle.getPayBillIds().size()?wxBillSettle.getReceiveBillIds().size():wxBillSettle.getPayBillIds().size(); int count = 1; for (int i = 0; i < size ; i++) { - WxBillSettleBill bill = wxBillSettle.getReceiveBillIds().get(i); + WxBillSettleBill bill = i>wxBillSettle.getReceiveBillIds().size()-1?null:wxBillSettle.getReceiveBillIds().get(i); Map map = new HashedMap(); if(bill != null){ map.put("s1",count+""); map.put("bn1",bill.getBillName()); map.put("money1",bill.getReceivePay()); } - WxBillSettleBill payBill = wxBillSettle.getPayBillIds().get(i); + WxBillSettleBill payBill = i>wxBillSettle.getPayBillIds().size()-1?null:wxBillSettle.getPayBillIds().get(i); if(payBill != null){ map.put("bn2",payBill.getBillName()); map.put("money2",payBill.getReceivePay()); @@ -837,8 +837,8 @@ public class WxBillAllServiceImpl implements WxBillAllService { String templatePath = "contract-word-template/settle.docx"; String filepath = fmUploadDir; String filename = UUID.randomUUID() + ".docx"; - String exportFileName = "催缴单.docx"; - WordUtil.exportWord(templatePath, filepath, filename, exportFileName, result, request, response); + String exportFileName = "结算单.docx"; + WordUtil.exportWord(templatePath, filepath, filename, exportFileName, result, request, response,null); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index b7d6bdba2..9c95294c4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1612,7 +1612,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { String filepath = fmUploadDir; String filename = UUID.randomUUID() + ".docx"; String exportFileName = result.get("merchantName").toString() + "合同.docx"; - WordUtil.exportWord(templatePath, filepath, filename, exportFileName, result, request, response); + WordUtil.exportWord(templatePath, filepath, filename, exportFileName, result, request, response,null); } @Override diff --git a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java index 69bb316b7..d01e3e0ad 100644 --- a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java @@ -8,6 +8,7 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.Assert; +import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -35,7 +36,7 @@ public class WordUtil { * @param request HttpServletRequest * @param response HttpServletResponse */ - public static void exportWord(String templatePath, String temDir, String fileName, String exportFileName, Map params, HttpServletRequest request, HttpServletResponse response) { + public static void exportWord(String templatePath, String temDir, String fileName, String exportFileName, Map params, HttpServletRequest request, HttpServletResponse response,List> rowsParams) { Assert.notNull(templatePath, "模板路径不能为空"); Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(exportFileName, "导出文件名不能为空"); @@ -57,6 +58,9 @@ public class WordUtil { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); + if(!CollectionUtils.isEmpty(rowsParams)) + insertValueToTable(doc,rowsParams,1); + String tmpPath = temDir + fileName; FileOutputStream fos = new FileOutputStream(tmpPath); doc.write(fos); @@ -94,7 +98,7 @@ public class WordUtil { * @param tableIndex * @throws Exception */ - private void insertValueToTable(XWPFDocument xwpfDocument, List> params, int tableIndex) throws Exception { + public static void insertValueToTable(XWPFDocument xwpfDocument, List> params, int tableIndex) throws Exception { List tableList = xwpfDocument.getTables(); if(tableList.size()<=tableIndex){ throw new Exception("tableIndex对应的表格不存在"); @@ -105,7 +109,7 @@ public class WordUtil { throw new Exception("tableIndex对应表格应该为2行"); } //模板的那一行 - XWPFTableRow tmpRow = rows.get(1); + XWPFTableRow tmpRow = rows.get(3); List tmpCells = null; List cells = null; XWPFTableCell tmpCell = null; @@ -147,7 +151,7 @@ public class WordUtil { * @param text * @throws Exception */ - private void setCellText(XWPFTableCell tmpCell, XWPFTableCell cell,String text) throws Exception { + public static void setCellText(XWPFTableCell tmpCell, XWPFTableCell cell,String text) throws Exception { CTTc cttc2 = tmpCell.getCTTc(); CTTcPr ctPr2 = cttc2.getTcPr(); CTTc cttc = cell.getCTTc(); From 7a222038a7c5528b5a0a682ffa2da77f83874629 Mon Sep 17 00:00:00 2001 From: luozukai Date: Tue, 3 Sep 2019 19:01:34 +0800 Subject: [PATCH 02/16] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=BB=93=E7=AE=97=E5=8D=95]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxBillAllServiceImpl.java | 2 +- .../java/com/iformall/utils/WordUtil.java | 7 ++----- .../contract-word-template/settle.docx | Bin 60264 -> 58734 bytes 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index 8b8116690..f7a5c4b42 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -838,7 +838,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { String filepath = fmUploadDir; String filename = UUID.randomUUID() + ".docx"; String exportFileName = "结算单.docx"; - WordUtil.exportWord(templatePath, filepath, filename, exportFileName, result, request, response,null); + WordUtil.exportWord(templatePath, filepath, filename, exportFileName, result, request, response,rowsParams); } diff --git a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java index d01e3e0ad..257c00e5f 100644 --- a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java @@ -59,7 +59,7 @@ public class WordUtil { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); if(!CollectionUtils.isEmpty(rowsParams)) - insertValueToTable(doc,rowsParams,1); + insertValueToTable(doc,rowsParams,0); String tmpPath = temDir + fileName; FileOutputStream fos = new FileOutputStream(tmpPath); @@ -100,16 +100,13 @@ public class WordUtil { */ public static void insertValueToTable(XWPFDocument xwpfDocument, List> params, int tableIndex) throws Exception { List tableList = xwpfDocument.getTables(); - if(tableList.size()<=tableIndex){ - throw new Exception("tableIndex对应的表格不存在"); - } XWPFTable table = tableList.get(tableIndex); List rows = table.getRows(); if(rows.size()<2){ throw new Exception("tableIndex对应表格应该为2行"); } //模板的那一行 - XWPFTableRow tmpRow = rows.get(3); + XWPFTableRow tmpRow = rows.get(2); List tmpCells = null; List cells = null; XWPFTableCell tmpCell = null; diff --git a/mallinkService/src/main/resources/contract-word-template/settle.docx b/mallinkService/src/main/resources/contract-word-template/settle.docx index 47a1568e5c292e58ad62267ebb4b76a9e0144158..c87fbad5d7cf4b4668437c8afd3da5b6cb1dc9fc 100644 GIT binary patch delta 35858 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 delta 37244 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 From 8f09fc97410edfbc6e28bf1bb3bf5375ee402d1c Mon Sep 17 00:00:00 2001 From: luozukai Date: Tue, 3 Sep 2019 22:11:28 +0800 Subject: [PATCH 03/16] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=BB=93=E7=AE=97=E5=8D=95]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxBillAllServiceImpl.java | 8 ++- .../java/com/iformall/utils/WordUtil.java | 68 +++++++++--------- .../contract-word-template/settle.docx | Bin 58734 -> 59908 bytes 3 files changed, 43 insertions(+), 33 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index f7a5c4b42..72048e249 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -820,15 +820,21 @@ public class WxBillAllServiceImpl implements WxBillAllService { for (int i = 0; i < size ; i++) { WxBillSettleBill bill = i>wxBillSettle.getReceiveBillIds().size()-1?null:wxBillSettle.getReceiveBillIds().get(i); Map map = new HashedMap(); + map.put("s1",count+""); if(bill != null){ - map.put("s1",count+""); map.put("bn1",bill.getBillName()); map.put("money1",bill.getReceivePay()); + }else{ + map.put("bn1",""); + map.put("money1",""); } WxBillSettleBill payBill = i>wxBillSettle.getPayBillIds().size()-1?null:wxBillSettle.getPayBillIds().get(i); if(payBill != null){ map.put("bn2",payBill.getBillName()); map.put("money2",payBill.getReceivePay()); + }else{ + map.put("bn2",""); + map.put("money2",""); } rowsParams.add(map); count++; diff --git a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java index 257c00e5f..e05254d85 100644 --- a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java @@ -105,40 +105,44 @@ public class WordUtil { if(rows.size()<2){ throw new Exception("tableIndex对应表格应该为2行"); } - //模板的那一行 - XWPFTableRow tmpRow = rows.get(2); - List tmpCells = null; - List cells = null; - XWPFTableCell tmpCell = null; - tmpCells = tmpRow.getTableCells(); - String cellText = null; - String cellTextKey = null; - Map totalMap = null; - for (int i = 0, len = params.size(); i < len; i++) { - Map map = params.get(i); - // 创建新的一行 - XWPFTableRow row = table.createRow(); - // 获取模板的行高 设置为新一行的行高 - row.setHeight(tmpRow.getHeight()); - cells = row.getTableCells(); - for (int k = 0, klen = cells.size(); k < klen; k++) { - tmpCell = tmpCells.get(k); - XWPFTableCell cell = cells.get(k); - cellText = tmpCell.getText(); - if (StringUtils.isNotBlank(cellText)) { - //转换为mapkey对应的字段 - cellTextKey = cellText.replace("$", "").replace("{", "").replace("}", ""); - if (map.containsKey(cellTextKey)) { - // 填充内容 并且复制模板行的属性 - setCellText(tmpCell,cell,map.get(cellTextKey)); - } - } - } - } - // 删除模版行 - table.removeRow(1); + table.addRow(rows.get(2),2); + +// //模板的那一行 +// XWPFTableRow tmpRow = rows.get(2); +// List tmpCells = null; +// List cells2 = null; +// XWPFTableCell tmpCell = null; +// tmpCells = tmpRow.getTableCells(); +// +// String cellText = null; +// String cellTextKey = null; +// Map totalMap = null; +// for (int i = 0, len = params.size(); i < len; i++) { +// Map map = params.get(i); +// // 创建新的一行 +// XWPFTableRow row = table.createRow(); +// // 获取模板的行高 设置为新一行的行高 +// row.setHeight(tmpRow.getHeight()); +// cells = row.a(); +// for (int k = 0, klen = tmpCells.size(); k < klen; k++) { +// tmpCell = tmpCells.get(k); +// XWPFTableCell cell = cells.get(k); +// cellText = tmpCell.getText(); +// if (StringUtils.isNotBlank(cellText)) { +// //转换为mapkey对应的字段 +// cellTextKey = cellText.replace("$", "").replace("{", "").replace("}", ""); +// if (map.containsKey(cellTextKey)) { +// // 填充内容 并且复制模板行的属性 +// setCellText(tmpCell,cell,map.get(cellTextKey)); +// } +// } +// } +// +// } +// // 删除模版行 +// table.removeRow(2); } /** diff --git a/mallinkService/src/main/resources/contract-word-template/settle.docx b/mallinkService/src/main/resources/contract-word-template/settle.docx index c87fbad5d7cf4b4668437c8afd3da5b6cb1dc9fc..207fc008b918ce1d0cc356a0f8637950e87537cb 100644 GIT binary patch delta 10320 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 delta 8990 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 K==;WhX8#XB2&Rqz From 52310e466455bdc7637968c153e4ea9d4e28abd5 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 4 Sep 2019 10:10:24 +0800 Subject: [PATCH 04/16] =?UTF-8?q?[=E6=8B=BC=E5=9B=A2][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E6=8B=BC=E5=9B=A2=E4=B8=AD=E8=A6=81=E9=99=90=E8=B4=AD]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/iformall/service/impl/WxOrderServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 28cf2a7bf..4eac880a1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -209,6 +209,7 @@ public class WxOrderServiceImpl implements WxOrderService { statusS.add(EnumOrderStatus.ORDER_STATUS_PRESS_COMPLETE.getCode()); statusS.add(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode()); + statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING.getCode()); orderQ.setStatusS(statusS); return wxOrderMapper.countList(orderQ); } catch (Exception e) { From 0fa26e8067affc02fd743018bf1919d7e69ae285 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 4 Sep 2019 10:19:32 +0800 Subject: [PATCH 05/16] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=BB=93=E7=AE=97=E5=8D=95]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/domain/vo/WordDocTableVo.java | 19 ++ .../service/impl/WxBillAllServiceImpl.java | 31 +-- .../java/com/iformall/utils/WordUtil.java | 183 ++---------------- 3 files changed, 54 insertions(+), 179 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/WordDocTableVo.java diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WordDocTableVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WordDocTableVo.java new file mode 100644 index 000000000..820240bb0 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WordDocTableVo.java @@ -0,0 +1,19 @@ +package com.iformall.domain.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class WordDocTableVo implements Serializable{ + + private static final long serialVersionUID = 1L; + + private List> params; + + private int tableIndex = 0; + + //替换的行 + private int rowIndex = 0; +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index 72048e249..ffe2f850a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -814,37 +814,42 @@ public class WxBillAllServiceImpl implements WxBillAllService { result.put("payMU", PriceUtil.digitUppercase(payM.doubleValue())); result.put("bMU", PriceUtil.digitUppercase(bM.doubleValue())); - List> rowsParams = new ArrayList<>(); + WordDocTableVo wordDocTableVo = new WordDocTableVo(); + List> rowsParams = new ArrayList<>(); int size = wxBillSettle.getReceiveBillIds().size() > wxBillSettle.getPayBillIds().size()?wxBillSettle.getReceiveBillIds().size():wxBillSettle.getPayBillIds().size(); int count = 1; for (int i = 0; i < size ; i++) { WxBillSettleBill bill = i>wxBillSettle.getReceiveBillIds().size()-1?null:wxBillSettle.getReceiveBillIds().get(i); - Map map = new HashedMap(); - map.put("s1",count+""); + List cellList = new ArrayList<>(); + cellList.add(count+""); + if(bill != null){ - map.put("bn1",bill.getBillName()); - map.put("money1",bill.getReceivePay()); + cellList.add(bill.getBillName()); + cellList.add(bill.getReceivePay()); }else{ - map.put("bn1",""); - map.put("money1",""); + cellList.add(""); + cellList.add(""); } WxBillSettleBill payBill = i>wxBillSettle.getPayBillIds().size()-1?null:wxBillSettle.getPayBillIds().get(i); if(payBill != null){ - map.put("bn2",payBill.getBillName()); - map.put("money2",payBill.getReceivePay()); + cellList.add(payBill.getBillName()); + cellList.add(payBill.getReceivePay()); }else{ - map.put("bn2",""); - map.put("money2",""); + cellList.add(""); + cellList.add(""); } - rowsParams.add(map); + rowsParams.add(cellList); count++; } + wordDocTableVo.setParams(rowsParams); + wordDocTableVo.setTableIndex(0); + wordDocTableVo.setRowIndex(2); String templatePath = "contract-word-template/settle.docx"; String filepath = fmUploadDir; String filename = UUID.randomUUID() + ".docx"; String exportFileName = "结算单.docx"; - WordUtil.exportWord(templatePath, filepath, filename, exportFileName, result, request, response,rowsParams); + WordUtil.exportWord(templatePath, filepath, filename, exportFileName, result, request, response,wordDocTableVo); } diff --git a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java index e05254d85..780404e82 100644 --- a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java @@ -1,6 +1,7 @@ package com.iformall.utils; import cn.afterturn.easypoi.word.WordExportUtil; +import com.iformall.domain.vo.WordDocTableVo; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.xwpf.usermodel.*; @@ -36,7 +37,7 @@ public class WordUtil { * @param request HttpServletRequest * @param response HttpServletResponse */ - public static void exportWord(String templatePath, String temDir, String fileName, String exportFileName, Map params, HttpServletRequest request, HttpServletResponse response,List> rowsParams) { + public static void exportWord(String templatePath, String temDir, String fileName, String exportFileName, Map params, HttpServletRequest request, HttpServletResponse response, WordDocTableVo wordDocTableVo) { Assert.notNull(templatePath, "模板路径不能为空"); Assert.notNull(temDir, "临时文件路径不能为空"); Assert.notNull(exportFileName, "导出文件名不能为空"); @@ -58,8 +59,8 @@ public class WordUtil { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); - if(!CollectionUtils.isEmpty(rowsParams)) - insertValueToTable(doc,rowsParams,0); + if(wordDocTableVo != null) + insertValueToTable(doc,wordDocTableVo); String tmpPath = temDir + fileName; FileOutputStream fos = new FileOutputStream(tmpPath); @@ -88,26 +89,30 @@ public class WordUtil { } catch (Exception e) { e.printStackTrace(); } - } /** * 循环填充表格内容 * @param xwpfDocument - * @param params - * @param tableIndex * @throws Exception */ - public static void insertValueToTable(XWPFDocument xwpfDocument, List> params, int tableIndex) throws Exception { + public static void insertValueToTable(XWPFDocument xwpfDocument, WordDocTableVo wordDocTableVo) throws Exception { List tableList = xwpfDocument.getTables(); - XWPFTable table = tableList.get(tableIndex); + XWPFTable table = tableList.get(wordDocTableVo.getTableIndex()); List rows = table.getRows(); - if(rows.size()<2){ - throw new Exception("tableIndex对应表格应该为2行"); - } + int rowIndex = wordDocTableVo.getRowIndex(); + XWPFTableRow tmpRow = rows.get(rowIndex); + List cellList = tmpRow.getTableCells(); + + for (List stringList : wordDocTableVo.getParams()) { + for (int i = 0; i < stringList.size(); i++) { + cellList.get(i).setText(stringList.get(i)); + } + table.addRow(tmpRow,rowIndex); + rowIndex++; + } - table.addRow(rows.get(2),2); // //模板的那一行 // XWPFTableRow tmpRow = rows.get(2); @@ -145,161 +150,7 @@ public class WordUtil { // table.removeRow(2); } - /** - * 复制模板行的属性 - * @param tmpCell - * @param cell - * @param text - * @throws Exception - */ - public static void setCellText(XWPFTableCell tmpCell, XWPFTableCell cell,String text) throws Exception { - CTTc cttc2 = tmpCell.getCTTc(); - CTTcPr ctPr2 = cttc2.getTcPr(); - CTTc cttc = cell.getCTTc(); - CTTcPr ctPr = cttc.addNewTcPr(); - if (ctPr2.getTcW() != null) { - ctPr.addNewTcW().setW(ctPr2.getTcW().getW()); - } - if (ctPr2.getVAlign() != null) { - ctPr.addNewVAlign().setVal(ctPr2.getVAlign().getVal()); - } - if (cttc2.getPList().size() > 0) { - CTP ctp = cttc2.getPList().get(0); - if (ctp.getPPr() != null) { - if (ctp.getPPr().getJc() != null) { - cttc.getPList().get(0).addNewPPr().addNewJc() - .setVal(ctp.getPPr().getJc().getVal()); - } - } - } - if (ctPr2.getTcBorders() != null) { - ctPr.setTcBorders(ctPr2.getTcBorders()); - } - XWPFParagraph tmpP = tmpCell.getParagraphs().get(0); - XWPFParagraph cellP = cell.getParagraphs().get(0); - XWPFRun tmpR = null; - if (tmpP.getRuns() != null && tmpP.getRuns().size() > 0) { - tmpR = tmpP.getRuns().get(0); - } - XWPFRun cellR = cellP.createRun(); - cellR.setText(text); - // 复制字体信息 - if (tmpR != null) { - if(!cellR.isBold()){ - cellR.setBold(tmpR.isBold()); - } - cellR.setItalic(tmpR.isItalic()); - cellR.setUnderline(tmpR.getUnderline()); - cellR.setColor(tmpR.getColor()); - cellR.setTextPosition(tmpR.getTextPosition()); - if (tmpR.getFontSize() != -1) { - cellR.setFontSize(tmpR.getFontSize()); - } - if (tmpR.getFontFamily() != null) { - cellR.setFontFamily(tmpR.getFontFamily()); - } - if (tmpR.getCTR() != null) { - if (tmpR.getCTR().isSetRPr()) { - CTRPr tmpRPr = tmpR.getCTR().getRPr(); - if (tmpRPr.isSetRFonts()) { - CTFonts tmpFonts = tmpRPr.getRFonts(); - CTRPr cellRPr = cellR.getCTR().isSetRPr() ? cellR - .getCTR().getRPr() : cellR.getCTR().addNewRPr(); - CTFonts cellFonts = cellRPr.isSetRFonts() ? cellRPr - .getRFonts() : cellRPr.addNewRFonts(); - cellFonts.setAscii(tmpFonts.getAscii()); - cellFonts.setAsciiTheme(tmpFonts.getAsciiTheme()); - cellFonts.setCs(tmpFonts.getCs()); - cellFonts.setCstheme(tmpFonts.getCstheme()); - cellFonts.setEastAsia(tmpFonts.getEastAsia()); - cellFonts.setEastAsiaTheme(tmpFonts.getEastAsiaTheme()); - cellFonts.setHAnsi(tmpFonts.getHAnsi()); - cellFonts.setHAnsiTheme(tmpFonts.getHAnsiTheme()); - } - } - } - - } - // 复制段落信息 - cellP.setAlignment(tmpP.getAlignment()); - cellP.setVerticalAlignment(tmpP.getVerticalAlignment()); - cellP.setBorderBetween(tmpP.getBorderBetween()); - cellP.setBorderBottom(tmpP.getBorderBottom()); - cellP.setBorderLeft(tmpP.getBorderLeft()); - cellP.setBorderRight(tmpP.getBorderRight()); - cellP.setBorderTop(tmpP.getBorderTop()); - cellP.setPageBreak(tmpP.isPageBreak()); - if (tmpP.getCTP() != null) { - if (tmpP.getCTP().getPPr() != null) { - CTPPr tmpPPr = tmpP.getCTP().getPPr(); - CTPPr cellPPr = cellP.getCTP().getPPr() != null ? cellP - .getCTP().getPPr() : cellP.getCTP().addNewPPr(); - // 复制段落间距信息 - CTSpacing tmpSpacing = tmpPPr.getSpacing(); - if (tmpSpacing != null) { - CTSpacing cellSpacing = cellPPr.getSpacing() != null ? cellPPr - .getSpacing() : cellPPr.addNewSpacing(); - if (tmpSpacing.getAfter() != null) { - cellSpacing.setAfter(tmpSpacing.getAfter()); - } - if (tmpSpacing.getAfterAutospacing() != null) { - cellSpacing.setAfterAutospacing(tmpSpacing - .getAfterAutospacing()); - } - if (tmpSpacing.getAfterLines() != null) { - cellSpacing.setAfterLines(tmpSpacing.getAfterLines()); - } - if (tmpSpacing.getBefore() != null) { - cellSpacing.setBefore(tmpSpacing.getBefore()); - } - if (tmpSpacing.getBeforeAutospacing() != null) { - cellSpacing.setBeforeAutospacing(tmpSpacing - .getBeforeAutospacing()); - } - if (tmpSpacing.getBeforeLines() != null) { - cellSpacing.setBeforeLines(tmpSpacing.getBeforeLines()); - } - if (tmpSpacing.getLine() != null) { - cellSpacing.setLine(tmpSpacing.getLine()); - } - if (tmpSpacing.getLineRule() != null) { - cellSpacing.setLineRule(tmpSpacing.getLineRule()); - } - } - // 复制段落缩进信息 - CTInd tmpInd = tmpPPr.getInd(); - if (tmpInd != null) { - CTInd cellInd = cellPPr.getInd() != null ? cellPPr.getInd() - : cellPPr.addNewInd(); - if (tmpInd.getFirstLine() != null) { - cellInd.setFirstLine(tmpInd.getFirstLine()); - } - if (tmpInd.getFirstLineChars() != null) { - cellInd.setFirstLineChars(tmpInd.getFirstLineChars()); - } - if (tmpInd.getHanging() != null) { - cellInd.setHanging(tmpInd.getHanging()); - } - if (tmpInd.getHangingChars() != null) { - cellInd.setHangingChars(tmpInd.getHangingChars()); - } - if (tmpInd.getLeft() != null) { - cellInd.setLeft(tmpInd.getLeft()); - } - if (tmpInd.getLeftChars() != null) { - cellInd.setLeftChars(tmpInd.getLeftChars()); - } - if (tmpInd.getRight() != null) { - cellInd.setRight(tmpInd.getRight()); - } - if (tmpInd.getRightChars() != null) { - cellInd.setRightChars(tmpInd.getRightChars()); - } - } - } - } - } } \ No newline at end of file From d7a4f81bfcefddf31f7ac6be26e025aeab777097 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 4 Sep 2019 10:49:12 +0800 Subject: [PATCH 06/16] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=BB=93=E7=AE=97=E5=8D=95]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/domain/po/WxBillSettle.java | 5 ++++ .../service/impl/WxBillSettleServiceImpl.java | 6 +--- .../resources/mapper/WxBillSettleMapper.xml | 29 ++++++++++++++----- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java index 5d9bcaba9..7e0fca77b 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java @@ -87,4 +87,9 @@ public class WxBillSettle extends BaseEntity { @Transient @io.swagger.annotations.ApiModelProperty(value="清算方向 1商场结款 2商户结款",name="settleWay") private Integer settleWay; + + @Transient + @io.swagger.annotations.ApiModelProperty(value="流向 0流入 1流出",name="direction") + private Integer direction; + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java index 132a1a4c2..9216cc8f8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java @@ -60,11 +60,7 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { @Override public PageInfo listAsPage(WxBillSettle record, Integer pageIndex, Integer pageSize) { - PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxBillSettleMapper.findList(record)); - pageInfo.getList().stream().forEach(e->{ - e.setBalance(e.getReceiveMoney() - e.getPayMoney()); - }); - return pageInfo; + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxBillSettleMapper.findList(record)); } @Override diff --git a/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml b/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml index eb2c6554f..6bb84d8a2 100644 --- a/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml @@ -24,23 +24,32 @@ where 1=1 - and s.`id` = #{id} - and s.`tenant_id` = #{tenantId} - and m.name like concat('%', #{merchantName},'%') + and tt.`id` = #{id} + and tt.`tenant_id` = #{tenantId} + and tt.merchantName like concat('%', #{merchantName},'%') - and createtime >= #{startTime} + and tt.createtime >= #{startTime} - and createtime <= #{endTime} + and tt.createtime <= #{endTime} + + and tt.`settle_number` = #{settleNumber} + and tt.`status` = #{status} + and tt.`apply_status` = #{applyStatus} + + + balance >0 + + + balance <0 + - and s.`settle_number` = #{settleNumber} - and s.`status` = #{status} - and s.`apply_status` = #{applyStatus} order by ${sortColumns} From 9f7cf254b7184779f46c00ca1a0ff698911b7186 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 4 Sep 2019 10:54:47 +0800 Subject: [PATCH 07/16] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=BB=93=E7=AE=97=E5=8D=95]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxBillAllServiceImpl.java | 2 +- .../contract-word-template/settle.docx | Bin 59908 -> 55550 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index ffe2f850a..1f7ed59bb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -843,7 +843,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { } wordDocTableVo.setParams(rowsParams); wordDocTableVo.setTableIndex(0); - wordDocTableVo.setRowIndex(2); + wordDocTableVo.setRowIndex(1); String templatePath = "contract-word-template/settle.docx"; String filepath = fmUploadDir; diff --git a/mallinkService/src/main/resources/contract-word-template/settle.docx b/mallinkService/src/main/resources/contract-word-template/settle.docx index 207fc008b918ce1d0cc356a0f8637950e87537cb..b5e4b9e329426aef03d04a4083420601127045ab 100644 GIT binary patch delta 27762 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 K&kz22_Fn)VgBNrF delta 33001 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 MY!*NA<&VGqFUUOxumAu6 From 0ce0c2418494024a40ad8e4a7cafc11b5dbd5e8d Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 4 Sep 2019 11:16:40 +0800 Subject: [PATCH 08/16] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=BB=93=E7=AE=97=E5=8D=95]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/iformall/domain/po/WxBillSettle.java | 9 +++++---- .../src/main/resources/mapper/WxBillSettleMapper.xml | 8 ++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java index 7e0fca77b..1ddf6ea68 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillSettle.java @@ -77,12 +77,13 @@ public class WxBillSettle extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "结单记录", name = "settleRecordList") private List settleRecordList; + @Transient - @io.swagger.annotations.ApiModelProperty(value="开始时间",name="starttime") - private Date startTime; + @io.swagger.annotations.ApiModelProperty(value = "开始时间", name = "starttime") + private Date starttime; @Transient - @io.swagger.annotations.ApiModelProperty(value="结束时间",name="endtime") - private Date endTime; + @io.swagger.annotations.ApiModelProperty(value = "结束时间", name = "endtime") + private Date endtime; @Transient @io.swagger.annotations.ApiModelProperty(value="清算方向 1商场结款 2商户结款",name="settleWay") diff --git a/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml b/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml index 6bb84d8a2..576cf13ea 100644 --- a/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillSettleMapper.xml @@ -27,11 +27,11 @@ and tt.`id` = #{id} and tt.`tenant_id` = #{tenantId} and tt.merchantName like concat('%', #{merchantName},'%') - - and tt.createtime >= #{startTime} + + and tt.createtime >= #{starttime} - - and tt.createtime <= #{endTime} + + and tt.createtime <= #{endtime} and tt.`settle_number` = #{settleNumber} and tt.`status` = #{status} From 755ad7a52aead09dc393d0b9a32bf117611e6196 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 4 Sep 2019 11:20:59 +0800 Subject: [PATCH 09/16] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=BB=93=E7=AE=97=E5=8D=95]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/service/impl/WxBillAllServiceImpl.java | 1 + mallinkService/src/main/java/com/iformall/utils/WordUtil.java | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index 1f7ed59bb..819f54665 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -830,6 +830,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { cellList.add(""); cellList.add(""); } + cellList.add(count+""); WxBillSettleBill payBill = i>wxBillSettle.getPayBillIds().size()-1?null:wxBillSettle.getPayBillIds().get(i); if(payBill != null){ cellList.add(payBill.getBillName()); diff --git a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java index 780404e82..e7f95f438 100644 --- a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java @@ -103,11 +103,10 @@ public class WordUtil { int rowIndex = wordDocTableVo.getRowIndex(); XWPFTableRow tmpRow = rows.get(rowIndex); - List cellList = tmpRow.getTableCells(); for (List stringList : wordDocTableVo.getParams()) { for (int i = 0; i < stringList.size(); i++) { - cellList.get(i).setText(stringList.get(i)); + tmpRow.getTableCells().get(i).setText(stringList.get(i)); } table.addRow(tmpRow,rowIndex); rowIndex++; From e9889c545cbf375b6b699902d1aa781985c803b4 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 4 Sep 2019 11:22:24 +0800 Subject: [PATCH 10/16] =?UTF-8?q?[=E6=8B=BC=E5=9B=A2][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E6=8B=BC=E5=9B=A2=E4=B8=AD=E8=A6=81=E9=99=90=E8=B4=AD]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxOrderServiceImpl.java | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 4eac880a1..465ea5a92 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -189,6 +189,30 @@ public class WxOrderServiceImpl implements WxOrderService { return new ResultData(resultMap); } + /** + * 拼团数量 + * + * @param user + * @param counpon + * @return + */ + private int getUserOrderGroupCount(WxCUser user, WxCoupon counpon) { + // + Order 待支付 + try { + WxOrder orderQ = new WxOrder(); + orderQ.setTenantId(user.getTenantId()); + orderQ.setProductId(counpon.getId()); + orderQ.setType(EnumOrderType.COUPON.getCode()); + orderQ.setCUserId(user.getId()); + orderQ.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING.getCode()); + return wxOrderMapper.countList(orderQ); + } catch (Exception e) { + logger.error("购买是否超限-DB, couponId: " + counpon.getId() + ", e:" + e.getMessage()); + throw new MallinkException(ErrorCode.ORDER_IS_FAIL); + } + + } + /** * 用户购买的订单数量 @@ -209,7 +233,6 @@ public class WxOrderServiceImpl implements WxOrderService { statusS.add(EnumOrderStatus.ORDER_STATUS_PRESS_COMPLETE.getCode()); statusS.add(EnumOrderStatus.ORDER_STATUS_PENDING_PAYMENT.getCode()); statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode()); - statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING.getCode()); orderQ.setStatusS(statusS); return wxOrderMapper.countList(orderQ); } catch (Exception e) { @@ -419,6 +442,21 @@ public class WxOrderServiceImpl implements WxOrderService { throw new MallinkException(ErrorCode.ORDER_UNPAID); } } + //检查拼团中的数量 + try { + count = getUserOrderGroupCount(user, coupon); + } catch (Exception e) { + //解锁 + redisLock.unlock(couponIdStr, timeStr); + throw new MallinkException(ErrorCode.DB_FAIL); + } + if (count >= coupon.getUseLimitQuantity()) { + //解锁 + redisLock.unlock(couponIdStr, timeStr); + logger.error("此券购买数量已超限, couponId: " + couponIdStr + ", count: " + count); + throw new MallinkException(ErrorCode.ORDER_IS_LIMITED); + } + // 检查用户已购买数量 try { count = getUserCouponOrderCount(user, coupon); @@ -1586,8 +1624,8 @@ public class WxOrderServiceImpl implements WxOrderService { record.setCUserId(user.getId()); record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode()); record.setDetail(bodyStr); - record.setCreateDate(curr); record.setUpdateDate(curr); + record.setCreateDate(curr); if (isPress) { // 初始砍价信息 record.setPressCurrentNum(0); From 530c4128dbe672da78f5f77cbe35f421585baeb5 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 4 Sep 2019 11:23:03 +0800 Subject: [PATCH 11/16] =?UTF-8?q?[=E6=8B=BC=E5=9B=A2][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=8E=BB=E6=8B=BC=E5=9B=A2=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=88=B8=E5=B7=B2=E4=B8=8B=E6=9E=B6]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxOrderGroupServiceImpl.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java index 8ffc70894..1d1605dd8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java @@ -8,10 +8,7 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.vo.WxOrderGroupMarketing; -import com.iformall.enums.EnumAppType; -import com.iformall.enums.EnumCouponStatus; -import com.iformall.enums.EnumOrderStatus; -import com.iformall.enums.EnumRefundStatus; +import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.service.WxOrderGroupService; @@ -66,6 +63,9 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService { @Autowired RedisLock redisLock; + @Autowired + WxCouponChannelMapper wxCouponChannelMapper; + @Override @Transactional(propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) public void createOrderGroup(WxOrder order, WxCoupon wxCoupon) { @@ -227,6 +227,14 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService { @Override @Transactional(propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) public ResultData toOrderGroup(WxOrderGroup wxOrderGroup) { + WxOrder orderTemp = wxOrderMapper.selectByPrimaryKey(wxOrderGroup.getOrderId()); + if (orderTemp == null) { + return new ResultData(ErrorCode.ORDER_IS_NOT_FIND); + } + WxCouponChannel wxCouponChannel = wxCouponChannelMapper.selectByPrimaryKey(orderTemp.getCouponChannelId()); + if (wxCouponChannel.getStatus().equals(EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode())) { + return new ResultData(ErrorCode.COUPON_CHANNEL_IS_TAKE_OFF); + } WxOrder wxOrder = new WxOrder(); wxOrder.setTenantId(wxOrderGroup.getTenantId()); wxOrder.setId(wxOrderGroup.getOrderId()); From 4d68e69935afe1d9fe2f0b7f3cb6d125bad25a41 Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 4 Sep 2019 11:37:37 +0800 Subject: [PATCH 12/16] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=BB=93=E7=AE=97=E5=8D=95]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/iformall/utils/WordUtil.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java index e7f95f438..8010f552a 100644 --- a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java @@ -105,11 +105,13 @@ public class WordUtil { XWPFTableRow tmpRow = rows.get(rowIndex); for (List stringList : wordDocTableVo.getParams()) { - for (int i = 0; i < stringList.size(); i++) { - tmpRow.getTableCells().get(i).setText(stringList.get(i)); - } table.addRow(tmpRow,rowIndex); rowIndex++; + //替换新行内容 + XWPFTableRow tableRow = rows.get(rowIndex); + for (int i = 0; i < stringList.size(); i++) { + tableRow.getTableCells().get(i).setText(stringList.get(i)); + } } From 0cb5b6ba5341099b7e0b1e0a433b87182a97779c Mon Sep 17 00:00:00 2001 From: luozukai Date: Wed, 4 Sep 2019 11:38:36 +0800 Subject: [PATCH 13/16] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E7=BB=93=E7=AE=97=E5=8D=95]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mallinkService/src/main/java/com/iformall/utils/WordUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java index 8010f552a..6d5b447b3 100644 --- a/mallinkService/src/main/java/com/iformall/utils/WordUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/WordUtil.java @@ -113,7 +113,7 @@ public class WordUtil { tableRow.getTableCells().get(i).setText(stringList.get(i)); } } - + tmpRow.getTableCells().get(0).setText("aaaa"); // //模板的那一行 // XWPFTableRow tmpRow = rows.get(2); From 79ba41f6d7b28071b2badebaead5553a2407cab8 Mon Sep 17 00:00:00 2001 From: hupeng Date: Wed, 4 Sep 2019 12:20:29 +0800 Subject: [PATCH 14/16] =?UTF-8?q?[=E4=B8=9A=E6=80=81][=E6=96=B0=E5=A2=9E]:?= =?UTF-8?q?=E5=AD=90=E4=B8=9A=E6=80=81=E6=9E=9A=E4=B8=BE=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../com/iformall/enums/EnumSubBusiness.java | 44 ++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 02359ebda..b87b84391 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .idea/** */target/** +logs/** */logs/** logPath_IS_UNDEFINED/** uploads/** diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumSubBusiness.java b/mallinkService/src/main/java/com/iformall/enums/EnumSubBusiness.java index 35d09d253..01a371b25 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumSubBusiness.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumSubBusiness.java @@ -29,7 +29,49 @@ public enum EnumSubBusiness { SUB_BUSINESS_ID18(18,"东北菜"), SUB_BUSINESS_ID19(19,"面包店"), SUB_BUSINESS_ID20(20,"咖啡厅"), - SUB_BUSINESS_ID21(21,"饮品店") + SUB_BUSINESS_ID21(21,"饮品店"), + SUB_BUSINESS_ID22(22,"男装"), + SUB_BUSINESS_ID23(23,"女装"), + SUB_BUSINESS_ID24(24,"童装"), + SUB_BUSINESS_ID25(25,"鞋帽"), + SUB_BUSINESS_ID26(26,"配饰"), + SUB_BUSINESS_ID27(27,"内衣"), + SUB_BUSINESS_ID28(28,"亲子摄影"), + SUB_BUSINESS_ID29(29,"亲子游乐"), + SUB_BUSINESS_ID30(30,"幼儿教育"), + SUB_BUSINESS_ID31(31,"孕产护理"), + SUB_BUSINESS_ID32(32,"童车童床"), + SUB_BUSINESS_ID33(33,"玩具"), + SUB_BUSINESS_ID34(34,"喂养用品"), + SUB_BUSINESS_ID35(35,"面部护肤"), + SUB_BUSINESS_ID36(36,"香水彩妆"), + SUB_BUSINESS_ID37(37,"男士护肤"), + SUB_BUSINESS_ID38(38,"营养保健"), + SUB_BUSINESS_ID39(39,"黄金"), + SUB_BUSINESS_ID40(40,"钻石"), + SUB_BUSINESS_ID41(41,"时尚饰品"), + SUB_BUSINESS_ID42(42,"翡翠玉石"), + SUB_BUSINESS_ID43(43,"钟表"), + SUB_BUSINESS_ID44(44,"KTV"), + SUB_BUSINESS_ID45(45,"轰趴馆"), + SUB_BUSINESS_ID46(46,"DIY手工"), + SUB_BUSINESS_ID47(47,"文化艺术"), + SUB_BUSINESS_ID48(48,"游艺娱乐"), + SUB_BUSINESS_ID49(49,"桌游"), + SUB_BUSINESS_ID50(50,"运动健身"), + SUB_BUSINESS_ID51(51,"婚纱摄影"), + SUB_BUSINESS_ID52(52,"美容美发"), + SUB_BUSINESS_ID53(53,"学习培训"), + SUB_BUSINESS_ID54(54,"家具"), + SUB_BUSINESS_ID55(55,"家饰"), + SUB_BUSINESS_ID56(56,"家纺"), + SUB_BUSINESS_ID57(57,"生活用品"), + SUB_BUSINESS_ID58(58,"厨具"), + SUB_BUSINESS_ID59(59,"家用电器"), + SUB_BUSINESS_ID60(60,"数码产品"), + SUB_BUSINESS_ID61(61,"手机通信"), + SUB_BUSINESS_ID62(62,"电脑办公"), + SUB_BUSINESS_ID63(63,"影音娱乐"), ; private static Map map From cc1cc10d8c71ab41cbca541e39ff638db939febe Mon Sep 17 00:00:00 2001 From: hupeng Date: Wed, 4 Sep 2019 12:51:22 +0800 Subject: [PATCH 15/16] =?UTF-8?q?[=E8=A7=A3=E5=8D=95][=E4=BF=AE=E6=94=B9]:?= =?UTF-8?q?=E8=A7=A3=E5=8D=95=E5=AF=BC=E5=87=BA=E5=AD=90=E4=B8=9A=E6=80=81?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/WxMerchantTradeDailyMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/resources/mapper/WxMerchantTradeDailyMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantTradeDailyMapper.xml index f91af3e34..ffb45a6ab 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantTradeDailyMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantTradeDailyMapper.xml @@ -106,7 +106,7 @@ - + From 09c594d216fe94e605bbf6c9f1d6a50bccfb3618 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 4 Sep 2019 13:12:06 +0800 Subject: [PATCH 16/16] =?UTF-8?q?[=E6=97=A5=E5=B8=B8=E8=B4=A6=E5=8D=95][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E6=B7=BB=E5=8A=A0=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rent/WxBillDailyController.java | 2 + .../migration/V201909041150__G_BILL_DAILY.sql | 1 + .../schedule/PowerBillAutoBuildSchedule.java | 1 + .../com/iformall/domain/po/WxBillDaily.java | 4 ++ .../iformall/enums/EnumBillDailyBuildWay.java | 38 +++++++++++++++++++ .../service/impl/WxBillAllServiceImpl.java | 1 + .../resources/mapper/WxBillDailyMapper.xml | 9 ++++- 7 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V201909041150__G_BILL_DAILY.sql create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumBillDailyBuildWay.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java index 5237b8269..43212161b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java @@ -10,6 +10,7 @@ import com.iformall.controller.base.BaseController; import com.iformall.controller.mem.BillDailyAsyncTask; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillDaily; +import com.iformall.enums.EnumBillDailyBuildWay; import com.iformall.exception.MallinkException; import com.iformall.service.WxBillDailyService; import com.iformall.utils.Constant; @@ -75,6 +76,7 @@ public class WxBillDailyController extends BaseController { MallUserInfo user = getUser(); wxBillDaily.setTenantId(user.getTenantId()); wxBillDaily.setUserId(user.getId()); + wxBillDaily.setBuildWay(EnumBillDailyBuildWay.HAND.getCode()); return wxBillDailyService.saveOrUpdate(wxBillDaily, user); } diff --git a/mallinkAdmin/src/main/resources/db/migration/V201909041150__G_BILL_DAILY.sql b/mallinkAdmin/src/main/resources/db/migration/V201909041150__G_BILL_DAILY.sql new file mode 100644 index 000000000..4054ad487 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201909041150__G_BILL_DAILY.sql @@ -0,0 +1 @@ +alter table wx_bill_daily add column build_way tinyint(3) default 1 comment '创建方式1手动2自动3导入'; \ No newline at end of file diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java index 31265f064..7241c1e13 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/PowerBillAutoBuildSchedule.java @@ -133,6 +133,7 @@ public class PowerBillAutoBuildSchedule { wxBillDaily.setStarttime(startdate); wxBillDaily.setEndtime(enddate); wxBillDaily.setPriceDetail(priceDetals.toJSONString()); + wxBillDaily.setBuildWay(EnumBillDailyBuildWay.AUTO.getCode()); wxBillDailyService.saveOrUpdate(wxBillDaily, mallUserInfo); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java index e19c127cf..d3d57b81d 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java @@ -108,4 +108,8 @@ public class WxBillDaily extends BaseEntity{ private Date endtime; @io.swagger.annotations.ApiModelProperty(value = "冻结状态,0正常1冻结", name = "freeze") private Integer freeze; + + @io.swagger.annotations.ApiModelProperty(value = "创建方式1手动2自动3导入", name = "buildWay") + private Integer buildWay; + } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillDailyBuildWay.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillDailyBuildWay.java new file mode 100644 index 000000000..0590dfad8 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillDailyBuildWay.java @@ -0,0 +1,38 @@ +package com.iformall.enums; + + +/** + * @author gongbiao + */ + +public enum EnumBillDailyBuildWay { + + HAND(1, "手动"), + AUTO(2, "自动"), + IMPORT(3, "导入"),; + + public static EnumBillDailyBuildWay getEnum(Integer code) { + for (EnumBillDailyBuildWay value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumBillDailyBuildWay(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index 819f54665..6543e8dd0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -1169,6 +1169,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { WxBillRent expiredDayAndStatus = getExpiredDayAndStatus(bill.getReceiveDate(), bill.getPayDate(), receivePay, pay, false); daily.setExpiredDay(expiredDayAndStatus.getExpiredDay()); daily.setStatus(expiredDayAndStatus.getStatus()); + daily.setBuildWay(EnumBillDailyBuildWay.IMPORT.getCode()); wxBillDailyMapper.insertSelective(daily); if (pay > 0) { addActionImport(daily.getId(), bill.getPayWay(), bill.getPayDate(), user, bill.getPayStr()); diff --git a/mallinkService/src/main/resources/mapper/WxBillDailyMapper.xml b/mallinkService/src/main/resources/mapper/WxBillDailyMapper.xml index ba5ff205a..f9d30857e 100644 --- a/mallinkService/src/main/resources/mapper/WxBillDailyMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillDailyMapper.xml @@ -27,13 +27,14 @@ + `id`,`receive_pay`,`pay`,`receive_date`,`pay_date`,`createtime`,`expired_day`, `tenant_id`,`owe`,`status`,`is_del`,`merchant_id`,`user_id`,`shop_id`,`updatetime`,`type`, - `rent_shop_type`,`pay_way`,`price_detail`,`starttime`,`endtime`,freeze + `rent_shop_type`,`pay_way`,`price_detail`,`starttime`,`endtime`,freeze,build_way @@ -56,6 +57,8 @@ and `type` = #{type} and `rent_shop_type` = #{rentShopType} and `pay_way` = #{payWay} + and `build_way` = #{buildWay} + and id in @@ -74,7 +77,7 @@ select br.`id`,br.`receive_pay`,br.`pay`,br.`receive_date`,br.`pay_date`,br.`createtime`,br.`expired_day` , case when br.status=1 then br.owe else 0 end owe,br.`status`,m.`name` merchant_name,s.shop_number, br.`updatetime`,br.`merchant_id`,br.shop_id,br.type,br.`rent_shop_type`,br.pay_way,br.price_detail, - br.`starttime`,br.`endtime` + br.`starttime`,br.`endtime`,br.`build_way` from wx_bill_daily br left join wx_merchant m on br.merchant_id=m.id left join wx_shop s on br.shop_id=s.id @@ -88,6 +91,8 @@ and br.`pay_way` = #{payWay} and br.`receive_date` between #{starttime} and #{endtime} + and br.`build_way` = #{buildWay} +