|
|
@@ -32,9 +32,9 @@ public class ProductTask {
|
|
|
@Autowired
|
|
|
private ProductManager productManager;
|
|
|
|
|
|
- @Scheduled(cron = "*/10 * * * * ?")
|
|
|
+ @Scheduled(cron = "0 0/5 * * * ?")
|
|
|
public void syncProducts() {
|
|
|
- SqlRowList rs = baseDao.queryForRowSet("select pr_id,pr_code,pr_detail,pr_unit,pr_standardprice from product where 1=2 and nvl(pr_statuscode,' ')='AUDITED' and nvl(pr_sendstatus,' ')='待上传' order by pr_id");
|
|
|
+ SqlRowList rs = baseDao.queryForRowSet("select * from (select * from product where nvl(pr_statuscode,' ')='AUDITED' and nvl(pr_sendstatus,' ')='待上传' order by pr_id) where rownum<=100");
|
|
|
while (rs.next()){
|
|
|
List<Map<String,Object>> sku = new ArrayList<>();
|
|
|
Map<String,Object> map = new HashMap<>();
|
|
|
@@ -49,23 +49,31 @@ public class ProductTask {
|
|
|
goods.setIs_spec(false);
|
|
|
goods.setStandard_price(rs.getDouble("pr_standardprice") == -1.0 ? 0.0 : rs.getDouble("pr_standardprice"));
|
|
|
goods.setProduct_line("1");
|
|
|
- goods.setName(rs.getString("pr_detail"));
|
|
|
+ goods.setName(rs.getString("pr_detail")+"~"+rs.getGeneralString("pr_spec"));
|
|
|
goods.setCategory("6");
|
|
|
goods.setSku(sku);
|
|
|
+ goods.setItem_code__c(rs.getGeneralString("pr_code"));
|
|
|
try {
|
|
|
CrmAddResult crmAddResult = productManager.addGoods(goods);
|
|
|
int errorCode = crmAddResult.getErrorCode();
|
|
|
String dataId = crmAddResult.getDataId();
|
|
|
String extraData = crmAddResult.getExtraData();
|
|
|
if(errorCode == 0){
|
|
|
+ //上传后更新部分字段
|
|
|
+ Product product = setProduct(rs);
|
|
|
+ product.set_id(extraData);
|
|
|
+ BaseResult baseResult = productManager.updateGoods(product);
|
|
|
+ if(baseResult.getErrorCode() != 0){
|
|
|
+ baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'"+baseResult.getErrorMessage()+"','物料资料上传后更新失败','"+rs.getString("pr_code")+"')");
|
|
|
+ }
|
|
|
baseDao.execute("update product set pr_sendstatus='已上传',PR_FXXKDATAID='"+extraData+"' where pr_id="+rs.getInt("pr_id"));
|
|
|
- //baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'物料资料上传成功','物料资料上传','"+rs.getString("pr_code")+"')");
|
|
|
+ baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'物料资料上传成功','物料资料上传','"+rs.getString("pr_code")+"')");
|
|
|
}else{
|
|
|
- //baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'"+crmAddResult.getErrorMessage()+"','物料资料上传','"+rs.getString("pr_code")+"')");
|
|
|
+ baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'"+crmAddResult.getErrorMessage()+"','物料资料上传','"+rs.getString("pr_code")+"')");
|
|
|
logger.info("异常信息:"+crmAddResult.getErrorMessage());
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
- //baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'"+e.getMessage()+"','物料资料上传','"+rs.getString("pr_code")+"')");
|
|
|
+ baseDao.execute("insert into FXXKDockingErrorlog(ml_id,ml_date,ml_result,ml_type,ml_code) values(FXXKDOCKINGERRORLOG_SEQ.nextval,sysdate,'"+e.getMessage()+"','物料资料上传','"+rs.getString("pr_code")+"')");
|
|
|
logger.info("异常信息:"+e.getMessage());
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
@@ -76,13 +84,7 @@ public class ProductTask {
|
|
|
public void syncUpdateProducts() {
|
|
|
SqlRowList rs = baseDao.queryForRowSet("select * from (select distinct pis_prodcode from productInfoSync where 1=2 and trunc(pis_date)=trunc(sysdate)) left join product on pis_prodcode=pr_code order by pr_id");
|
|
|
while (rs.next()){
|
|
|
- Product product = new Product();
|
|
|
- product.setDataObjectApiName("ProductObj");
|
|
|
- product.set_id(rs.getGeneralString("pr_fxxkdataid"));
|
|
|
- product.setField_ea4Nh__c(rs.getGeneralDouble("pr_purcprice"));
|
|
|
- product.setField_i0v47__c(rs.getGeneralString("pr_YPstock"));
|
|
|
- product.setField_iW998__c(rs.getGeneralString("pr_PLstock"));
|
|
|
- product.setField_dioys__c(rs.getGeneralString("pr_serial"));
|
|
|
+ Product product = setProduct(rs);
|
|
|
try {
|
|
|
BaseResult baseResult = productManager.updateGoods(product);
|
|
|
int errorCode = baseResult.getErrorCode();
|
|
|
@@ -99,4 +101,20 @@ public class ProductTask {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private Product setProduct(SqlRowList rs){
|
|
|
+ Product product = new Product();
|
|
|
+ product.setDataObjectApiName("ProductObj");
|
|
|
+ product.set_id(rs.getGeneralString("pr_fxxkdataid"));
|
|
|
+ product.setField_ea4Nh__c(rs.getGeneralDouble("pr_purcprice"));
|
|
|
+ product.setField_i0v47__c(rs.getGeneralString("pr_YPstock"));
|
|
|
+ product.setField_iW998__c(rs.getGeneralString("pr_PLstock"));
|
|
|
+ product.setField_dioys__c(rs.getGeneralString("pr_serial"));
|
|
|
+ product.setProduct_code(rs.getGeneralString("pr_code"));
|
|
|
+ product.setUDSText1__c(rs.getGeneralString("pr_brand"));
|
|
|
+ product.setProduct_spec(rs.getGeneralString("pr_spec"));
|
|
|
+ product.setField_r02le__c(rs.getGeneralString("pr_zxbzs"));
|
|
|
+ product.setUnit(rs.getGeneralString("pr_unit"));
|
|
|
+ return product;
|
|
|
+ }
|
|
|
}
|