|  |  | 
 |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
 |  |  | import com.vincent.rsf.framework.common.Cools; | 
 |  |  | import com.vincent.rsf.framework.common.R; | 
 |  |  | import com.vincent.rsf.framework.exception.CoolException; | 
 |  |  | import com.vincent.rsf.server.common.utils.ExcelUtil; | 
 |  |  | import com.vincent.rsf.server.common.annotation.OperationLog; | 
 |  |  | import com.vincent.rsf.server.common.domain.BaseParam; | 
 |  |  | import com.vincent.rsf.server.common.domain.KeyValVo; | 
 |  |  | import com.vincent.rsf.server.common.domain.PageParam; | 
 |  |  | import com.vincent.rsf.server.manager.controller.params.GenerateTaskParams; | 
 |  |  | import com.vincent.rsf.server.manager.controller.params.WaitPakinParam; | 
 |  |  | import com.vincent.rsf.server.manager.entity.BasStation; | 
 |  |  | import com.vincent.rsf.server.manager.entity.TaskItem; | 
 |  |  | import com.vincent.rsf.server.manager.entity.WaitPakin; | 
 |  |  | import com.vincent.rsf.server.manager.service.WaitPakinService; | 
 |  |  | import com.vincent.rsf.server.manager.entity.WaitPakinItem; | 
 |  |  | import com.vincent.rsf.server.manager.service.*; | 
 |  |  | import com.vincent.rsf.server.system.controller.BaseController; | 
 |  |  | import io.swagger.annotations.Api; | 
 |  |  | import io.swagger.annotations.ApiOperation; | 
 |  |  | import org.apache.commons.lang3.StringUtils; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.security.access.prepost.PreAuthorize; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  | import org.springframework.web.bind.annotation.*; | 
 |  |  |  | 
 |  |  | import javax.servlet.http.HttpServletResponse; | 
 |  |  | import java.util.*; | 
 |  |  | import java.util.stream.Collectors; | 
 |  |  |  | 
 |  |  | @Api(tags = "组拖通知档") | 
 |  |  | @RestController | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private WaitPakinService waitPakinService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private WaitPakinItemService waitPakinItemService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private BasStationService basStationService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private TaskService taskService; | 
 |  |  |     @Autowired | 
 |  |  |     private TaskItemService taskItemService; | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:waitPakin:list')") | 
 |  |  |     @PostMapping("/waitPakin/page") | 
 |  |  | 
 |  |  |     @PostMapping("/waitPakin/save") | 
 |  |  |     public R save(@RequestBody WaitPakin waitPakin) { | 
 |  |  |         waitPakin.setCreateBy(getLoginUserId()); | 
 |  |  |         waitPakin.setCreateTime(new Date()); | 
 |  |  |         waitPakin.setUpdateBy(getLoginUserId()); | 
 |  |  |         waitPakin.setUpdateTime(new Date()); | 
 |  |  |         if (Objects.isNull(waitPakin.getBarcode()) || StringUtils.isBlank(waitPakin.getBarcode())) { | 
 |  |  |             return R.error("拖盘码不能为空!!"); | 
 |  |  |         } | 
 |  |  |         List<WaitPakin> list = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, waitPakin.getBarcode())); | 
 |  |  |         if (!list.isEmpty()) { | 
 |  |  |             return R.error("拖盘已组拖!!"); | 
 |  |  |         } | 
 |  |  |         if (!waitPakinService.save(waitPakin)) { | 
 |  |  |             return R.error("Save Fail"); | 
 |  |  |         } | 
 |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:waitPakin:remove')") | 
 |  |  |     @OperationLog("Delete 组拖档") | 
 |  |  |     @PostMapping("/waitPakin/remove/{ids}") | 
 |  |  |     @Transactional(rollbackFor = Exception.class) | 
 |  |  |     public R remove(@PathVariable Long[] ids) { | 
 |  |  |         if (!waitPakinService.removeByIds(Arrays.asList(ids))) { | 
 |  |  |             return R.error("Delete Fail"); | 
 |  |  |         if (Arrays.asList(ids).isEmpty()) { | 
 |  |  |             return R.error("参数不能为空!!"); | 
 |  |  |         } | 
 |  |  |         return R.ok("Delete Success").add(ids); | 
 |  |  |         for (Long id : ids) { | 
 |  |  |             WaitPakin waitPakin = waitPakinService.getById(id); | 
 |  |  |             BasStation isBarcodeSta = basStationService.getOne(new LambdaQueryWrapper<BasStation>() | 
 |  |  |                             .eq(BasStation::getBarcode, waitPakin.getBarcode()) | 
 |  |  |                     ,false | 
 |  |  |             ); | 
 |  |  |             if (!Cools.isEmpty(isBarcodeSta)){ | 
 |  |  |                 throw new CoolException("该条码已被"+isBarcodeSta.getStationName()+"站绑定"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return waitPakinService.removePakin(Arrays.asList(ids)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:waitPakin:list')") | 
 |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:waitPakin:update')") | 
 |  |  |     @ApiOperation("组拖") | 
 |  |  |     @ApiOperation("生成任务列表") | 
 |  |  |     @PostMapping("/waitPakin/merge") | 
 |  |  |     public R pikinOrder(@RequestBody WaitPakinParam waitPakin) { | 
 |  |  |         if (Objects.isNull(waitPakin)) { | 
 |  |  |             return R.error("参数不能为空!!"); | 
 |  |  |     public R generateTask(@RequestBody GenerateTaskParams taskParams) { | 
 |  |  |         if (Objects.isNull(taskParams)) { | 
 |  |  |             throw new CoolException("参数不能为空!!"); | 
 |  |  |         } | 
 |  |  |         if (StringUtils.isBlank(waitPakin.getBarcode())) { | 
 |  |  |             return R.error("托盘码不能为空!!"); | 
 |  |  |         if (Objects.isNull(taskParams.getWaitPakins()) || taskParams.getWaitPakins().isEmpty()) { | 
 |  |  |             throw new CoolException("组拖档不能为空!!"); | 
 |  |  |         } | 
 |  |  |         if (Objects.isNull(waitPakin.getItems()) || waitPakin.getItems().isEmpty()) { | 
 |  |  |             return R.error("跟踪码不能为空!!"); | 
 |  |  |         } | 
 |  |  |         return R.ok(waitPakinService.mergeItems(waitPakin)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:waitPakin:update')") | 
 |  |  |     @ApiOperation("组拖解绑") | 
 |  |  |     @PostMapping("/waitPakin/unbind") | 
 |  |  |     public R pakinUnBind(@RequestBody WaitPakinParam param) { | 
 |  |  |         if (Objects.isNull(param)) { | 
 |  |  |             return R.error("参数不能为空!!"); | 
 |  |  |         } | 
 |  |  |         if (StringUtils.isBlank(param.getBarcode())) { | 
 |  |  |             return R.error("托盘码不能为空!!"); | 
 |  |  |         } | 
 |  |  |         if (Objects.isNull(param.getItems()) || param.getItems().isEmpty()) { | 
 |  |  |             return R.error("跟踪码不能为空!!"); | 
 |  |  |         } | 
 |  |  |         return R.ok(waitPakinService); | 
 |  |  |  | 
 |  |  |         return  taskService.generateTasks(taskParams, getLoginUserId()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |