Browse Source

首页与效率报表

chenc 3 years ago
parent
commit
93dc465804

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

@@ -1129,6 +1129,107 @@ public class FbsWorkingStatisticsController {
 
 		return result;
 	}
+
+
+	 @GetMapping(value = "/getEfficiencyReport")
+	 public Result<IPage<FbsWorkingStatistics>> getEfficiencyReport(FbsWorkingStatistics fbsWorkingStatistics,
+															  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+															  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+															  HttpServletRequest req) {
+		 Result<IPage<FbsWorkingStatistics>> result = new Result<IPage<FbsWorkingStatistics>>();
+		 //人员编码
+		 String personnelCode=fbsWorkingStatistics.getPersonnelCode();
+		 if(StringUtils.isNotBlank(personnelCode)&&personnelCode.equals("null")){
+			 fbsWorkingStatistics.setPersonnelCode(null);
+		 }
+		 //开始时间结束时间
+		 String start=fbsWorkingStatistics.getStart();
+		 String end=fbsWorkingStatistics.getEnd();
+		 if(StringUtils.isNotBlank(start)){
+			 fbsWorkingStatistics.setStart(null);
+		 }
+		 if(StringUtils.isNotBlank(end)){
+			 fbsWorkingStatistics.setEnd(null);
+		 }
+		 //订单号
+		 String orderNumber=fbsWorkingStatistics.getOrderNumber();
+		 if(StringUtils.isNotBlank(orderNumber)){
+			 fbsWorkingStatistics.setOrderNumber(null);
+		 }
+		 //报工信息
+		 String finalInfo=fbsWorkingStatistics.getFinalInfo();
+		 if(StringUtils.isNotBlank(finalInfo)&&finalInfo.equals("null")){
+			 fbsWorkingStatistics.setFinalInfo(null);
+		 }
+		 //项目编码
+		 String costItemCode=fbsWorkingStatistics.getCostItemCode();
+		 if(StringUtils.isNotBlank(costItemCode)){
+		 	fbsWorkingStatistics.setCostItemCode(null);
+		 }
+		 //项目名称
+		 String projectName=fbsWorkingStatistics.getProjectName();
+		 if(StringUtils.isNotBlank(projectName)){
+		 	fbsWorkingStatistics.setProjectName(null);
+		 }
+		 //工作中心
+		 String workCenter=fbsWorkingStatistics.getWorkCenter();
+		 if(StringUtils.isNotBlank(workCenter)){
+		 	fbsWorkingStatistics.setWorkCenter(null);
+		 }
+		 //物料编码
+		 String materielCode=fbsWorkingStatistics.getMaterielCode();
+		 if(StringUtils.isNotBlank(materielCode)){
+		 	fbsWorkingStatistics.setMaterielCode(null);
+		 }
+		 //物料名称
+		 String materielName=fbsWorkingStatistics.getMaterielName();
+		 if(StringUtils.isNotBlank(materielName)){
+		 	fbsWorkingStatistics.setMaterielName(null);
+		 }
+		 //工艺名称
+		 String fbsTechnologicalProcessItemName=fbsWorkingStatistics.getFbsTechnologicalProcessItemName();
+		 if(StringUtils.isNotBlank(fbsTechnologicalProcessItemName)){
+		 	fbsWorkingStatistics.setFbsTechnologicalProcessItemName(null);
+		 }
+		 QueryWrapper<FbsWorkingStatistics> queryWrapper = QueryGenerator.initQueryWrapper(fbsWorkingStatistics, req.getParameterMap());
+		 queryWrapper.eq("fws.del_flag","0");
+		 queryWrapper.groupBy("fwdl.cost_item_code","fwdl.project_name","ftp.memo","fws.order_number","fws.materiel_code","fws.materiel_name","fws.fbs_technological_process_item_id","fws.fbs_technological_process_item_name","fws.personnel_code","fws.personnel_name");
+		 if(StringUtils.isNotBlank(costItemCode)){
+		 	queryWrapper.eq("fwdl.cost_item_code",costItemCode);
+		 }
+		 if(StringUtils.isNotBlank(projectName)){
+		 	queryWrapper.like("fwdl.project_name",projectName);
+		 }
+		 if(StringUtils.isNotBlank(workCenter)){
+		 	queryWrapper.like("ftp.memo",workCenter);
+		 }
+		 if(StringUtils.isNotBlank(materielCode)){
+		 	queryWrapper.eq("fws.materiel_code",materielCode);
+		 }
+		 if(StringUtils.isNotBlank(materielName)){
+		 	queryWrapper.like("fws.materiel_name",materielName);
+		 }
+		 if(StringUtils.isNotBlank(fbsTechnologicalProcessItemName)){
+		 	queryWrapper.like("fws.fbs_technological_process_item_name",fbsTechnologicalProcessItemName);
+		 }
+		 if(StringUtils.isNotBlank(start)&&StringUtils.isNotBlank(end)&&!start.equals("null")&&!end.equals("null")){
+			 queryWrapper.ge("DATE_FORMAT(fws.first_time,'%Y-%m-%d')",start);
+			 queryWrapper.le("DATE_FORMAT(fws.first_time,'%Y-%m-%d')",end);
+		 }else {
+			 queryWrapper.apply("DATE_FORMAT( fws.first_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )");
+		 }
+		 if(StringUtils.isNotBlank(orderNumber)){
+			 queryWrapper.lambda().like(FbsWorkingStatistics::getOrderNumber,orderNumber);
+		 }
+		 queryWrapper.orderByAsc("ftpi.sort");
+		 Page<FbsWorkingStatistics> page = new Page<FbsWorkingStatistics>(pageNo, pageSize);
+		 IPage<FbsWorkingStatistics> pageList = fbsWorkingStatisticsService.getEfficiencyReport(page, queryWrapper);
+
+		 result.setSuccess(true);
+		 result.setResult(pageList);
+
+		 return result;
+	 }
 	
 	/**
 	  *   添加

+ 8 - 0
src/main/java/org/jeecg/modules/appInterface/entity/FbsWorkingStatistics.java

@@ -177,4 +177,12 @@ public class FbsWorkingStatistics implements Serializable {
 	//工作中心
 	@TableField(exist = false)
 	private String workCenter;
+
+	//效率
+	@TableField(exist = false)
+	private BigDecimal efficiency;
+
+	//工艺标准工时
+	@TableField(exist = false)
+	private BigDecimal standardWorkingHoursProcess;
 }

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

@@ -63,4 +63,12 @@ public interface FbsWorkingStatisticsMapper extends BaseMapper<FbsWorkingStatist
     */
     IPage<FbsWorkingStatistics> findByPage(IPage<FbsWorkingStatistics> page, @Param("ew") QueryWrapper<FbsWorkingStatistics> queryWrapper);
 
+    /**
+    * @Author chenchuang
+    * @Description //TODO 效率报表
+    * @Date 2022/4/15 13:32
+    * @Param [page, queryWrapper]
+    * @return com.baomidou.mybatisplus.core.metadata.IPage<org.jeecg.modules.appInterface.entity.FbsWorkingStatistics>
+    */
+    IPage<FbsWorkingStatistics> getEfficiencyReport(IPage<FbsWorkingStatistics> page, @Param("ew") QueryWrapper<FbsWorkingStatistics> queryWrapper);
 }

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

@@ -171,4 +171,30 @@
         </foreach>
     </update>
 
+    <select id="getEfficiencyReport" resultType="org.jeecg.modules.appInterface.entity.FbsWorkingStatistics">
+        SELECT
+            fwdl.cost_item_code AS costItemCode,
+            fwdl.project_name,
+            ftp.memo AS workCenter,
+            fws.order_number,
+            fws.materiel_code,
+            fws.materiel_name,
+            fws.fbs_technological_process_item_id,
+            fws.fbs_technological_process_item_name,
+            fws.personnel_code,
+            fws.personnel_name,
+            min( fws.first_time ) as firstTime,
+            max( fws.final_time ) as finalTime,
+            sum( fws.working_hours ) as workingHours,
+            ftpi.standard_working_hours AS standardWorkingHoursProcess,
+            ROUND(sum( fws.working_hours )/(fwdl.number_of_tasks * IFNULL( ftpi.standard_working_hours, 0 ))*100,1) AS efficiency
+        FROM
+            fbs_working_statistics fws
+            LEFT JOIN fbs_workshop_dispatch_list fwdl ON fws.pk_workshop_dispatch_list = fwdl.id
+            LEFT JOIN fbs_technological_process ftp ON fwdl.fbs_technological_process_id = ftp.id
+            LEFT JOIN fbs_technological_process_item ftpi ON fws.fbs_technological_process_item_id = ftpi.id
+            ${ew.customSqlSegment}
+
+    </select>
+
 </mapper>

+ 2 - 0
src/main/java/org/jeecg/modules/appInterface/service/IFbsWorkingStatisticsService.java

@@ -67,4 +67,6 @@ public interface IFbsWorkingStatisticsService extends IService<FbsWorkingStatist
 
     IPage<FbsWorkingStatistics> findByPage(IPage<FbsWorkingStatistics> page, QueryWrapper<FbsWorkingStatistics> queryWrapper);
 
+    IPage<FbsWorkingStatistics> getEfficiencyReport(IPage<FbsWorkingStatistics> page, QueryWrapper<FbsWorkingStatistics> queryWrapper);
+
 }

+ 5 - 0
src/main/java/org/jeecg/modules/appInterface/service/impl/FbsWorkingStatisticsServiceImpl.java

@@ -229,6 +229,11 @@ public class FbsWorkingStatisticsServiceImpl extends ServiceImpl<FbsWorkingStati
         return fbsWorkingStatisticsMapper.findByPage(page,queryWrapper);
     }
 
+    @Override
+    public IPage<FbsWorkingStatistics> getEfficiencyReport(IPage<FbsWorkingStatistics> page, QueryWrapper<FbsWorkingStatistics> queryWrapper) {
+        return fbsWorkingStatisticsMapper.getEfficiencyReport(page,queryWrapper);
+    }
+
     public BigDecimal getDecimalNew(String d){
         if(StringUtils.isEmpty(d)){
             d="0.0";

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

@@ -488,4 +488,10 @@ public class FbsMomOrderdetail implements Serializable {
 	//项目编码
 	@TableField(exist = false)
 	private String costItemCode;
+	//项目编码
+	@TableField(exist = false)
+	private String itemCode;
+	//工作中心
+	@TableField(exist = false)
+	private String workCenter;
 }

+ 36 - 1
src/main/java/org/jeecg/modules/fbsMomOrder/mapper/xml/FbsMomOrderdetailMapper.xml

@@ -86,6 +86,8 @@
 
  <select id="getMonthListStatre" resultType="org.jeecg.modules.fbsMomOrder.entity.FbsMomOrderdetail">
      SELECT
+     mo.cost_item_code as itemCode,
+     ftp.memo as workCenter,
      m.MoId,
      m.MoCode,
      i.cInvCode,
@@ -103,6 +105,7 @@
      LEFT JOIN mom_order m ON mo.MoId= m.MoId
      LEFT JOIN Inventory i ON mo.InvCode= i.cInvCode
      left join mom_morder mm on mo.MoDId=mm.MoDId
+     left join fbs_technological_process ftp on mo.InvCode=ftp.name
      WHERE
 
      <!--datediff(
@@ -113,12 +116,29 @@
         <if test="fbsMomOrderdetail.mocode!=null and fbsMomOrderdetail.mocode!=''">
             AND m.MoCode=#{fbsMomOrderdetail.mocode}
         </if>
+         <if test="fbsMomOrderdetail.itemCode!=null and fbsMomOrderdetail.itemCode!=''">
+             AND mo.cost_item_code=#{fbsMomOrderdetail.itemCode}
+         </if>
+         <if test="fbsMomOrderdetail.costitemname!=null and fbsMomOrderdetail.costitemname!=''">
+             AND mo.CostItemName LIKE "%" #{fbsMomOrderdetail.costitemname} "%"
+         </if>
+         <if test="fbsMomOrderdetail.workCenter!=null and fbsMomOrderdetail.workCenter!=''">
+             AND ftp.memo LIKE  "%" #{fbsMomOrderdetail.workCenter} "%"
+         </if>
+         <if test="fbsMomOrderdetail.cinvcode!=null and fbsMomOrderdetail.cinvcode!=''">
+             AND i.cInvCode=#{fbsMomOrderdetail.cinvcode}
+         </if>
+         <if test="fbsMomOrderdetail.cinvname!=null and fbsMomOrderdetail.cinvname!=''">
+             AND i.cInvName=#{fbsMomOrderdetail.cinvname}
+         </if>
         ORDER BY
         m.createtime DESC
     </select>
 
     <select id="getMonthListStatreReviewed" resultType="org.jeecg.modules.fbsMomOrder.entity.FbsMomOrderdetail">
         SELECT
+        mo.cost_item_code as itemCode,
+        ftp.memo as workCenter,
         m.MoId,
         m.MoCode,
         i.cInvCode,
@@ -136,6 +156,7 @@
         LEFT JOIN mom_order m ON mo.MoId= m.MoId
         LEFT JOIN Inventory i ON mo.InvCode= i.cInvCode
         left join mom_morder mm on mo.MoDId=mm.MoDId
+        left join fbs_technological_process ftp on mo.InvCode=ftp.name
         WHERE
         <!--datediff(
         MONTH,
@@ -169,7 +190,21 @@ AND mo.Status = 4
 <if test="fbsMomOrderdetail.mocode!=null and fbsMomOrderdetail.mocode!=''">
     AND m.MoCode=#{fbsMomOrderdetail.mocode}
 </if>
-
+<if test="fbsMomOrderdetail.itemCode!=null and fbsMomOrderdetail.itemCode!=''">
+    AND mo.cost_item_code=#{fbsMomOrderdetail.itemCode}
+</if>
+<if test="fbsMomOrderdetail.costitemname!=null and fbsMomOrderdetail.costitemname!=''">
+    AND mo.CostItemName LIKE "%" #{fbsMomOrderdetail.costitemname} "%"
+</if>
+<if test="fbsMomOrderdetail.workCenter!=null and fbsMomOrderdetail.workCenter!=''">
+    AND ftp.memo LIKE  "%" #{fbsMomOrderdetail.workCenter} "%"
+</if>
+<if test="fbsMomOrderdetail.cinvcode!=null and fbsMomOrderdetail.cinvcode!=''">
+    AND i.cInvCode=#{fbsMomOrderdetail.cinvcode}
+</if>
+<if test="fbsMomOrderdetail.cinvname!=null and fbsMomOrderdetail.cinvname!=''">
+    AND i.cInvName=#{fbsMomOrderdetail.cinvname}
+</if>
 ORDER BY
 m.createtime DESC
 </select>

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

@@ -551,6 +551,11 @@ public class FbsWorkshopDispatchListController {
 				 fbsWorkshopDispatchList.setProductionOrderNumberName(null);
 			 }
 			 fbsMomOrderdetail.setMocode(fbsWorkshopDispatchList.getProductionOrderNumberName());
+             fbsMomOrderdetail.setItemCode(fbsWorkshopDispatchList.getCostItemCode());
+             fbsMomOrderdetail.setCostitemname(fbsWorkshopDispatchList.getProjectName());
+             fbsMomOrderdetail.setWorkCenter(fbsWorkshopDispatchList.getWorkCenter());
+             fbsMomOrderdetail.setCinvcode(fbsWorkshopDispatchList.getProductId());
+             fbsMomOrderdetail.setCinvname(fbsWorkshopDispatchList.getProduct());
 			 //审核数据
 			 List<FbsMomOrderdetail> fbsMomOrderdetailList= iFbsMomOrderdetailService.getMonthListStatre(fbsMomOrderdetail);
 			 //已关闭当月数据

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

@@ -289,7 +289,10 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
             fbsWorkshopDispatchList.setProduct(fbsMomOrderdetail.getCinvname());
             fbsWorkshopDispatchList.setStartDate(fbsMomOrderdetail.getStartDate());
             fbsWorkshopDispatchList.setDueDate(fbsMomOrderdetail.getDueDate());
-            fbsWorkshopDispatchList.setNumberOfTasksTotal(Math.rint(Double.parseDouble(fbsMomOrderdetail.getQty()+""))+"");
+            fbsWorkshopDispatchList.setCostItemCode(fbsMomOrderdetail.getItemCode());
+            fbsWorkshopDispatchList.setWorkCenter(fbsMomOrderdetail.getWorkCenter());
+//            fbsWorkshopDispatchList.setNumberOfTasksTotal(Math.rint(Double.parseDouble(fbsMomOrderdetail.getQty()+""))+"");
+            fbsWorkshopDispatchList.setNumberOfTasksTotal(fbsMomOrderdetail.getQty().toString());
             BigDecimal workingHoursTotal=new BigDecimal("0.0");
             if(StringUtils.isNotBlank(fbsMomOrderdetail.getCinvDefine13())){
                 workingHoursTotal=getDecimalNew(fbsMomOrderdetail.getCinvDefine13());