Bläddra i källkod

1. 部分日期显示调整
2. 清单精度,策略调整

MaiXinRong 4 år sedan
förälder
incheckning
5027b1debc

+ 1 - 1
app/controller/revise_controller.js

@@ -526,7 +526,7 @@ module.exports = app => {
                 const data = JSON.parse(ctx.request.body.data);
                 if (!data || !data.rid || data.rid === '') throw '查询的台账修订有误';
                 const reviseInfo = await ctx.service.ledgerRevise.getRevise(ctx.tender.id, data.rid);
-                reviseInfo.end_time_str = reviseInfo.end_time ? reviseInfo.end_time.toLocaleString() : '';
+                reviseInfo.end_time_str = reviseInfo.end_time ? ctx.moment(reviseInfo.end_time).format('YYYY-MM-DD hh:mm:ss') : '';
                 ctx.body = { err: 0, msg: '', data: reviseInfo };
             } catch (err) {
                 this.log(err);

+ 2 - 0
app/controller/tender_controller.js

@@ -425,8 +425,10 @@ module.exports = app => {
                     p.end_tp = sum;
                     p.end_ratio = ctx.helper.mul(ctx.helper.div(p.end_tp, tender.sum, 4), 100);
                 }
+                const revise = await ctx.service.ledgerRevise.getLastestRevise(tender.id);
                 const renderData = {
                     tender,
+                    revise,
                     tenderInfo: ctx.tender.info,
                     tenderMenu: this.menu.tenderMenu,
                     preUrl: '/tender/' + ctx.tender.id,

+ 15 - 0
app/extend/context.js

@@ -0,0 +1,15 @@
+'use strict';
+
+/**
+ *
+ *
+ * @author Mai
+ * @date
+ * @version
+ */
+
+const moment = require('moment');
+
+module.exports = {
+    moment: moment,
+};

+ 10 - 0
app/service/revise_pos.js

@@ -52,6 +52,16 @@ module.exports = app => {
             });
         }
 
+        async getPosDataByUnits(tenderId, units) {
+            const sql = 'SELECT p.id, p.lid, p.sgfh_qty, p.sjcl_qty, p.qtcl_qty' +
+                '  FROM ' + this.tableName + ' p' +
+                '  LEFT JOIN ' + this.ctx.service.reviseBills.tableName + ' b' +
+                '  ON p.lid = b.id ' +
+                '  WHERE p.tid = ? and b.unit IN (?)';
+            const sqlParam = [tenderId, units];
+            return await this.db.query(sql, sqlParam);
+        }
+
         async insertLedgerPosData(transaction, tid, rid, bills, data) {
             const precision = this.ctx.helper.findPrecision(this.ctx.tender.info.precision, bills.unit);
             const insertDatas = [];

+ 16 - 5
app/service/tender_info.js

@@ -13,6 +13,9 @@ const parseInfo = infoConst.parseInfo;
 const arrayInfo = infoConst.arrayInfo;
 const defaultInfo = infoConst.defaultInfo;
 const advanceConst = require('../const/audit').advance;
+const auditConst = require('../const/audit');
+
+
 module.exports = app => {
 
     class TenderInfo extends app.BaseService {
@@ -143,12 +146,21 @@ module.exports = app => {
             }
             changeUnits = this._.flatten(changeUnits);
 
+            let billsService, posService;
+            if (this.ctx.tender.data.status === auditConst.ledger.status.checked) {
+                billsService = this.ctx.service.ledger;
+                posService = this.ctx.service.pos;
+            } else {
+                billsService = this.ctx.service.reviseBills;
+                posService = this.ctx.service.revisePos;
+            }
+
             if (changeUnits.length > 0) {
-                const bills = await this.ctx.service.ledger.getAllDataByCondition({
+                const bills = await billsService.getAllDataByCondition({
                     columns: ['id', 'unit', 'unit_price', 'sgfh_qty', 'sjcl_qty', 'qtcl_qty', 'deal_qty'],
                     where: { tender_id: tenderId, unit: changeUnits, is_leaf: true },
                 });
-                const pos = changeUnits.length > 0 ? await this.ctx.service.pos.getPosDataByUnits(tenderId, changeUnits) : [];
+                const pos = changeUnits.length > 0 ? await posService.getPosDataByUnits(tenderId, changeUnits) : [];
 
                 for (const b of bills) {
                     const precision = this.ctx.helper.findPrecision(newPrecision, b.unit);
@@ -185,8 +197,8 @@ module.exports = app => {
                 try {
                     await transaction.update(this.tableName,
                         { precision: JSON.stringify(newPrecision) }, { where: { tid: tenderId } });
-                    if (bills.length > 0) await transaction.updateRows(this.ctx.service.ledger.tableName, bills);
-                    if (pos.length > 0) await transaction.updateRows(this.ctx.service.pos.tableName, pos);
+                    if (bills.length > 0) await transaction.updateRows(billsService.tableName, bills);
+                    if (pos.length > 0) await transaction.updateRows(posService.tableName, pos);
                     await transaction.commit();
                 } catch (err) {
                     await transaction.rollback();
@@ -227,7 +239,6 @@ module.exports = app => {
             const upDecimal = newDecimal.up, tpDecimal = newDecimal.extra ? newDecimal.extraTp : newDecimal.tp;
             const calcUp = upDecimal < oldDecimal.up,
                 calcTp = tpDecimal < (oldDecimal.extra ? oldDecimal.extraTp : oldDecimal.tp);
-            console.log(calcUp, calcTp);
 
             if (calcUp || calcTp) {
                 const stageJgcl = await this.ctx.service.stageJgcl.getAllDataByCondition({

+ 10 - 10
app/view/dashboard/index.ejs

@@ -40,7 +40,7 @@
                                                         <div class="col-3 ml-auto text-right pl-0"><a href="/tender/<%- t.id %>/ledger/audit" class="btn btn-sm btn-outline-primary">审批</a></div>
                                                     </div>
                                                     <p class="mt-1 mb-0"><%- ctx.session.sessionUser.name %><small class="ml-1 text-muted"><%- (role ? '- ' + role : '') %></small>
-                                                        <span class="pull-right text-muted"><%- (t.begin_time ? t.begin_time.toLocaleString() : '') %></span>
+                                                        <span class="pull-right text-muted"><%- (t.begin_time ? ctx.moment(t.begin_time).format('YYYY-MM-DD hh:mm:ss') : '') %></span>
                                                     </p>
                                                 </div>
                                             </li>
@@ -53,7 +53,7 @@
                                                         <div class="col-3 ml-auto text-right pl-0"><a href="/tender/<%- t.id %>/ledger" class="btn btn-sm btn-outline-primary">重新上报</a></div>
                                                     </div>
                                                     <p class="mt-1 mb-0"><%- ctx.session.sessionUser.name %><small class="ml-1 text-muted"><%- (role ? '- ' + role : '') %></small>
-                                                        <span class="pull-right text-muted"><%- (t.end_time ? t.end_time.toLocaleString() : '') %></span>
+                                                        <span class="pull-right text-muted"><%- (t.end_time ? ctx.moment(t.end_time).format('YYYY-MM-DD hh:mm:ss') : '') %></span>
                                                     </p>
                                                 </div>
                                             </li>
@@ -68,7 +68,7 @@
                                                     <div class="col-3 ml-auto text-right pl-0"><a href="/tender/<%- revise.t_id %>/revise/info" class="btn btn-sm btn-outline-primary"><% if (revise.status === acRevise.status.checking) { %>审批<% } else if (revise.status === acRevise.status.checkNo) { %>重新上报<% } %></a></div>
                                                 </div>
                                                 <p class="mt-1 mb-0"><%- revise.audit_name %><small class="ml-1 text-muted"><%- (revise.audit_role ? '- ' + revise.audit_role: '') %></small>
-                                                    <span class="pull-right text-muted"><%- (revise.end_time ? revise.end_time.toLocaleString() : '') %></span>
+                                                    <span class="pull-right text-muted"><%- (revise.end_time ? ctx.moment(revise.end_time).format('YYYY-MM-DD hh:mm:ss') : '') %></span>
                                                 </p>
                                             </div>
                                         </li>
@@ -83,7 +83,7 @@
                                                         <div class="col-3 ml-auto text-right pl-0"><a href="/tender/<%- audit.tid %>/measure/stage/<%- audit.sorder %>" class="btn btn-sm btn-outline-primary"><% if (audit.sstatus === acStage.status.checkNoPre) { %>重新<% } %>审批</a></div>
                                                     </div>
                                                     <p class="mt-1 mb-0"><%- ctx.session.sessionUser.name %><small class="ml-1 text-muted"><%- (role ? '- ' + role : '') %></small>
-                                                        <span class="pull-right text-muted"><%- audit.begin_time.toLocaleString() %></span>
+                                                        <span class="pull-right text-muted"><%- ctx.moment(audit.begin_time).format('YYYY-MM-DD hh:mm:ss') %></span>
                                                     </p>
                                                 </div>
                                             </li>
@@ -96,7 +96,7 @@
                                                         <div class="col-3 ml-auto text-right pl-0"><a href="/tender/<%- audit.tid %>/measure/stage/<%- audit.sorder %>" class="btn btn-sm btn-outline-primary">重新上报</a></div>
                                                     </div>
                                                     <p class="mt-1 mb-0"><%- ctx.session.sessionUser.name %><small class="ml-1 text-muted"><%- (role ? '- ' + role : '') %></small>
-                                                        <span class="pull-right text-muted"><%- audit.end_time.toLocaleString() %></span>
+                                                        <span class="pull-right text-muted"><%- ctx.moment(audit.end_time).format('YYYY-MM-DD hh:mm:ss') %></span>
                                                     </p>
                                                 </div>
                                             </li>
@@ -111,7 +111,7 @@
                                                     <div class="col-3 ml-auto text-right pl-0"><a href="/tender/<%- change.tid %>/change/<%- change.cid %>/info" class="btn btn-sm btn-outline-primary"><% if (change.cstatus === acChange.status.checking) { %>审批<% } else if (change.cstatus === acChange.status.backnew) { %>重新审批<% } else { %>重新上报<% } %></a></div>
                                                 </div>
                                                 <p class="mt-1 mb-0"><%- change.caname %><small class="ml-1 text-muted"><%- (role ? '- ' + role : '') %></small>
-                                                    <span class="pull-right text-muted"><%- (change.sin_time ? change.sin_time.toLocaleString() : '') %></span>
+                                                    <span class="pull-right text-muted"><%- (change.sin_time ? ctx.moment(change.sin_time).format('YYYY-MM-DD hh:mm:ss') : '') %></span>
                                                 </p>
                                             </div>
                                         </li>
@@ -126,7 +126,7 @@
                                                         <div class="col-3 ml-auto text-right pl-0"><a href="/tender/<%- am.tid %>/measure/material/<%- am.morder %>" class="btn btn-sm btn-outline-primary">审批</a></div>
                                                     </div>
                                                     <p class="mt-1 mb-0"><%- ctx.session.sessionUser.name %><small class="ml-1 text-muted"><%- (role ? '- ' + role : '') %></small>
-                                                        <span class="pull-right text-muted"><%- am.begin_time.toLocaleString() %></span>
+                                                        <span class="pull-right text-muted"><%- ctx.moment(am.begin_time).format('YYYY-MM-DD hh:mm:ss') %></span>
                                                     </p>
                                                 </div>
                                             </li>
@@ -139,7 +139,7 @@
                                                         <div class="col-3 ml-auto text-right pl-0"><a href="/tender/<%- am.tid %>/measure/material/<%- am.morder %>" class="btn btn-sm btn-outline-primary">重新上报</a></div>
                                                     </div>
                                                     <p class="mt-1 mb-0"><%- ctx.session.sessionUser.name %><small class="ml-1 text-muted"><%- (role ? '- ' + role : '') %></small>
-                                                        <span class="pull-right text-muted"><%- am.end_time.toLocaleString() %></span>
+                                                        <span class="pull-right text-muted"><%- ctx.moment(am.end_time).format('YYYY-MM-DD hh:mm:ss') %></span>
                                                     </p>
                                                 </div>
                                             </li>
@@ -155,7 +155,7 @@
                                                         <div class="col-3 ml-auto text-right pl-0"><a href="/tender/<%- am.tid %>/advance/<%- am.vid %>/detail" class="btn btn-sm btn-outline-primary">审批</a></div>
                                                     </div>
                                                     <p class="mt-1 mb-0"><%- ctx.session.sessionUser.name %><small class="ml-1 text-muted"><%- (role ? '- ' + role : '') %></small>
-                                                        <span class="pull-right text-muted"><%- am.create_time.toLocaleString() %></span>
+                                                        <span class="pull-right text-muted"><%- ctx.moment(am.create_time).format('YYYY-MM-DD hh:mm:ss') %></span>
                                                     </p>
                                                 </div>
                                             </li>
@@ -168,7 +168,7 @@
                                                         <div class="col-3 ml-auto text-right pl-0"><a href="/tender/<%- am.tid %>/advance/<%- am.vid %>/detail" class="btn btn-sm btn-outline-primary">重新上报</a></div>
                                                     </div>
                                                     <p class="mt-1 mb-0"><%- ctx.session.sessionUser.name %><small class="ml-1 text-muted"><%- (role ? '- ' + role : '') %></small>
-                                                        <span class="pull-right text-muted"><%- am.end_time.toLocaleString() %></span>
+                                                        <span class="pull-right text-muted"><%- ctx.moment(am.end_time).format('YYYY-MM-DD hh:mm:ss') %></span>
                                                     </p>
                                                 </div>
                                             </li>

+ 3 - 3
app/view/revise/history.ejs

@@ -22,7 +22,7 @@
                     </div>
                 </div>
                 <div class="d-inline-flex">
-                    <%- (revise.in_time ? revise.in_time.toLocaleString() : '') %>
+                    <%- (revise.in_time ? ctx.moment(revise.in_time).format('YYYY-MM-DD hh:mm:ss') : '') %>
                 </div>
             </div>
             <div class="ml-auto">
@@ -66,7 +66,7 @@
                                 <label >创建时间</label>
                                 <select class="form-control form-control-sm" id="reviseHistory">
                                     <% for (const hr of historyRevise) { %>
-                                    <option value="<%- hr.id %>"><%- hr.corder + '#' + (hr.in_time ? hr.in_time.toLocaleDateString() : '') + (hr.valid ? '' : '(作废)')%></option>
+                                    <option value="<%- hr.id %>"><%- hr.corder + '#' + (hr.in_time ? ctx.moment(hr.in_time).format('YYYY-MM-DD') : '') + (hr.valid ? '' : '(作废)')%></option>
                                     <% } %>
                                 </select>
                             </div>
@@ -81,7 +81,7 @@
                             </div>
                             <div class="form-group">
                                 <label >审批完成</label>
-                                <input id="end-time" type="" class="form-control form-control-sm" value="<%- (revise.end_time ? revise.end_time.toLocaleString() : '') %>" disabled>
+                                <input id="end-time" type="" class="form-control form-control-sm" value="<%- (revise.end_time ? ctx.moment(revise.end_time).format('YYYY-MM-DD hh:mm:ss') : '') %>" disabled>
                             </div>
                         </div>
                     </div>

+ 2 - 2
app/view/revise/index.ejs

@@ -40,7 +40,7 @@
                     <% for (const lr of ledgerRevise) { %>
                     <tr>
                         <td><%- lr.corder %></td>
-                        <td><%- lr.in_time ? lr.in_time.toLocaleDateString() : '' %></td>
+                        <td><%- lr.in_time ? ctx.moment(lr.in_time).format('YYYY-MM-DD') : '' %></td>
                         <td><%- lr.user_name %></td>
                         <% if (!lr.valid) {%>
                         <td class="text-danger">
@@ -54,7 +54,7 @@
                             <%- auditConst.auditProgress[lr.status] %>
                         </td>
                         <% } %>
-                        <td><%- lr.end_time ? lr.end_time.toLocaleDateString() : '' %></td>
+                        <td><%- lr.end_time ? ctx.moment(lr.end_time).format('YYYY-MM-DD') : '' %></td>
                         <td>
                             <% if (lr.valid) { %>
                             <% if (lr.status === auditConst.status.uncheck && lr.uid === ctx.session.sessionUser.accountId) { %>

+ 1 - 1
app/view/revise/info.ejs

@@ -124,7 +124,7 @@
                         <div class="sjs-sh" style="overflow:auto">
                             <div class="form-group mt-2">
                                 <label >创建时间</label>
-                                <input type="" class="form-control form-control-sm" value="<%- revise.in_time.toLocaleString() %>" disabled>
+                                <input type="" class="form-control form-control-sm" value="<%- ctx.moment(revise.in_time).format('YYYY-MM-DD hh:mm:ss') %>" disabled>
                             </div>
                             <div class="form-group mt-2">
                                 <label >提交人</label>

+ 11 - 5
app/view/tender/detail_modal.ejs

@@ -284,8 +284,11 @@
     </div>
 </div>
 
-<% if (((tender.ledger_status === audit.ledger.status.uncheck || tender.ledger_status === audit.ledger.status.checkNo) && tender.user_id === ctx.session.sessionUser.accountId)
-        || (lastStage && lastStage.user_id === ctx.session.sessionUser.accountId && (lastStage.status === audit.stage.status.checkNo || lastStage.status === audit.stage.status.uncheck))) { %>
+<% if (
+    ((tender.ledger_status === audit.ledger.status.uncheck || tender.ledger_status === audit.ledger.status.checkNo) && tender.user_id === ctx.session.sessionUser.accountId) ||
+    (lastStage && lastStage.user_id === ctx.session.sessionUser.accountId && (lastStage.status === audit.stage.status.checkNo || lastStage.status === audit.stage.status.uncheck)) ||
+    (!lastStage && revise && revise.valid && (revise.status === audit.revise.status.uncheck || revise.status === audit.revise.status.checkNo) && tender.user_id === ctx.session.sessionUser.accountId)
+) { %>
 <!--标段设置-小数位数-->
 <div class="modal fade" id="bd-set-2" data-backdrop="static">
     <div class="modal-dialog" role="document">
@@ -613,7 +616,7 @@
 </div>
 <script>
     let property = JSON.parse('<%- JSON.stringify(tenderInfo) %>');
-    let ledgerChecked = <%- tender.ledger_status === audit.ledger.status.checked %>;
+    let ledgerChecked = <%- (tender.ledger_status === audit.ledger.status.checked) && (lastStage || !revise || !revise.valid || revise.status === audit.revise.status.checked) %>;
     let firstStageChecked = <%- lastStage !== undefined && lastStage !== null && (lastStage.order > 1 || (lastStage.order === 1 && lastStage.status === audit.stage.status.checked)) %>;
 
     // 根据Min Max限制Input输入
@@ -990,8 +993,11 @@
         return {loadPrecisonProperty, setReadOnly, getNewPrecisionData, checkPrecisionMinLimit};
     })();
     $('#bd-set-3').on('show.bs.modal', function () {
-        <% if (((tender.ledger_status !== audit.ledger.status.uncheck && tender.ledger_status !== audit.ledger.status.checkNo) || tender.user_id !== ctx.session.sessionUser.accountId)
-                && (!lastStage || lastStage.user_id !== ctx.session.sessionUser.accountId || (lastStage.status !== audit.stage.status.checkNo || lastStage.status !== audit.stage.status.uncheck))) { %>
+        <% if (!(
+                ((tender.ledger_status === audit.ledger.status.uncheck || tender.ledger_status === audit.ledger.status.checkNo) && tender.user_id === ctx.session.sessionUser.accountId) ||
+                (lastStage && lastStage.user_id === ctx.session.sessionUser.accountId && (lastStage.status === audit.stage.status.checkNo || lastStage.status === audit.stage.status.uncheck)) ||
+                (!lastStage && revise && revise.valid && (revise.status === audit.revise.status.uncheck || revise.status === audit.revise.status.checkNo) && tender.user_id === ctx.session.sessionUser.accountId)
+        )) { %>
         precisionObj.setReadOnly(true);
         <% } %>
         precisionObj.loadPrecisonProperty();