Browse Source

后台 看板问题修改

chenc 4 năm trước cách đây
mục cha
commit
3f78831159

+ 41 - 0
src/main/java/org/jeecg/modules/appInterface/controller/FbsWorkingStatisticsController.java

@@ -40,6 +40,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.jeecg.modules.appInterface.service.IFbsWorkingStatisticsService;
 import org.jeecg.modules.fbsBasedate.entity.FbsPersonnel;
 import org.jeecg.modules.fbsBasedate.service.IFbsPersonnelService;
+import org.jeecg.modules.fbsInventory.service.IFbsInventoryService;
 import org.jeecg.modules.fbsPerson.entity.FbsPerson;
 import org.jeecg.modules.fbsPerson.service.IFbsPersonService;
 import org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList;
@@ -79,6 +80,8 @@ public class FbsWorkingStatisticsController {
 	 private IFbsPersonService fbsPersonService;
 	 @Autowired
 	 private IFbsPersonnelService iFbsPersonnelService;
+	 @Autowired
+	 private IFbsInventoryService iFbsInventoryService;
 	 @Value("${jeecg.path.upload}")
 	 private String upLoadPath;
 	 @Value("${jeecg.path.upvedioAAA}")
@@ -477,6 +480,21 @@ public class FbsWorkingStatisticsController {
 //			 res.setMsg("该订单目前正在进行中,无法报工"+entity.getOrderNumber());
 //			 return new ResponseEntity<ResHttpStatus>(res, HttpStatus.OK);
 //		 }
+		 ////////总报工数量是否超过标准数量
+		 BigDecimal qualifiedNumber=new BigDecimal("0.0");
+         if(StringUtils.isNotBlank(entity.getQualifiedNumber())){
+			 qualifiedNumber=getDecimal(Double.valueOf(entity.getQualifiedNumber()));//报工的完工数量
+		 }
+		 BigDecimal numberOfTasks= workshopDispatchList.getNumberOfTasks();//派工数量
+		 BigDecimal latestCompletedQuantity=new BigDecimal("0.0");
+		 if(StringUtils.isNotBlank(workshopDispatchList.getLatestCompletedQuantity())){
+			 latestCompletedQuantity=getDecimal(Double.valueOf(workshopDispatchList.getLatestCompletedQuantity()));//已完成数量
+		 }
+		 if(numberOfTasks.doubleValue()<(qualifiedNumber.add(latestCompletedQuantity).doubleValue())){
+			 res.setCode("1");
+			 res.setMsg("已经超过标准数量,请确认");
+			 return new ResponseEntity<ResHttpStatus>(res, HttpStatus.OK);
+		 }
 
 		 entity.setStartDate(workshopDispatchList.getPlannedStartTime());//计划时间
 		 entity.setEndDate(workshopDispatchList.getPlannedStartTime());//计划时间
@@ -507,6 +525,9 @@ public class FbsWorkingStatisticsController {
 //			 allHors=new BigDecimal("8.0");
 //		 }
 
+		//单个个标准工时没完善的回写标准工时
+		 updateStandardWorkingHoursZ(workshopDispatchList,allHors,allNum);
+
          if(entity.getState().equals("1")){
 			 //把数据传入u8数据库
 			 Object[] objectR=saveU8(entity,workshopDispatchList,allHors);
@@ -630,6 +651,24 @@ public class FbsWorkingStatisticsController {
 		 }
 	 }
 
+	 //回写单个标准工时到erp
+	 public void updateStandardWorkingHoursZ(FbsWorkshopDispatchList workshopDispatchList,BigDecimal allHors,BigDecimal allNum){
+		 String cInvDefine13=iFbsInventoryService.getByInvCode(workshopDispatchList.getProductId());
+		 if(StringUtils.isEmpty(cInvDefine13)||Double.valueOf(cInvDefine13)<=0.0){
+			 //算出单个标准工时
+			 BigDecimal standardWorkingHoursZ =allHors.divide(allNum,1,BigDecimal.ROUND_HALF_UP);
+			 //erp修改单个数量的标准工时
+			 iFbsInventoryService.updateCInvDefine13(standardWorkingHoursZ.doubleValue()+"",workshopDispatchList.getProductId());
+			 //派工单修改单个数量的标准工时
+			 FbsWorkshopDispatchList fbsWorkshopDispatchListUpdate=new FbsWorkshopDispatchList();
+			 fbsWorkshopDispatchListUpdate.setStandardWorkingHoursZ(standardWorkingHoursZ.doubleValue()+"");
+			 LambdaQueryWrapper<FbsWorkshopDispatchList> fbsWorkshopDispatchListLambdaQueryWrapper=new LambdaQueryWrapper<>();
+			 fbsWorkshopDispatchListLambdaQueryWrapper.eq(FbsWorkshopDispatchList::getDelFlag,"0");
+			 fbsWorkshopDispatchListLambdaQueryWrapper.eq(FbsWorkshopDispatchList::getProductionOrderNumberName,workshopDispatchList.getProductionOrderNumberName());
+			 fbsWorkshopDispatchListService.update(fbsWorkshopDispatchListUpdate,fbsWorkshopDispatchListLambdaQueryWrapper);
+		 }
+	 }
+
 	 /**
 	  * 通过人员编码查询人员信息
 	  * @param userId
@@ -796,6 +835,8 @@ public class FbsWorkingStatisticsController {
 		IPage<FbsWorkingStatistics> pageList = fbsWorkingStatisticsService.page(page, queryWrapper);
 		result.setSuccess(true);
 		result.setResult(pageList);
+
+
 		return result;
 	}
 	

+ 19 - 0
src/main/java/org/jeecg/modules/fbsInventory/mapper/FbsInventoryMapper.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.fbsInventory.mapper;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -34,4 +35,22 @@ public interface FbsInventoryMapper extends BaseMapper<FbsInventory> {
      * @return
      */
     List<Map<String,Object>> getAllStockList();
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据存货编码查询标准工时
+    * @Date 2021/1/8 10:33
+    * @Param [invCode]
+    * @return java.math.BigDecimal
+    */
+    String getByInvCode(@Param("invCode")String invCode);
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据存货编码修改当个标准工时
+    * @Date 2021/1/8 10:58
+    * @Param [standardWorkingHoursZ, invCode]
+    * @return int
+    */
+    int updateCInvDefine13(@Param("standardWorkingHoursZ") String standardWorkingHoursZ,@Param("invCode") String invCode);
 }

+ 12 - 0
src/main/java/org/jeecg/modules/fbsInventory/mapper/xml/FbsInventoryMapper.xml

@@ -39,4 +39,16 @@
           cInvName -->
 
     </select>
+
+    <select id="getByInvCode" resultType="java.lang.String">
+        select cInvDefine13 from Inventory where cInvCode=#{invCode}
+    </select>
+
+    <update id="updateCInvDefine13">
+        UPDATE Inventory
+            set cInvDefine13=#{standardWorkingHoursZ}
+        where
+            cInvCode=#{invCode}
+    </update>
+
 </mapper>

+ 19 - 0
src/main/java/org/jeecg/modules/fbsInventory/service/IFbsInventoryService.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.fbsInventory.service;
 import org.jeecg.modules.fbsInventory.entity.FbsInventory;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -43,4 +44,22 @@ public interface IFbsInventoryService extends IService<FbsInventory> {
     * @return java.util.List<org.jeecg.modules.fbsInventory.entity.FbsInventory>
     */
     List<FbsInventory> getListByIds(List<String> stringList);
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据存货编码查询标准工时
+    * @Date 2021/1/8 10:34
+    * @Param [invCode]
+    * @return java.math.BigDecimal
+    */
+    String getByInvCode(String invCode);
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据存货编码修改当个标准工时
+    * @Date 2021/1/8 11:08
+    * @Param [standardWorkingHoursZ, invCode]
+    * @return int
+    */
+    int updateCInvDefine13(String standardWorkingHoursZ,String invCode);
 }

+ 11 - 0
src/main/java/org/jeecg/modules/fbsInventory/service/impl/FbsInventoryServiceImpl.java

@@ -11,6 +11,7 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -57,4 +58,14 @@ public class FbsInventoryServiceImpl extends ServiceImpl<FbsInventoryMapper, Fbs
         fbsInventoryLambdaQueryWrapper.in(FbsInventory::getCinvcode,stringList);
         return fbsInventoryMapper.selectList(fbsInventoryLambdaQueryWrapper);
     }
+
+    @Override
+    public String getByInvCode(String invCode) {
+        return fbsInventoryMapper.getByInvCode(invCode);
+    }
+
+    @Override
+    public int updateCInvDefine13(String standardWorkingHoursZ, String invCode) {
+        return fbsInventoryMapper.updateCInvDefine13(standardWorkingHoursZ,invCode);
+    }
 }

+ 12 - 6
src/main/java/org/jeecg/modules/fbsMomOrder/mapper/xml/FbsMomOrderdetailMapper.xml

@@ -131,12 +131,18 @@
         mm.StartDate,
         getdate()) =0-->
         <!--substring(m.MoCode, 3, 4)=SUBSTRING ( CONVERT ( VARCHAR ( 100 ), GETDATE( ), 112 ), 3, 4 )-->
-        <if test="fbsMomOrderdetail.yearMonth!=null and fbsMomOrderdetail.yearMonth!=''">
-            substring(m.MoCode, 3, 4)=#{fbsMomOrderdetail.yearMonth}
-        </if>
-        <if test="fbsMomOrderdetail.yearMonth==null or fbsMomOrderdetail.yearMonth==''">
-            substring(m.MoCode, 3, 4)=SUBSTRING ( CONVERT ( VARCHAR ( 100 ), GETDATE( ), 112 ), 3, 4 )
-        </if>
+
+        (
+
+            <if test="fbsMomOrderdetail.yearMonth!=null and fbsMomOrderdetail.yearMonth!=''">
+                SUBSTRING ( CONVERT ( VARCHAR ( 100 ), mo.CloseTime, 112 ), 3, 4 )=#{fbsMomOrderdetail.yearMonth}
+                OR
+                substring(m.MoCode, 3, 4)=#{fbsMomOrderdetail.yearMonth}
+            </if>
+            <if test="fbsMomOrderdetail.yearMonth==null or fbsMomOrderdetail.yearMonth==''">
+                substring(m.MoCode, 3, 4)=SUBSTRING ( CONVERT ( VARCHAR ( 100 ), GETDATE( ), 112 ), 3, 4 )
+            </if>
+        )
         AND mo.Status = 4
         <if test="fbsMomOrderdetail.mocode!=null and fbsMomOrderdetail.mocode!=''">
             AND m.MoCode=#{fbsMomOrderdetail.mocode}

+ 2 - 2
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/controller/FbsWorkshopDispatchListController.java

@@ -507,8 +507,8 @@ public class FbsWorkshopDispatchListController {
 			 List<FbsMomOrderdetail> fbsMomOrderdetailList= iFbsMomOrderdetailService.getMonthListStatre(fbsMomOrderdetail);
 			 //已关闭当月数据
 			 //获取订单查询月份格式 202012 =》2012
-			 if(fbsWorkshopDispatchList.getYear()!=null){
-				 String year=fbsWorkshopDispatchList.getYear()+"";
+			 if(fbsWorkshopDispatchList.getYear()!=null&&!fbsWorkshopDispatchList.getYear().equals("")){
+				 String year=fbsWorkshopDispatchList.getYear();
 				 fbsMomOrderdetail.setYearMonth(year.substring(2)+fbsWorkshopDispatchList.getMonth());
 			 }
 			 List<FbsMomOrderdetail> fbsMomOrderdetailList2= iFbsMomOrderdetailService.getMonthListStatreReviewed(fbsMomOrderdetail);

+ 2 - 2
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/entity/FbsWorkshopDispatchList.java

@@ -235,10 +235,10 @@ public class FbsWorkshopDispatchList implements Serializable {
 	private List<String> stateList;
 	//年份
 	@TableField(exist = false)
-	private Integer year;
+	private String year;
 	//月份
 	@TableField(exist = false)
-	private Integer month;
+	private String month;
 
 	//未完成累计工时
 	@TableField(exist = false)

+ 129 - 12
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/job/FbsLatestCompletedQuantityUpdateJob.java

@@ -1,7 +1,10 @@
 package org.jeecg.modules.fbsWorkshopDispatchList.job;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.apache.commons.lang.StringUtils;
 import org.jeecg.modules.appInterface.entity.FbsWorkingStatistics;
+import org.jeecg.modules.appInterface.service.IFbsWorkingStatisticsService;
 import org.jeecg.modules.fbsMomOrder.entity.FbsMomOrderdetail;
 import org.jeecg.modules.fbsMomOrder.service.IFbsMomOrderdetailService;
 import org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList;
@@ -10,6 +13,7 @@ import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
@@ -23,12 +27,15 @@ import java.util.List;
  * @Author: chenchuang
  * @Date: 2021/1/7 10:36
  */
+@Transactional
 public class FbsLatestCompletedQuantityUpdateJob implements Job {
     @Autowired
     IFbsWorkshopDispatchListService iFbsWorkshopDispatchListService;
 
     @Autowired
     IFbsMomOrderdetailService iFbsMomOrderdetailService;
+    @Autowired
+    IFbsWorkingStatisticsService iFbsWorkingStatisticsService;
 
     @Override
     public void execute(JobExecutionContext context) throws JobExecutionException {
@@ -54,34 +61,144 @@ public class FbsLatestCompletedQuantityUpdateJob implements Job {
             //循环rep订单
             for(FbsMomOrderdetail fbsMomOrderdetail:fbsMomOrderdetailList){
                 String modeCode=fbsMomOrderdetail.getMocode();//rep中的订单号
+                //派工数量
+                BigDecimal numberOfTasks=new BigDecimal("0.0");
+                if(fbsWorkshopDispatchList.getNumberOfTasks()!=null){
+                    numberOfTasks=fbsWorkshopDispatchList.getNumberOfTasks();
+                }
                 //完工数量
                 BigDecimal latestCompletedQuantity=new BigDecimal("0.0");
-                latestCompletedQuantity=getDecimal(Double.valueOf(fbsWorkshopDispatchList.getLatestCompletedQuantity()));
+                if(StringUtils.isNotBlank(fbsWorkshopDispatchList.getLatestCompletedQuantity())){
+                    latestCompletedQuantity=getDecimal(fbsWorkshopDispatchList.getLatestCompletedQuantity());
+                }
                 //入库数量
                 BigDecimal qualifiedinqty=new BigDecimal("0.0");
-                qualifiedinqty=getDecimal(Double.valueOf(String.valueOf(fbsMomOrderdetail.getQualifiedinqty())));
-                if(code.equals(modeCode)&&latestCompletedQuantity.doubleValue()!=qualifiedinqty.doubleValue()){//找到对应的订单
+                if(StringUtils.isNotBlank(String.valueOf(fbsMomOrderdetail.getQualifiedinqty()))){
+                    qualifiedinqty=getDecimal(String.valueOf(fbsMomOrderdetail.getQualifiedinqty()));
+                }
+                //找到对应需要更新的订单
+                if(code.equals(modeCode)&&latestCompletedQuantity.doubleValue()!=qualifiedinqty.doubleValue()){
                     Date date = new Date();//获取当前的日期
                     String str = df.format(date);//获取String类型的时间
                     //获取本次更新信息
-                    String memo="订单号:"+code+",更新前的派工数量:"+fbsWorkshopDispatchList.getLatestCompletedQuantity()+",更新后的派工数量:"+fbsMomOrderdetail.getQualifiedinqty()+",更新时间:"+str;
-                    String lamemo=fbsWorkshopDispatchList.getLatestCompletedQuantityU8Memo();
-                    if(lamemo==null){
-                        lamemo="";
-                    }
-                    fbsWorkshopDispatchList.setLatestCompletedQuantityU8Memo(lamemo+";"+memo);
-                    fbsWorkshopDispatchList.setLatestCompletedQuantity(qualifiedinqty.doubleValue()+"");
+                    String memo="订单号:"+code+",更新前的完成数量:"+fbsWorkshopDispatchList.getLatestCompletedQuantity()+",更新后的完成数量:"+fbsMomOrderdetail.getQualifiedinqty();
 
-                    fbsWorkshopDispatchListListToUpdate.add(fbsWorkshopDispatchList);
+                    memo+=",跟新前的状态:"+fbsWorkshopDispatchList.getState();
+                    fbsWorkshopDispatchList.setLatestCompletedQuantity(qualifiedinqty.doubleValue()+"");
+                    if(numberOfTasks.doubleValue()==qualifiedinqty.doubleValue()){//如果完工了更新状态完工
+                        fbsWorkshopDispatchList.setState("3");
+                    }
+                    memo+=",更新后的状态:"+fbsWorkshopDispatchList.getState();
+                    //更新所花时间
+                    memo+=",更新前的完成时间:"+fbsWorkshopDispatchList.getManHoursCompleted();
+                    BigDecimal manHoursCompleted=new BigDecimal("0.0");
+                    if(StringUtils.isNotBlank(fbsWorkshopDispatchList.getManHoursCompleted())){
+                        manHoursCompleted=getDecimal(fbsWorkshopDispatchList.getManHoursCompleted());
+                    }
+                    BigDecimal differNumber=new BigDecimal("0.0");//获取更新相差数量
+                    BigDecimal differHour=new BigDecimal("0.0");//相差工时
+                    ///////////////////////////////////////////////////////////////erp数量比派工多
                     if(qualifiedinqty.doubleValue()>latestCompletedQuantity.doubleValue()){
+                        differNumber=qualifiedinqty.subtract(latestCompletedQuantity);//erp-派工
+                        if(StringUtils.isNotBlank(fbsWorkshopDispatchList.getStandardWorkingHoursZ())){
+                            //算出相差的时间
+                            differHour=differNumber.multiply(getDecimal(fbsWorkshopDispatchList.getStandardWorkingHoursZ()));
+                            //累计在完成工时上
+                            fbsWorkshopDispatchList.setManHoursCompleted(manHoursCompleted.add(differHour)+"");
+                        }
+                        //新增扫码记录
                         FbsWorkingStatistics fbsWorkingStatistics=new FbsWorkingStatistics();
                         fbsWorkingStatistics.setPkWorkshopDispatchList(fbsWorkshopDispatchList.getId());
                         fbsWorkingStatistics.setPersonnelCode("更新");
                         fbsWorkingStatistics.setPersonnelName("更新");
                         fbsWorkingStatistics.setMaterielCode(fbsWorkshopDispatchList.getProductId());
                         fbsWorkingStatistics.setPersonnelName(fbsWorkshopDispatchList.getProduct());
+                        fbsWorkingStatistics.setMaterielCode(fbsWorkshopDispatchList.getProductId());
+                        fbsWorkingStatistics.setMaterielName(fbsWorkshopDispatchList.getProduct());
+                        fbsWorkingStatistics.setStartDate(fbsWorkshopDispatchList.getPlannedStartTime());
+                        fbsWorkingStatistics.setEndDate(fbsWorkshopDispatchList.getPlannedEndTime());
+                        fbsWorkingStatistics.setFirstTime(new Date());
+                        fbsWorkingStatistics.setFinalTime(new Date());
+                        fbsWorkingStatistics.setFinalInfo("实时报工");
+                        fbsWorkingStatistics.setFinalState("3");
+                        fbsWorkingStatistics.setWorkingHours(differHour);
+                        fbsWorkingStatistics.setDelFlag("0");
+                        fbsWorkingStatistics.setOrderNumber(fbsWorkshopDispatchList.getProductionOrderNumberName());
+                        fbsWorkingStatistics.setQualifiedNumber(differNumber.doubleValue()+"");
+                        fbsWorkingStatistics.setState("1");
+                        iFbsWorkingStatisticsService.save(fbsWorkingStatistics);
+                    }
+                    ///////////////////////////////////////////////////////////////////派工数量比erp
+                    if(qualifiedinqty.doubleValue()<latestCompletedQuantity.doubleValue()){
+                        differNumber=latestCompletedQuantity.subtract(qualifiedinqty);//派工-erp
+                        if(StringUtils.isNotBlank(fbsWorkshopDispatchList.getStandardWorkingHoursZ())){
+                            //算出相差的时间
+                            differHour=differNumber.multiply(getDecimal(fbsWorkshopDispatchList.getStandardWorkingHoursZ()));
+                            //在完成工时上减掉
+                            fbsWorkshopDispatchList.setManHoursCompleted(manHoursCompleted.subtract(differHour)+"");
+                        }
+                        LambdaQueryWrapper<FbsWorkingStatistics> fbsWorkingStatisticsLambdaQueryWrapper=new LambdaQueryWrapper<>();
+                        fbsWorkingStatisticsLambdaQueryWrapper.eq(FbsWorkingStatistics::getDelFlag,"0");
+                        fbsWorkingStatisticsLambdaQueryWrapper.eq(FbsWorkingStatistics::getPkWorkshopDispatchList,fbsWorkshopDispatchList.getId());
+                        fbsWorkingStatisticsLambdaQueryWrapper.orderByAsc(FbsWorkingStatistics::getFinalTime);
+                        List<FbsWorkingStatistics> fbsWorkingStatisticsList=iFbsWorkingStatisticsService.list(fbsWorkingStatisticsLambdaQueryWrapper);
+                        if(fbsWorkingStatisticsList!=null){
+                            BigDecimal differHourS=new BigDecimal("0.0");//相差时间
+                            differHourS=differHourS.add(differHour);
+                            BigDecimal differNumberS=new BigDecimal("0.0");//相差数量
+                            differNumberS=differNumberS.add(differNumber);
+                            for(FbsWorkingStatistics fbsWorkingStatistics:fbsWorkingStatisticsList){
+                                String statisticMemo="更新前:时间:"+fbsWorkingStatistics.getWorkingHours()+"-数量:"+fbsWorkingStatistics.getQualifiedNumber();
+                                //创建扫码修改对象
+                                FbsWorkingStatistics fbsWorkingStatisticsUpdate=new FbsWorkingStatistics();
+                                fbsWorkingStatisticsUpdate.setId(fbsWorkingStatistics.getId());
+                                //扫码的工时
+                                BigDecimal workingHours=new BigDecimal("0.0");
+                                if(fbsWorkingStatistics.getWorkingHours()!=null){
+                                    workingHours=fbsWorkingStatistics.getWorkingHours();
+                                }
+                                //扫码的数量
+                                BigDecimal qualifiedNumber=new BigDecimal("0.0");
+                                if(StringUtils.isNotBlank(fbsWorkingStatistics.getQualifiedNumber())){
+                                    qualifiedNumber=getDecimal(fbsWorkingStatistics.getQualifiedNumber());
+                                }
+                                //如果还有相差时间没减掉则继续扫码记录减工时
+                                if(differHourS.doubleValue()>0.0){
+                                    //如果相差时间比当前扫码记录时间还大 则直接扫码记录工时变0
+                                    if(differHourS.doubleValue()>workingHours.doubleValue()){
+                                        fbsWorkingStatisticsUpdate.setWorkingHours(new BigDecimal("0.0"));
+                                        differHourS.subtract(workingHours);//相差时间减去扫码记录时间
+                                    }else {//相差时间比扫码时间小 则扫码时间去除相差时间 时间更新完毕
+                                        fbsWorkingStatisticsUpdate.setWorkingHours(workingHours.subtract(differHourS));
+                                        differHourS=new BigDecimal("0.0");//相差时间清零
+                                    }
+                                }
+                                //如果还有相差数量没减掉则继续扫码记录减工时
+                                if(differNumberS.doubleValue()>0.0){
+                                    //如果相差数量比当前扫码记录数量还大 则直接扫码记录数量变0
+                                    if(differNumberS.doubleValue()>qualifiedNumber.doubleValue()){
+                                        fbsWorkingStatisticsUpdate.setQualifiedNumber("0");
+                                        differNumberS.subtract(qualifiedNumber);//相差时间减去扫码记录时间
+                                    }else {//相差数量比扫码数量小 则扫码数量去除相差数量 数量更新完毕
+                                        fbsWorkingStatisticsUpdate.setQualifiedNumber((qualifiedNumber.subtract(differNumberS).doubleValue())+"");
+                                        differNumberS=new BigDecimal("0.0");//相差数量清零
+                                    }
+                                }
+                                statisticMemo+=";更新后:时间:"+fbsWorkingStatisticsUpdate.getWorkingHours()+"-数量:"+fbsWorkingStatisticsUpdate.getQualifiedNumber()+"时间"+str;
+                                fbsWorkingStatisticsUpdate.setRefuseInfo(statisticMemo);
+                                iFbsWorkingStatisticsService.updateById(fbsWorkingStatisticsUpdate);
+                            }
+                        }
 
                     }
+                    memo+=",更新后的完成时间:"+fbsWorkshopDispatchList.getManHoursCompleted()+",更新时间:"+str;
+                    //更新备注
+                    String lamemo=fbsWorkshopDispatchList.getLatestCompletedQuantityU8Memo();
+                    if(lamemo==null){
+                        lamemo="";
+                    }
+                    fbsWorkshopDispatchList.setLatestCompletedQuantityU8Memo(lamemo+";"+memo);
+                    fbsWorkshopDispatchListListToUpdate.add(fbsWorkshopDispatchList);
                 }
             }
         }
@@ -95,7 +212,7 @@ public class FbsLatestCompletedQuantityUpdateJob implements Job {
 
 
 
-    public BigDecimal getDecimal(Double d){
+    public BigDecimal getDecimal(String d){
         BigDecimal decimal= new BigDecimal(d);
         return decimal;
     }

+ 34 - 2
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/mapper/xml/FbsWorkshopDispatchListMapper.xml

@@ -473,10 +473,36 @@
 
     <select id="getLatelyDayWorkShopDispatch" resultType="org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList">
         SELECT
+            id,
+            name,
+            personnel_id_u8,
+            personnel_name_u8,
+            date,
+            production_order_number_id,
             production_order_number_name,
-            sum( latest_completed_quantity ) latest_completed_quantity,
+            product_id,
+            product,
+            number_of_tasks,
+            standard_working_hours,
+            planned_start_time,
+            planned_end_time,
+            del_flag,
+            create_by,
+            create_time,
+            update_by,
+            update_time,
+            sort,
+            production_line_name,
+            production_line_id,
+            state,
+            man_hours_completed,
+            row_number,
+            project_name,
+            planned_quantity,
+            standard_working_hours_z,
+            remaining_quantity,
             latest_completed_quantity_u8_memo,
-            id
+            sum( latest_completed_quantity ) latest_completed_quantity
         FROM
           fbs_workshop_dispatch_list
         WHERE
@@ -497,6 +523,12 @@
                 <if test="item.latestCompletedQuantityU8Memo != null and item.latestCompletedQuantityU8Memo!=''">
                     latest_completed_quantity_u8_memo = #{item.latestCompletedQuantityU8Memo},
                 </if>
+                <if test="item.state !=null and item.state!=''">
+                    state=#{item.state},
+                </if>
+                <if test="item.manHoursCompleted !=null and item.manHoursCompleted!=''">
+                    man_hours_completed=#{item.manHoursCompleted},
+                </if>
                 update_time = NOW()
             </set>
             WHERE production_order_number_name = #{item.productionOrderNumberName}

+ 2 - 2
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/service/impl/FbsWorkshopDispatchListServiceImpl.java

@@ -88,9 +88,9 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
         }else{
             Calendar cal = Calendar.getInstance();
             //设置年份
-            cal.set(Calendar.YEAR,fbsWorkshopDispatchListWhere.getYear());
+            cal.set(Calendar.YEAR,Integer.parseInt(fbsWorkshopDispatchListWhere.getYear()));
             //设置月份
-            cal.set(Calendar.MONTH, fbsWorkshopDispatchListWhere.getMonth()-1);
+            cal.set(Calendar.MONTH, Integer.parseInt(fbsWorkshopDispatchListWhere.getMonth())-1);
             //获取某月最小天数
             int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
             //设置日历中月份的最小天数