rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -430,7 +430,7 @@ detlsDto.setAsnCode(asnOrderItem.getAsnCode()) .setMaktx(asnOrderItem.getMaktx()) .setBarcode(asnOrderItem.getBarcode()) .setBarcode(asnOrderItem.getTrackCode()) .setPoCode(asnOrderItem.getPoCode()) .setAnfme(asnOrderItem.getAnfme()) .setPurQty(asnOrderItem.getPurQty()) rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
@@ -10,10 +10,13 @@ import com.vincent.rsf.server.common.domain.KeyValVo; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.entity.Task; import com.vincent.rsf.server.manager.entity.TaskItem; import com.vincent.rsf.server.manager.service.TaskItemService; import com.vincent.rsf.server.manager.service.TaskService; import com.vincent.rsf.server.system.controller.BaseController; 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; @@ -24,6 +27,9 @@ @Autowired private TaskService taskService; @Autowired private TaskItemService taskItemService; @PreAuthorize("hasAuthority('manager:task:list')") @PostMapping("/task/page") @@ -80,10 +86,17 @@ @PreAuthorize("hasAuthority('manager:task:remove')") @OperationLog("Delete 任务工作档") @PostMapping("/task/remove/{ids}") @Transactional(rollbackFor = Exception.class) public R remove(@PathVariable Long[] ids) { if (Objects.isNull(ids) || ids.length < 1) { return R.error("参数不能为空!!"); } if (!taskService.removeByIds(Arrays.asList(ids))) { return R.error("Delete Fail"); } if (!taskItemService.remove(new LambdaQueryWrapper<TaskItem>().in(TaskItem::getTaskId, ids))) { return R.error("删除失败!!"); } return R.ok("Delete Success").add(ids); } rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/QlyInspect.java
@@ -174,6 +174,17 @@ // null // 备注 // ); public String getwkType$() { if (null == this.wkType) {return null;} DictDataService dictDataService = SpringUtils.getBean(DictDataService.class); DictData dictDatas = dictDataService.getOne(new LambdaQueryWrapper<DictData>() .eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_BUSINESS_TYPE) .eq(DictData::getValue, this.wkType)); if (Objects.isNull(dictDatas) || Objects.isNull(dictDatas.getLabel())) { return null; } return dictDatas.getLabel(); } public String getIsptStatus$() { if (null == this.isptStatus) {return null;} rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java
@@ -1,8 +1,12 @@ package com.vincent.rsf.server.manager.entity; import java.text.SimpleDateFormat; import java.util.Date; import java.util.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.server.system.constant.DictTypeCode; import com.vincent.rsf.server.system.entity.DictData; import com.vincent.rsf.server.system.service.DictDataService; import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; import java.text.SimpleDateFormat; @@ -143,7 +147,6 @@ * 是否删除 1: 是 0: 否 */ @ApiModelProperty(value= "是否删除 1: 是 0: 否 ") @TableLogic private Integer deleted; /** @@ -234,6 +237,34 @@ // null // 备注 // ); public String getTaskStatus$(){ if (Cools.isEmpty(this.taskStatus)) { return null; } DictDataService dictDataService = SpringUtils.getBean(DictDataService.class); DictData dictDatas = dictDataService.getOne(new LambdaQueryWrapper<DictData>() .eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_TASK_STATUS) .eq(DictData::getValue, this.taskStatus)); if (Objects.isNull(dictDatas) || Objects.isNull(dictDatas.getLabel())) { return null; } return dictDatas.getLabel(); } public String getTaskType$() { if (Cools.isEmpty(this.taskType)) { return null; } DictDataService dictDataService = SpringUtils.getBean(DictDataService.class); DictData dictDatas = dictDataService.getOne(new LambdaQueryWrapper<DictData>() .eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_TASK_TYPE) .eq(DictData::getValue, this.taskType)); if (Objects.isNull(dictDatas) || Objects.isNull(dictDatas.getLabel())) { return null; } return dictDatas.getLabel(); } public String getStartTime$(){ if (Cools.isEmpty(this.startTime)){ return ""; rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java
@@ -43,11 +43,23 @@ List<QlyIsptItem> isptItem = params.getIsptItem(); List<Long> list = isptItem.stream().map(QlyIsptItem::getId).collect(Collectors.toList()); if (params.getType().equals("2") || params.getType().equals("1")) { if (!this.update(new LambdaUpdateWrapper<QlyIsptItem>() .set(QlyIsptItem::getIsptResult, params.getType()) .in(QlyIsptItem::getId, list))) { throw new CoolException("修改失败!!"); } isptItem.forEach(item -> { if (params.getType().equals("1")) { //TODO 先捡后收为送货数量,先收后捡为收货数量 item.setSafeQty(item.getDlyQty()); item.setDisQty(0.0); } else { item.setSafeQty(0.0); item.setDisQty(item.getDlyQty()); } if (!this.update(new LambdaUpdateWrapper<QlyIsptItem>() .set(QlyIsptItem::getSafeQty, item.getSafeQty()) .set(QlyIsptItem::getIsptResult, params.getType()) .set(QlyIsptItem::getDisQty, item.getDisQty()) .in(QlyIsptItem::getId, item.getId()))) { throw new CoolException("修改失败!!"); } }); } else { if (!this.updateBatchById(isptItem)) { throw new CoolException("明细修改失败"); @@ -63,7 +75,7 @@ QlyInspect inspect = qlyInspectService.getById(key); List<QlyIsptItem> items = listMap.get(key); Double safeQty = items.stream().mapToDouble(QlyIsptItem::getSafeQty).sum(); Double rcptQty = items.stream().mapToDouble(QlyIsptItem::getSafeQty).sum(); Double dlyQty = items.stream().mapToDouble(QlyIsptItem::getDlyQty).sum(); Double disQty = items.stream().mapToDouble(QlyIsptItem::getDisQty).sum(); Double qlyQty = safeQty + disQty; //安全数量,质检数量 @@ -72,7 +84,8 @@ if (Double.compare(disQty, 0) > 0) { inspect.setIsptResult(Short.parseShort("4")); } if (Double.compare(safeQty, rcptQty) == 0) { if (Double.compare(safeQty, dlyQty) == 0) { inspect.setIsptStatus("1"); inspect.setIsptResult(Short.parseShort("1")); } if (!qlyInspectService.updateById(inspect)) { rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -55,38 +55,28 @@ if (waitPakins.isEmpty()) { throw new CoolException("组拖信息不存在!!"); } /**获取组拖明细**/ List<WaitPakinItem> waitPakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().in(WaitPakinItem::getPakinId, ids)); if (waitPakinItems.isEmpty()) { throw new CoolException("数据错误:组拖明细不存在"); } String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TASK_CODE, null); if (StringUtils.isBlank(ruleCode)) { throw new CoolException("编码错误:请确认编码「SYS_TASK_CODE」是否已生成!!"); } List<Task> tasks = new ArrayList<>(); waitPakins.forEach(pakin -> { List<TaskItem> taskItems = new ArrayList<>(); String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TASK_CODE, null); if (StringUtils.isBlank(ruleCode)) { throw new CoolException("编码错误:请确认编码「SYS_TASK_CODE」是否已生成!!"); } Task task = new Task(); task.setTaskCode(ruleCode) .setTaskStatus(TaskStsType.GENERATE_IN.id.shortValue()) .setTaskStatus(TaskType.TASK_TYPE_IN.type.shortValue()) .setTaskType(TaskType.TASK_TYPE_IN.type.shortValue()) .setTargLoc(LocManageUtil.getTargetLoc()) .setBarcode(pakin.getBarcode()) .setTargSite(LocManageUtil.getTargetSite()); tasks.add(task); }); if (!this.saveBatch(tasks)) { throw new CoolException("任务保存失败!!"); } List<Long> orderIds = tasks.stream().map(Task::getId).collect(Collectors.toList()); List<Task> taskList = this.list(new LambdaQueryWrapper<Task>().in(Task::getId, orderIds)); if (taskList.isEmpty()) { throw new CoolException("数据错误:订单ID不能为空!!"); } for (Task task : taskList) { List<TaskItem> taskItems = new ArrayList<>(); if (!this.save(task)) { throw new CoolException("任务保存失败!!"); } /**获取组拖明细**/ List<WaitPakinItem> waitPakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().eq(WaitPakinItem::getPakinId, pakin.getId())); if (waitPakinItems.isEmpty()) { throw new CoolException("数据错误:组拖明细不存在"); } waitPakinItems.forEach(item -> { TaskItem taskItem = new TaskItem(); BeanUtils.copyProperties(item, taskItem); @@ -100,7 +90,9 @@ if (!taskItemService.saveBatch(taskItems)) { throw new CoolException("任务明细保存失败!!"); } } }); //TODO 任务生成完成需修改任务ASN订单状态为执行中,组拖删除需判断是否有子任务在执行 return R.ok("任务生成完毕!"); } rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java
@@ -27,7 +27,7 @@ Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type), false); return Objects.isNull(loc) ? loc.getCode() : null; return !Objects.isNull(loc) ? loc.getCode() : null; } @@ -42,6 +42,6 @@ //TODO 站点策略后续排期 DeviceSiteService deviceSite = SpringUtils.getBean(DeviceSiteService.class); DeviceSite loc = deviceSite.getOne(new LambdaQueryWrapper<DeviceSite>().eq(DeviceSite::getStatus, 1), false); return Objects.isNull(loc) ? loc.getSite() : null; return !Objects.isNull(loc) ? loc.getSite() : null; } } rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
@@ -20,6 +20,11 @@ public final static String DICT_SYS_TASK_TYPE = "sys_task_type"; /** * 任务状态 */ public final static String DICT_SYS_TASK_STATUS = "sys_task_status"; /** * 设备类型 */ public final static String DICT_SYS_DEVICE_TYPE = "sys_device_type";