From 7f47311ff8bccd7d5975caf9d22cff2c8138b51f Mon Sep 17 00:00:00 2001 From: chenshuichuan <1154693969@qq.com> Date: Sun, 14 Jul 2024 18:02:06 +0800 Subject: [PATCH] fix app create and update report --- .../admin/app/AppOrgWorkerController.java | 8 ++-- .../ViewReportUserDateSummary.java | 43 +++++++++++++++++++ .../ViewReportUserDateMapper.java | 25 +++++++++++ .../ProduceReportServiceImpl.java | 8 +++- .../src/main/resources/application.yaml | 1 + 5 files changed, 80 insertions(+), 5 deletions(-) create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/producereport/ViewReportUserDateSummary.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/producereport/ViewReportUserDateMapper.java diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppOrgWorkerController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppOrgWorkerController.java index df910e254b..c4e787ef75 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppOrgWorkerController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppOrgWorkerController.java @@ -73,7 +73,8 @@ public class AppOrgWorkerController { @GetMapping("/getOtherOrgList") @Operation(summary = "获得工位安排") public CommonResult> getOtherPersonal(@Valid AppReportReqVO reqVO) { - OrgWorkerPageReqVO pageReqVO = new OrgWorkerPageReqVO().setOrgType(reqVO.getOrgType()).setGroupType(reqVO.getGroupType()); + OrgWorkerPageReqVO pageReqVO = new OrgWorkerPageReqVO().setOrgType(reqVO.getOrgType()) + .setGroupType(reqVO.getGroupType()).setWorkerId(reqVO.getUserId()); pageReqVO.setWorkDate(DateUtils.getDateRange(reqVO.getReportDate())); List orgWorkers = orgWorkerService.getOrgWorkerByReportResVo(pageReqVO); return success(appService.getOrgList(orgWorkers)); @@ -83,9 +84,8 @@ public class AppOrgWorkerController { @GetMapping("/getOtherPersonalUser") @Operation(summary = "获得用户列表") public CommonResult> getOtherPersonalUser(@Valid AppReportReqVO reqVO) { - - WorkTeamDO workTeamDO = new WorkTeamDO().setGroupType(reqVO.getGroupType().toString()) - .setTeamType(reqVO.getOrgType()); + WorkTeamDO workTeamDO = new WorkTeamDO().setTeamType(reqVO.getOrgType()); + if(reqVO.getGroupType()!=null) workTeamDO.setGroupType(reqVO.getGroupType().toString()); List workTeamDOList =workTeamService.getList(workTeamDO); List teamIds = workTeamDOList.stream().map(WorkTeamDO::getId).collect(Collectors.toList()); List doList = workTeamService.getDetailByWorkTeamIds(teamIds); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/producereport/ViewReportUserDateSummary.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/producereport/ViewReportUserDateSummary.java new file mode 100644 index 0000000000..8b55616e03 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/producereport/ViewReportUserDateSummary.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.producereport; + +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.math.BigDecimal; + +/** + * 以每人每日为基础,汇总每人每日的成品总数和废品总数 DO + * + * @author 内蒙必硕 + */ +@TableName("mes_view_report_user_date_summary") +@KeySequence("mes_view_report_user_date_summary_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ViewReportUserDateSummary { + + /** + * 工人 + */ + private Long userId; + /** + * 日期 + */ + private String reportDay; + /** + * 总数数量 + */ + private BigDecimal sumNumber; + /** + * 成品数量 + */ + private BigDecimal totalQualityNumber; + /** + * 废品数量 + */ + private BigDecimal totalWasteNumber; +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/producereport/ViewReportUserDateMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/producereport/ViewReportUserDateMapper.java new file mode 100644 index 0000000000..39dbc8f9bd --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/producereport/ViewReportUserDateMapper.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.producereport; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.mes.dal.dataobject.producereport.ViewReportUserDateSummary; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 报工工人日期汇总 Mapper + * + * @author 内蒙必硕 + */ +@Mapper +public interface ViewReportUserDateMapper extends BaseMapperX { + + default List selectBy(Long userId, String reportDay, String[]reportDays) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ViewReportUserDateSummary::getUserId, userId) + .eqIfPresent(ViewReportUserDateSummary::getReportDay, reportDay) + .betweenIfPresent(ViewReportUserDateSummary::getReportDay, reportDays) + .orderByDesc(ViewReportUserDateSummary::getReportDay)); + } +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportServiceImpl.java index d3486695e3..9a05f315fc 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportServiceImpl.java @@ -82,7 +82,11 @@ public class ProduceReportServiceImpl implements ProduceReportService { validateProduceReportExists(updateReqVO.getId()); // 更新 ProduceReportDO updateObj = BeanUtils.toBean(updateReqVO, ProduceReportDO.class); - produceReportMapper.updateById(updateObj); + ProduceReportDO oldObj = produceReportMapper.selectById(updateObj.getId()); + oldObj.setTotalTime(updateReqVO.getTotalTime()); + oldObj.setReportTime(updateReqVO.getReportTime()); + oldObj.setRemark(updateReqVO.getRemark()); + produceReportMapper.updateById(oldObj); // 更新子表 updateProduceReportDetailList(updateObj, updateReqVO.getProduceReportDetails()); @@ -157,10 +161,12 @@ public class ProduceReportServiceImpl implements ProduceReportService { private void updateProduceReportDetailList(ProduceReportDO reportDO, List list) { deleteProduceReportDetailByReportId(reportDO.getId()); + if(list==null ||list.size()==0)return; list.forEach(o -> o.setId(null).setReportStatus(reportDO.getReportStatus()) .setReportDate(reportDO.getReportDate()).setGroupType(reportDO.getGroupType()) .setOrgId(reportDO.getOrgId()).setOrgType(reportDO.getOrgType()) .setUserId(reportDO.getUserId()) + .setReportId(reportDO.getId()) .setUpdater(null).setUpdateTime(null) ); // 解决更新情况下:1)id 冲突;2)updateTime 不更新 createProduceReportDetailList(reportDO, list); diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index 6b8bf755fb..3425909c02 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -244,6 +244,7 @@ yudao: - iot_mqtt_record - mes_view_task_product_summary - mes_view_report_plan_summary + - mes_view_report_user_date_summary sms-code: # 短信验证码相关的配置项 expire-times: 10m send-frequency: 1m