|
|
@@ -337,7 +337,7 @@ public class OrderTask extends AbstractTask {
|
|
|
+ "pu_paymentscode,pu_payments,pu_buyercode,pu_buyername,pu_departmentcode,pu_departmentname,pu_shipaddresscode,pu_pocode,pu_status,pu_statuscode,"
|
|
|
+ "pu_recordman,pu_indate,pu_auditman,pu_auditdate,pu_getprice,pu_isadvance,PU_SENDSTATUS) values(?,?,sysdate,'代运营订单','RMB','1',?,?,?,?,?,?,?,?,'ADMIN','管理员','B15','优软云运营组',?,?,'已审核','AUDITED','ADMIN',sysdate,'ADMIN',sysdate,'0','unadvance','已上传')";
|
|
|
//供应商资料生成逻辑
|
|
|
- Vendor vendor = getVendorByUUOrName(order.getCode(), order.getSellerEnuu(), order.getSellerName());
|
|
|
+ Vendor vendor = getVendorByUUOrName(order.getCode(), order.getErpEnuu());
|
|
|
if (null == vendor) {
|
|
|
return false;
|
|
|
}
|
|
|
@@ -424,21 +424,16 @@ public class OrderTask extends AbstractTask {
|
|
|
* 获取供应商资料
|
|
|
* @param enUU
|
|
|
*/
|
|
|
- private Vendor getVendorByUUOrName(String orderCode, Integer enUU, String enName){
|
|
|
+ private Vendor getVendorByUUOrName(String orderCode, Integer enUU){
|
|
|
Vendor vendor = jdbcTemplate.queryForBean("select * from vendor where ve_uu = ? and rownum = 1", Vendor.class, enUU);
|
|
|
if (!ObjectUtils.isEmpty(vendor)) {
|
|
|
return vendor;
|
|
|
}else {
|
|
|
- vendor = jdbcTemplate.queryForBean("SELECT * FROM VENDOR WHERE VE_NAME = ? AND ROWNUM = 1", Vendor.class, enName);
|
|
|
- if (!ObjectUtils.isEmpty(vendor)) {
|
|
|
- return vendor;
|
|
|
- }else {
|
|
|
- //记录日志
|
|
|
- String logOrderSql = "insert into LOGORDER(LO_ID, ORDERCODE , STATUS , SALESTIME , ORDERNUMBER , REMARK)" +
|
|
|
- "values(LOGORDER_SEQ.NEXTVAL,'" + orderCode + "', '失败', sysdate, null, '未找到对应的供应商资料!')";
|
|
|
- jdbcTemplate.execute(logOrderSql);
|
|
|
- return null;
|
|
|
- }
|
|
|
+ //记录日志
|
|
|
+ String logOrderSql = "insert into LOGORDER(LO_ID, ORDERCODE , STATUS , SALESTIME , ORDERNUMBER , REMARK)" +
|
|
|
+ "values(LOGORDER_SEQ.NEXTVAL,'" + orderCode + "', '失败', sysdate, null, '未找到对应的供应商资料!')";
|
|
|
+ jdbcTemplate.execute(logOrderSql);
|
|
|
+ return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -475,4 +470,72 @@ public class OrderTask extends AbstractTask {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @TaskMapping(title = "生成客户资料", fixedDelay = 60000)
|
|
|
+ public void downloadCustomer() throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
|
|
|
+ String url = BASEPATH_TRADE + "/openapi/trade/order/page/get?";
|
|
|
+ Long updateTime = System.currentTimeMillis() - 24 * 60 * 60 * 1000;
|
|
|
+ //获取需要生成数据的供应商
|
|
|
+ List<Map<String, Object>> vendorList = jdbcTemplate.queryForList("SELECT VE_UU,VE_ACCESSSECRET FROM VENDOR WHERE VE_ENABLEMALL = '1'");
|
|
|
+ if (CollectionUtils.isEmpty(vendorList)) {
|
|
|
+ LOGGER.error("没有启用的供应商");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (Map<String, Object> map : vendorList){
|
|
|
+ Object vendUU = map.get("VE_UU"), vendAccessSecret = map.get("VE_ACCESSSECRET");
|
|
|
+ OrdersInfo ordersInfo = getOrdersByUU(url, String.valueOf(vendUU), String.valueOf(vendAccessSecret), updateTime, 30, 1);
|
|
|
+ PagingInfo pageInfo = ordersInfo.getPagingInfo();
|
|
|
+ if (!ObjectUtils.isEmpty(pageInfo) && pageInfo.getTotalCount() > 0) {
|
|
|
+ int totalCount = pageInfo.getTotalCount();
|
|
|
+ if (totalCount > 30) {
|
|
|
+ //生成单据
|
|
|
+ createCustomer(ordersInfo.getOrder());
|
|
|
+ //获取额外部分的数据
|
|
|
+ int endCount = Double.valueOf(Math.ceil(totalCount / 30.0)).intValue();
|
|
|
+ for (int i = 2; i <= endCount; i++) {
|
|
|
+ ordersInfo = getOrdersByUU(url, String.valueOf(vendUU), String.valueOf(vendAccessSecret), updateTime, 30, i);
|
|
|
+ createCustomer(ordersInfo.getOrder());
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //生成单据
|
|
|
+ createCustomer(ordersInfo.getOrder());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void createCustomer(List<Order> orderList) {
|
|
|
+ for (Order order : orderList) {
|
|
|
+ //此单是否已下载过
|
|
|
+ int count = jdbcTemplate.getInt("SELECT COUNT(*) FROM SALE WHERE SA_POCODE = ?", order.getCode());
|
|
|
+ if (count == 0) {
|
|
|
+ //取已发货状态的订单生成
|
|
|
+ if (order.getStatus() != 141000 && order.getStatus() != 141010 && order.getStatus() == 141095) {
|
|
|
+ if (order.getEnuu() != null && order.getEnuu() != 0) {
|
|
|
+ Customer customer = jdbcTemplate.queryForBean("select * from CUSTOMER where CU_UU = ? and nvl(cu_uu,' ') <> 0 and CU_AUDITSTATUS = '已审核'", Customer.class, order.getEnuu());
|
|
|
+ if (ObjectUtils.isEmpty(customer)) {
|
|
|
+ customer = jdbcTemplate.queryForBean("select * from CUSTOMER where CU_NAME = ? and CU_AUDITSTATUS = '已审核'", Customer.class, order.getBuyerEnName());
|
|
|
+ if (ObjectUtils.isEmpty(customer)) {
|
|
|
+ //未找到对应的客户资料,新建一个
|
|
|
+ int id = jdbcTemplate.getInt("SELECT CUSTOMER_SEQ.NEXTVAL FROM DUAL");
|
|
|
+ String customerCode = jdbcTemplate.generateCode("Customer!Base", 2);
|
|
|
+ //营业执照号
|
|
|
+ String identityNum = "";
|
|
|
+ OrderInvoice orderInvoice = order.getOrderInvoice();
|
|
|
+ if (!ObjectUtils.isEmpty(orderInvoice)) {
|
|
|
+ identityNum = orderInvoice.getIdentityNum();
|
|
|
+ }
|
|
|
+ String insertCustomerSql = "insert into customer(cu_id,cu_code,cu_name,cu_shortname,cu_businesscode,cu_uu,cu_arcode,cu_arname,cu_paymentscode,cu_payments,cu_sellercode,cu_sellername,cu_servicecode,"
|
|
|
+ + "cu_servicename,cu_kind,cu_agenttype,cu_cop,cu_enablecredit,cu_shipment,cu_email,cu_tel,cu_contact,cu_mobile,cu_recordman,cu_recorddate,cu_auditman,cu_auditdate,cu_auditstatus,cu_auditstatuscode)"
|
|
|
+ + "values(" + id + ",'" + customerCode + "','" + order.getBuyerEnName() + "','" + order.getBuyerEnName() + "','" + identityNum + "','" + order.getEnuu() + "','"+customerCode+"','"+order.getBuyerEnName()+"','SK004','款到发货','ADMIN','管理员','ADMIN','管理员',"
|
|
|
+ + "'普通客户','普通客户','深圳怡海能达','否','快递','" + order.getBuyerEmail() + "','" + order.getBuyerMobile() + "','" + order.getBuyerName() + "','" + order.getBuyerMobile() + "','ADMIN',sysdate,'ADMIN',sysdate,'已审核','AUDITED')";
|
|
|
+ jdbcTemplate.execute(insertCustomerSql);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|