belong_spid.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const BaseUtil = require('./baseUtils');
  2. const querySql = BaseUtil.querySql;
  3. const checkProject = async function(project) {
  4. const subProject = await querySql('SELECT * From zh_sub_project where project_id = ?', [project.id]);
  5. if (subProject.length === 0) return;
  6. const updateData = [];
  7. subProject.forEach(x => {
  8. if (!x.rela_tender) return;
  9. const relaTenderId = x.rela_tender.split(',');
  10. relaTenderId.forEach(r => { updateData.push({ id: r, spid: x.id }); });
  11. });
  12. if (updateData.length === 0) return;
  13. for (const ud of updateData) {
  14. await querySql('UPDATE zh_tender SET spid = ? WHERE id = ?', [ud.spid, ud.id]);
  15. }
  16. };
  17. const doComplete = async function(project_id) {
  18. try {
  19. const project = project_id
  20. ? await querySql('Select * From zh_project where id = ?', [project_id])
  21. : await querySql('Select * From zh_project');
  22. for (const p of project) {
  23. console.log(`Update Project ${p.code}(${p.id}):`);
  24. await checkProject(p);
  25. }
  26. } catch (err) {
  27. console.log(err);
  28. }
  29. BaseUtil.closePool();
  30. };
  31. const projectId = process.argv[3];
  32. if (projectId) {
  33. doComplete(projectId);
  34. } else {
  35. doComplete()
  36. }