浏览代码

填报件数

seyason 1 年之前
父节点
当前提交
881fab92e8

+ 0 - 6
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/PlanProcedureTotal.java

@@ -53,11 +53,6 @@ public class PlanProcedureTotal extends Model<PlanProcedureTotal> {
     @TableField("total_working_hours")
     private Double totalWorkingHours;
 
-    /**
-     * 总件数
-     */
-    @TableField("total_num")
-    private Integer totalNum;
 
     @TableField(exist = false)
     private ProdProcedure prodProcedure;
@@ -82,7 +77,6 @@ public class PlanProcedureTotal extends Model<PlanProcedureTotal> {
 
     @TableField(exist = false)
     private boolean cancellationReceive;
-
     @Override
     protected Serializable pkVal() {
         return this.id;

+ 0 - 7
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProdProcedureTeam.java

@@ -102,13 +102,6 @@ public class ProdProcedureTeam extends Model<ProdProcedureTeam> {
     @TableField("steel_num_array")
     private String steelNumArray;
 
-    /**
-     * 完成件数;支持小数
-     */
-    @TableField("finish_num")
-    private Double finishNum;
-
-
     @Override
     protected Serializable pkVal() {
         return this.id;

+ 3 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/Report.java

@@ -140,6 +140,9 @@ public class Report extends Model<Report> {
     @TableField("finish_num")
     private Double finishNum;
 
+    //是否完工
+    @TableField(exist = false)
+    private Boolean isFinish;
 
     @Override
     protected Serializable pkVal() {

+ 25 - 34
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -129,6 +129,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         report.setCompanyId(companyId);
 
         Plan plan = planMapper.selectById(report.getPlanId());
+        if (plan.getNum() == 0) {
+            httpRespMsg.setError("该计划件数为0,无法报工");
+            return httpRespMsg;
+        }
         if (plan.getPlanType() == 0) {
             //普通计划检查产品是否存在
             Product product = productMapper.selectById(plan.getProductId());
@@ -142,47 +146,34 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         Report todayReport = reportMapper.selectOne(new QueryWrapper<Report>().eq("creator_id", token).eq("user_procedure_team_id", report.getUserProcedureTeamId()).eq("create_date", today));
         //计算工作时长
         ProdProcedureTeam prodProcedureTeam = prodProcedureTeamMapper.selectById(report.getUserProcedureTeamId());
+        //总计划任务的工序中有总工时和总工价
+        PlanProcedureTotal planProcedureTotal = planProcedureTotalMapper.selectOne(new QueryWrapper<PlanProcedureTotal>().eq("plan_id", report.getPlanId()).eq("prod_procedure_id", report.getProdProcedureId()));
         double curReportTime = 0.0;
-        //查找上一次该工序的报工
-        Integer lastProgress = 0;
-        Report beforeTodayReport = reportMapper.selectOne(new QueryWrapper<Report>().eq("creator_id", token).eq("user_procedure_team_id", report.getUserProcedureTeamId()).lt("create_date", today).orderByDesc("create_date").last("limit 1"));
-        //查找今天之前是否有报工,有的话取上次报工进度,没有的话取分配下来时的报工进度
-        if (beforeTodayReport != null) {
-            if (report.getProgress() <= beforeTodayReport.getProgress()) {
-                httpRespMsg.setError("进度必须大于上次报工进度("+beforeTodayReport.getProgress()+"%)");
-                return httpRespMsg;
-            }
-            //去上次报工的进度
-            lastProgress = beforeTodayReport.getProgress();
-        } else {
-            //今天之前没有报过工
-            if (todayReport == null) {
-                lastProgress = prodProcedureTeam.getProgress();
-                if (report.getProgress() <= lastProgress) {
-                    httpRespMsg.setError("进度必须大于上次报工进度("+lastProgress+"%)");
-                    return httpRespMsg;
-                }
-            } else {
-                //今天报过工了,prodProcedureTeam中的是报过的工时,应该从0开始算才对
-                lastProgress = 0;
-            }
-            if (report.getProgress() <= lastProgress) {
-                httpRespMsg.setError("进度必须大于上次报工进度("+lastProgress+"%)");
-                return httpRespMsg;
-            }
+
+        //核算本次填报的件数是否合法
+        List<Report> allFileProcReportList = reportMapper.selectList(new QueryWrapper<Report>().eq("plan_id", report.getPlanId()).eq("prod_procedure_id", report.getProdProcedureId()));
+        double allFileProcNum = allFileProcReportList.stream().filter(item->!(item.getCreatorId().equals(token) && item.getCreateDate().isEqual(today))).mapToDouble(Report::getFinishNum).sum();
+        if (allFileProcNum + report.getFinishNum() > plan.getNum()) {
+            httpRespMsg.setError("填报的件数超过了剩余可填报件数:"+(plan.getNum() - allFileProcNum)+", 请联系班组长协调解决");
+            return httpRespMsg;
         }
-        int addProgress = report.getProgress() - lastProgress;
-        curReportTime = (prodProcedureTeam.getWorkTime() * (addProgress)/100);
+//        double addNum = report.getFinishNum() - lastFinishNum;
+        Integer num = plan.getNum();//总件数
+        double addPercent = report.getFinishNum() / num;
+//        curReportTime = (prodProcedureTeam.getWorkTime() * (addProgress)/100);
         //按比例获取本次进度的工钱
-        BigDecimal earnMoney = prodProcedureTeam.getJobOfMoney().multiply(new BigDecimal(addProgress)).divide(new BigDecimal(100));
+//        BigDecimal earnMoney = prodProcedureTeam.getJobOfMoney().multiply(new BigDecimal(addProgress)).divide(new BigDecimal(100));
+        //新版计算报工的工时和价钱;根据填报件数的占比计算工时和价钱
+        double earnMoney = planProcedureTotal.getTotalWages() * addPercent;
+        curReportTime = planProcedureTotal.getTotalWorkingHours() * addPercent;
         report.setWorkingTime(curReportTime);//本次报工的工时数
-        report.setCost(earnMoney);//本次报工的成本
+        report.setCost(new BigDecimal(earnMoney));//本次报工的成本
         report.setDeptId(plan.getStationId());
         if (plan.getPlanType() == 0) {
             report.setProductId(plan.getProductId());
         }
 
-        if (report.getProgress() == 100) {
+        if (report.getIsFinish() != null && report.getIsFinish().booleanValue()) {
             //设置质检人
             if (report.getCheckType() == 0) {
                 report.setCheckerId(user.getId());
@@ -190,10 +181,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             prodProcedureTeam.setCheckerId(report.getCheckerId());
         }
         prodProcedureTeam.setUpdateTime(LocalDateTime.now());
-        prodProcedureTeam.setProgress(report.getProgress());
+//        prodProcedureTeam.setProgress(report.getProgress());
         //更新填写的钢印号
         prodProcedureTeam.setSteelNumArray(report.getSteelNumArray());
-        if (report.getProgress() == 100) {
+        if (report.getIsFinish() != null && report.getIsFinish().booleanValue()) {
             //完工了
             prodProcedureTeam.setStatus(2);//顺利完工
         } else if (report.getIsTerminated() != null && report.getIsTerminated().booleanValue()) {

+ 1 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/util/CodeGenerator.java

@@ -92,7 +92,7 @@ public class CodeGenerator {
 
         // 数据源配置
         DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://47.101.180.183:17089/man_workshop?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8");
+        dsc.setUrl("jdbc:mysql://47.101.180.183:17089/man_workshop_lew?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8");
 //        dsc.setSchemaName("public");
         dsc.setDriverName("com.mysql.cj.jdbc.Driver");
         dsc.setUsername("root");

+ 1 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/PlanProcedureTotalMapper.xml

@@ -9,12 +9,11 @@
         <result column="prod_procedure_id" property="prodProcedureId" />
         <result column="total_wages" property="totalWages" />
         <result column="total_working_hours" property="totalWorkingHours" />
-        <result column="total_num" property="totalNum" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, plan_id, prod_procedure_id, total_wages, total_working_hours, total_num
+        id, plan_id, prod_procedure_id, total_wages, total_working_hours
     </sql>
 
 </mapper>

+ 1 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ProdProcedureTeamMapper.xml

@@ -17,12 +17,11 @@
         <result column="status" property="status" />
         <result column="is_change" property="isChange" />
         <result column="steel_num_array" property="steelNumArray" />
-        <result column="finish_num" property="finishNum" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, company_id, user_id, work_time, job_of_money, progress, checker_id, checker_name, update_time, plan_procedure_id, status, is_change, steel_num_array, finish_num
+        id, company_id, user_id, work_time, job_of_money, progress, checker_id, checker_name, update_time, plan_procedure_id, status, is_change, steel_num_array
     </sql>
 
     <select id="getReportForWorkList" resultType="java.util.HashMap" >

+ 19 - 10
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/workView/fillReport.vue

@@ -23,26 +23,33 @@
               <div v-else>无</div>
             </template>
           </van-cell>
-          <van-cell title="进度(%)">
+          <van-cell title="今日完成件数">
             <template>
-              <van-stepper v-model="reportForm.progress" step="10" :min="0" :max="100" />
+              <van-stepper v-model="reportForm.finishNum" step="0.1" :min="0" :max="1000" />
             </template>
           </van-cell>
-          <van-cell title="中止工作" v-if="reportForm.progress < 100">
+          <van-cell title="完成全部工作" >
+            <template>
+              <div style="float:right;">
+                <van-checkbox v-model="reportForm.isFinish" />
+              </div>
+            </template>
+          </van-cell>
+          <van-cell title="中止工作" v-if="!reportForm.isFinish">
             <template>
               <div style="float:right;">
                 <van-checkbox v-model="reportForm.isTerminated" />
               </div>
             </template>
           </van-cell>
-          <van-cell title="质检类型" :value="checkTypeTxt[reportForm.check_type]" v-if="reportForm.progress == 100" />
-          <van-cell title="质检人" :value="reportForm.checker_name" is-link v-if="reportForm.progress == 100"
+          <van-cell title="质检类型" :value="checkTypeTxt[reportForm.check_type]" v-if="reportForm.isFinish" />
+          <van-cell title="质检人" :value="reportForm.checker_name" is-link v-if="reportForm.isFinish"
             @click="showCheckerOptionList">
           </van-cell>
         </van-cell-group>
         <div style="margin: 16px;">
           <van-button round block type="primary" native-type="submit" :loading="saving"
-            :disabled="reportForm.progress == 0">
+            :disabled="reportForm.finishNum == 0">
             提交
           </van-button>
         </div>
@@ -111,8 +118,8 @@ export default {
         }).catch(err => { this.$toast.clear(); });
     },
     onSubmit() {
-      if (this.reportForm.progress == 0) {
-        this.$toast.fail('进度不可为0')
+      if (this.reportForm.finishNum == 0) {
+        this.$toast.fail('件数不可为0')
         return;
       }
       let postData = {
@@ -122,9 +129,11 @@ export default {
         planId: this.reportForm.plan_id,
         checkType: this.reportForm.check_type,
         isTerminated: this.reportForm.isTerminated,
-        steelNumArray: JSON.stringify(this.reportForm.checkedSteelNum)
+        steelNumArray: JSON.stringify(this.reportForm.checkedSteelNum),
+        finishNum: this.reportForm.finishNum,
+        isFinish: this.reportForm.isFinish
       };
-      if (this.reportForm.progress == 100) {
+      if (this.reportForm.isFinish) {
         if (this.reportForm.check_type != 0) {
           if (this.reportForm.checker_id == null) {
             this.$toast.fail('请选择检验人')

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/workReport/daily.vue

@@ -164,7 +164,7 @@
                                                     <p v-if="item2.planType == 0">工序名称:<b>{{item2.procedureName}}</b></p>
                                                     <p v-if="item2.planType == 1">任务名称:<b>{{item2.taskName}}</b></p>
                                                     <p v-if="item2.planType == 1">任务类型:<b>{{item2.taskTypeName}}</b></p>                                                    
-                                                    <p>进度:<el-progress :percentage="item2.progress"  style="margin-left:30px;width:200px;display:inline-block;"></el-progress></p>
+                                                    <p>今日报工件数:<b>{{ item2.finishNum }}</b></p>
                                                     <p>质检类型:<b>{{checkTypeTxt[item2.checkType]}}</b></p>
                                                     <p>质检人:<b>{{item2.checkerName}}</b></p>
                                                 </el-card>