Browse Source

首页 派工单

chenc 4 years ago
parent
commit
76ed2e64f7

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

@@ -759,11 +759,21 @@ public class FbsWorkingStatisticsController {
 		if(StringUtils.isNotBlank(end)){
 			fbsWorkingStatistics.setEnd(null);
 		}
+		//订单号
+		String orderNumber=fbsWorkingStatistics.getOrderNumber();
+		if(StringUtils.isNotBlank(orderNumber)){
+			fbsWorkingStatistics.setOrderNumber(null);
+		}
 		QueryWrapper<FbsWorkingStatistics> queryWrapper = QueryGenerator.initQueryWrapper(fbsWorkingStatistics, req.getParameterMap());
 		queryWrapper.lambda().eq(FbsWorkingStatistics::getDelFlag,"0");
 		if(StringUtils.isNotBlank(start)&&StringUtils.isNotBlank(end)&&!start.equals("null")&&!end.equals("null")){
 			queryWrapper.ge("DATE_FORMAT(first_time,'%Y-%m-%d')",start);
 			queryWrapper.le("DATE_FORMAT(first_time,'%Y-%m-%d')",end);
+		}else {
+			queryWrapper.apply("DATE_FORMAT( first_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )");
+		}
+		if(StringUtils.isNotBlank(orderNumber)){
+			queryWrapper.lambda().like(FbsWorkingStatistics::getOrderNumber,orderNumber);
 		}
 		queryWrapper.lambda().orderByDesc(FbsWorkingStatistics::getFirstTime);
 		Page<FbsWorkingStatistics> page = new Page<FbsWorkingStatistics>(pageNo, pageSize);

+ 2 - 0
src/main/java/org/jeecg/modules/appInterface/mapper/xml/FbsWorkingStatisticsMapper.xml

@@ -123,4 +123,6 @@
         GROUP BY
             fwdl.project_name
     </select>
+
+
 </mapper>

+ 2 - 0
src/main/java/org/jeecg/modules/fbsAbnormalWorkingHours/controller/FbsAbnormalWorkingHoursController.java

@@ -97,6 +97,8 @@ public class FbsAbnormalWorkingHoursController {
 		if(StringUtils.isNotBlank(start)&&StringUtils.isNotBlank(end)&&!start.equals("null")&&!end.equals("null")){
 			queryWrapper.ge("DATE_FORMAT(date,'%Y-%m-%d')",start);
 			queryWrapper.le("DATE_FORMAT(date,'%Y-%m-%d')",end);
+		}else{
+			queryWrapper.apply("DATE_FORMAT( date, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )");
 		}
 		Page<FbsAbnormalWorkingHours> page = new Page<FbsAbnormalWorkingHours>(pageNo, pageSize);
 		IPage<FbsAbnormalWorkingHours> pageList = fbsAbnormalWorkingHoursService.page(page, queryWrapper);

+ 4 - 0
src/main/java/org/jeecg/modules/fbsMomOrder/entity/FbsMomOrderdetail.java

@@ -449,4 +449,8 @@ public class FbsMomOrderdetail implements Serializable {
 	//已投入工时
 	@TableField(exist = false)
 	private String manHoursInvested;
+
+	//年月标识 查询当月订单用
+	@TableField(exist = false)
+	private String yearMonth;
 }

+ 8 - 2
src/main/java/org/jeecg/modules/fbsMomOrder/mapper/xml/FbsMomOrderdetailMapper.xml

@@ -99,7 +99,7 @@
         MONTH,
         mm.StartDate,
         getdate()) =0-->
-        mo.Status <![CDATA[ <>]]> 4
+        mo.Status = 3
         <if test="fbsMomOrderdetail.mocode!=null and fbsMomOrderdetail.mocode!=''">
             AND m.MoCode=#{fbsMomOrderdetail.mocode}
         </if>
@@ -129,7 +129,13 @@
         MONTH,
         mm.StartDate,
         getdate()) =0-->
-        substring(m.MoCode, 3, 4)=SUBSTRING ( CONVERT ( VARCHAR ( 100 ), GETDATE( ), 112 ), 3, 4 )
+        <!--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>
         AND mo.Status = 4
         <if test="fbsMomOrderdetail.mocode!=null and fbsMomOrderdetail.mocode!=''">
             AND m.MoCode=#{fbsMomOrderdetail.mocode}

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

@@ -97,33 +97,84 @@ public class FbsWorkshopDispatchListController {
 			fbsWorkshopDispatchList.setState(null);
 		}
 		String personnelIdU8=fbsWorkshopDispatchList.getPersonnelIdU8();
-		if(StringUtils.isNotBlank(personnelIdU8)&&personnelIdU8.equals("null")){
+		if(StringUtils.isNotBlank(personnelIdU8)){
 			fbsWorkshopDispatchList.setPersonnelIdU8(null);
 		}
+		//多选状态
+		List<String> stateString=fbsWorkshopDispatchList.getStateList();
+		if(stateString!=null){
+			fbsWorkshopDispatchList.setStateList(null);
+		}
+		//生产订单
+		String productionOrderNumberName=fbsWorkshopDispatchList.getProductionOrderNumberName();
+		if(StringUtils.isNotBlank(productionOrderNumberName)){
+			fbsWorkshopDispatchList.setProductionOrderNumberName(null);
+		}
+		//物料名称
+		String product=fbsWorkshopDispatchList.getProduct();
+		if(StringUtils.isNotBlank(product)){
+			fbsWorkshopDispatchList.setProduct(null);
+		}
 		QueryWrapper<FbsWorkshopDispatchList> queryWrapper = QueryGenerator.initQueryWrapper(fbsWorkshopDispatchList, req.getParameterMap());
 		queryWrapper.lambda().eq(FbsWorkshopDispatchList::getDelFlag,"0");
 		if(StringUtils.isNotBlank(start)&&StringUtils.isNotBlank(end)&&!start.equals("null")&&!end.equals("null")){
 			queryWrapper.ge("DATE_FORMAT(date,'%Y-%m-%d')",start);
 			queryWrapper.le("DATE_FORMAT(date,'%Y-%m-%d')",end);
+		}else{//默认只查询当月的数据
+			queryWrapper.apply("DATE_FORMAT( date, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )");
+		}
+		if(StringUtils.isNotBlank(personnelIdU8)&&!personnelIdU8.equals("null")){
+			queryWrapper.lambda().like(FbsWorkshopDispatchList::getPersonnelIdU8,personnelIdU8);
 		}
-		if(StringUtils.isNotBlank(state)&&!state.equals("null")){
-			if(state.equals("4")){
-				queryWrapper.lambda().eq(FbsWorkshopDispatchList::getState,"3");
-				queryWrapper.apply("latest_completed_quantity <> number_of_tasks");
-			}else if(state.equals("3")){
-				queryWrapper.lambda().eq(FbsWorkshopDispatchList::getState,"3");
-				queryWrapper.apply("latest_completed_quantity = number_of_tasks");
-			}else{
-				queryWrapper.lambda().eq(FbsWorkshopDispatchList::getState,state);
+		if(StringUtils.isNotBlank(productionOrderNumberName)){
+			queryWrapper.lambda().like(FbsWorkshopDispatchList::getProductionOrderNumberName,productionOrderNumberName);
+		}
+		if(StringUtils.isNotBlank(product)){
+			queryWrapper.lambda().like(FbsWorkshopDispatchList::getProduct,product);
+		}
+
+		if(stateString!=null){
+			queryWrapper.apply("(1=1 ");
+			int i=0;
+			for(String sta:stateString){
+				if(i>0){
+					queryWrapper.or();
+				}
+				if(sta.equals("0")||sta.equals("1")||sta.equals("2")){
+					queryWrapper.lambda().eq(FbsWorkshopDispatchList::getState,sta);
+				}
+				if(sta.equals("4")){
+					queryWrapper.eq("(state","3");
+					queryWrapper.apply("latest_completed_quantity <> number_of_tasks)");
+				}
+				if(sta.equals("3")){
+					queryWrapper.eq("(state","3");
+					queryWrapper.apply("latest_completed_quantity = number_of_tasks)");
+				}
+				i++;
 			}
+				queryWrapper.apply("1=1 )");
 		}
 		queryWrapper.lambda().orderByDesc(FbsWorkshopDispatchList::getCreateTime);
 		Page<FbsWorkshopDispatchList> page = new Page<FbsWorkshopDispatchList>(pageNo, pageSize);
 		IPage<FbsWorkshopDispatchList> pageList = fbsWorkshopDispatchListService.page(page, queryWrapper);
 		result.setSuccess(true);
+		getFirstFinalTime(pageList.getRecords());
 		result.setResult(pageList);
 		return result;
 	}
+
+	//获取扫码记录最开始上岗的时间和最晚下岗的时间
+	public void getFirstFinalTime(List<FbsWorkshopDispatchList> fbsWorkshopDispatchListList){
+		for(FbsWorkshopDispatchList fbsWorkshopDispatchList:fbsWorkshopDispatchListList){
+			FbsWorkshopDispatchList fbsWorkshopDispatchListTime=fbsWorkshopDispatchListService.getFirstFinalTime(fbsWorkshopDispatchList.getId());
+			if(fbsWorkshopDispatchListTime!=null){
+				fbsWorkshopDispatchList.setFirstTime(fbsWorkshopDispatchListTime.getFirstTime());
+				fbsWorkshopDispatchList.setFinalTime(fbsWorkshopDispatchListTime.getFinalTime());
+			}
+
+		}
+	 }
 	
 	/**
 	  *   添加
@@ -452,13 +503,18 @@ public class FbsWorkshopDispatchListController {
 				 fbsWorkshopDispatchList.setProductionOrderNumberName(null);
 			 }
 			 fbsMomOrderdetail.setMocode(fbsWorkshopDispatchList.getProductionOrderNumberName());
-			 //审核数据
+			 //审核数据
 			 List<FbsMomOrderdetail> fbsMomOrderdetailList= iFbsMomOrderdetailService.getMonthListStatre(fbsMomOrderdetail);
-			 //已审核当月数据
+			 //已关闭当月数据
+			 //获取订单查询月份格式 202012 =》2012
+			 if(fbsWorkshopDispatchList.getYear()!=null){
+				 String year=fbsWorkshopDispatchList.getYear()+"";
+				 fbsMomOrderdetail.setYearMonth(year.substring(2)+fbsWorkshopDispatchList.getMonth());
+			 }
 			 List<FbsMomOrderdetail> fbsMomOrderdetailList2= iFbsMomOrderdetailService.getMonthListStatreReviewed(fbsMomOrderdetail);
 			 fbsMomOrderdetailList.addAll(fbsMomOrderdetailList2);
 
-			 List<FbsWorkshopDispatchList> fbsWorkshopDispatchListList=fbsWorkshopDispatchListService.getSumDispatch(fbsMomOrderdetailList);
+			 List<FbsWorkshopDispatchList> fbsWorkshopDispatchListList=fbsWorkshopDispatchListService.getSumDispatch(fbsMomOrderdetailList,fbsWorkshopDispatchList);
 			 result.setResult(fbsWorkshopDispatchListList);
 			 result.success("操作成功");
 		 } catch (Exception e) {

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

@@ -190,9 +190,9 @@ public class FbsWorkshopDispatchList implements Serializable {
 
 	//实际完工时间
 	@TableField(exist = false)
-	@Excel(name = "日期", width = 20, format = "yyyy-MM-dd")
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-	@DateTimeFormat(pattern="yyyy-MM-dd")
+	@Excel(name = "日期", width = 20, format = "yyyy-MM-dd HH:mm")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
 	private Date finalTime;
 
 	//单日完成工时
@@ -211,8 +211,8 @@ public class FbsWorkshopDispatchList implements Serializable {
     private String achievementRate;
 
 	/**真实开工时间*/
-	@JsonFormat(timezone = "GMT+8",pattern = "MM-dd HH:mms")
-	@DateTimeFormat(pattern="MM-dd HH:mm")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
 	@TableField(exist = false)
 	private Date firstTime;
 
@@ -227,4 +227,15 @@ public class FbsWorkshopDispatchList implements Serializable {
 	@TableField(exist = false)
 	private String end;
 
+	//多选状态
+	@TableField(exist = false)
+	private List<String> stateList;
+	//年份
+	@TableField(exist = false)
+	private Integer year;
+	//月份
+	@TableField(exist = false)
+	private Integer month;
+
+
 }

+ 9 - 0
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/mapper/FbsWorkshopDispatchListMapper.java

@@ -158,4 +158,13 @@ public interface FbsWorkshopDispatchListMapper extends BaseMapper<FbsWorkshopDis
     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     */
     List<Map<String,Object>> getEsopList();
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据派工单id查询对应扫码记录里面最早上岗时间以及下岗最晚时间
+    * @Date 2020/12/30 13:59
+    * @Param [pkWorkshopDispatchList]
+    * @return org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList
+    */
+    FbsWorkshopDispatchList getFirstFinalTime(@Param("pkWorkshopDispatchList")String pkWorkshopDispatchList);
 }

+ 10 - 1
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/mapper/xml/FbsWorkshopDispatchListMapper.xml

@@ -449,5 +449,14 @@
             del_flag = '0'
             AND number_of_tasks > latest_completed_quantity
     </select>
-    
+
+    <select id="getFirstFinalTime" resultType="org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList">
+        SELECT
+            min( first_time ) first_time,
+            max( final_time ) final_time
+        FROM
+            fbs_working_statistics
+        WHERE
+            pk_workshop_dispatch_list = #{pkWorkshopDispatchList}
+    </select>
 </mapper>

+ 10 - 1
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/service/IFbsWorkshopDispatchListService.java

@@ -27,7 +27,7 @@ public interface IFbsWorkshopDispatchListService extends IService<FbsWorkshopDis
     * @Param []
     * @return java.util.List<org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList>
     */
-    List<FbsWorkshopDispatchList> getSumDispatch(List<FbsMomOrderdetail> fbsMomOrderdetailList);
+    List<FbsWorkshopDispatchList> getSumDispatch(List<FbsMomOrderdetail> fbsMomOrderdetailList,FbsWorkshopDispatchList fbsWorkshopDispatchList);
 
     public List<FbsWorkshopDispatchList> export(List<FbsMomOrderdetail> fbsMomOrderdetailList,String month);
 
@@ -149,4 +149,13 @@ public interface IFbsWorkshopDispatchListService extends IService<FbsWorkshopDis
     List<FbsWorkshopDispatchList> getListWhereStartEnd();
 
     List<Map<String,Object>> getEsopList();
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据派工单id查询对应扫码记录里面最早上岗时间以及下岗最晚时间
+    * @Date 2020/12/30 14:00
+    * @Param [pkWorkshopDispatchList]
+    * @return org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList
+    */
+    FbsWorkshopDispatchList getFirstFinalTime(String pkWorkshopDispatchList);
 }

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

@@ -55,7 +55,7 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
         return fbsWorkshopDispatchListMapper.selNowDispatchList();
     }
     @Override
-    public List<FbsWorkshopDispatchList> getSumDispatch(List<FbsMomOrderdetail> fbsMomOrderdetailList) {
+    public List<FbsWorkshopDispatchList> getSumDispatch(List<FbsMomOrderdetail> fbsMomOrderdetailList,FbsWorkshopDispatchList fbsWorkshopDispatchListWhere) {
 
         SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
         //求和的派工单集合
@@ -67,22 +67,40 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
 //        lambdaQueryWrapper.eq(FbsWorkshopDispatchList::getDelFlag,"0");
 //        List<FbsWorkshopDispatchList> fbsWorkshopDispatchListList=iFbsWorkshopDispatchListService.list(lambdaQueryWrapper);
         // 获取当月第一天和最后一天
+
         Calendar cale = Calendar.getInstance();
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
         String firstday, lastday;
-        // 获取前月的第一天
-        cale = Calendar.getInstance();
-        cale.add(Calendar.MONTH, 0);
-        cale.set(Calendar.DAY_OF_MONTH, 1);
-        firstday = format.format(cale.getTime());
-        // 获取前月的最后一天
-        cale = Calendar.getInstance();
-        cale.add(Calendar.MONTH, 1);
-        cale.set(Calendar.DAY_OF_MONTH, 0);
-        lastday = format.format(cale.getTime());
-        //获取开始时间结束时间 当前日期前15天时间
-//        String startTime = fmt.format(new Date().getTime()-14*24*60*60*1000);
-//        String endTime = fmt.format(new Date());
+        if(fbsWorkshopDispatchListWhere.getYear()==null){
+            // 获取前月的第一天
+            cale = Calendar.getInstance();
+            cale.add(Calendar.MONTH, 0);
+            cale.set(Calendar.DAY_OF_MONTH, 1);
+            firstday = format.format(cale.getTime());
+            // 获取前月的最后一天
+            cale = Calendar.getInstance();
+            cale.add(Calendar.MONTH, 1);
+            cale.set(Calendar.DAY_OF_MONTH, 0);
+            lastday = format.format(cale.getTime());
+                //获取开始时间结束时间 当前日期前15天时间
+    //        String startTime = fmt.format(new Date().getTime()-14*24*60*60*1000);
+    //        String endTime = fmt.format(new Date());
+        }else{
+            Calendar cal = Calendar.getInstance();
+            //设置年份
+            cal.set(Calendar.YEAR,fbsWorkshopDispatchListWhere.getYear());
+            //设置月份
+            cal.set(Calendar.MONTH, fbsWorkshopDispatchListWhere.getMonth()-1);
+            //获取某月最小天数
+            int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+            //设置日历中月份的最小天数
+            cal.set(Calendar.DAY_OF_MONTH, firstDay);
+            firstday=format.format(cal.getTime());
+            //设置日历中月份的最大天数
+            int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+            cal.set(Calendar.DAY_OF_MONTH, lastDay);
+            lastday=format.format(cal.getTime());
+        }
         String startTime = firstday;
         String endTime = lastday;
         List<FbsWorkshopDispatchList> fbsWorkshopDispatchListList=fbsWorkshopDispatchListMapper.getDispatchClose(startTime,endTime);
@@ -376,7 +394,7 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
             }
             fbsWorkshopDispatchList.setAchievementRate(formatDouble5((achievement*100.0)));
             Double production=0.0;
-            if(standardWorkingHours.doubleValue()>0){
+            if(standardWorkingHours.doubleValue()>0&&manHoursCompleted.doubleValue()>0){
                 production=standardWorkingHours.divide(manHoursCompleted,2, RoundingMode.HALF_UP).multiply(getDecimal(100.0)).doubleValue();
             }
             fbsWorkshopDispatchList.setProductionEfficiency(production+"");
@@ -547,5 +565,10 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
         return fbsWorkshopDispatchListMapper.getEsopList();
     }
 
+    @Override
+    public FbsWorkshopDispatchList getFirstFinalTime(String pkWorkshopDispatchList) {
+        return fbsWorkshopDispatchListMapper.getFirstFinalTime(pkWorkshopDispatchList);
+    }
+
 
 }