BTO看板

tags/yfai-mes-ext-v2.4
xiangwei.zhang 5 months ago
parent 603d84d5a6
commit 19de68d741

@ -1,6 +1,8 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.base; package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.api.base.IMesBtoJobService; import cn.estsh.i3plus.ext.mes.api.base.IMesBtoJobService;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.impp.framework.base.controller.MesBaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -19,8 +21,8 @@ import java.util.List;
**/ **/
@RestController @RestController
@Api(description = "bto生产") @Api(description = "bto生产")
@RequestMapping( "/bto-data") @RequestMapping(MesCommonConstant.MES_YANFEN + "/bto-data")
public class BtoController { public class BtoController extends MesBaseController {
@Autowired @Autowired
private IMesBtoJobService btoJobService; private IMesBtoJobService btoJobService;

@ -1,11 +1,14 @@
package cn.estsh.i3plus.ext.mes.apiservice.controller.busi; package cn.estsh.i3plus.ext.mes.apiservice.controller.busi;
import cn.estsh.i3plus.ext.mes.api.base.IMesBtoJobService;
import cn.estsh.i3plus.ext.mes.apiservice.schedulejob.*; import cn.estsh.i3plus.ext.mes.apiservice.schedulejob.*;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@RestController @RestController
@RequestMapping("/test") @RequestMapping("/test")
@ -27,6 +30,9 @@ public class TestController {
@Autowired @Autowired
private MesQmsScrapJob mesQmsScrapJob; private MesQmsScrapJob mesQmsScrapJob;
@Autowired
private IMesBtoJobService btoJobService;
@GetMapping("/reportOrder") @GetMapping("/reportOrder")
@ApiOperation(value = "报工") @ApiOperation(value = "报工")
public void reportOrder() { public void reportOrder() {
@ -36,7 +42,17 @@ public class TestController {
@GetMapping("/mesAccount") @GetMapping("/mesAccount")
@ApiOperation(value = "报工") @ApiOperation(value = "报工")
public void mesAccount() { public void mesAccount() {
mesAccountJob.executeMesJob(null, null);
String organizeCode = "CK01";
List<String> groupCodeList = Stream.of("CS001","IP002","IP001","CS002").collect(Collectors.toList());
btoJobService.doCreateBto(organizeCode, groupCodeList);
//mesAccountJob.executeMesJob(null, null);
}
@PostMapping("/bto")
public void create(@RequestParam String organizeCode, @RequestParam List<String> groupCodeList){
btoJobService.doCreateBto(organizeCode, groupCodeList);
} }
@GetMapping("/generateMesAccount") @GetMapping("/generateMesAccount")

@ -53,7 +53,7 @@ public class MesBtoJobServiceImpl implements IMesBtoJobService {
//1. 根据 organizeCode 和 groupCodeList 查询零件生产组 //1. 根据 organizeCode 和 groupCodeList 查询零件生产组
List<MesPartProdGroup> mesPartProdGroups = mesPartProdGroupService.findMesPartProdGroups(organizeCode, groupCodeList); List<MesPartProdGroup> mesPartProdGroups = mesPartProdGroupService.findMesPartProdGroups(organizeCode, groupCodeList);
// 初始找原因 // 初始找原因
updateCustsort(organizeCode, mesPartProdGroups); //updateCustsort(organizeCode, mesPartProdGroups);
for (MesPartProdGroup prodGroup : mesPartProdGroups) { for (MesPartProdGroup prodGroup : mesPartProdGroups) {
//2. 根据生产组的infoPointCode 获取 过点信息MES_CUSTOMER_MESSAGE_POINT //2. 根据生产组的infoPointCode 获取 过点信息MES_CUSTOMER_MESSAGE_POINT

@ -2043,20 +2043,19 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
public List<MesWorkOrderBoardResModel> orderBoard(MesWorkOrderBoardReqModel workOrderBoardReqModel) { public List<MesWorkOrderBoardResModel> orderBoard(MesWorkOrderBoardReqModel workOrderBoardReqModel) {
List<MesWorkOrderBoardResModel> resList = new ArrayList<>(); List<MesWorkOrderBoardResModel> resList = new ArrayList<>();
String sqlStr = "select mwo.part_no,mp.part_name, mwo.produce_time,mwo.qty,mwo.complete_qty,mwo.work_center_code,mwo.work_order_no,mwo.create_date_time from mes_work_order mwo\n" + String sqlStr = "select mwo.part_no,mp.part_name, substr(mwo.create_date_time,1,10) produce_time,mwo.qty,mwo.complete_qty,mwo.work_center_code,mwo.work_order_no,mwo.create_date_time from mes_work_order mwo\n" +
"left join mes_part mp\n" + "left join mes_part mp\n" +
"on mwo.part_no = mp.part_no and mwo.organize_code = mp.organize_code" + "on mwo.part_no = mp.part_no and mwo.organize_code = mp.organize_code" +
" where mwo.organize_code = 'CK01' and mwo.is_deleted = 2 and mwo.is_valid = 1 and work_order_status in(20, 30) and work_order_type = 30" + " where mwo.organize_code = 'CK01' and mwo.is_deleted = 2 and mwo.is_valid = 1 and work_order_status in(20, 30) and work_order_type = 30" +
" and mwo.qty > mwo.complete_qty and mwo.create_date_time > :dateTime "; " and mwo.create_date_time > :dateTime ";
if (!StringUtils.isEmpty(workOrderBoardReqModel.getWorkCenterCode())) { if (!StringUtils.isEmpty(workOrderBoardReqModel.getWorkCenterCode())) {
sqlStr += " and mwo.work_center_code = :workCenterCode "; sqlStr += " and mwo.work_center_code = :workCenterCode ";
} }
sqlStr += "and produce_time is not null and produce_time != ''\n" + sqlStr += "order by mwo.create_date_time limit 16";
"order by mwo.produce_time limit 16";
String dateTime = new SimpleDateFormat("yyyy-MM-dd").format(TimeTool.getDateBefore(new Date(), 10)) + " 00:00:00"; String dateTime = new SimpleDateFormat("yyyy-MM-dd").format(TimeTool.getDateBefore(new Date(), 30)) + " 00:00:00";
Query query = entityManager.createNativeQuery(sqlStr); Query query = entityManager.createNativeQuery(sqlStr);
if (!StringUtils.isEmpty(workOrderBoardReqModel.getWorkCenterCode())) { if (!StringUtils.isEmpty(workOrderBoardReqModel.getWorkCenterCode())) {
query.setParameter("workCenterCode", workOrderBoardReqModel.getWorkCenterCode()); query.setParameter("workCenterCode", workOrderBoardReqModel.getWorkCenterCode());
@ -2114,8 +2113,40 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
} }
}); });
} }
// 根据物料日期和订单时间汇总
List<MesWorkOrderBoardResModel> mesWorkOrderBoardResModels = new ArrayList<>();
for (MesWorkOrderBoardResModel mesWorkOrderBoardResModel : resList) {
String partNo = mesWorkOrderBoardResModel.getPartNo();
String productDate = mesWorkOrderBoardResModel.getProductDate();
String orderTime = mesWorkOrderBoardResModel.getOrderTime();
String workCenterCode = mesWorkOrderBoardResModel.getWorkCenterCode();
String partName = mesWorkOrderBoardResModel.getPartName();
Double qty = mesWorkOrderBoardResModel.getQty();
Double complateQty = mesWorkOrderBoardResModel.getCompleteQty();
MesWorkOrderBoardResModel model = new MesWorkOrderBoardResModel();
BeanUtils.copyProperties(mesWorkOrderBoardResModel, model);
boolean isNew = true;
for (MesWorkOrderBoardResModel workOrderBoardResModel : mesWorkOrderBoardResModels) {
if (Objects.equals(mesWorkOrderBoardResModel.getWorkCenterCode(),workOrderBoardResModel.getWorkCenterCode()) &&
Objects.equals(mesWorkOrderBoardResModel.getPartNo(),workOrderBoardResModel.getPartNo()) &&
Objects.equals(mesWorkOrderBoardResModel.getProductDate(),workOrderBoardResModel.getProductDate()) &&
Objects.equals(mesWorkOrderBoardResModel.getOrderTime(),workOrderBoardResModel.getOrderTime())) {
qty += workOrderBoardResModel.getQty();
complateQty += workOrderBoardResModel.getCompleteQty();
workOrderBoardResModel.setQty(qty);
workOrderBoardResModel.setCompleteQty(complateQty);
isNew = false;
}
}
if (isNew) {
mesWorkOrderBoardResModels.add(mesWorkOrderBoardResModel);
}
}
mesWorkOrderBoardResModels = mesWorkOrderBoardResModels.stream().filter(mesWorkOrderBoardResModel -> mesWorkOrderBoardResModel.getQty() > mesWorkOrderBoardResModel.getCompleteQty()).collect(Collectors.toList());
return resList; return mesWorkOrderBoardResModels;
} }

Loading…
Cancel
Save