package com.chinaztt.mes.production.controller; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.thread.ThreadUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.chinaztt.mes.production.entity.ArtificialInformation; import com.chinaztt.mes.production.service.ArtificialInformationService; import com.chinaztt.mes.production.service.DutyRecordService; import com.chinaztt.mes.production.util.BackUtils; import com.chinaztt.ztt.common.core.util.R; import com.chinaztt.ztt.common.log.annotation.SysLog; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * 杂工明细 * * @author cxf * @date 2021-01-21 13:22:22 */ @RestController @AllArgsConstructor @RequestMapping("/artificialInformation") @Api(value = "artificialInformation", tags = "杂工明细管理") public class ArtificialInformationController { private final ArtificialInformationService artificialInformationService; private final DutyRecordService dutyRecordService; private final BackUtils backUtils; /** * 分页查询 * * @param page 分页对象 * @param artificialInformation 杂工明细 * @return */ @ApiOperation(value = "分页查询", notes = "分页查询") @GetMapping("/page") public R getProductionArtificialInformationPage(Page page, ArtificialInformation artificialInformation) { return R.ok(artificialInformationService.page(page, Wrappers.query(artificialInformation))); } /** * 根据上班记录查询杂工记录 * * @param dutyRecordIdList * @return */ @ApiOperation(value = "根据上班记录查询杂工记录", notes = "根据上班记录查询杂工记录") @GetMapping("/getArtificialInformationByDutyRecordId") public R getArtificialInformationByDutyRecordId(@RequestParam("dutyRecordIdList") List dutyRecordIdList) { return R.ok(artificialInformationService.getArtificialInformationByDutyRecordId(dutyRecordIdList)); } /** * 查询工时计算杂工记录 * * @param artificialInformation * @returna */ @ApiOperation(value = "查询工时计算杂工记录", notes = "查询工时计算杂工记录") @GetMapping("/getComputationArtificialInformation") public R getComputationArtificialInformation(ArtificialInformation artificialInformation) { return R.ok(artificialInformationService.getComputationArtificialInformation(artificialInformation)); } /** * 根据班次list,杂工类型查询工时计算杂工记录 * * @param dutyRecordIdList * @param handymanTypeId * @returna */ @ApiOperation(value = "根据班次list,杂工类型查询工时计算杂工记录", notes = "根据班次list,杂工类型查询工时计算杂工记录") @GetMapping("/getComputationArtificialInformationByList") public R getComputationArtificialInformationByList(@RequestParam("dutyRecordIdList")List dutyRecordIdList,@RequestParam("handymanTypeId")Long handymanTypeId) { return R.ok(artificialInformationService.getComputationArtificialInformationByList(dutyRecordIdList,handymanTypeId)); } /** * 根据上班记录查询人工项目(前端两处要修改) * * @param dutyRecordIdList * @return */ @ApiOperation(value = "根据上班记录查询人工项目", notes = "根据上班记录查询人工项目") @GetMapping("/getHandymanTypeByDutyRecordId") public R getHandymanTypeByDutyRecordId(@RequestParam("dutyRecordIdList") List dutyRecordIdList) { return R.ok(artificialInformationService.getHandymanTypeByDutyRecordId(dutyRecordIdList)); } /** * 通过id查询杂工明细 * * @param id id * @return R */ @ApiOperation(value = "通过id查询", notes = "通过id查询") @GetMapping("/{id}") public R getById(@PathVariable("id") Long id) { return R.ok(artificialInformationService.getById(id)); } /** * 批量新增杂工明细 * * @param artificialInformationList 杂工明细 * @return R */ @ApiOperation(value = "批量新增杂工明细", notes = "批量新增杂工明细") @SysLog("批量新增杂工明细") @PostMapping("/batch") public R save(@RequestBody List artificialInformationList) { List ids = artificialInformationService.saveList(artificialInformationList); backUtils.backArtificialInformationByIds(ids, "新增"); if (CollectionUtil.isNotEmpty(artificialInformationList)) { Long dutyRecordId = artificialInformationList.get(0).getDutyRecordId(); ThreadUtil.execute(() -> dutyRecordService.refreshPendingById(dutyRecordId)); } return R.ok(true); } /** * 新增杂工明细 * * @param artificialInformation 杂工明细 * @return R */ @ApiOperation(value = "新增杂工明细", notes = "新增杂工明细") @SysLog("新增杂工明细") @PostMapping public R save(@RequestBody ArtificialInformation artificialInformation) { artificialInformationService.save(artificialInformation); backUtils.backArtificialInformationByIds(Arrays.asList(artificialInformation.getId()), "新增"); Long dutyRecordId = artificialInformation.getDutyRecordId(); ThreadUtil.execute(() -> dutyRecordService.refreshPendingById(dutyRecordId)); return R.ok(artificialInformation.getId()); } /** * 修改杂工明细 * * @param artificialInformation 杂工明细 * @return R */ @ApiOperation(value = "修改杂工明细", notes = "修改杂工明细") @SysLog("修改杂工明细") @PutMapping public R updateById(@RequestBody ArtificialInformation artificialInformation) { boolean result = artificialInformationService.updateById(artificialInformation); backUtils.backArtificialInformationByIds(Arrays.asList(artificialInformation.getId()), "修改"); return R.ok(result); } /** * 检验个人工时 * * @param artificialInformation 杂工明细 * @return R */ @ApiOperation(value = "检验个人工时", notes = "检验个人工时") @SysLog("检验个人工时") @PostMapping("checkPersonDutyTimeById") public R checkPersonDutyTimeById(@RequestBody ArtificialInformation artificialInformation) { return R.ok(null, artificialInformationService.checkPersonDutyTimeById(artificialInformation)); } /** * 批量修改杂工明细 * * @param artificialInformationList * @return R */ @ApiOperation(value = "修改杂工明细", notes = "修改杂工明细") @SysLog("修改杂工明细") @PostMapping("update") public R update(@RequestBody List artificialInformationList) { artificialInformationService.updateBatchById(artificialInformationList); List ids = artificialInformationList.stream().map(ArtificialInformation::getId).collect(Collectors.toList()); backUtils.backArtificialInformationByIds(ids, "修改"); return R.ok(); } /** * 批量检验个人工时 * * @param artificialInformationList 杂工明细 * @return R */ @ApiOperation(value = "批量检验个人工时", notes = "批量检验个人工时") @SysLog("批量检验个人工时") @PostMapping("checkPersonDutyTime") public R checkPersonDutyTime(@RequestBody List artificialInformationList) { return R.ok(null, artificialInformationService.checkPersonDutyTime(artificialInformationList)); } /** * 通过id删除杂工明细 * * @param id id * @return R */ @ApiOperation(value = "通过id删除杂工明细", notes = "通过id删除杂工明细") @SysLog("通过id删除杂工明细") @DeleteMapping("/{id}") public R removeById(@PathVariable Long id) { ArtificialInformation artificialInformation = artificialInformationService.getById(id); backUtils.backDeleteArtificialInformationByIds(Arrays.asList(id)); artificialInformationService.removeById(id); Long dutyRecordId = artificialInformation.getDutyRecordId(); ThreadUtil.execute(() -> dutyRecordService.refreshPendingById(dutyRecordId)); return R.ok(); } /** * 删除杂工明细 * * @param artificialInformation 杂工明细 * @return R */ @ApiOperation(value = "删除杂工明细", notes = "删除杂工明细") @SysLog("删除杂工明细") @PostMapping("/delete") public R delete(@RequestBody ArtificialInformation artificialInformation) { List list = artificialInformationService.list((Wrappers.lambdaQuery() .eq(ArtificialInformation::getDutyRecordId, artificialInformation.getDutyRecordId()) .eq(ArtificialInformation::getHandymanTypeId, artificialInformation.getHandymanTypeId()))); List ids = list.stream().map(ArtificialInformation::getId).collect(Collectors.toList()); backUtils.backDeleteArtificialInformationByIds(ids); artificialInformationService.removeByIds(ids); Long dutyRecordId = artificialInformation.getDutyRecordId(); ThreadUtil.execute(() -> dutyRecordService.refreshPendingById(dutyRecordId)); return R.ok(); } }