diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java index 034ac2d..7050705 100644 --- a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java @@ -109,10 +109,14 @@ public class CycleCountDetailController extends BaseController { //分页查询 Page<CycleCountDetail> page = new Page<>(pageNum, pageSize); IPage<CycleCountDetail> iPage = cycleCountDetailService.page(page, lambdaQueryWrapper); - return getMpDataTable(iPage.getRecords(), iPage.getTotal()); + //根据盘点首选项确定显示字段 + List<CycleCountDetail> ipages = cycleCountDetailService.preferenceRealize(iPage.getRecords()) ; + return getMpDataTable(ipages, iPage.getTotal()); } else { List<CycleCountDetail> list = cycleCountDetailService.list(lambdaQueryWrapper); - return getDataTable(list); + //根据盘点首选项确定显示字段 + List<CycleCountDetail> cycleCountDetails = cycleCountDetailService.preferenceRealize(list) ; + return getDataTable(cycleCountDetails); } } //空List diff --git a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java index b2df118..8087e81 100644 --- a/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java +++ b/src/main/java/com/huaheng/pc/inventory/cycleCountDetail/service/CycleCountDetailService.java @@ -3,8 +3,10 @@ package com.huaheng.pc.inventory.cycleCountDetail.service; import com.baomidou.mybatisplus.extension.service.IService; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; +import org.apache.poi.ss.formula.functions.T; import java.math.BigDecimal; +import java.util.List; public interface CycleCountDetailService extends IService<CycleCountDetail> { @@ -14,7 +16,7 @@ public interface CycleCountDetailService extends IService<CycleCountDetail> { AjaxResult createCycleCountTaskByHeadId(String cycleCountHeadCode); - AjaxResult createCycleCoutTaskByDetailId(Integer cycleCoutdetailId); + AjaxResult createCycleCoutTaskByDetailId(Integer cycleCoutDetailId); AjaxResult confirmGapQty(Integer detailId, BigDecimal qty); @@ -22,7 +24,7 @@ public interface CycleCountDetailService extends IService<CycleCountDetail> { AjaxResult createCyclecountWithGapQty(String cycleCountHeadCode); - + List<CycleCountDetail> preferenceRealize (List<CycleCountDetail> cycleCoutDetailList); } 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 c7a6538..2b52eda 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 @@ -7,6 +7,10 @@ import com.huaheng.common.exception.service.ServiceException; import com.huaheng.common.utils.StringUtils; import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.web.domain.AjaxResult; +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.location.domain.Location; import com.huaheng.pc.config.location.service.LocationService; import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; @@ -43,9 +47,10 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap private TaskHeaderService taskHeaderService; @Resource private TaskDetailService taskDetailService; - - - + @Resource + private ConfigValueService configValueService; + @Resource + private CycleCountPreferenceService cycleCountPreferenceService; /** @@ -101,6 +106,16 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap if(cyclecountHeader.getStatusCyc() > 1){ return AjaxResult.error("盘点单非新建状态,无法再添加明细"); } + //默认盘点配置,首选项 + ConfigValue configValue = new ConfigValue(); + configValue.setModuleType("cyclecount"); + configValue.setWarehouseCode(ShiroUtils.getWarehouseCode()); + LambdaQueryWrapper<ConfigValue> configValueLambdaQueryWrapper = Wrappers.lambdaQuery(configValue); + configValue = configValueService.getOne(configValueLambdaQueryWrapper); + if(configValue == null){ + throw new SecurityException("请先在配置中添加盘点配置"); + } + String preferenceCode = configValue.getIdentifier(); //获取已经存在的明细 CycleCountDetail cycleCountDetail = new CycleCountDetail(); cycleCountDetail.setWarehouseCode(cyclecountHeader.getWarehouseCode()); @@ -118,9 +133,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap } //查询该条库存明细 InventoryDetail inventoryDetail = inventoryDetailService.getById(inventoryDetailId); - //写入盘点明细 CycleCountDetail ccd = new CycleCountDetail(); + ccd.setPreferenceCode(preferenceCode); ccd.setCycleCountHeadCode(cyclecountHeader.getCode()); ccd.setInventoryDetailId(inventoryDetailId); ccd.setWarehouseCode(inventoryDetail.getWarehouseCode()); @@ -189,7 +204,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap } } } - String msg = ""; + String msg = null; if(count==list.size()){ msg="全部生成成功"; } else if (count <= 0 && countErr <= 0){ @@ -202,17 +217,17 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap /** * 生成单条盘点任务 - * @param cycleCoutdetailId + * @param cycleCoutDetailId * @return */ @Override @Transactional - public AjaxResult createCycleCoutTaskByDetailId(Integer cycleCoutdetailId) { + public AjaxResult createCycleCoutTaskByDetailId(Integer cycleCoutDetailId) { /*任务主表中存在库位,在盘点明细中生成任务时,不同的容器生成不同的主任务*/ //在盘点单生成任务并执行后,同一容器的物料仍然可以生成任务,否则任务已完成则无法添加任务100 //检查状态不为100的任务,在有和下发的盘点单容器相同的任务时,把该条明细的任务写入到当前相同容器的任务里 - CycleCountDetail cycleCountDetail = this.getById(cycleCoutdetailId); + CycleCountDetail cycleCountDetail = this.getById(cycleCoutDetailId); if(cycleCountDetail == null ){ return AjaxResult.error("盘点明细ID错误,没有该条明细"); } @@ -456,11 +471,65 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap return AjaxResult.success("生成复盘单成功!"); } + /** + * 盘点首选项实现 + * @param cycleCoutDetailList + * @return + */ + @Transactional + @Override + public List<CycleCountDetail> preferenceRealize(List<CycleCountDetail> cycleCoutDetailList) { + List<CycleCountDetail> cycs = new ArrayList<>(); + /* + 根据当前明细条目的盘点首选Code,取出显示要求,再根据显示要求隐藏或显示字段*/ + /*//配置表 + ConfigValue configValue = new ConfigValue(); + configValue.setModuleType("cyclecount"); + configValue.setWarehouseCode(ShiroUtils.getWarehouseCode()); + LambdaQueryWrapper<ConfigValue> configValueLambdaQueryWrapper = Wrappers.lambdaQuery(configValue); + ConfigValue value = configValueService.getOne(configValueLambdaQueryWrapper); + if(value == null){ + throw new SecurityException("请先在配置中添加盘点配置"); + }*/ + //取出preference的数据来判断字段 + for(CycleCountDetail item:cycleCoutDetailList){ + //盘点首选项 + CycleCountPreference temp = new CycleCountPreference(); + temp.setCode(item.getPreferenceCode()); + temp.setWarehouseCode(item.getWarehouseCode()); + LambdaQueryWrapper<CycleCountPreference> cycleCountPreferenceLambdaQuery = Wrappers.lambdaQuery(temp); + CycleCountPreference cycleCountPreference = cycleCountPreferenceService.getOne(cycleCountPreferenceLambdaQuery); + if(cycleCountPreference == null){ + throw new SecurityException("没有对应的盘点首选项!"); + } + if(cycleCountPreference.getEnable() == false){ + throw new SecurityException("当前默认选中盘点首选项已停用!"); + } + //判断字段 + if(cycleCountPreference.getPromptLocation() == false){ + //库位 + item.setLocationCode(""); + } + if(cycleCountPreference.getPromptLpn() == false){ + //容器 + item.setContainerCode(""); + } + if(cycleCountPreference.getPromptItem() == false){ + //物料 + item.setMaterialCode(""); + item.setMaterialName(""); + item.setMaterialUnit(""); + } + if(cycleCountPreference.getPromptQuantity() == false){ + //系统数量 + item.setSystemQty(null); + } + cycs.add(item); + } - - - + return cycs; + } } diff --git a/src/main/resources/templates/config/configValue/configValue.html b/src/main/resources/templates/config/configValue/configValue.html index c3ca7f7..dd36581 100644 --- a/src/main/resources/templates/config/configValue/configValue.html +++ b/src/main/resources/templates/config/configValue/configValue.html @@ -48,6 +48,8 @@ var prefix = ctx + "config/configValue"; var editFlag = [[${@permission.hasPermi('config:configValue:edit')}]]; var removeFlag = [[${@permission.hasPermi('config:configValue:remove')}]]; + var recordType=[[${@dict.getType('recordType')}]]; + $(function() { var options = { url: prefix + "/list", @@ -74,8 +76,12 @@ title : '模块' }, { - field : 'recordType', - title : '类型' + field: 'recordType', + title: '类型', + formatter: function(value, row, index) { + return $.table.selectDictLabel(recordType, value); + }, + }, { field : 'identifier', diff --git a/src/main/resources/templates/config/cycleCountPreference/edit.html b/src/main/resources/templates/config/cycleCountPreference/edit.html index 133a877..c22b605 100644 --- a/src/main/resources/templates/config/cycleCountPreference/edit.html +++ b/src/main/resources/templates/config/cycleCountPreference/edit.html @@ -164,13 +164,14 @@ promptQuantity: { required: true, }, - allowAddNewInventory: { - required: true, - } }, submitHandler: function(form) { var tableValue = $.common.getTableValue("#form-cycleCountPreference-edit"); - /*tableValue = formValueReplace(tableValue, "id", $("input[name='id']").is(':checked'));*/ + tableValue = formValueReplace(tableValue, "promptLocation", $("input[name='promptLocation']").is(':checked')); + tableValue = formValueReplace(tableValue, "promptLpn", $("input[name='promptLpn']").is(':checked')); + tableValue = formValueReplace(tableValue, "promptItem", $("input[name='promptItem']").is(':checked')); + tableValue = formValueReplace(tableValue, "promptQuantity", $("input[name='promptQuantity']").is(':checked')); + tableValue = formValueReplace(tableValue, "enable", $("input[name='enable']").is(':checked')); $.operate.save(prefix + "/edit", tableValue); } }); diff --git a/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html b/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html index 430338b..318e153 100644 --- a/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html +++ b/src/main/resources/templates/inventory/cycleCountDetail/cycleCountDetail.html @@ -155,6 +155,10 @@ title: '仓库', }, { + field: 'preferenceCode', + title: '盘点首选项编码', + }, + { field: 'countId', title: '盘点内部号', visible: false