作者 雷海东

生产计划查看、派工

@@ -3,6 +3,7 @@ package org.jeecg.modules.erp.order_form.controller; @@ -3,6 +3,7 @@ package org.jeecg.modules.erp.order_form.controller;
3 import cn.hutool.core.date.DateUtil; 3 import cn.hutool.core.date.DateUtil;
4 import cn.hutool.core.util.NumberUtil; 4 import cn.hutool.core.util.NumberUtil;
5 import cn.hutool.core.util.StrUtil; 5 import cn.hutool.core.util.StrUtil;
  6 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
6 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 7 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
7 import com.baomidou.mybatisplus.core.metadata.IPage; 8 import com.baomidou.mybatisplus.core.metadata.IPage;
8 import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 9 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -24,6 +25,10 @@ import org.jeecg.modules.erp.order_form.form.OrderForm; @@ -24,6 +25,10 @@ import org.jeecg.modules.erp.order_form.form.OrderForm;
24 import org.jeecg.modules.erp.order_form.service.ITblOrderFormService; 25 import org.jeecg.modules.erp.order_form.service.ITblOrderFormService;
25 import org.jeecg.modules.erp.order_form.service.ITblWorkOrderService; 26 import org.jeecg.modules.erp.order_form.service.ITblWorkOrderService;
26 import org.jeecg.modules.erp.order_form.service.ITblWorkPriceService; 27 import org.jeecg.modules.erp.order_form.service.ITblWorkPriceService;
  28 +import org.jeecg.modules.erp.production.entity.TblProductionGongxu;
  29 +import org.jeecg.modules.erp.production.entity.TblProductionPlan;
  30 +import org.jeecg.modules.erp.production.service.ITblProductionGongxuService;
  31 +import org.jeecg.modules.erp.production.service.ITblProductionPlanService;
27 import org.jeecgframework.poi.excel.ExcelImportUtil; 32 import org.jeecgframework.poi.excel.ExcelImportUtil;
28 import org.jeecgframework.poi.excel.def.NormalExcelConstants; 33 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
29 import org.jeecgframework.poi.excel.entity.ExportParams; 34 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -38,6 +43,7 @@ import org.springframework.web.servlet.ModelAndView; @@ -38,6 +43,7 @@ import org.springframework.web.servlet.ModelAndView;
38 import javax.servlet.http.HttpServletRequest; 43 import javax.servlet.http.HttpServletRequest;
39 import javax.servlet.http.HttpServletResponse; 44 import javax.servlet.http.HttpServletResponse;
40 import java.io.IOException; 45 import java.io.IOException;
  46 +import java.math.BigDecimal;
41 import java.util.Arrays; 47 import java.util.Arrays;
42 import java.util.Date; 48 import java.util.Date;
43 import java.util.List; 49 import java.util.List;
@@ -65,6 +71,8 @@ public class TblOrderFormController extends JeecgController<TblOrderForm, ITblOr @@ -65,6 +71,8 @@ public class TblOrderFormController extends JeecgController<TblOrderForm, ITblOr
65 @Autowired 71 @Autowired
66 private ITblWorkPriceService iTblWorkPriceService; 72 private ITblWorkPriceService iTblWorkPriceService;
67 73
  74 + @Autowired
  75 + private ITblProductionPlanService planService;
68 76
69 /*---------------------------------主表处理-begin-------------------------------------*/ 77 /*---------------------------------主表处理-begin-------------------------------------*/
70 78
@@ -83,9 +91,20 @@ public class TblOrderFormController extends JeecgController<TblOrderForm, ITblOr @@ -83,9 +91,20 @@ public class TblOrderFormController extends JeecgController<TblOrderForm, ITblOr
83 @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, 91 @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
84 @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, 92 @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
85 HttpServletRequest req) { 93 HttpServletRequest req) {
  94 +
86 QueryWrapper<TblOrderForm> queryWrapper = QueryGenerator.initQueryWrapper(tblOrderForm, req.getParameterMap()); 95 QueryWrapper<TblOrderForm> queryWrapper = QueryGenerator.initQueryWrapper(tblOrderForm, req.getParameterMap());
87 Page<TblOrderForm> page = new Page<TblOrderForm>(pageNo, pageSize); 96 Page<TblOrderForm> page = new Page<TblOrderForm>(pageNo, pageSize);
88 IPage<TblOrderForm> pageList = tblOrderFormService.page(page, queryWrapper); 97 IPage<TblOrderForm> pageList = tblOrderFormService.page(page, queryWrapper);
  98 + for (TblOrderForm order : pageList.getRecords()) {
  99 + // 查询与订单号相关的数据
  100 + List<TblProductionPlan> productionGongxuList = planService.list(new QueryWrapper<TblProductionPlan>().eq("order_number", order.getOrderId()));
  101 + for (TblProductionPlan productionGongxu : productionGongxuList) {
  102 + order.setDispatchedWorkingHours(String.valueOf(productionGongxu.getPai()));
  103 + tblOrderFormService.updateById(order);
  104 + }
  105 +
  106 +
  107 + }
89 return Result.OK(pageList); 108 return Result.OK(pageList);
90 } 109 }
91 110
  1 +package org.jeecg.modules.erp.production.controller;
  2 +
  3 +import java.util.Arrays;
  4 +import java.util.List;
  5 +import java.util.Map;
  6 +import java.util.stream.Collectors;
  7 +import java.io.IOException;
  8 +import java.io.UnsupportedEncodingException;
  9 +import java.net.URLDecoder;
  10 +import javax.servlet.http.HttpServletRequest;
  11 +import javax.servlet.http.HttpServletResponse;
  12 +import org.jeecg.common.api.vo.Result;
  13 +import org.jeecg.common.system.query.QueryGenerator;
  14 +import org.jeecg.common.util.oConvertUtils;
  15 +import org.jeecg.modules.erp.production.entity.TblProductionGongxu;
  16 +import org.jeecg.modules.erp.production.service.ITblProductionGongxuService;
  17 +
  18 +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  19 +import com.baomidou.mybatisplus.core.metadata.IPage;
  20 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  21 +import lombok.extern.slf4j.Slf4j;
  22 +
  23 +import org.jeecgframework.poi.excel.ExcelImportUtil;
  24 +import org.jeecgframework.poi.excel.def.NormalExcelConstants;
  25 +import org.jeecgframework.poi.excel.entity.ExportParams;
  26 +import org.jeecgframework.poi.excel.entity.ImportParams;
  27 +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
  28 +import org.jeecg.common.system.base.controller.JeecgController;
  29 +import org.springframework.beans.factory.annotation.Autowired;
  30 +import org.springframework.web.bind.annotation.*;
  31 +import org.springframework.web.multipart.MultipartFile;
  32 +import org.springframework.web.multipart.MultipartHttpServletRequest;
  33 +import org.springframework.web.servlet.ModelAndView;
  34 +import com.alibaba.fastjson.JSON;
  35 +import io.swagger.annotations.Api;
  36 +import io.swagger.annotations.ApiOperation;
  37 +import org.jeecg.common.aspect.annotation.AutoLog;
  38 +
  39 + /**
  40 + * @Description: tbl_production_gongxu
  41 + * @Author: jeecg-boot
  42 + * @Date: 2024-05-20
  43 + * @Version: V1.0
  44 + */
  45 +@Api(tags="tbl_production_gongxu")
  46 +@RestController
  47 +@RequestMapping("/production/tblProductionGongxu")
  48 +@Slf4j
  49 +public class TblProductionGongxuController extends JeecgController<TblProductionGongxu, ITblProductionGongxuService> {
  50 + @Autowired
  51 + private ITblProductionGongxuService tblProductionGongxuService;
  52 +
  53 + /**
  54 + * 分页列表查询
  55 + *
  56 + * @param tblProductionGongxu
  57 + * @param pageNo
  58 + * @param pageSize
  59 + * @param req
  60 + * @return
  61 + */
  62 + //@AutoLog(value = "tbl_production_gongxu-分页列表查询")
  63 + @ApiOperation(value="tbl_production_gongxu-分页列表查询", notes="tbl_production_gongxu-分页列表查询")
  64 + @GetMapping(value = "/list")
  65 + public Result<IPage<TblProductionGongxu>> queryPageList(TblProductionGongxu tblProductionGongxu,
  66 + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
  67 + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
  68 + HttpServletRequest req) {
  69 + QueryWrapper<TblProductionGongxu> queryWrapper = QueryGenerator.initQueryWrapper(tblProductionGongxu, req.getParameterMap());
  70 + Page<TblProductionGongxu> page = new Page<TblProductionGongxu>(pageNo, pageSize);
  71 + IPage<TblProductionGongxu> pageList = tblProductionGongxuService.page(page, queryWrapper);
  72 + return Result.OK(pageList);
  73 + }
  74 +
  75 + /**
  76 + * 添加
  77 + *
  78 + * @param tblProductionGongxuList
  79 + * @return
  80 + */
  81 + @AutoLog(value = "tbl_production_gongxu-添加")
  82 + @ApiOperation(value="tbl_production_gongxu-添加", notes="tbl_production_gongxu-添加")
  83 + @PostMapping(value = "/add")
  84 + public Result<?> add(@RequestBody List<TblProductionGongxu> tblProductionGongxuList) {
  85 + tblProductionGongxuService.saveOrUpdateBatch(tblProductionGongxuList);
  86 + return Result.OK("添加成功!");
  87 + }
  88 +
  89 + /**
  90 + * 编辑
  91 + *
  92 + * @param tblProductionGongxu
  93 + * @return
  94 + */
  95 + @AutoLog(value = "tbl_production_gongxu-编辑")
  96 + @ApiOperation(value="tbl_production_gongxu-编辑", notes="tbl_production_gongxu-编辑")
  97 + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
  98 + public Result<String> edit(@RequestBody TblProductionGongxu tblProductionGongxu) {
  99 + tblProductionGongxuService.updateById(tblProductionGongxu);
  100 + return Result.OK("编辑成功!");
  101 + }
  102 +
  103 + /**
  104 + * 通过id删除
  105 + *
  106 + * @param id
  107 + * @return
  108 + */
  109 + @AutoLog(value = "tbl_production_gongxu-通过id删除")
  110 + @ApiOperation(value="tbl_production_gongxu-通过id删除", notes="tbl_production_gongxu-通过id删除")
  111 + @DeleteMapping(value = "/delete")
  112 + public Result<String> delete(@RequestParam(name="id",required=true) String id) {
  113 + tblProductionGongxuService.removeById(id);
  114 + return Result.OK("删除成功!");
  115 + }
  116 +
  117 + /**
  118 + * 批量删除
  119 + *
  120 + * @param ids
  121 + * @return
  122 + */
  123 + @AutoLog(value = "tbl_production_gongxu-批量删除")
  124 + @ApiOperation(value="tbl_production_gongxu-批量删除", notes="tbl_production_gongxu-批量删除")
  125 + @DeleteMapping(value = "/deleteBatch")
  126 + public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
  127 + this.tblProductionGongxuService.removeByIds(Arrays.asList(ids.split(",")));
  128 + return Result.OK("批量删除成功!");
  129 + }
  130 +
  131 + /**
  132 + * 通过id查询
  133 + *
  134 + * @param id
  135 + * @return
  136 + */
  137 + //@AutoLog(value = "tbl_production_gongxu-通过id查询")
  138 + @ApiOperation(value="tbl_production_gongxu-通过id查询", notes="tbl_production_gongxu-通过id查询")
  139 + @GetMapping(value = "/queryById")
  140 + public Result<TblProductionGongxu> queryById(@RequestParam(name="id",required=true) String id) {
  141 + TblProductionGongxu tblProductionGongxu = tblProductionGongxuService.getById(id);
  142 + if(tblProductionGongxu==null) {
  143 + return Result.error("未找到对应数据");
  144 + }
  145 + return Result.OK(tblProductionGongxu);
  146 + }
  147 +
  148 + /**
  149 + * 导出excel
  150 + *
  151 + * @param request
  152 + * @param tblProductionGongxu
  153 + */
  154 + @RequestMapping(value = "/exportXls")
  155 + public ModelAndView exportXls(HttpServletRequest request, TblProductionGongxu tblProductionGongxu) {
  156 + return super.exportXls(request, tblProductionGongxu, TblProductionGongxu.class, "tbl_production_gongxu");
  157 + }
  158 +
  159 + /**
  160 + * 通过excel导入数据
  161 + *
  162 + * @param request
  163 + * @param response
  164 + * @return
  165 + */
  166 + @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  167 + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
  168 + return super.importExcel(request, response, TblProductionGongxu.class);
  169 + }
  170 +
  171 +}
1 package org.jeecg.modules.erp.production.controller; 1 package org.jeecg.modules.erp.production.controller;
2 2
  3 +import java.math.BigDecimal;
3 import java.util.Arrays; 4 import java.util.Arrays;
4 import java.util.List; 5 import java.util.List;
5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletRequest;
@@ -69,6 +70,17 @@ public class TblProductionPlanController extends JeecgController<TblProductionPl @@ -69,6 +70,17 @@ public class TblProductionPlanController extends JeecgController<TblProductionPl
69 QueryWrapper<TblProductionPlan> queryWrapper = QueryGenerator.initQueryWrapper(tblProductionPlan, req.getParameterMap()); 70 QueryWrapper<TblProductionPlan> queryWrapper = QueryGenerator.initQueryWrapper(tblProductionPlan, req.getParameterMap());
70 Page<TblProductionPlan> page = new Page<TblProductionPlan>(pageNo, pageSize); 71 Page<TblProductionPlan> page = new Page<TblProductionPlan>(pageNo, pageSize);
71 IPage<TblProductionPlan> pageList = tblProductionPlanService.page(page, queryWrapper); 72 IPage<TblProductionPlan> pageList = tblProductionPlanService.page(page, queryWrapper);
  73 + for (TblProductionPlan order : pageList.getRecords()) {
  74 + // 查询与订单号相关的数据,并计算工时总和
  75 + List<TblProductionGongxu> productionGongxuList = gongxuService.list(new QueryWrapper<TblProductionGongxu>().eq("order_number", order.getOrderNumber()));
  76 + BigDecimal totalWorkHours = new BigDecimal(0);
  77 + for (TblProductionGongxu productionGongxu : productionGongxuList) {
  78 + totalWorkHours = totalWorkHours.add(productionGongxu.getWorkHours());
  79 +
  80 + }
  81 + order.setPai(String.valueOf(totalWorkHours));
  82 + tblProductionPlanService.updateById(order);
  83 + }
72 return Result.OK(pageList); 84 return Result.OK(pageList);
73 } 85 }
74 86
@@ -146,6 +158,8 @@ public class TblProductionPlanController extends JeecgController<TblProductionPl @@ -146,6 +158,8 @@ public class TblProductionPlanController extends JeecgController<TblProductionPl
146 } 158 }
147 return Result.OK(tblProductionPlan); 159 return Result.OK(tblProductionPlan);
148 } 160 }
  161 +
  162 + //根据订单号查主料图
149 @GetMapping(value = "/queryBynumber") 163 @GetMapping(value = "/queryBynumber")
150 public Result<TblOrderForm> queryByorderNumber(@RequestParam(name="orderNumber",required=true) String orderNumber) { 164 public Result<TblOrderForm> queryByorderNumber(@RequestParam(name="orderNumber",required=true) String orderNumber) {
151 LambdaQueryWrapper<TblOrderForm> queryWrapper=new LambdaQueryWrapper<TblOrderForm>().eq(TblOrderForm::getOrderId,orderNumber); 165 LambdaQueryWrapper<TblOrderForm> queryWrapper=new LambdaQueryWrapper<TblOrderForm>().eq(TblOrderForm::getOrderId,orderNumber);
@@ -7,22 +7,21 @@ @@ -7,22 +7,21 @@
7 SELECT LAST_INSERT_ID() 7 SELECT LAST_INSERT_ID()
8 </selectKey> 8 </selectKey>
9 INSERT INTO tbl_production_plan ( order_number, danwei, work_order, product_name, product_type, work_time, dispatch_time, delivery_time, num, total_work, pai ) SELECT 9 INSERT INTO tbl_production_plan ( order_number, danwei, work_order, product_name, product_type, work_time, dispatch_time, delivery_time, num, total_work, pai ) SELECT
10 - of.order_id,  
11 - of.order_company,  
12 - of.work_order,  
13 - of.product_name,  
14 - pt.product_type_name,  
15 - of.order_date,  
16 - of.dispatch_date,  
17 - of.delivery_date,  
18 - of.quantity,  
19 - of.total_working_hours,  
20 - of.dispatched_working_hours 10 + order_id,
  11 + order_company,
  12 + work_order,
  13 + product_name,
  14 + product_type,
  15 + order_date,
  16 + dispatch_date,
  17 + delivery_date,
  18 + quantity,
  19 + total_working_hours,
  20 + dispatched_working_hours
21 FROM 21 FROM
22 - tbl_order_form as of  
23 - LEFT JOIN tbl_product_type as pt ON of.product_type = pt.product_type_id 22 + tbl_order_form
24 WHERE 23 WHERE
25 - of.product_design_status = 1  
26 - AND of.order_id NOT IN (SELECT order_number FROM tbl_production_plan); 24 + product_design_status = 1
  25 + AND order_id NOT IN (SELECT order_number FROM tbl_production_plan);
27 </insert> 26 </insert>
28 </mapper> 27 </mapper>
@@ -20,4 +20,39 @@ @@ -20,4 +20,39 @@
20 NOW())>= 0 20 NOW())>= 0
21 AND STATUS = '生产中' 21 AND STATUS = '生产中'
22 </select> 22 </select>
  23 + <select id="selectAll" resultType="org.jeecg.modules.erp.order_form.entity.TblOrderForm">
  24 + SELECT
  25 + a.id,a.create_by,a.create_time,a.update_by,a.update_time,a.sys_org_code,a.order_id,a.order_company,
  26 + a.work_order,a.product_name,b.product_type_name as product_type,a.order_date,a.designer,
  27 + a.dispatch_date,a.delivery_date,a.quantity,a.total_working_hours,a.dispatched_working_hours,a.STATUS,
  28 + a.finish_date,a.dispatch_status,a.product_design_status,a.verify_status,a.verify_result,a.delivery_date1,a.pics,a.pics2
  29 + FROM
  30 + tbl_order_form a
  31 + LEFT JOIN tbl_product_type b on a.product_type = b.product_type_id
  32 + </select>
  33 + <select id="getCountByType" parameterType="java.lang.String" resultType="java.lang.Integer">
  34 + SELECT
  35 + count(product_type)
  36 + FROM
  37 + tbl_order_form
  38 + WHERE
  39 + order_id like CONCAT( #{productType}, '%')
  40 + </select>
  41 + <select id="selectOneById" resultType="org.jeecg.modules.erp.order_form.entity.TblOrderForm">
  42 + SELECT
  43 + a.id,a.create_by,a.create_time,a.update_by,a.update_time,a.sys_org_code,a.order_id,a.order_company,
  44 + a.work_order,a.product_name,b.product_type_name as product_type,a.order_date,a.designer,
  45 + a.dispatch_date,a.delivery_date,a.quantity,a.total_working_hours,a.dispatched_working_hours,a.STATUS,
  46 + a.finish_date,a.dispatch_status,a.product_design_status,a.verify_status,a.verify_result,a.delivery_date1,a.pics,a.pics2
  47 + FROM
  48 + tbl_order_form a
  49 + LEFT JOIN tbl_product_type b on a.product_type = b.product_type_id where a.id =#{id}
  50 + </select>
  51 + <update id="updateDesignerByOrderId" parameterType="org.jeecg.modules.erp.order_form.entity.TblOrderForm">
  52 + update tbl_order_form set designer = #{designer},assign_design_status = #{assignDesignStatus},dispatch_date=#{dispatchDate} where order_id =#{orderId}
  53 + </update>
  54 +
  55 + <update id="updateProductDesignStatusByOrderId" parameterType="org.jeecg.modules.erp.order_form.entity.TblOrderForm">
  56 + update tbl_order_form set product_design_status = #{productDesignStatus} where order_id =#{orderId}
  57 + </update>
23 </mapper> 58 </mapper>
@@ -29,4 +29,7 @@ @@ -29,4 +29,7 @@
29 social_person,notes,create_by, 29 social_person,notes,create_by,
30 create_time,update_by,update_time 30 create_time,update_by,update_time
31 </sql> 31 </sql>
  32 + <select id="selectUserAll" resultType="java.util.Map">
  33 + SELECT a.job_id jobId,CONCAT(a.user_name,'(',b.job_title,')') as userName from tbl_salary_base a left join tbl_salary_suanfa b on a.job_title = b.job_id
  34 + </select>
32 </mapper> 35 </mapper>