JavaScript1.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. debugger
  2. let lotserial = this.formData['workordmaster-lotserial'] || "";
  3. let factory_id = this.formData['configurationitem-domain'];
  4. let QtyOrded = this.formData['workordmaster-qtyorded'];
  5. const workord = this.formData['workordmaster-workord'] || "";
  6. const bomformula = this.formData['workordmaster-bomformula'] || "";
  7. const itemnum = this.formData['workordmaster-itemnum'] || "";
  8. let user = this.formData['field_1705385673713'] || "";
  9. let msg = "";
  10. if (lotserial === "") {
  11. msg += "、生产批次号";
  12. }
  13. var orddate = this.formData['workordmaster-orddate'] || "";
  14. var duedate = this.formData['workordmaster-duedate'] || "";
  15. if (orddate === "") {
  16. msg += "、开工日期";
  17. }
  18. //var rev = this.formData['workordmaster-rev'] || "";
  19. //var drawing = this.formData['workordmaster-drawing'] || "";
  20. //if (drawing != "" && rev == "") {
  21. // msg3 = "此工单未记录版本";
  22. //}
  23. let msg4 = "";
  24. var sql4 = `select count(*) as count from WorkOrdMaster where Status='r' and isactive=1 and workord='${workord}'`;
  25. let res4 = utils.getSelectvalue2("dopflow", sql4, sysConfig['SERVER_APIADDRESS']);
  26. if (res4.data > 0) {
  27. msg4 = "此工单已下达";
  28. }
  29. sql4 = `select count(*) as count from WorkOrdRouting where ProcessOut=1 and (ProcessOutSupp='' or ProcessOutSupp is null) and isactive=1 and workord='${workord}'`;
  30. res4 = utils.getSelectvalue2("dopflow", sql4, sysConfig['SERVER_APIADDRESS']);
  31. if (res4.data > 0) {
  32. msg4 = "请在工单工序明细中维护委外供应商";
  33. }
  34. let msg3 = "";
  35. if (bomformula == "") {
  36. var sql3 = `select count(*) as count from ItemMaster where itemnum='${itemnum}' and (PMBOM='' or PMBOM is null)`;
  37. let res3 = utils.getSelectvalue2("dopflow", sql3, sysConfig['SERVER_APIADDRESS']);
  38. if (res3.data > 0) {
  39. msg3 = "物料未维护量产bom";
  40. }
  41. }
  42. let msg2 = "";
  43. var sql = `select count(*) as count from WorkOrdDetail where workord='${workord}' and isactive=1`;
  44. let res2 = utils.getSelectvalue2("dopflow", sql, sysConfig['SERVER_APIADDRESS']);
  45. if (res2.data <= 0) {
  46. msg2 = ",工单未找到物料";
  47. } else if (workord.indexOf("M6") < 0) {
  48. sql = `select count(*) as count from WorkOrdDetail where workord='${workord}' and isactive=1 and itemnum='${itemnum}'`;
  49. res2 = utils.getSelectvalue2("dopflow", sql, sysConfig['SERVER_APIADDRESS']);
  50. if (res2.data > 0) {
  51. msg2 = ",工单子物料不能与主物料一致";
  52. }
  53. }
  54. sql = `select count(*) as count from WorkOrdRouting where workord='${workord}' and isactive=1`;
  55. let res3 = utils.getSelectvalue2("dopflow", sql, sysConfig['SERVER_APIADDRESS']);
  56. if (res3.data <= 0) {
  57. msg2 += ",工单未找到工序";
  58. }
  59. else {
  60. sql = `select count(*) as count from WorkOrdRouting where workord='${workord}' and QtyOrded!=${QtyOrded}`;
  61. let res4 = utils.getSelectvalue2("dopflow", sql, sysConfig['SERVER_APIADDRESS']);
  62. if (res4.data > 0) {
  63. msg2 += ",工单工序需求数错误";
  64. } else {
  65. sql = `select count(*) as count from WorkOrdRouting where workord='${workord}' and ((Labor=0 and ProcessOut=0) or ChargeCode='' or WorkCtr='' or ufld3='' or QtyOrded=0 )`;
  66. let res4 = utils.getSelectvalue2("dopflow", sql, sysConfig['SERVER_APIADDRESS']);
  67. if (res4.data > 0) {
  68. msg2 += ",工单工序维护错误";
  69. }
  70. else {
  71. sql = `select count(*) as count from WorkOrdRouting where workord='${workord}' and ProcessOut=1 and op=(select min(op) from WorkOrdRouting where workord='${workord}')`;
  72. let res4 = utils.getSelectvalue2("dopflow", sql, sysConfig['SERVER_APIADDRESS']);
  73. if (res4.data > 0) {
  74. msg2 += ",工单工序不可首序委外";
  75. }
  76. }
  77. }
  78. }
  79. if (msg === "" && msg2 == "" && msg3 == "" && msg4 == "") {
  80. let selectedDate = new Date(orddate);
  81. let today = new Date();
  82. var year = today.getFullYear();
  83. var month = (today.getMonth() + 1).toString().padStart(2, '0'); // 月份从0开始,所以要加1
  84. var day = today.getDate().toString().padStart(2, '0');
  85. var currentDate = year + '-' + month + '-' + day;
  86. if (selectedDate <= today) {
  87. utils.msg("工单开工日期需调整至今日之后。", false);
  88. }
  89. else {
  90. let insertSql = ``;
  91. let insertSql1 = ``;
  92. let diffDay = this.formData['field_1705374190767'] || 0;
  93. if (diffDay != 0) {
  94. insertSql = `,OrdDate=DATEADD(D, ${diffDay}, OrdDate),DueDate=iif(DATEADD(D, ${diffDay}, DueDate)>DATEADD(D, ${diffDay}, OrdDate),DATEADD(D, ${diffDay}, DueDate),DATEADD(D, ${diffDay + 2}, OrdDate))`;
  95. insertSql1 = `,InStockDate=DATEADD(D, ${diffDay}, InStockDate),PlanStartDate=DATEADD(D, ${diffDay}, PlanStartDate),week='WK' + cast([dbo].fn_GetWeekNumber(DATEADD(D, ${diffDay}, PlanStartDate),1)
  96. as nvarchar(10)) `;
  97. }
  98. else if (duedate <= orddate) {
  99. insertSql = `,DueDate=DATEADD(D, ${diffDay + 2}, OrdDate)`;
  100. insertSql1 = `,InStockDate=DATEADD(D, ${diffDay + 2}, InStockDate)`;
  101. }
  102. let sql = `UPDATE WorkOrdMaster SET Eff='${currentDate}', LotSerial='${lotserial}'${insertSql} WHERE Domain='${factory_id}' AND WorkOrd='${workord}';UPDATE ReplenishmentWeekPlan SET ProductionBatch='${lotserial}'${insertSql1} WHERE ProductionOrder='${workord}';UPDATE WorkOrdRouting SET QtyOrded=${QtyOrded} WHERE WorkOrd='${workord}';`;
  103. utils.execdb("dopflow", sql).then((res) => {
  104. if (res.success) {
  105. utils.msg("更新成功,即将下达工单,请稍后。", true);
  106. programrun_programcomponentref.value.dialogShow = false;//关闭编辑窗口
  107. programrun_programcomponentref.value.loadData(false);//重新加载列表数据
  108. sql = `SELECT COUNT(*) rst FROM b_examine_result WHERE morder_no='${workord}'`;
  109. let res1 = utils.getSelectvalue2("dopflow", sql, sysConfig['SERVER_APIADDRESS']);
  110. if (res1.data > 0) {
  111. $.ajax({
  112. url: "https://dop.rapids.genesismedtech.com:9998/api/business/resource-examine/ProduceWorkOrdKittingCheck?workord=" + workord + "&domain=" + factory_id + "&userAccount=" + user,
  113. dataType: "text",
  114. type: "get",
  115. success: function (result) {
  116. if (result == "ok") {
  117. utils.msg("工单下达完成。", true);
  118. }
  119. else {
  120. utils.msg("工单下达失败:" + result, false);
  121. }
  122. },
  123. error: function (err) {
  124. console.log(err);
  125. utils.msg("工单下达失败,请联系管理员。", false);
  126. }
  127. });
  128. }
  129. else {
  130. utils.msg("请先对当前工单进行在库检。", false);
  131. }
  132. }
  133. else {
  134. utils.msg("更新失败,请联系管理员。", false);
  135. }
  136. });
  137. }
  138. }
  139. else {
  140. if (msg4 != "") {
  141. utils.msg(`${msg4}`, false);
  142. }
  143. else if (msg2 != "") {
  144. utils.msg(`${msg2.substring(1)},无法下达,请在对应明细列表手动维护`, false);
  145. }
  146. else if (msg3 != "") {
  147. utils.msg(`${msg3},无法下达`, false);
  148. }
  149. else {
  150. utils.msg(`${msg.substring(1)}不能为空`, false);
  151. }
  152. }