Browse Source

项目统计修改

ljy121 1 năm trước cách đây
mục cha
commit
ffa55f0b2f

+ 2 - 1
zjugis-business/src/main/java/com/zjugis/business/flow/contractApply/event/ContractApplyEvent.java

@@ -63,7 +63,8 @@ public class ContractApplyEvent extends BaseController {
             if (!Objects.isNull(activityInstance) && activityInstance.containsKey("flowInstanceId")) {
                 String flowInstanceId = activityInstance.get("flowInstanceId").toString();
                 ContractApply entity = contractApplyService.selectByInstanceId(flowInstanceId);
-                String flowDesc = StringUtils.join(Arrays.asList(entity.getApplyWorker(), entity.getContractAmount(),entity.getReason()), "/");
+                Project project = projectMapper.selectById(entity.getProjectId());
+                String flowDesc = StringUtils.join(Arrays.asList(entity.getApplyWorker(), entity.getApplyDate(),entity.getContractAmount(),project != null? project.getXmmc():""), "/");
                 entity.setFlowStatus(FlowStatusConstants.FLOW_PROCESS);
                 contractApplyService.update(entity);
                 workflowClient.saveFlowDescribe(flowInstanceId,flowDesc);

+ 3 - 1
zjugis-business/src/main/java/com/zjugis/business/flow/contractinvoice/event/ContractInvoiceEvent.java

@@ -1,5 +1,6 @@
 package com.zjugis.business.flow.contractinvoice.event;
 
+import com.zjugis.business.bean.entity.Contract;
 import com.zjugis.business.bean.entity.ContractInvoice;
 import com.zjugis.business.constants.FlowStatusConstants;
 import com.zjugis.business.flow.contractinvoice.service.FlowContractInvoiceService;
@@ -63,7 +64,8 @@ public class ContractInvoiceEvent extends BaseController {
             if (!Objects.isNull(activityInstance) && activityInstance.containsKey("flowInstanceId")) {
                 String flowInstanceId = activityInstance.get("flowInstanceId").toString();
                 ContractInvoice entity = contractInvoiceService.selectByInstanceId(flowInstanceId);
-                String flowDesc = StringUtils.join(Arrays.asList(entity.getInvoiceAmount(), entity.getApplyWorkerName()), "/");
+                Contract contract = contractService.selectByPrimaryKey(entity.getContractId());
+                String flowDesc = StringUtils.join(Arrays.asList( entity.getApplyWorkerName(),entity.getApplyDate(),entity.getInvoiceAmount(),contract != null ? contract.getName():""), "/");
                 entity.setFlowStatus(FlowStatusConstants.FLOW_PROCESS);
                 flowContractInvoiceService.updateById(entity);
                 workflowClient.saveFlowDescribe(flowInstanceId,flowDesc);

+ 14 - 0
zjugis-business/src/main/java/com/zjugis/business/service/impl/ContractApplyServiceImpl.java

@@ -3,12 +3,14 @@ package com.zjugis.business.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zjugis.business.bean.dto.ContractApplyDto;
+import com.zjugis.business.bean.entity.Contract;
 import com.zjugis.business.bean.entity.ContractApply;
 import com.zjugis.business.bean.response.ContractApplyResp;
 import com.zjugis.business.constants.ContractApplyConstants;
 import com.zjugis.business.constants.FlowStatusConstants;
 import com.zjugis.business.mapper.ContractApplyMapper;
 import com.zjugis.business.service.ContractApplyService;
+import com.zjugis.business.service.ContractService;
 import com.zjugis.framework.common.pojo.CommonResult;
 import com.zjugis.framework.security.core.util.SecurityFrameworkUtils;
 import com.zjugis.framework.workflow.model.ProcessDto;
@@ -32,6 +34,10 @@ public class ContractApplyServiceImpl implements ContractApplyService {
     @Autowired
     private ContractApplyMapper contractApplyMapper;
 
+    @Autowired
+    private ContractService contractService;
+
+
     @Autowired
     private AdminUserApi adminUserApi;
     @Autowired
@@ -118,6 +124,10 @@ public class ContractApplyServiceImpl implements ContractApplyService {
         ContractApply contractApply = new ContractApply();
         contractApply.setInstanceId(UrlUtils.getParam(returnUrl,"flowInstanceId"));
         contractApply.setProjectId(projectId);
+        Contract contract = contractService.selectMainByProject(projectId);
+        if(contract != null){
+            contractApply.setContractId(contract.getId());
+        }
         contractApply.setIsSign(1);
         contractApply.setApplyType(ContractApplyConstants.TYPE_SUB_APPLY);
         contractApply.setApplyWorker(userResp.getCheckedData().getNickname());
@@ -139,6 +149,10 @@ public class ContractApplyServiceImpl implements ContractApplyService {
         ContractApply entity = new ContractApply();
         entity.setInstanceId(UrlUtils.getParam(returnUrl,"flowInstanceId"));
         entity.setProjectId(projectId);
+        Contract contract = contractService.selectMainByProject(projectId);
+        if(contract != null){
+            entity.setContractId(contract.getId());
+        }
         entity.setApplyType(ContractApplyConstants.TYPE_OUT_APPLY);
         entity.setApplyWorker(userResp.getCheckedData().getNickname());
         entity.setApplyWorkerId(userId);

+ 1 - 1
zjugis-business/src/main/resources/mapper/oracle/ContractInvoiceRelationMapper.xml

@@ -4,7 +4,7 @@
 
     <select id="selectByInvoiceId" resultType="com.zjugis.business.bean.dto.ContractInvoiceRelationDto">
         SELECT t.*,t1.AREA_MANAGER,t1.virtual_amount,t1.name as contractName,t2.zrbm  FROM CONTRACT_INVOICE_RELATION t
-        LEFT JOIN CONTRACT t1 ON t1.ID = t.CONTRACT_ID
+        INNER JOIN CONTRACT t1 ON t1.ID = t.CONTRACT_ID
         LEFT JOIN PROJECT t2 ON t2.ID = t1.PROJECT_ID
         WHERE t.CONTRACT_INVOICE_ID = #{id,jdbcType=VARCHAR} AND t.ISVALID = 1
         ORDER BY t.CONTRACT_TYPE ASC

+ 1 - 1
zjugis-business/src/main/resources/mapper/oracle/ProjectMapper.xml

@@ -25,7 +25,7 @@
         SELECT P.*
         <if test="params != null and params.isRelContract != null and params.isRelContract == 1">
             ,
-            (CASE WHEN CH.ccount >0 then P.OUTPUT_VALUE
+            (CASE WHEN (CH.ccount >0 or P.FLOW_STATUS = 99)  then P.OUTPUT_VALUE
              ELSE C.contractAmount end
             ) as contractAmount
             ,C.contractNumber as contractNumber

+ 5 - 1
zjugis-business/src/main/resources/templates/FlowContract/apply.ftl

@@ -3,7 +3,9 @@ styles=[ '/flow/css/formCommon.css', '/OwCommon/OwCommon.css','/timeSelector/Tim
   <div class="z-position form-boss ow-tabs" name="flow-form">
       <ul class="ow-tab-nav oa_tabBox">
           <li z-tabindex="0" class="ow-tab-item on" data-name="jbxx">基础信息</li>
-          <li z-tabindex="1" class="ow-tab-item" data-name="yj">审批意见</li>
+          <#if WORKFLOW.OPINION! !="">
+            <li z-tabindex="1" class="ow-tab-item" data-name="yj">审批意见</li>
+          </#if>
       </ul>
 
       <div class="ow-tab-scroll">
@@ -573,6 +575,7 @@ styles=[ '/flow/css/formCommon.css', '/OwCommon/OwCommon.css','/timeSelector/Tim
                   </table>
               </div>
           </div>
+         <#if WORKFLOW.OPINION! !="">
           <div class="ow-tab-content" name="yj">
               <#if WORKFLOW.OPINION! !="">
                   <div class="form-title">
@@ -590,6 +593,7 @@ styles=[ '/flow/css/formCommon.css', '/OwCommon/OwCommon.css','/timeSelector/Tim
                   </div>
               </#if>
           </div>
+          </#if>
       </div>
   </div>
   <style type="text/css">

+ 45 - 40
zjugis-business/src/main/resources/templates/FlowContract/js/apply.js

@@ -1,7 +1,7 @@
 (function () {
     var lists = [];
     let flowInstanceId = "";
-    let isView = "";
+    let viewState = z.ui.comm.getUrlParam("_o");
     var contractId = $("[name='contract$id']").val()
     var contractAmount = $("[name='contract$contractAmount'] input").val()
     window.onload = function () {
@@ -254,7 +254,7 @@
             description: "",
             id: "",
             contractId: contractId,
-            sortnum: ""
+            sortnum: lists.length - 1
         }
         lists.push(dataObj);
         trFragment.appendChild(generateTableTrHtml(lists.length-1))
@@ -384,51 +384,55 @@
             + '</div>'
             + '</td>'
             + '<td>'
-            + '<div id="editBtn_' + (i) + '" class="table-btn editBtn_' + (i) + '" data-index="' + (i) + '">'
-            + '<span>编辑</span>'
-            + '</div>'
-            + '<div id="delBtn_' + (i) + '" class="table-btn delBtn_' + (i) + '" data-index="' + (i) + '">'
-            + '<span>删除</span>'
-            + '</div>'
-            + '</td></tr>';
+            if(viewState !== 'v') {
+                html += '<div id="editBtn_' + (i) + '" class="table-btn editBtn_' + (i) + '" data-index="' + (i) + '">'
+                + '<span>编辑</span>'
+                + '</div>'
+                + '<div id="delBtn_' + (i) + '" class="table-btn delBtn_' + (i) + '" data-index="' + (i) + '">'
+                + '<span>删除</span>'
+                + '</div>'
+            }
+            html += '</td></tr>';
         }
         tbodyQjsq.innerHTML = html
         for (let i = 0; i < lists.length; i++) {
             z.ui.date("[name='ContractMilestone[" + i + "]$planReturnTime']").init()
-            $("#delBtn_" + i).click(function () {
-                z.ui.confirm("compid").init({
-                    content: "确定删除吗?",
-                    onConfirm: function () {
-                        var element = document.getElementById("contract_milestone_" + i);
-                        element.remove();
-                        buildSeq();
-                        lists.splice(i, 1)
-                        updateView();
-                    },
-                    onCancel: function () {
+            if(viewState !== 'v') {
+                $("#delBtn_" + i).click(function () {
+                    z.ui.confirm("compid").init({
+                        content: "确定删除吗?",
+                        onConfirm: function () {
+                            var element = document.getElementById("contract_milestone_" + i);
+                            element.remove();
+                            buildSeq();
+                            lists.splice(i, 1)
+                            updateView();
+                        },
+                        onCancel: function () {
+
+                        }
+                    })
 
+                })
+                $("#editBtn_" + i).click(function () {
+                    const span = $(this).find("span");
+                    const html = span.html();
+                    if (html === '编辑') {
+                        span.html('保存')
+                        detailWrite(i);
+                        $("#addData").attr('disabled', "true");
+                        $("#contract_milestone_" + i).removeClass("form-table-disable")
+                        return;
+                    }
+                    if (html === '保存') {
+                        span.html('编辑')
+                        detailReadonly(i, false, "contract_milestone_")
+                        $("#addData").removeAttr('disabled')
+                        $("#contract_milestone_" + i).addClass("form-table-disable")
+                        return;
                     }
                 })
-
-            })
-            $("#editBtn_" + i).click(function () {
-                const span = $(this).find("span");
-                const html = span.html();
-                if (html === '编辑') {
-                    span.html('保存')
-                    detailWrite(i);
-                    $("#addData").attr('disabled', "true");
-                    $("#contract_milestone_" + i).removeClass("form-table-disable")
-                    return;
-                }
-                if (html === '保存') {
-                    span.html('编辑')
-                    detailReadonly(i, false,"contract_milestone_")
-                    $("#addData").removeAttr('disabled')
-                    $("#contract_milestone_" + i).addClass("form-table-disable")
-                    return;
-                }
-            })
+            }
             detailReadonly(i,false,"contract_milestone_")
             $("#contract_milestone_" + i).addClass("form-table-disable")
             // if(viewState === 'v' || read=== '1'){
@@ -449,6 +453,7 @@
             + '<td>'
             + '<div class="form-flex">'
             + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
+            + '<input type="hidden"  name="ContractMilestone[' + index + ']$sortnum" value="'+(index+1)+'">'
             + '<div class="z-comp-input" name="ContractMilestone[' + index + ']$name">'
             + '<input type="text" value="">'
             + '</div>'

+ 5 - 4
zjugis-business/src/main/resources/templates/FlowContractApply/outApply.ftl

@@ -3,7 +3,9 @@ styles=[ '/flow/css/formCommon.css', '/OwCommon/OwCommon.css']>
   <div class="z-position form-boss ow-tabs" name="flow-form">
       <ul class="ow-tab-nav oa_tabBox">
           <li z-tabindex="0" class="ow-tab-item on" data-name="jbxx">基础信息</li>
+           <#if WORKFLOW.OPINION! !="">
           <li z-tabindex="1" class="ow-tab-item" data-name="yj">审批意见</li>
+          </#if>
       </ul>
       <div class="ow-tab-scroll">
           <div class="ow-tab-content" name="jbxx" style="padding-bottom: 40px;">
@@ -254,12 +256,11 @@ styles=[ '/flow/css/formCommon.css', '/OwCommon/OwCommon.css']>
                               </div>
                           </td>
                       </tr>
-                      </table>
-                  </div>
+                  </table>
               </div>
           </div>
+          <#if WORKFLOW.OPINION! !="">
           <div class="ow-tab-content" name="yj">
-              <#if WORKFLOW.OPINION! !="">
                   <div class="form-title">
                       <div class="form-icon">
                           <img src="/imgs/titleIcon.png" alt="">
@@ -273,8 +274,8 @@ styles=[ '/flow/css/formCommon.css', '/OwCommon/OwCommon.css']>
                           <div class="z-form-row"> ${WORKFLOW.OPINION!} </div>
                       </div>
                   </div>
-              </#if>
           </div>
+          </#if>
       </div>
   </div>
   <style type="text/css">

+ 6 - 3
zjugis-business/src/main/resources/templates/FlowContractApply/subApply.ftl

@@ -3,7 +3,9 @@ styles=[ '/flow/css/formCommon.css', '/OwCommon/OwCommon.css']>
   <div class="z-position form-boss ow-tabs" name="flow-form">
       <ul class="ow-tab-nav oa_tabBox">
           <li z-tabindex="0" class="ow-tab-item on" data-name="jbxx">基础信息</li>
+          <#if WORKFLOW.OPINION! !="">
           <li z-tabindex="1" class="ow-tab-item" data-name="yj">审批意见</li>
+          </#if>
       </ul>
       <div class="ow-tab-scroll">
           <div class="ow-tab-content" name="jbxx" style="padding-bottom: 40px;">
@@ -232,11 +234,12 @@ styles=[ '/flow/css/formCommon.css', '/OwCommon/OwCommon.css']>
                           </td>
                       </tr>
                       </table>
-                  </div>
               </div>
           </div>
+
+          <#if WORKFLOW.OPINION! !="">
           <div class="ow-tab-content" name="yj">
-              <#if WORKFLOW.OPINION! !="">
+
                   <div class="form-title">
                       <div class="form-icon">
                           <img src="/imgs/titleIcon.png" alt="">
@@ -250,8 +253,8 @@ styles=[ '/flow/css/formCommon.css', '/OwCommon/OwCommon.css']>
                           <div class="z-form-row"> ${WORKFLOW.OPINION!} </div>
                       </div>
                   </div>
-              </#if>
           </div>
+          </#if>
       </div>
   </div>
   <style type="text/css">

+ 29 - 3
zjugis-business/src/main/resources/templates/FlowContractInvoice/js/apply.js

@@ -2,6 +2,7 @@
     var lists = [];
     let viewState = z.ui.comm.getUrlParam("_o");
     let read = z.ui.comm.getUrlParam("read");
+    var totalContractAmount = 0;
     var totalReturnAmount =0;
     var totalInvoiceAmount = 0;
     var contractInvoiceList = [];
@@ -22,6 +23,7 @@
         bindSelectMilestone();
         initContractReturnMoney();
         initContractInvoiceList();
+        bindCalcInvoiceAmount();
         bindReturnMoney();
         z.workflow.saveBtn.addListener("onSaveClick", submit);
     }
@@ -163,7 +165,7 @@
                 + '<div class="form-flex">'
                 + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
                 + '<div class="z-comp-input" name="Contract[' + i + ']$virtualAmount">'
-                + '<input type="text" value="'+contractInvoiceList[i].virtualAmount+'">'
+                + '<input type="text" class="contractAmount" value="'+contractInvoiceList[i].virtualAmount+'">'
                 + '</div>'
                 + '</div>'
                 + '</div>'
@@ -243,6 +245,26 @@
         }
     }
 
+    function bindCalcInvoiceAmount(){
+        $("[name='contractInvoice$invoiceAmount'] input").change(function(){
+            if(!parseFloat($(this).val())){
+                return;
+            }
+            totalContractAmount = 0;
+            let arr = $('.contractAmount');
+            for (let i = 0; i < arr.length; i++) {
+                if(parseFloat($(arr[i]).val())) {
+                    totalContractAmount += parseFloat($(arr[i]).val())
+                }
+            }
+            for (let i = 0; i < arr.length; i++) {
+                var dom = $(arr[i]).closest("tr").find(".contractInvoice");
+                $(dom).val(($(arr[i]).val() / totalContractAmount * $(this).val()).toFixed(2));
+            }
+        })
+
+    }
+
     function bindReturnMoney(){
         var arr = $('.contractInvoice');
         for(var i =0 ;i < arr.length;i++){
@@ -275,7 +297,9 @@
         totalInvoiceAmount = 0;
         let arr = $('.contractInvoice');
         for (let i = 0; i < arr.length; i++) {
-            totalInvoiceAmount += parseFloat($(arr[i]).val());
+            if(parseFloat($(arr[i]).val())) {
+                totalInvoiceAmount += parseFloat($(arr[i]).val());
+            }
         }
     }
 
@@ -284,7 +308,9 @@
         let arr = $('.returnAmount');
         for (let i = 0; i < arr.length; i++) {
             if(parseFloat($(arr[i]).val())) {
-                totalReturnAmount += parseFloat($(arr[i]).val())
+                if(parseFloat($(arr[i]).val())){
+                    totalReturnAmount += parseFloat($(arr[i]).val())
+                }
             }
         }
     }

+ 2 - 1
zjugis-business/src/main/resources/templates/FlowProject/js/apply.js

@@ -215,7 +215,7 @@
       planFinishTime: "",
       id: "",
       projectId: projectId,
-      sortnum: ""
+      sortnum: lists.length - 1
     }
     lists.push(dataObj);
     trFragment.appendChild(generateTableTrHtml(lists.length-1))
@@ -373,6 +373,7 @@
         + '<td>'
         + '<div class="form-flex">'
         + '<div class="form-item" style="width: 100%;margin-right: 5px;">'
+        + '<input type="hidden" name="ProjectMilestone[' + index + ']$sortnum" value="'+(index+1)+'" />'
         + '<div class="z-comp-input" name="ProjectMilestone[' + index + ']$name">'
         + '<input type="text" value="">'
         + '</div>'