定时获取发货单、商品调整
This commit is contained in:
parent
f278fd8aef
commit
f9d7fa8890
|
|
@ -269,14 +269,15 @@ public class InvoiceController extends BaseController {
|
||||||
@ApiOperation(value = "生成发货单PDF")
|
@ApiOperation(value = "生成发货单PDF")
|
||||||
@PostMapping(value = "/generateInvPdf")
|
@PostMapping(value = "/generateInvPdf")
|
||||||
public Map<String, Object> generateInvPdf(
|
public Map<String, Object> generateInvPdf(
|
||||||
@ApiParam(required = true, value = "单据日期") @RequestParam(required = true) String invoiceDate,
|
@ApiParam(required = false, value = "单据日期") @RequestParam(required = false) String invoiceDate,
|
||||||
|
@ApiParam(required = false, value = "主键") @RequestParam(required = false) String invoiceId,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
StopWatch stopWatch = new StopWatch();
|
StopWatch stopWatch = new StopWatch();
|
||||||
// 开始时间
|
// 开始时间
|
||||||
stopWatch.start();
|
stopWatch.start();
|
||||||
Map<String, Object> params = new HashMap<>();
|
Map<String, Object> params = new HashMap<>();
|
||||||
// params.put("invoiceDate", "2021-11");
|
|
||||||
params.put("invoiceDate", invoiceDate);
|
params.put("invoiceDate", invoiceDate);
|
||||||
|
params.put("invoiceId", invoiceId);
|
||||||
List<InvoiceInfo> orderList = invoiceService.findAll(params, ".pageList");
|
List<InvoiceInfo> orderList = invoiceService.findAll(params, ".pageList");
|
||||||
String path = ReadXmlutils.xmlForMap("", "invOrderPath");
|
String path = ReadXmlutils.xmlForMap("", "invOrderPath");
|
||||||
int totalNum = 0;
|
int totalNum = 0;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.yb.lb.webapp.ueight.job;
|
||||||
import com.yb.lb.common.utils.ErrorUtils;
|
import com.yb.lb.common.utils.ErrorUtils;
|
||||||
import com.yb.lb.common.utils.FINALCMD;
|
import com.yb.lb.common.utils.FINALCMD;
|
||||||
import com.yb.lb.webapp.message.service.MessageService;
|
import com.yb.lb.webapp.message.service.MessageService;
|
||||||
import com.yb.lb.webapp.u8.thread.U8OrderThread;
|
import com.yb.lb.webapp.u8.ueight.service.OrderCronService;
|
||||||
import com.yb.lb.webapp.u8.ueight.service.OrderUeightService;
|
import com.yb.lb.webapp.u8.ueight.service.OrderUeightService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
@ -13,8 +13,6 @@ import org.springframework.stereotype.Component;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
|
|
||||||
@Component("orderU8Controller")
|
@Component("orderU8Controller")
|
||||||
public class OrderU8Controller {
|
public class OrderU8Controller {
|
||||||
|
|
@ -25,21 +23,24 @@ public class OrderU8Controller {
|
||||||
OrderUeightService orderService;
|
OrderUeightService orderService;
|
||||||
@Autowired
|
@Autowired
|
||||||
MessageService messageService;
|
MessageService messageService;
|
||||||
|
@Autowired
|
||||||
|
OrderCronService orderCronService;
|
||||||
|
|
||||||
public Map<String, Object> findClassOne() {
|
public Map<String, Object> findClassOne() {
|
||||||
Map<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
Map<String, Object> params = new HashMap<>();
|
Map<String, Object> params = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
ExecutorService pool = Executors.newFixedThreadPool(2);
|
// ExecutorService pool = Executors.newFixedThreadPool(2);
|
||||||
String[] companyIds = {FINALCMD.KESAI, FINALCMD.DEHAO};
|
String[] companyIds = {FINALCMD.KESAI, FINALCMD.DEHAO};
|
||||||
for (String companyId : companyIds) {
|
for (String companyId : companyIds) {
|
||||||
List list = orderService.findList(".pageOrder", null, companyId);
|
List list = orderService.findList(".pageOrder", null, companyId);
|
||||||
List list1 = orderService.findList(".pageDetail", null, companyId);
|
List list1 = orderService.findList(".pageDetail", null, companyId);
|
||||||
U8OrderThread thread = new U8OrderThread(list, list1, orderService, messageService, companyId);
|
orderCronService.syncU8Orders(list, list1, companyId);
|
||||||
|
// U8OrderThread thread = new U8OrderThread(list, list1, orderService, messageService, companyId);
|
||||||
//提交线程池 执行
|
//提交线程池 执行
|
||||||
pool.submit(thread);
|
// pool.submit(thread);
|
||||||
}
|
}
|
||||||
pool.shutdown();//关闭线程池
|
// pool.shutdown();//关闭线程池
|
||||||
result.put("data", true);
|
result.put("data", true);
|
||||||
result.put("code", ErrorUtils.SUCCESS);
|
result.put("code", ErrorUtils.SUCCESS);
|
||||||
result.put("msg", "操作成功");
|
result.put("msg", "操作成功");
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
and goodsTypeId LIKE '%' + #{typeId} + '%'
|
and goodsTypeId LIKE '%' + #{typeId} + '%'
|
||||||
</if>
|
</if>
|
||||||
<if test="updateDate !=null and updateDate !=''">
|
<if test="updateDate !=null and updateDate !=''">
|
||||||
and updateDate > #{updateDate}
|
and (updateDate > #{updateDate} or createTime > #{updateDate})
|
||||||
</if>
|
</if>
|
||||||
<if test="keywords !=null and keywords !=''">
|
<if test="keywords !=null and keywords !=''">
|
||||||
and
|
and
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,140 @@
|
||||||
|
package com.yb.lb.webapp.u8.ueight.service;
|
||||||
|
|
||||||
|
import com.yb.lb.common.config.UserConfig;
|
||||||
|
import com.yb.lb.common.utils.*;
|
||||||
|
import com.yb.lb.webapp.message.entity.MessageConfig;
|
||||||
|
import com.yb.lb.webapp.message.service.MessageService;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定时同步U8订单数据到CRM系统
|
||||||
|
*
|
||||||
|
* @author mzr
|
||||||
|
* @date 2024-04-16
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class OrderCronService {
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(OrderCronService.class);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
OrderUeightService orderUeightService;
|
||||||
|
@Autowired
|
||||||
|
MessageService messageService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取U8的销售出库单
|
||||||
|
*
|
||||||
|
* @author mzr
|
||||||
|
* @date 2023/08/02
|
||||||
|
**/
|
||||||
|
public void syncU8Orders(List<Map> orderList, List<Map> goodsList, String companyId) {
|
||||||
|
try {
|
||||||
|
if (orderList.size() > 0) {
|
||||||
|
String invConfigId = UserConfig.getInvConfigId();
|
||||||
|
Map<String, Object> params = new HashMap<>();
|
||||||
|
params.put("companyId", companyId);
|
||||||
|
//获取业务员集合
|
||||||
|
List<Map> servicerList = orderUeightService.findListOracle(params, ".pageServicer");
|
||||||
|
for (Map map : orderList) {
|
||||||
|
String staffId = map.get("staffId") + "";
|
||||||
|
String clientId = map.get("clientId") + "";
|
||||||
|
|
||||||
|
Map<String, Object> tMap = new HashMap<>();
|
||||||
|
tMap.put("clientId", clientId);
|
||||||
|
tMap.put("companyId", companyId);
|
||||||
|
Map clientInfoMap = orderUeightService.oneById(tMap, ".findByNo");
|
||||||
|
if (clientInfoMap != null) {
|
||||||
|
map.put("clientId", clientInfoMap.get("id") + "");
|
||||||
|
map.put("phone", clientInfoMap.get("phone") != null ? clientInfoMap.get("phone") + "" : "");
|
||||||
|
map.put("region", clientInfoMap.get("region") != null ? clientInfoMap.get("region") + "" : "");
|
||||||
|
map.put("regionName", clientInfoMap.get("regionName") != null ? clientInfoMap.get("regionName") + "" : "");
|
||||||
|
map.put("ancestors", clientInfoMap.get("ancestors") != null ? clientInfoMap.get("ancestors") + "" : "");
|
||||||
|
} else {
|
||||||
|
map.put("phone", "");
|
||||||
|
map.put("region", "");
|
||||||
|
map.put("regionName", "");
|
||||||
|
map.put("ancestors", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 匹配业务员
|
||||||
|
List<Map> list = servicerList.stream().filter(staffMap -> staffId.equals(staffMap.get("staffNo"))).collect(Collectors.toList());
|
||||||
|
Map staffMap = null;
|
||||||
|
if (list.size() > 0) {
|
||||||
|
staffMap = list.get(0);
|
||||||
|
map.put("staffId", staffMap.get("staffId") + "");
|
||||||
|
}
|
||||||
|
|
||||||
|
String orderId = map.get("id") + "";
|
||||||
|
List<Map> goodsList1 = goodsList.stream().filter(goodsMap -> orderId.equals(goodsMap.get("invoiceId") + "")).collect(Collectors.toList());
|
||||||
|
if (goodsList1.size() <= 0) {
|
||||||
|
logger.info("orderId:{}", orderId);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Map<String, Object> info = new HashMap<>();
|
||||||
|
info.put("id", orderId);
|
||||||
|
info.put("cDefine8", "1");
|
||||||
|
// 新增发货单
|
||||||
|
map.put("companyId", companyId);
|
||||||
|
String invoiceNo = map.get("invoiceNo") + "";
|
||||||
|
String saleOrderNo = map.get("saleOrderNo") + "";
|
||||||
|
String clientName = map.get("clientName") + "";
|
||||||
|
String companyUrl = "2".equals(companyId) ? "/dehao/" : "/kesai/";
|
||||||
|
String pdfFileName = clientName + invoiceNo + "-" + saleOrderNo + ".pdf";
|
||||||
|
map.put("invUrl", "/invOrder" + companyUrl + pdfFileName);
|
||||||
|
if (orderUeightService.addOrder1(map)) {
|
||||||
|
String createTime = StringUtil.isNotEmpty(map.get("createTime")) ? map.get("createTime") + "" : DateUtil.getTime();
|
||||||
|
// 新增发货单的商品详情
|
||||||
|
for (Map goodsMap1 : goodsList1) {
|
||||||
|
goodsMap1.put("companyId", companyId);
|
||||||
|
goodsMap1.put("createTime", createTime);
|
||||||
|
}
|
||||||
|
if (orderUeightService.addOrderDetail(goodsList1)) {
|
||||||
|
// 回写U8销售出库单的状态
|
||||||
|
if (FINALCMD.KESAI.equals(companyId)) {
|
||||||
|
orderUeightService.update(".updateOrderInfo", info);
|
||||||
|
} else if (FINALCMD.DEHAO.equals(companyId)) {
|
||||||
|
orderUeightService.updateInfo1(".updateOrderInfo", info);
|
||||||
|
}
|
||||||
|
// 调用积木报表生成pdf文件
|
||||||
|
String fileUrl = ReadXmlutils.xmlForMap("", "invOrderPath") + companyUrl + pdfFileName;
|
||||||
|
MyFileUtils.exportPdf(invConfigId, orderId, fileUrl, "2");
|
||||||
|
// 单据同步成功之后再发送消息
|
||||||
|
if (staffMap != null && !staffMap.isEmpty()) {
|
||||||
|
//给业务员发送消息
|
||||||
|
Map<String, Object> msgMap = new HashMap<>();
|
||||||
|
msgMap.put("userId", map.get("staffId") + "");
|
||||||
|
msgMap.put("newsId", map.get("id"));
|
||||||
|
msgMap.put("type", MessageConfig.TYPE_6);
|
||||||
|
msgMap.put("messageContent", "您分管的客户," + map.get("clientName") + "的货物已经" + map.get("invoiceDate") + "发货,发货单编码为" + map.get("invoiceNo") + ",请您随时关注物流状况");
|
||||||
|
messageService.add(msgMap);
|
||||||
|
}
|
||||||
|
if (clientInfoMap != null && !clientInfoMap.isEmpty()) {
|
||||||
|
//给客户发送消息
|
||||||
|
Map<String, Object> msgMap = new HashMap<>();
|
||||||
|
msgMap.put("userId", map.get("clientId") + "");
|
||||||
|
msgMap.put("newsId", map.get("id"));
|
||||||
|
msgMap.put("type", MessageConfig.TYPE_6);
|
||||||
|
msgMap.put("messageContent", "您的货物已经" + map.get("invoiceDate") + "发货,发货单编码为" + map.get("invoiceNo") + ",请您随时关注物流状况,如果收到货后尽快扫描入库");
|
||||||
|
messageService.add(msgMap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("获取U8销售出库单异常:{}", e.getMessage());
|
||||||
|
Logs.writeLogs("获取U8销售出库单异常:" + DateUtil.getSdfTimess() + "---" + e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue