diff --git a/src/main/java/com/huaheng/pc/config/configValue/controller/ConfigValueController.java b/src/main/java/com/huaheng/pc/config/configValue/controller/ConfigValueController.java index 8afc2d8..153a6ec 100644 --- a/src/main/java/com/huaheng/pc/config/configValue/controller/ConfigValueController.java +++ b/src/main/java/com/huaheng/pc/config/configValue/controller/ConfigValueController.java @@ -16,6 +16,8 @@ import com.huaheng.framework.web.page.TableDataInfo; import com.huaheng.framework.web.page.TableSupport; import com.huaheng.pc.config.configValue.domain.ConfigValue; import com.huaheng.pc.config.configValue.service.ConfigValueService; +import com.huaheng.pc.config.cycleCountPreference.domain.CycleCountPreference; +import com.huaheng.pc.config.cycleCountPreference.service.CycleCountPreferenceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -35,6 +37,8 @@ public class ConfigValueController extends BaseController { @Resource private ConfigValueService configValueService; + @Resource + private CycleCountPreferenceService cycleCountPreferenceService; private String prefix = "config/configValue"; @@ -96,6 +100,17 @@ public class ConfigValueController extends BaseController { @PostMapping("/add") @ResponseBody public AjaxResult addSave(ConfigValue configValue) { + //检测盘点首选项是否停用 + if(configValue.getRecordType().equals("cycleCountPreference")){ + CycleCountPreference cycleCountPreferenceTemp = new CycleCountPreference(); + cycleCountPreferenceTemp.setCode(configValue.getIdentifier()); + cycleCountPreferenceTemp.setWarehouseCode(configValue.getWarehouseCode()); + LambdaQueryWrapper<CycleCountPreference> preferenceLambdaQueryWrapper = Wrappers.lambdaQuery(cycleCountPreferenceTemp); + CycleCountPreference cycleCountPreference = cycleCountPreferenceService.getOne(preferenceLambdaQueryWrapper); + if(cycleCountPreference.getEnable() == false){ + return AjaxResult.error("不能添加已停用的盘点首选项!"); + } + } configValue.setWarehouseCode(ShiroUtils.getWarehouseCode()); configValue.setCreatedBy(ShiroUtils.getLoginName()); configValue.setLastUpdatedBy(ShiroUtils.getLoginName()); diff --git a/src/main/java/com/huaheng/pc/config/cycleCountPreference/controller/cycleCountPreferenceController.java b/src/main/java/com/huaheng/pc/config/cycleCountPreference/controller/cycleCountPreferenceController.java index 0a34cf0..8637304 100644 --- a/src/main/java/com/huaheng/pc/config/cycleCountPreference/controller/cycleCountPreferenceController.java +++ b/src/main/java/com/huaheng/pc/config/cycleCountPreference/controller/cycleCountPreferenceController.java @@ -14,6 +14,8 @@ import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.framework.web.page.PageDomain; import com.huaheng.framework.web.page.TableDataInfo; import com.huaheng.framework.web.page.TableSupport; +import com.huaheng.pc.config.configValue.domain.ConfigValue; +import com.huaheng.pc.config.configValue.service.ConfigValueService; import com.huaheng.pc.config.cycleCountPreference.domain.CycleCountPreference; import com.huaheng.pc.config.cycleCountPreference.service.CycleCountPreferenceService; import com.huaheng.pc.config.receiptPreference.domain.ReceiptPreference; @@ -36,6 +38,8 @@ public class cycleCountPreferenceController extends BaseController { @Resource private CycleCountPreferenceService cycleCountPreferenceService; + @Resource + private ConfigValueService configValueService; private String prefix = "config/cycleCountPreference"; @@ -126,6 +130,19 @@ public class cycleCountPreferenceController extends BaseController { @PostMapping("/edit") @ResponseBody public AjaxResult editSave(CycleCountPreference cycleCountPreference) { + //不允许在被配置默认使用的情况先停用首选项 + if(cycleCountPreference.getEnable() == false){ + ConfigValue configValueTemp = new ConfigValue(); + configValueTemp.setModuleType("cyclecount"); + configValueTemp.setWarehouseCode(cycleCountPreference.getWarehouseCode()); + LambdaQueryWrapper<ConfigValue> configValueLambdaQueryWrapper = Wrappers.lambdaQuery(configValueTemp); + ConfigValue configValue = configValueService.getOne(configValueLambdaQueryWrapper); + if(configValue != null){ + if(configValue.getIdentifier().equals(cycleCountPreference.getCode())){ + return AjaxResult.error("该盘点首选项为系统配置默认选项,请删除系统配置中的选项再停用,修改失败!"); + } + } + } cycleCountPreference.setLastUpdatedBy(ShiroUtils.getLoginName()); cycleCountPreference.setLastUpdated(new Date()); return toAjax(cycleCountPreferenceService.updateById(cycleCountPreference)); diff --git a/src/main/java/com/huaheng/pc/config/cycleCountPreference/service/CycleCountPreferenceService.java b/src/main/java/com/huaheng/pc/config/cycleCountPreference/service/CycleCountPreferenceService.java index e471698..353d69d 100644 --- a/src/main/java/com/huaheng/pc/config/cycleCountPreference/service/CycleCountPreferenceService.java +++ b/src/main/java/com/huaheng/pc/config/cycleCountPreference/service/CycleCountPreferenceService.java @@ -21,8 +21,6 @@ import org.springframework.transaction.annotation.Transactional; public class CycleCountPreferenceService extends ServiceImpl<CycleCountPreferenceMapper, CycleCountPreference> { - @Resource - private CycleCountDetailService cycleCountDetailService; diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java index 2b52eda..e07416a 100644 --- a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailServiceImpl.java @@ -482,6 +482,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap List<CycleCountDetail> cycs = new ArrayList<>(); /* 根据当前明细条目的盘点首选Code,取出显示要求,再根据显示要求隐藏或显示字段*/ + /*//配置表 ConfigValue configValue = new ConfigValue(); configValue.setModuleType("cyclecount"); @@ -503,9 +504,6 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap if(cycleCountPreference == null){ throw new SecurityException("没有对应的盘点首选项!"); } - if(cycleCountPreference.getEnable() == false){ - throw new SecurityException("当前默认选中盘点首选项已停用!"); - } //判断字段 if(cycleCountPreference.getPromptLocation() == false){ //库位 diff --git a/src/main/java/com/huaheng/pc/task/taskDetail/controller/TaskDetailController.java b/src/main/java/com/huaheng/pc/task/taskDetail/controller/TaskDetailController.java index beffabf..e85401e 100644 --- a/src/main/java/com/huaheng/pc/task/taskDetail/controller/TaskDetailController.java +++ b/src/main/java/com/huaheng/pc/task/taskDetail/controller/TaskDetailController.java @@ -9,6 +9,7 @@ import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.web.page.PageDomain; import com.huaheng.framework.web.page.TableSupport; import com.huaheng.pc.task.taskDetail.service.TaskDetailService; +import com.huaheng.pc.task.taskHeader.domain.TaskHeader; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -41,6 +42,9 @@ public class TaskDetailController extends BaseController @Resource private TaskDetailService taskDetailService; + + + @RequiresPermissions("task:taskHeader:view") @GetMapping("/{taskId}") public String taskDetail(@PathVariable("taskId") String taskId, ModelMap mmap) @@ -67,17 +71,32 @@ public class TaskDetailController extends BaseController Integer pageSize = pageDomain.getPageSize(); /** * 使用分页查询 + * 700盘点 */ if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ Page<TaskDetail> page = new Page<>(pageNum, pageSize); IPage<TaskDetail> iPage = taskDetailService.page(page, lambdaQueryWrapper); - return getMpDataTable(iPage.getRecords(), iPage.getTotal()); + List<TaskDetail> iPages = iPage.getRecords(); + for(TaskDetail item:iPages){ + if(item.getTaskType() == 700){ + iPages = taskDetailService.preferenceRealize(iPages) ; + } + } + return getMpDataTable(iPages, iPage.getTotal()); } else { List<TaskDetail> list = taskDetailService.list(lambdaQueryWrapper); + for(TaskDetail items:list){ + if(items.getTaskType() == 700){ + list = taskDetailService.preferenceRealize(list); + } + } return getDataTable(list); } - } + + + + // /** // * 新增立库任务明细 // */ diff --git a/src/main/java/com/huaheng/pc/task/taskDetail/service/TaskDetailService.java b/src/main/java/com/huaheng/pc/task/taskDetail/service/TaskDetailService.java index f5ac425..774d896 100644 --- a/src/main/java/com/huaheng/pc/task/taskDetail/service/TaskDetailService.java +++ b/src/main/java/com/huaheng/pc/task/taskDetail/service/TaskDetailService.java @@ -1,8 +1,14 @@ package com.huaheng.pc.task.taskDetail.service; +import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; import com.huaheng.pc.task.taskDetail.domain.TaskDetail; import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + public interface TaskDetailService extends IService<TaskDetail>{ + List<TaskDetail> preferenceRealize (List<TaskDetail> cycleCoutDetailList); + } diff --git a/src/main/java/com/huaheng/pc/task/taskDetail/service/TaskDetailServiceImpl.java b/src/main/java/com/huaheng/pc/task/taskDetail/service/TaskDetailServiceImpl.java index 2b2343f..710916b 100644 --- a/src/main/java/com/huaheng/pc/task/taskDetail/service/TaskDetailServiceImpl.java +++ b/src/main/java/com/huaheng/pc/task/taskDetail/service/TaskDetailServiceImpl.java @@ -1,13 +1,97 @@ package com.huaheng.pc.task.taskDetail.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.huaheng.pc.config.configValue.domain.ConfigValue; +import com.huaheng.pc.config.configValue.service.ConfigValueService; +import com.huaheng.pc.config.cycleCountPreference.domain.CycleCountPreference; +import com.huaheng.pc.config.cycleCountPreference.service.CycleCountPreferenceService; +import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; +import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; +import java.util.WeakHashMap; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.huaheng.pc.task.taskDetail.mapper.TaskDetailMapper; import com.huaheng.pc.task.taskDetail.domain.TaskDetail; import com.huaheng.pc.task.taskDetail.service.TaskDetailService; +import org.springframework.transaction.annotation.Transactional; + @Service public class TaskDetailServiceImpl extends ServiceImpl<TaskDetailMapper, TaskDetail> implements TaskDetailService{ + + @Resource + private CycleCountDetailService cycleCountDetailService; + @Resource + private CycleCountPreferenceService cycleCountPreferenceService; + + + + + + /** + * 盘点任务首选项 + * @param taskDetailList + * @return + */ + @Transactional + @Override + public List<TaskDetail> preferenceRealize(List<TaskDetail> taskDetailList) { + /*查出盘点明细,找出盘点首选项,根据首选项显示字段*/ + List<TaskDetail> taskDetails = new ArrayList<>(); + + for (TaskDetail item:taskDetailList){ + //盘点明细 + CycleCountDetail cycleCountDetailtemp = new CycleCountDetail(); + cycleCountDetailtemp.setCycleCountHeadCode(item.getBillCode()); + cycleCountDetailtemp.setId(item.getBillDetailId()); + LambdaQueryWrapper<CycleCountDetail> detailLambdaQueryWrapper = Wrappers.lambdaQuery(cycleCountDetailtemp); + CycleCountDetail cycleCountDetail = cycleCountDetailService.getOne(detailLambdaQueryWrapper); + if(cycleCountDetail == null){ + throw new SecurityException("没有找到子任务对应的盘点明细!"); + } + //找盘点首选项 + CycleCountPreference cycleCountPreferenceTemp = new CycleCountPreference(); + cycleCountPreferenceTemp.setCode(cycleCountDetail.getPreferenceCode()); + cycleCountPreferenceTemp.setWarehouseCode(cycleCountDetail.getWarehouseCode()); + LambdaQueryWrapper<CycleCountPreference> preferenceLambdaQueryWrapper = Wrappers.lambdaQuery(cycleCountPreferenceTemp); + CycleCountPreference cycleCountPreference = cycleCountPreferenceService.getOne(preferenceLambdaQueryWrapper); + if(cycleCountPreference == null){ + throw new SecurityException("没有找到盘点首选项!"); + } + //根据首选项判断数据 + if(cycleCountPreference.getPromptLocation() == false){ + //库位 + item.setFromLocation(""); + item.setToLocation(""); + } + if(cycleCountPreference.getPromptLpn() == false){ + //容器 + item.setContainerCode(""); + } + if(cycleCountPreference.getPromptItem() == false){ + //物料 + item.setMaterialCode(""); + item.setMaterialName(""); + item.setMaterialUnit(""); + } + if(cycleCountPreference.getPromptQuantity() == false){ + //系统数量 + item.setQty(null); + } + taskDetails.add(item); + } + return taskDetails; + } + + + + + + + } diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java b/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java index 28da9f8..ff86b47 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java @@ -16,6 +16,9 @@ import com.huaheng.framework.web.page.TableDataInfo; import com.huaheng.framework.web.page.TableSupport; import com.huaheng.pc.config.material.service.MaterialService; import com.huaheng.pc.config.warehouse.domain.Warehouse; +import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; +import com.huaheng.pc.task.taskDetail.domain.TaskDetail; +import com.huaheng.pc.task.taskDetail.service.TaskDetailService; import com.huaheng.pc.task.taskHeader.domain.TaskHeader; import com.huaheng.pc.task.taskHeader.mapper.TaskHeaderMapper; import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; @@ -36,23 +39,23 @@ import java.util.List; public class TaskHeaderController extends BaseController { + + @Resource + private TaskHeaderService taskHeaderService; + + + private String prefix = "task/taskHeader"; + @RequiresPermissions("task:taskHeader:view") @GetMapping() public String taskHeader(HttpServletRequest request, ModelMap mmap) { - String InternalTaskType= request.getParameter("InternalTaskType"); + String InternalTaskType= request.getParameter("InternalTaskType"); mmap.put("InternalTaskType",InternalTaskType); return prefix + "/taskHeader"; } - - @Resource - private TaskHeaderService taskHeaderService; - - - - /** * 查询任务列表 */ @@ -83,14 +86,20 @@ public class TaskHeaderController extends BaseController { if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ Page<TaskHeader> page = new Page<>(pageNum, pageSize); IPage<TaskHeader> iPage = taskHeaderService.page(page, lambdaQueryWrapper); - return getMpDataTable(iPage.getRecords(), iPage.getTotal()); + List<TaskHeader> iPages = iPage.getRecords(); + if(InternalTaskType == 700){ + iPages = taskHeaderService.preferenceRealize(iPages) ; + } + return getMpDataTable(iPages, iPage.getTotal()); } else { List<TaskHeader> list = taskHeaderService.list(lambdaQueryWrapper); + if(InternalTaskType == 700){ + list = taskHeaderService.preferenceRealize(list); + } return getDataTable(list); } } - /** * 下发任务 */ diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java index 24a90d6..c246e27 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java @@ -1,6 +1,7 @@ package com.huaheng.pc.task.taskHeader.service; import com.huaheng.framework.web.domain.AjaxResult; +import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; import com.huaheng.pc.task.taskHeader.domain.ShipmentTaskCreateModel; import com.huaheng.pc.task.taskHeader.domain.TaskHeader; import com.baomidou.mybatisplus.extension.service.IService; @@ -24,7 +25,6 @@ public interface TaskHeaderService extends IService<TaskHeader>{ AjaxResult createTransferTask(String sourceLocation, String destinationLocation); - AjaxResult createCheckOutTask(String[] ids); AjaxResult completeSeeOutTask(TaskHeader taskHeader); @@ -39,5 +39,7 @@ public interface TaskHeaderService extends IService<TaskHeader>{ AjaxResult cancelTask(Integer[] taskIds) ; + List<TaskHeader> preferenceRealize (List<TaskHeader> taskHeaderList); + } diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java index f27dbd7..d62aa4f 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java @@ -106,6 +106,24 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea private TaskAssignService taskAssignService; + /** + * 盘点任务首选项 + * @param taskHeaderList + * @return + */ + @Transactional + @Override + public List<TaskHeader> preferenceRealize(List<TaskHeader> taskHeaderList) { + //任务头,默认不显示库位,容器。 + List<TaskHeader> taskHeaders = new ArrayList<>(); + for(TaskHeader item:taskHeaderList){ + item.setFromLocation(""); + item.setToLocation(""); + item.setContainerCode(""); + taskHeaders.add(item); + } + return taskHeaders; + } /** * 查询容器有无任务 diff --git a/src/main/resources/templates/task/taskHeader/taskHeader.html b/src/main/resources/templates/task/taskHeader/taskHeader.html index 5749be0..506ddcc 100644 --- a/src/main/resources/templates/task/taskHeader/taskHeader.html +++ b/src/main/resources/templates/task/taskHeader/taskHeader.html @@ -283,11 +283,11 @@ }, { field : 'id', - title : '明细Id' + title : '明细ID' }, { field : 'taskId', - title : '任务Id', + title : '任务头ID', sortable: true }, { @@ -295,17 +295,23 @@ title : '单据编码', }, { + field : 'billDetailId', + title : '单据明细ID', + sortable: true, + visible:true, + }, + { field : 'materialCode', - title : '存货编码', - sortable: true + title : '物料编码', + }, { field : 'materialName', title : '物料名称', - sortable:true + }, { - field : 'project', + field : 'projectNo', title : '项目号', }, { @@ -495,14 +501,6 @@ $.operate.submit(url, "post", "json", data); }) } - - function emptyIn() { - $.modal.open("空托盘入库",prefix+"/emptyIn") - } - - function emptyOut() { - $.modal.open("空托盘出库",prefix+"/emptyOut") - } function queryParams(params) { return {