Bläddra i källkod

前后:跨年

dubch 4 år sedan
förälder
incheckning
823a8591e4

+ 7 - 0
src/dashoo.cn/backend/api/business/oilcontract/contract/contract.go

@@ -38,6 +38,7 @@ type OilContract struct {
 	IsDelete             int       `json:"IsDelete" xorm:"default 0 comment('删除状态,0正常,1已删除') INT(11) 'IsDelete'"`
 	StartDate            time.Time `json:"StartDate" xorm:"comment('开始时间') DATETIME 'StartDate'"`
 	EndDate              time.Time `json:"EndDate" xorm:"comment('截止时间(履行期限)') DATETIME 'EndDate'"`
+	YearDate             time.Time `json:"YearDate" xorm:"comment('跨年截止') DATETIME 'YearDate'"`
 	CreateOn             time.Time `json:"CreateOn" xorm:"DATETIME 'CreateOn'"`
 	CreateUserId         int       `json:"CreateUserId" xorm:"INT(11) 'CreateUserId'"`
 	CreateBy             string    `json:"CreateBy" xorm:"VARCHAR(50) 'CreateBy'"`
@@ -90,6 +91,12 @@ type OilContractMoney struct {
 	ModifiedUserId       int       `json:"ModifiedUserId" xorm:"INT(11) 'ModifiedUserId'"`
 	ModifiedBy           string    `json:"ModifiedBy" xorm:"default '1' VARCHAR(50) 'ModifiedBy'"`
 }
+
+type OilContractMoney1 struct {
+	Year         		 string    `json:"Year" xorm:"comment('年份') VARCHAR(50) 'Year'"`
+	Money          		 string    `json:"Money" xorm:"comment('当年结算金额') VARCHAR(255) 'Money'"`
+}
+
 type OilContractItems struct {
 	Items []OilContract
 }

+ 8 - 0
src/dashoo.cn/backend/api/business/oilcontract/contract/contractService.go

@@ -61,4 +61,12 @@ func (s *OilContractService) GetSum(entitiesPtr interface{}, where string) {
 	sql += ` where ` + where
 
 	s.DBE.SQL(sql).Get(entitiesPtr)
+}
+
+func (s *OilContractService) GetList(entitiesPtr interface{}, where string) {
+
+	sql := ` select Year,Money from OilContractMoney`
+	sql += ` where ` + where
+
+	s.DBE.SQL(sql).Find(entitiesPtr)
 }

+ 40 - 8
src/dashoo.cn/backend/api/controllers/oilcontract/contract.go

@@ -62,8 +62,8 @@ func (this *OilContractController) GetEntityList() {
 	ContractMode := this.GetString("ContractMode")
 	Amount := this.GetString("Amount")
 	ContractPeriod := this.GetString("ContractPeriod")
-	OpenDate := this.GetString("OpenDate")
-	PlanFinishDate := this.GetString("PlanFinishDate")
+	EndDate := this.GetString("EndDate")
+	StartDate := this.GetString("StartDate")
 	ConstructionUnit := this.GetString("ConstructionUnit")
 	ConstructionOwner := this.GetString("ConstructionOwner")
 	ConstructionTelphone := this.GetString("ConstructionTelphone")
@@ -176,12 +176,12 @@ func (this *OilContractController) GetEntityList() {
 		where = where + " and ContractPeriod like '%" + ContractPeriod + "%'"
 	}
 
-	if OpenDate != "" {
-		where = where + " and OpenDate like '%" + OpenDate + "%'"
+	if EndDate != "" {
+		where = where + " and EndDate like '%" + EndDate + "%'"
 	}
 
-	if PlanFinishDate != "" {
-		where = where + " and PlanFinishDate like '%" + PlanFinishDate + "%'"
+	if StartDate != "" {
+		where = where + " and StartDate like '%" + StartDate + "%'"
 	}
 
 	if ConstructionUnit != "" {
@@ -555,6 +555,7 @@ func (this *OilContractController) ImportExcel() {
 
 				con1.StartDate, _ = time.ParseInLocation("2006-01-02", convertToFormatDay(sheet.Rows[i].Cells[24].Value), time.Local)
 				con1.EndDate, _ = time.ParseInLocation("2006-01-02", convertToFormatDay(sheet.Rows[i].Cells[25].Value), time.Local)
+				con1.YearDate, _ = time.ParseInLocation("2006-01-02", convertToFormatDay(sheet.Rows[i].Cells[25].Value), time.Local)
 				con1.DisputeResolution = sheet.Rows[i].Cells[26].String()
 				con1.Remark = sheet.Rows[i].Cells[27].String()
 				if con1.ProjectOwner != sheet.Rows[i].Cells[28].String() {
@@ -619,6 +620,7 @@ func (this *OilContractController) ImportExcel() {
 
 			con.StartDate, _ = time.ParseInLocation("2006-01-02", convertToFormatDay(sheet.Rows[i].Cells[24].Value), time.Local)
 			con.EndDate, _ = time.ParseInLocation("2006-01-02", convertToFormatDay(sheet.Rows[i].Cells[25].Value), time.Local)
+			con.YearDate, _ = time.ParseInLocation("2006-01-02", convertToFormatDay(sheet.Rows[i].Cells[25].Value), time.Local)
 			con.DisputeResolution = sheet.Rows[i].Cells[26].String()
 			con.Remark = sheet.Rows[i].Cells[27].String()
 			con.ProjectOwner = sheet.Rows[i].Cells[28].String()
@@ -974,9 +976,11 @@ func (this *OilContractController) UpdateEntity() {
 
 		"ContractPeriod",
 
-		"OpenDate",
+		"EndDate",
 
-		"PlanFinishDate",
+		"YearDate",
+
+		"StartDate",
 
 		"ConstructionUnit",
 
@@ -1080,6 +1084,11 @@ func (this *OilContractController) UpdateEntity() {
 		this.ServeJSON()
 		return
 	}
+	date := time.Now().Format("2006-01-02")
+	date1 := model.EndDate.Format("2006-01-02")
+	if date >= date1 && model.IsYear == 1{
+		model.YearDate = model.EndDate.AddDate(1,0,0)
+	}
 
 	err := svc.UpdateEntityBytbl(OilContractName, id, &model, cols)
 	if err == nil {
@@ -1184,6 +1193,29 @@ func (this *OilContractController) CountMoney() {
 	this.ServeJSON()
 }
 
+// @Title 获取跨年记录
+// @Description
+// @Success 200 {object} ErrorInfo
+// @Failure 403 :id 为空
+// @router /yearList/:Id [get]
+func (this *OilContractController) YearList() {
+	Id := this.Ctx.Input.Param(":Id")
+	var errinfo ErrorInfo
+	if Id == "" {
+		errinfo.Message = "操作失败!请求信息不完整"
+		errinfo.Code = -2
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+		return
+	}
+
+	var model []contract.OilContractMoney1
+	svc := contract.GetOilContractService(utils.DBE)
+	svc.GetList(&model, "ContractId = " + Id)
+	this.Data["json"] = &model
+	this.ServeJSON()
+}
+
 // @Title 获取列表
 // @Description get user by token
 // @Success 200 {object} []oilcontract.OilContract

+ 6 - 0
src/dashoo.cn/frontend_web/src/api/oilcontract/contract.js

@@ -227,6 +227,12 @@ export default {
       method: 'get'
     })
   },
+  yearList (id, myAxios) {
+    return myAxios({
+      url: `/contract/yearList/${id}`,
+      method: 'get'
+    })
+  },
   getNeedEvaList (myAxios) {
     return myAxios({
       url: '/contract/need-eva-list',

+ 100 - 68
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/_opera/operation.vue

@@ -82,23 +82,6 @@
               <el-input v-model="formData.ProjectOwner" placeholder="请输入" style="width: 100%"></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
-            <el-form-item label="是否跨年" prop="IsYear">
-              <el-select v-model="formData.IsYear" placeholder="请选择" style="width: 100%">
-                <el-option label="否" :value=0 key="0"></el-option>
-                <el-option label="是" :value=1 key="1"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="当年结算金额">
-              <el-input v-model="formData.IsYearMoney" placeholder="请输入" style="width: 100%">
-                <template slot="append">(元)</template>
-              </el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
           <el-col :span="8">
             <el-form-item label="联系人电话" prop="Telephone">
               <el-input v-model="formData.Telephone" placeholder="请输入" maxlength="11" style="width: 100%"></el-input>
@@ -113,14 +96,13 @@
               </el-select>
             </el-form-item>
           </el-col>
-
+        </el-row>
+        <el-row>
           <el-col :span="8">
             <el-form-item label="合同模式" prop="ContractMode">
               <el-input v-model="formData.ContractMode" placeholder="请输入" style="width: 100%"></el-input>
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row>
           <el-col :span="8">
             <el-form-item label="是否分包" prop="SubPackage">
               <el-select placeholder="请选择" v-model="formData.SubPackage" style="width: 100%">
@@ -137,7 +119,8 @@
               </el-input>
             </el-form-item>
           </el-col>
-
+        </el-row>
+        <el-row>
           <el-col :span="8">
             <el-form-item label="合同总工期" prop="ContractPeriod">
               <el-input v-model="formData.ContractPeriod" placeholder="请输入" @change="dateChange" style="width: 100%">
@@ -145,12 +128,10 @@
               </el-input>
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row>
           <el-col :span="8">
-            <el-form-item label="开工日期" prop="OpenDate">
+            <el-form-item label="履行期限(始)" prop="StartDate">
               <el-date-picker
-                v-model="formData.OpenDate"
+                v-model="formData.StartDate"
                 type="date"
                 @change="dateChange"
                 placeholder="选择日期">
@@ -158,15 +139,26 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="计划竣工时间" prop="PlanFinishDate">
+            <el-form-item label="履行期限(止)" prop="EndDate">
               <el-date-picker
-                v-model="formData.PlanFinishDate"
+                v-model="formData.EndDate"
                 type="date"
                 placeholder="选择日期">
               </el-date-picker>
             </el-form-item>
           </el-col>
-
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="用章名称" prop="SealName">
+              <el-input v-model="formData.SealName" placeholder="请输入" style="width: 100%"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="PO编码">
+              <el-input v-model="formData.PoNumber" placeholder="请输入" style="width: 100%"></el-input>
+            </el-form-item>
+          </el-col>
           <!-- 新加的 -->
           <el-col :span="8">
             <el-form-item label="合同名称" prop="ContractName">
@@ -326,20 +318,6 @@
               </el-date-picker>
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="8">
-            <el-form-item label="用章名称" prop="SealName">
-              <el-input v-model="formData.SealName" placeholder="请输入" style="width: 100%"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="PO编码">
-              <el-input v-model="formData.PoNumber" placeholder="请输入" style="width: 100%"></el-input>
-            </el-form-item>
-          </el-col>
-
-
         </el-row>
         <el-row>
           <el-col :span="8">
@@ -431,6 +409,51 @@
       </el-form>
     </el-card>
 
+    <el-card class="box-card" style="margin-top: 10px;">
+      <div slot="header" class="clearfix">
+        <span>跨年记录</span>
+      </div>
+      <el-form id="rebateSetTable1" label-width="110px" ref="EntityForm" :rules="rules" :model="formData"
+               class="fromClass web_fromclass">
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="是否跨年" prop="IsYear">
+              <el-select v-model="formData.IsYear" placeholder="请选择" style="width: 100%">
+                <el-option label="否" :value=0 key="0"></el-option>
+                <el-option label="是" :value=1 key="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="当年结算金额">
+              <el-input v-model="formData.IsYearMoney" placeholder="请输入" style="width: 100%">
+                <template slot="append">(元)</template>
+              </el-input>
+            </el-form-item>
+          </el-col>
+<!--          <el-col :span="8">-->
+<!--            <el-form-item label="跨年至" prop="YearDate">-->
+<!--              <el-date-picker-->
+<!--                v-model="formData.YearDate"-->
+<!--                type="date"-->
+<!--                placeholder="选择日期">-->
+<!--              </el-date-picker>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+        </el-row>
+          <el-table
+            :data="yearTable"
+            stripe
+            :border="true"
+            height="300"
+            size="small"
+            style="width: 100%">
+            <el-table-column prop="Year" min-width="70" label="年份" align="center" show-overflow-tooltip></el-table-column>
+            <el-table-column prop="Money"  min-width="110" label="结算金额" align="center" show-overflow-tooltip></el-table-column>
+          </el-table>
+      </el-form>
+    </el-card>
+
 
 <!--    <el-dialog-->
 <!--      title="下发工单"-->
@@ -488,9 +511,9 @@ export default {
   },
 
   data() {
-    var OpenDateVar = (rule, value, callback) => {
-      if ((this.formData.PlanFinishDate != '' && this.formData.PlanFinishDate != null) && (value != '' && value != null)) {
-        if (this.formData.PlanFinishDate < value) {
+    var StartDateVar = (rule, value, callback) => {
+      if ((this.formData.EndDate != '' && this.formData.EndDate != null) && (value != '' && value != null)) {
+        if (this.formData.EndDate < value) {
           callback(new Error('开工日期不能大于竣工日期'));
         } else {
           callback();
@@ -499,9 +522,9 @@ export default {
         callback();
       }
     };
-    var PlanFinishDateVar = (rule, value, callback) => {
-      if ((this.formData.OpenDate != '' && this.formData.OpenDate != null) && (value != '' && value != null)) {
-        if (this.formData.OpenDate > value) {
+    var EndDateVar = (rule, value, callback) => {
+      if ((this.formData.StartDate != '' && this.formData.StartDate != null) && (value != '' && value != null)) {
+        if (this.formData.StartDate > value) {
           callback(new Error('竣工日期不能小于开工日期'));
         } else {
           callback();
@@ -563,13 +586,13 @@ export default {
           {required: true, message: '请选择是否分包', trigger: 'change'},
         ],
 
-        OpenDate: [
+        StartDate: [
           {required: true, message: '请选择时间', trigger: 'change'},
-          {validator: OpenDateVar, trigger: 'change'}
+          {validator: StartDateVar, trigger: 'change'}
         ],
-        PlanFinishDate: [
+        EndDate: [
           {required: true, message: '请选择时间', trigger: 'change'},
-          {validator: PlanFinishDateVar, trigger: 'change'}
+          {validator: EndDateVar, trigger: 'change'}
         ],
         Amount: [
           {required: true, message: '请输入', trigger: 'blur'},
@@ -689,8 +712,9 @@ export default {
         ContractMode: '',
         Amount: '',
         ContractPeriod: '',
-        OpenDate: '',
-        PlanFinishDate: '',
+        StartDate: '',
+        EndDate: '',
+        YearDate: '',
         ConstructionUnit: '',
         ConstructionOwner: '',
         ConstructionTelphone: '',
@@ -750,7 +774,7 @@ export default {
       successBoolean: false,
       issueVisibleButton: false,
       succseButton: false,
-
+      yearTable: []
     }
   },
   created() {
@@ -767,6 +791,7 @@ export default {
     if (this.serviceId != 'add' && this.serviceId > 0) {
       this.formData.Id = this.serviceId
       this.countMoney(this.formData.Id)
+      this.yearList(this.formData.Id)
       this.initDatas()
       this.successBoolean = true
     } else {
@@ -775,6 +800,11 @@ export default {
     this.statusFun()
   },
   methods: {
+    yearList(id) {
+      api.yearList(id, this.$axios).then(res => {
+        this.yearTable = res.data
+      })
+    },
     countMoney(id) {
       api.countMoney(id, this.$axios).then(res => {
         if (res.data.Money !== '') {
@@ -784,12 +814,12 @@ export default {
       })
     },
     dateChange() {
-      if (this.formData.OpenDate && this.formData.ContractPeriod) {
-        var d = new Date(this.formData.OpenDate)
+      if (this.formData.StartDate && this.formData.ContractPeriod) {
+        var d = new Date(this.formData.StartDate)
         var dd = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate()
         var ddd = new Date(dd)
         console.log(ddd, this.formData.ContractPeriod, ddd.getDate() + parseInt(this.formData.ContractPeriod), '2222')
-        this.formData.PlanFinishDate = ddd.setDate(ddd.getDate() + parseInt(this.formData.ContractPeriod))
+        this.formData.EndDate = ddd.setDate(ddd.getDate() + parseInt(this.formData.ContractPeriod))
       }
     },
     // 状态判断
@@ -897,10 +927,10 @@ export default {
           this.successBoolean = true
           this.onSelectType(this.formData.ContractClass, 1)
 
-          var OpenDateText = this.formData.OpenDate.substr(0,4);
-          this.formData.OpenDate = OpenDateText=='0001'?'':this.formData.OpenDate
-          var PlanFinishDateText = this.formData.PlanFinishDate.substr(0,4);
-          this.formData.PlanFinishDate = PlanFinishDateText=='0001'?'':this.formData.PlanFinishDate
+          var StartDateText = this.formData.StartDate.substr(0,4);
+          this.formData.StartDate = StartDateText=='0001'?'':this.formData.StartDate
+          var EndDateText = this.formData.EndDate.substr(0,4);
+          this.formData.EndDate = EndDateText=='0001'?'':this.formData.EndDate
 
         }).catch(err => {
           console.error(err)
@@ -958,9 +988,9 @@ export default {
             return false
           } else {
             if (!this.formData.Id) {
-              this.addEntity();
+              this.addEntity()
             } else {
-              this.updateEntity();
+              this.updateEntity()
             }
           }
 
@@ -1004,7 +1034,7 @@ export default {
     },
     addEntity () {
       this.addloading = true
-      this.formData.PlanFinishDate = new Date(this.msToDate(this.formData.PlanFinishDate))
+      this.formData.EndDate = new Date(this.msToDate(this.formData.EndDate))
       console.log('提交数据', this.formData)
       // this.formData.ContractClass = '02'
       // var data = {
@@ -1017,6 +1047,7 @@ export default {
           // 保存成功后,初始化数据,变成修改
           this.formData.Id = res.data.item
           this.initDatas()
+          this.yearList(this.formData.Id)
           this.$message({
             type: 'success',
             message: res.data.message
@@ -1034,16 +1065,17 @@ export default {
     },
 
     updateEntity() {
-      this.formData.PlanFinishDate = new Date(this.msToDate(this.formData.PlanFinishDate))
+      this.formData.EndDate = new Date(this.msToDate(this.formData.EndDate))
       console.log('编辑前的数据', this.formData)
       api.updateEntity(this.formData.Id, this.formData, this.$axios).then(res => {
         if (res.data.code === 0) {
           //保存成功后,初始化数据,变成修改
-          this.initDatas();
+          this.initDatas()
+          this.yearList(this.formData.Id)
           this.$message({
             type: 'success',
             message: res.data.message
-          });
+          })
 
         } else {
           this.$message({

+ 10 - 10
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/index.vue

@@ -392,11 +392,16 @@
            <el-table-column  prop="ContractMark"  min-width="110" label="合同标的" align="center" show-overflow-tooltip></el-table-column>
            <el-table-column  prop="Currency"  min-width="110" label="币种" align="center" show-overflow-tooltip></el-table-column>
            <el-table-column  prop="DisputeResolution"  min-width="110" label="纠纷解决方式" align="center" show-overflow-tooltip></el-table-column>
-           <el-table-column  prop="EndDate"  min-width="110" label="截止时间(履行期限)" align="center" show-overflow-tooltip>
-             <template slot-scope="scope">
-               {{ jstimehandle(scope.row.EndDate+'') }}
-             </template>
-           </el-table-column>
+          <el-table-column  prop="StartDate"  min-width="110" label="履行期限(始)" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              {{ jstimehandle(scope.row.StartDate+'') }}
+            </template>
+          </el-table-column>
+          <el-table-column  prop="EndDate"  min-width="110" label="履行期限(止)" align="center" show-overflow-tooltip>
+            <template slot-scope="scope">
+              {{ jstimehandle(scope.row.EndDate+'') }}
+            </template>
+          </el-table-column>
            <el-table-column  prop="IsDeal"  min-width="110" label="是否关联交易" align="center" show-overflow-tooltip>
              <template slot-scope="scope">
                <el-select placeholder="请选择" v-model="scope.row.IsDeal" style="width: 100%" size="mini">
@@ -432,11 +437,6 @@
            <el-table-column  prop="Remark"  min-width="110" label="备注" align="center" show-overflow-tooltip></el-table-column>
            <el-table-column  prop="SealName"  min-width="110" label="用章名称" align="center" show-overflow-tooltip></el-table-column>
            <el-table-column  prop="SingUnit"  min-width="110" label="签约单位" align="center" show-overflow-tooltip></el-table-column>
-           <el-table-column  prop="StartDate"  min-width="110" label="开始时间" align="center" show-overflow-tooltip>
-             <template slot-scope="scope">
-               {{ jstimehandle(scope.row.StartDate+'') }}
-             </template>
-           </el-table-column>
            <el-table-column  prop="SubmitDate"  min-width="110" label="提交日期" align="center" show-overflow-tooltip>
              <template slot-scope="scope">
                {{ jstimehandle(scope.row.SubmitDate+'') }}