|
|
@@ -47,7 +47,8 @@ import java.util.Map;
|
|
|
@TaskMapping(title = "商城订单")
|
|
|
public class OrderTask extends AbstractTask {
|
|
|
|
|
|
- private static final String BASEPATH_TRADE = "https://malltraderest.usoftchina.com";
|
|
|
+// private static final String BASEPATH_TRADE = "https://malltraderest.usoftchina.com";
|
|
|
+ private static final String BASEPATH_TRADE = "https://malltraderest.uuzcc.cn";
|
|
|
|
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(OrderTask.class);
|
|
|
|
|
|
@@ -61,7 +62,7 @@ public class OrderTask extends AbstractTask {
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("secretId", master.getMa_uu());
|
|
|
json.put("signature", "");
|
|
|
- json.put("DeliverReq", orderDeliverList);
|
|
|
+ json.put("orderDeliver", orderDeliverList);
|
|
|
String signatureValues = OpenApiSignUtil.sign(JSON.toJSONString(json), master.getMa_accesssecret());
|
|
|
json.put("signature", signatureValues);
|
|
|
|
|
|
@@ -89,7 +90,7 @@ public class OrderTask extends AbstractTask {
|
|
|
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_ENABLE");
|
|
|
+ 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;
|
|
|
@@ -148,7 +149,7 @@ public class OrderTask extends AbstractTask {
|
|
|
private void postPurchaseAndSale(String purchaseInCode, String saleOutCode) {
|
|
|
String message = jdbcTemplate.callForString("{call SP_COMMITPRODINOUT(?,?,?,?)}", "采购验收单", purchaseInCode, "ADMIN");
|
|
|
if (StringUtils.isEmpty(message)) {
|
|
|
- jdbcTemplate.callForString("{call SP_COMMITPRODINOUT(?,?,?,?)}", "出货单", saleOutCode, "ADMIN");
|
|
|
+ message = jdbcTemplate.callForString("{call SP_COMMITPRODINOUT(?,?,?,?)}", "出货单", saleOutCode, "ADMIN");
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -159,16 +160,16 @@ public class OrderTask extends AbstractTask {
|
|
|
*/
|
|
|
private String saleOut(String saleCode,String batchCode) {
|
|
|
String saleOutCode = jdbcTemplate.generateCode("ProdInOut!Sale", 2);
|
|
|
- Integer saleOutId = jdbcTemplate.generate("prodinout_seq.nextval");
|
|
|
+ Integer saleOutId = jdbcTemplate.generate("prodinout_seq");
|
|
|
//主表
|
|
|
String mainSql = "INSERT INTO PRODINOUT(pi_id,pi_inoutno,pi_class,pi_date,pi_currency,pi_rate,pi_cardid,pi_cardcode,pi_title,pi_arcode,pi_arname,pi_paymentcode,pi_payment,pi_emcode,pi_emname,"
|
|
|
+ "pi_departmentcode,pi_departmentname,pi_address,pi_invostatus,pi_invostatuscode,pi_status,pi_statuscode,pi_purposename,pi_expresscode,pi_tocode,pi_recordman,pi_recorddate,"
|
|
|
+ "pi_auditman,pi_auditdate,pi_printstatus,pi_printstatuscode) SELECT " + saleOutId + ",'"+ saleOutCode +"','出货单',SYSDATE,'RMB','1',sa_custid,sa_custcode,sa_custname,"
|
|
|
- + "sa_apcustcode,sa_apcustname,sa_departmentcode,sa_departmentname,sa_toplace,'在录入','ENTERING','未过账','UNPOST',sa_need1,sa_need2,'普通','ADMIN',SYSDATE,'ADMIN',SYSDATE,'未打印','UNPRINT' "
|
|
|
+ + "sa_apcustcode,sa_apcustname,sa_paymentscode,sa_payments,'ADMIN','管理员',sa_departmentcode,sa_departmentname,sa_toplace,'在录入','ENTERING','未过账','UNPOST',sa_need1,sa_need2,'普通','ADMIN',SYSDATE,'ADMIN',SYSDATE,'未打印','UNPRINT' "
|
|
|
+ " FROM SALE WHERE SA_CODE = ?";
|
|
|
//明细表
|
|
|
String detailSql = "INSERT INTO PRODIODETAIL(pd_id,pd_piid,pd_pdno,pd_inoutno,pd_piclass,pd_auditstatus,pd_outqty,pd_ordercode,pd_orderdetno,pd_prodcode,pd_prodid,pd_whcode,pd_whname,pd_sendprice,pd_taxrate,pd_batchCode) "
|
|
|
- + " SELECT PRODIODETAIL_SEQ.NEXTVAL," + saleOutId + ",ROWNUM,'" + saleOutCode + "','出货单','ENTERING',SD_QTY,SA_CODE,SD_DETNO,SD_PRODCODE,SD_PRODID,'SZ001','深圳仓',SD_PRICE,'13','"+ batchCode +"' "
|
|
|
+ + " SELECT PRODIODETAIL_SEQ.NEXTVAL," + saleOutId + ",ROWNUM,'" + saleOutCode + "','出货单','ENTERING',SD_QTY,SA_CODE,SD_DETNO,SD_PRODCODE,SD_PRODID,'SZ01','深圳仓',SD_PRICE,'13','"+ batchCode +"' "
|
|
|
+ " FROM SALE LEFT JOIN SALEDETAIL ON SA_ID = SD_SAID WHERE SA_CODE = ?";
|
|
|
|
|
|
jdbcTemplate.execute(mainSql, saleCode);
|
|
|
@@ -242,10 +243,10 @@ public class OrderTask extends AbstractTask {
|
|
|
}else {
|
|
|
int id = jdbcTemplate.getInt("SELECT CUSTOMER_SEQ.NEXTVAL FROM DUAL");
|
|
|
String customerCode = jdbcTemplate.generateCode("Customer!Base", 2);
|
|
|
- String insertCustomerSql = "insert into customer(cu_id,cu_code,cu_name,cu_shortname,cu_businesscode,cu_uu,cu_paymentscode,cu_payments,cu_sellercode,cu_sellername,cu_servicecode,"
|
|
|
- + "cu_servicename,cu_agenttype,cu_cop,cu_enablecredit,cu_shipment,cu_email,cu_tel,cu_contact,cu_recordman,cu_recorddate,cu_auditman,cu_auditdate)"
|
|
|
- + "values(" + id + ",'" + customerCode + "','" + orderInvoice.getName() + "','" + orderInvoice.getName() + "','" + orderInvoice.getIdentityNum() + "',null,'SK004','款到发货','ADMIN','管理员','ADMIN','管理员',"
|
|
|
- + "'普通客户','深圳怡海能达','否','快递',null,null,null,'ADMIN',sysdate,'ADMIN',sysdate)";
|
|
|
+ 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_agenttype,cu_cop,cu_enablecredit,cu_shipment,cu_email,cu_tel,cu_contact,cu_recordman,cu_recorddate,cu_auditman,cu_auditdate,cu_status,cu_statuscode)"
|
|
|
+ + "values(" + id + ",'" + customerCode + "','" + orderInvoice.getName() + "','" + orderInvoice.getName() + "','" + orderInvoice.getIdentityNum() + "',null,'"+customerCode+"','"+orderInvoice.getName()+"','SK004','款到发货','ADMIN','管理员','ADMIN','管理员',"
|
|
|
+ + "'普通客户','深圳怡海能达','否','快递',null,null,null,'ADMIN',sysdate,'ADMIN',sysdate,'已审核','AUDITED')";
|
|
|
jdbcTemplate.execute(insertCustomerSql);
|
|
|
customer = jdbcTemplate.queryForBean("SELECT * FROM CUSTOMER WHERE CU_ID = ?", Customer.class, id);
|
|
|
return customer;
|
|
|
@@ -267,10 +268,10 @@ public class OrderTask extends AbstractTask {
|
|
|
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_paymentscode,cu_payments,cu_sellercode,cu_sellername,cu_servicecode,"
|
|
|
- + "cu_servicename,cu_agenttype,cu_cop,cu_enablecredit,cu_shipment,cu_email,cu_tel,cu_contact,cu_recordman,cu_recorddate,cu_auditman,cu_auditdate)"
|
|
|
- + "values(" + id + ",'" + customerCode + "','" + order.getBuyerEnName() + "','" + order.getBuyerEnName() + "','" + identityNum + "','" + order.getEnuu() + "','SK004','款到发货','ADMIN','管理员','ADMIN','管理员',"
|
|
|
- + "'普通客户','深圳怡海能达','否','快递','" + order.getBuyerEmail() + "','" + order.getBuyerMobile() + "','" + order.getBuyerName() + "','ADMIN',sysdate,'ADMIN',sysdate)";
|
|
|
+ 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_agenttype,cu_cop,cu_enablecredit,cu_shipment,cu_email,cu_tel,cu_contact,cu_recordman,cu_recorddate,cu_auditman,cu_auditdate,cu_status,cu_statuscode)"
|
|
|
+ + "values(" + id + ",'" + customerCode + "','" + order.getBuyerEnName() + "','" + order.getBuyerEnName() + "','" + identityNum + "','" + order.getEnuu() + "','"+customerCode+"','"+order.getBuyerEnName()+"','SK004','款到发货','ADMIN','管理员','ADMIN','管理员',"
|
|
|
+ + "'普通客户','深圳怡海能达','否','快递','" + order.getBuyerEmail() + "','" + order.getBuyerMobile() + "','" + order.getBuyerName() + "','ADMIN',sysdate,'ADMIN',sysdate,'已审核','AUDITED')";
|
|
|
jdbcTemplate.execute(insertCustomerSql);
|
|
|
customer = jdbcTemplate.queryForBean("SELECT * FROM CUSTOMER WHERE CU_ID = ?", Customer.class, id);
|
|
|
}
|
|
|
@@ -285,7 +286,7 @@ public class OrderTask extends AbstractTask {
|
|
|
*/
|
|
|
private boolean generatePurchase(Order order,String purchaseCode, String saleCode) {
|
|
|
int purchaseId = jdbcTemplate.getInt("select purchase_seq.nextval from dual");
|
|
|
- String insertMainSql = "insert into purchase(pu_id,pu_code,pu_date,pu_kind,pu_currency,pu_rate,pu_refcode,pu_vendcode,pu_vendname,pu_receivecode,pu_receivename,ve_uu,"
|
|
|
+ String insertMainSql = "insert into purchase(pu_id,pu_code,pu_date,pu_kind,pu_currency,pu_rate,pu_refcode,pu_vendcode,pu_vendname,pu_receivecode,pu_receivename,pu_vendoruu,"
|
|
|
+ "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) values(?,?,sysdate,'代运营订单','RMB','1',?,?,?,?,?,?,?,?,'ADMIN','管理员','B15','优软云运营组',?,?,'已审核','AUDITED','ADMIN',sysdate,'ADMIN',sysdate,'0','unadvance')";
|
|
|
//供应商资料生成逻辑
|
|
|
@@ -308,12 +309,12 @@ public class OrderTask extends AbstractTask {
|
|
|
return false;
|
|
|
}
|
|
|
String insertDetailSql = "insert into PurchaseDetail(pd_id,pd_puid,pd_detno,pd_code,pd_prodcode,pd_prodid,pd_qty,pd_price,pd_rate,pd_delivery) "
|
|
|
- + " value(PurchaseDetail_seq.nextval,"+ purchaseId +","+ (i+1) +",'"+ purchaseCode +"','"+ prodCode +"',"+prodId+",'"+ product.getAmount() +"','"+ product.getUnitPrice() +"','13',sysdate+"+product.getMaxDelivery()+")";
|
|
|
+ + " values(PurchaseDetail_seq.nextval,"+ purchaseId +","+ (i+1) +",'"+ purchaseCode +"','"+ prodCode +"',"+prodId+",'"+ product.getAmount() +"','"+ product.getUnitPrice() +"','13',sysdate+"+product.getMaxDelivery()+")";
|
|
|
insertDetailSqlList.add(insertDetailSql);
|
|
|
}
|
|
|
|
|
|
jdbcTemplate.execute(insertMainSql, purchaseId, purchaseCode, saleCode, vendor.getVe_code(), vendor.getVe_name(), vendor.getVe_apvendcode(), vendor.getVe_apvendname(), vendor.getVe_uu(),
|
|
|
- vendor.getVe_paymentcode(), vendor.getVe_payment(), order.getOrderDeliveryAddr(), order.getCode());
|
|
|
+ vendor.getVe_paymentcode(), vendor.getVe_payment(), order.getOrderDeliveryAddr().getDeliveryAddress(), order.getCode());
|
|
|
jdbcTemplate.batchExecute(insertDetailSqlList);
|
|
|
return true;
|
|
|
}
|
|
|
@@ -326,7 +327,8 @@ public class OrderTask extends AbstractTask {
|
|
|
* @return
|
|
|
*/
|
|
|
private Map<String, Object> generateProduct(OrderProduct product, String orderCode, Vendor vendor){
|
|
|
- Map<String, Object> productMap = jdbcTemplate.queryForMap("SELECT PV_PRODCODE AS prodCode,PV_PRODID AS prodId FROM PRODUCTVENDOR WHERE PV_VENDPRODCODE = ? AND PV_VENDCODE = ?", product.getMaterialCode(), vendor.getVe_code());
|
|
|
+ Map<String, Object> productMap = new HashMap<>(2);
|
|
|
+ productMap = jdbcTemplate.queryForMap("SELECT PV_PRODCODE AS \"prodCode\",PV_PRODID AS \"prodId\" FROM PRODUCTVENDOR WHERE PV_VENDPRODCODE = ? AND PV_VENDCODE = ?", product.getMaterialCode(), vendor.getVe_code());
|
|
|
if (!CollectionUtils.isEmpty(productMap)) {
|
|
|
return productMap;
|
|
|
}else {
|
|
|
@@ -339,7 +341,7 @@ public class OrderTask extends AbstractTask {
|
|
|
return null;
|
|
|
}else if (count == 1) {
|
|
|
//返回物料信息
|
|
|
- productMap = jdbcTemplate.queryForMap("SELECT PR_CODE AS prodCode,PR_ID as prodId FROM PRODUCT WHERE PR_ORISPECCODE = ? AND PR_BRAND = ?", product.getModel(), product.getBrand());
|
|
|
+ productMap = jdbcTemplate.queryForMap("SELECT PR_CODE AS \"prodCode\",PR_ID as \"prodId\" FROM PRODUCT WHERE PR_ORISPECCODE = ? AND PR_BRAND = ?", product.getModel(), product.getBrand());
|
|
|
//生成供应商物料对照关系
|
|
|
String insertProductVendorSql = "insert into productVendor(pv_id,pv_prodid,pv_detno,pv_vendid,pv_vendcode,pv_vendprodcode,pv_vendprodspec,pv_vendprodunit,pv_vendname,pv_prodcode,pv_zxbzs) "
|
|
|
+ "values(productVendor_seq.nextval, ?, 1, ?, ?, ?, ?, ?, ?, ?, ?)";
|
|
|
@@ -354,6 +356,7 @@ public class OrderTask extends AbstractTask {
|
|
|
//生成供应商物料对照关系
|
|
|
jdbcTemplate.execute("insert into productVendor(pv_id,pv_prodid,pv_detno,pv_vendid,pv_vendcode,pv_vendprodcode,pv_vendprodspec,pv_vendprodunit,pv_vendname,pv_prodcode,pv_zxbzs) "
|
|
|
+ "values(productVendor_seq.nextval, ?, 1, ?, ?, ?, ?, ?, ?, ?, ?)", id, vendor.getVe_id(), vendor.getVe_code(), product.getMaterialCode(), product.getSpec(), product.getUnit(), vendor.getVe_name(), code, product.getMpq());
|
|
|
+ productMap = new HashMap<>(2);
|
|
|
productMap.put("prodCode", code);
|
|
|
productMap.put("prodId", id);
|
|
|
}
|