diff --git a/src/main/java/com/huaheng/pc/config/FilterConfigDetail/controller/FilterConfigDetailController.java b/src/main/java/com/huaheng/pc/config/FilterConfigDetail/controller/FilterConfigDetailController.java index 2ad9e5a..c2e9e30 100644 --- a/src/main/java/com/huaheng/pc/config/FilterConfigDetail/controller/FilterConfigDetailController.java +++ b/src/main/java/com/huaheng/pc/config/FilterConfigDetail/controller/FilterConfigDetailController.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.huaheng.common.exception.service.ServiceException; import com.huaheng.common.support.Convert; import com.huaheng.common.utils.StringUtils; import com.huaheng.common.utils.security.ShiroUtils; @@ -17,6 +18,8 @@ import com.huaheng.framework.web.page.TableDataInfo; import com.huaheng.framework.web.page.TableSupport; import com.huaheng.pc.config.FilterConfigDetail.domain.FilterConfigDetail; import com.huaheng.pc.config.FilterConfigDetail.service.FilterConfigDetailService; +import com.huaheng.pc.config.FilterConfigHeader.domain.FilterConfigHeader; +import com.huaheng.pc.config.FilterConfigHeader.service.FilterConfigHeaderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -45,6 +48,8 @@ public class FilterConfigDetailController extends BaseController { @Autowired private FilterConfigDetailService filterConfigDetailService; + @Autowired + private FilterConfigHeaderService filterConfigHeaderService; @RequiresPermissions("config:filterConfigDetail:view") @@ -112,6 +117,12 @@ public class FilterConfigDetailController extends BaseController { @PostMapping("/add") @ResponseBody public AjaxResult addSave(FilterConfigDetail filterConfigDetail) { + FilterConfigHeader configHeader = filterConfigHeaderService.getById(filterConfigDetail.getHeaderId()); + if(configHeader == null){ + throw new ServiceException("找不到主表"); + } + filterConfigDetail.setModuleType(configHeader.getModuleType()); + filterConfigDetail.setRecordType(configHeader.getRecordType()); filterConfigDetail.setWarehouseCode(ShiroUtils.getWarehouseCode()); filterConfigDetail.setCreatedBy(ShiroUtils.getLoginName()); filterConfigDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); diff --git a/src/main/java/com/huaheng/pc/config/FilterConfigDetail/service/FilterConfigDetailService.java b/src/main/java/com/huaheng/pc/config/FilterConfigDetail/service/FilterConfigDetailService.java index 1aa64bf..c87cf6d 100644 --- a/src/main/java/com/huaheng/pc/config/FilterConfigDetail/service/FilterConfigDetailService.java +++ b/src/main/java/com/huaheng/pc/config/FilterConfigDetail/service/FilterConfigDetailService.java @@ -18,10 +18,10 @@ public class FilterConfigDetailService extends ServiceImpl<FilterConfigDetailMap * 查询定位自定义sql,供前端页面选择使用 * @return */ - public List<Map<String, Object>> queryFilterConfigDetail(String moduleType){ + public List<Map<String, Object>> queryFilterConfigDetail(String recordType){ LambdaQueryWrapper<FilterConfigDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.select(FilterConfigDetail::getCode, FilterConfigDetail::getDescription) - .eq(FilterConfigDetail::getModuleType,moduleType) + .eq(FilterConfigDetail::getRecordType, recordType) .eq(FilterConfigDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()); return this.listMaps(lambdaQueryWrapper); } diff --git a/src/main/java/com/huaheng/pc/config/FilterConfigHeader/service/FilterConfigHeaderService.java b/src/main/java/com/huaheng/pc/config/FilterConfigHeader/service/FilterConfigHeaderService.java index dafaf1a..d9e7ad6 100644 --- a/src/main/java/com/huaheng/pc/config/FilterConfigHeader/service/FilterConfigHeaderService.java +++ b/src/main/java/com/huaheng/pc/config/FilterConfigHeader/service/FilterConfigHeaderService.java @@ -1,11 +1,25 @@ package com.huaheng.pc.config.FilterConfigHeader.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.pc.config.FilterConfigHeader.domain.FilterConfigHeader; import com.huaheng.pc.config.FilterConfigHeader.mapper.FilterConfigHeaderMapper; import org.springframework.stereotype.Service; -@Service +import java.util.List; + +@Service("filterConfigHeaderService") public class FilterConfigHeaderService extends ServiceImpl<FilterConfigHeaderMapper, FilterConfigHeader> { + + //根据模块和类型查找具体规则 + public List<FilterConfigHeader> getFilterConfigHeaderService(String moduleType,String recordType){ + LambdaQueryWrapper<FilterConfigHeader> lam = Wrappers.lambdaQuery(); + lam.eq(FilterConfigHeader::getModuleType,moduleType) + .eq(FilterConfigHeader::getRecordType,recordType) + .eq(FilterConfigHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()); + return this.list(lam); + } } diff --git a/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceService.java b/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceService.java index a7579d2..a950e13 100644 --- a/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceService.java +++ b/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceService.java @@ -2,8 +2,14 @@ package com.huaheng.pc.config.shipmentPreference.service; import com.baomidou.mybatisplus.extension.service.IService; import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference; +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; + +import java.util.List; public interface ShipmentPreferenceService extends IService<ShipmentPreference>{ + //查看出库此操作是否符合出库首选项的出库流程 + List<ShipmentHeader> checkShipmentProcess(String ids, Integer code); + } diff --git a/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java b/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java index 2f61315..e53547a 100644 --- a/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java +++ b/src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java @@ -1,11 +1,87 @@ package com.huaheng.pc.config.shipmentPreference.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.huaheng.common.exception.service.ServiceException; +import com.huaheng.common.support.Convert; +import com.huaheng.common.utils.StringUtils; +import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference; import com.huaheng.pc.config.shipmentPreference.mapper.ShipmentPreferenceMapper; +import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail; +import com.huaheng.pc.config.statusFlow.domain.StatusFlowHeader; +import com.huaheng.pc.config.statusFlow.service.StatusFlowDetailService; +import com.huaheng.pc.config.statusFlow.service.StatusFlowHeaderService; +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; +import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + @Service("shipmentPreference") public class ShipmentPreferenceServiceImpl extends ServiceImpl<ShipmentPreferenceMapper, ShipmentPreference> implements ShipmentPreferenceService { + @Autowired + private ShipmentPreferenceService shipmentPreferenceService; + @Autowired + private StatusFlowHeaderService statusFlowHeaderService; + @Autowired + private StatusFlowDetailService statusFlowDetailService; + @Autowired + private ShipmentHeaderService shipmentHeaderService; + + + /** + * 1、找出出库首选项 + * 2、查看出库首选项的出库流程 + * 3、找到该状态流的出库流程明细 + * 4、判断单据是否按出库流程操作 + * + * @param ids 出库单id + * @param code 状态流 + * @return + */ + @Override + public List<ShipmentHeader> checkShipmentProcess(String ids, Integer code) { + //查找出库首选项 + ShipmentPreference shipmentPreference = shipmentPreferenceService.list().get(0); + if(shipmentPreference == null){ + throw new ServiceException("系统没有设置出库首选"); + } + if(StringUtils.isEmpty(shipmentPreference.getShippingFlow())){ + throw new ServiceException("出库首选没有绑定出库流程"); + } + + //查看出库流程 + LambdaQueryWrapper<StatusFlowHeader> statusFlowHeaderLam = Wrappers.lambdaQuery(); + statusFlowHeaderLam.eq(StatusFlowHeader::getCode,shipmentPreference.getShippingFlow()) + .eq(StatusFlowHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()); + StatusFlowHeader statusFlowHeader = statusFlowHeaderService.getOne(statusFlowHeaderLam); + if(statusFlowHeader == null){ + throw new ServiceException("出库首选绑定的出库流程不在系统中"); + } + //查看流程明细 + LambdaQueryWrapper<StatusFlowDetail> statusFlowDetailLamb = Wrappers.lambdaQuery(); + statusFlowDetailLamb.eq(StatusFlowDetail::getHeaderId,statusFlowHeader.getId()) + .eq(StatusFlowDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()) + .eq(StatusFlowDetail::getFlowCode,code.toString()); + StatusFlowDetail statusFlowDetail = statusFlowDetailService.getOne(statusFlowDetailLamb); + + List<ShipmentHeader> shipmentHeaderList = new ArrayList<>(); + if(statusFlowDetail != null && statusFlowDetail.getNessary() == 1){ + for (Integer id : Convert.toIntArray(ids)) + { + //判断单据是否按出库流程操作 + ShipmentHeader shipmentHeader = shipmentHeaderService.getById(id); + if(shipmentHeader == null || shipmentHeader.getFirstStatus()<code){ + throw new ServiceException("单据状态不对,此操作不符合出库流程,请按照出库流程出库"); + } + shipmentHeaderList.add(shipmentHeader); + } + } + return shipmentHeaderList; + } } diff --git a/src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowDetailController.java b/src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowDetailController.java index 7322de5..15d6296 100644 --- a/src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowDetailController.java +++ b/src/main/java/com/huaheng/pc/config/statusFlow/controller/StatusFlowDetailController.java @@ -109,6 +109,8 @@ public class StatusFlowDetailController extends BaseController { @ResponseBody public AjaxResult addSave(@ApiParam(name = "containerType", value = "流程明细", required = true) StatusFlowDetail statusFlowDetail) { + StatusFlowHeader statusFlowHeader = statusFlowHeaderService.getById(statusFlowDetail.getHeaderId()); + statusFlowDetail.setModuleType(statusFlowHeader.getModuleType()); statusFlowDetail.setWarehouseCode(ShiroUtils.getWarehouseCode()); statusFlowDetail.setCreatedBy(ShiroUtils.getLoginName()); statusFlowDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); diff --git a/src/main/java/com/huaheng/pc/config/statusFlow/service/StatusFlowHeaderService.java b/src/main/java/com/huaheng/pc/config/statusFlow/service/StatusFlowHeaderService.java index ddee535..4c5fbad 100644 --- a/src/main/java/com/huaheng/pc/config/statusFlow/service/StatusFlowHeaderService.java +++ b/src/main/java/com/huaheng/pc/config/statusFlow/service/StatusFlowHeaderService.java @@ -2,6 +2,7 @@ package com.huaheng.pc.config.statusFlow.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.huaheng.common.utils.security.ShiroUtils; import org.springframework.aop.aspectj.AspectJPrecedenceInformation; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -20,4 +21,13 @@ public class StatusFlowHeaderService extends ServiceImpl<StatusFlowHeaderMapper, .eq(StatusFlowHeader::getRecordType, recordType); return this.listMaps(lambda); } + + + //根据模块区分出入库流程 + public List<StatusFlowHeader> shipmentStatusFlowHeaders(String moduleType){ + LambdaQueryWrapper<StatusFlowHeader> lambda = Wrappers.lambdaQuery(); + lambda.eq(StatusFlowHeader::getModuleType,moduleType) + .eq(StatusFlowHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()); + return this.list(lambda); + } } diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java index ebdb1aa..732a40e 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java @@ -10,6 +10,7 @@ import com.huaheng.pc.config.location.domain.Location; import com.huaheng.pc.config.location.service.LocationService; import com.huaheng.pc.config.material.domain.Material; import com.huaheng.pc.config.material.service.MaterialService; +import com.huaheng.pc.config.shipmentPreference.service.ShipmentPreferenceService; import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; @@ -67,6 +68,8 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont private TaskDetailService taskDetailService; @Autowired private WaveService waveService; + @Autowired + private ShipmentPreferenceService shipmentPreferenceService; @Override @@ -392,6 +395,15 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont @Override @Transactional public AjaxResult autoCombination(String shipmentCode) { + LambdaQueryWrapper<ShipmentHeader> shipmentHeaderLam = Wrappers.lambdaQuery(); + shipmentHeaderLam.eq(ShipmentHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) + .eq(ShipmentHeader::getCode,shipmentCode); + ShipmentHeader shipmentHeader = shipmentHeaderService.getOne(shipmentHeaderLam); + if(shipmentHeader == null){ + throw new ServiceException("系统没有此单据"); + } + shipmentPreferenceService.checkShipmentProcess(shipmentHeader.getId().toString(),100); + LambdaQueryWrapper<ShipmentDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(ShipmentDetail::getShipmentCode, shipmentCode) .eq(ShipmentDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()); diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java index ec62ba5..4e6eac6 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java @@ -10,6 +10,12 @@ import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.pc.config.material.domain.Material; import com.huaheng.pc.config.material.service.MaterialService; +import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference; +import com.huaheng.pc.config.shipmentPreference.service.ShipmentPreferenceService; +import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail; +import com.huaheng.pc.config.statusFlow.domain.StatusFlowHeader; +import com.huaheng.pc.config.statusFlow.service.StatusFlowDetailService; +import com.huaheng.pc.config.statusFlow.service.StatusFlowHeaderService; import com.huaheng.pc.config.waveMaster.domain.WaveMaster; import com.huaheng.pc.config.waveMaster.service.WaveMasterService; import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; @@ -43,6 +49,12 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, private WaveMasterService waveMasterService; @Autowired private WaveService waveService; + @Autowired + private ShipmentPreferenceService shipmentPreferenceService; + @Autowired + private StatusFlowHeaderService statusFlowHeaderService; + @Autowired + private StatusFlowDetailService statusFlowDetailService; /** * 新增出库明细 @@ -152,6 +164,7 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, /** + * 查看选中的单据状态是否符合出库流程 * 选中的单据加入波次 * 根据选中的主单ID和波次主表的code,判断主单之和是否符合波次的限制条件, * 看此code的波次是否建成未开始执行,如果是则只需修改波次属性,否则创建新的波次, @@ -160,6 +173,9 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, @Override @Transactional public void saveWave(String ids, String code) { + Integer status = 100; + List<ShipmentHeader> shipmentHeaderList =shipmentPreferenceService.checkShipmentProcess(ids,status); + //找到波次主表,看系统是否有此波次 LambdaQueryWrapper<WaveMaster> lam=Wrappers.lambdaQuery(); lam.eq(WaveMaster::getCode,code) @@ -248,12 +264,8 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, throw new ServiceException("出库子单加入波次失败"); } - List<ShipmentHeader> shipmentHeaderList=new ArrayList<>(); - //修改主单状态 - for (Integer id : Convert.toIntArray(ids)){ - ShipmentHeader shipmentHeader = shipmentHeaderService.getById(id); + for(ShipmentHeader shipmentHeader :shipmentHeaderList){ shipmentHeader.setLastStatus(200); - shipmentHeaderList.add(shipmentHeader); } flag = shipmentHeaderService.updateBatchById(shipmentHeaderList); if(flag == false){ diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/controller/ShipmentHeaderController.java b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/controller/ShipmentHeaderController.java index 2ee90b1..d79317a 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/controller/ShipmentHeaderController.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/controller/ShipmentHeaderController.java @@ -184,6 +184,22 @@ public class ShipmentHeaderController extends BaseController return AjaxResult.success("删除成功!"); } + + /** + * 审核出库主单 + */ + @RequiresPermissions("shipment:bill:edit") + @Log(title = "出库-出库单", operating="审核出库主单", action = BusinessType.UPDATE) + @PostMapping("/review") + @ResponseBody + public AjaxResult review(String ids) + { + if (StringUtils.isEmpty(ids)) { + return AjaxResult.error("id不能为空"); + } + return shipmentHeaderService.review(ids); + } + /** * 出库单报表打印 * @return diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderService.java b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderService.java index 0120581..e793c9d 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderService.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderService.java @@ -11,7 +11,6 @@ public interface ShipmentHeaderService extends IService<ShipmentHeader>{ //新增出库主单 AjaxResult<Boolean> saveHeader(ShipmentHeader shipmentHeader) ; - //根据单据类型建单据号 String createCode(String shipmentType); @@ -20,4 +19,7 @@ public interface ShipmentHeaderService extends IService<ShipmentHeader>{ AjaxResult addHistory(ShipmentHeader shipmentHeader) throws InvocationTargetException, IllegalAccessException; + //审核出库单 + AjaxResult review(String ids); + } diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java index 24425d6..1833cbf 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java @@ -3,6 +3,7 @@ package com.huaheng.pc.shipment.shipmentHeader.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.huaheng.common.exception.service.ServiceException; +import com.huaheng.common.support.Convert; import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService; @@ -169,4 +170,59 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper, } return null; } + + /**审核出库单,加入订单池 + * 1、找到主单,确定主单的状态是否小于100 + * 2.小于100时,把主单和相应的子单加入到list中,大于等于100时,直接跳过 + * 3.将修改后的主单列表和子单列表进行修改,加入订单池 + * + * @param ids + * @return + */ + + @Override + public AjaxResult review(String ids) { + + List<ShipmentHeader> shipmentHeaders = new ArrayList<>(); + List<ShipmentDetail> shipmentDetails = new ArrayList<>(); + + //1、找到主单,确定主单的状态是否小于100 + for (Integer id : Convert.toIntArray(ids)){ + ShipmentHeader shipmentHeader = this.getById(id); + if(shipmentHeader == null){ + return AjaxResult.error("id为"+id+"的主单在系统不存在"); + } + + //2.小于100时,把主单和相应的子单加入到list中,大于等于100时,直接跳过 + if(shipmentHeader.getFirstStatus() < 100 && shipmentHeader.getLastStatus() <100){ + shipmentHeader.setFirstStatus(100); + shipmentHeader.setLastStatus(100); + shipmentHeaders.add(shipmentHeader); + + LambdaQueryWrapper<ShipmentDetail> lam = Wrappers.lambdaQuery(); + lam.eq(ShipmentDetail::getShipmentId,id) + .eq(ShipmentDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()); + List<ShipmentDetail> shipmentDetailList = shipmentDetailService.list(lam); + if(shipmentDetailList != null){ + for(ShipmentDetail shipmentDetail : shipmentDetailList){ + shipmentDetail.setStatus(100); + } + shipmentDetails.addAll(shipmentDetailList); + }else { + return AjaxResult.error("id为"+id+"的出库明细在系统不存在"); + } + } + } + + // 3.将修改后的主单列表和子单列表进行修改,加入订单池 + Boolean flag = this.updateBatchById(shipmentHeaders); + if (flag == false){ + throw new ServiceException("修改主单状态失败"); + } + flag = shipmentDetailService.updateBatchById(shipmentDetails); + if (flag == false){ + throw new ServiceException("修改明细状态失败"); + } + return AjaxResult.success("订单审核成功,成功加入订单池"); + } } diff --git a/src/main/resources/static/huaheng/js/huahengUI.js b/src/main/resources/static/huaheng/js/huahengUI.js index 48e350c..22ab646 100644 --- a/src/main/resources/static/huaheng/js/huahengUI.js +++ b/src/main/resources/static/huaheng/js/huahengUI.js @@ -194,6 +194,15 @@ }); return actions.join(''); }, + selectWhetherLabel: function(_value) { + var actions = []; + if (_value == 0) { + actions.push("<span class='badge badge-primary'>是</span>"); + } else { + actions.push("<span class='badge badge-danger'>否</span>") + } + return actions.join(''); + }, // 回显数据绑定的表格 selectIdToName: function(_datas, _value) { var actions = []; diff --git a/src/main/resources/templates/config/filterConfigDetail/add.html b/src/main/resources/templates/config/filterConfigDetail/add.html index f54964d..1bf507e 100644 --- a/src/main/resources/templates/config/filterConfigDetail/add.html +++ b/src/main/resources/templates/config/filterConfigDetail/add.html @@ -12,18 +12,18 @@ <input id="code" name="code" class="form-control" type="text"> </div> </div> - <div class="form-group"> - <label class="col-sm-3 control-label">模块:</label> - <div class="col-sm-8"> - <input id="moduleType" name="moduleType" class="form-control" type="text"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">类型:</label> - <div class="col-sm-8"> - <input id="recordType" name="recordType" class="form-control" type="text"> - </div> - </div> + <!--<div class="form-group">--> + <!--<label class="col-sm-3 control-label">模块:</label>--> + <!--<div class="col-sm-8">--> + <!--<input id="moduleType" name="moduleType" class="form-control" type="text">--> + <!--</div>--> + <!--</div>--> + <!--<div class="form-group">--> + <!--<label class="col-sm-3 control-label">类型:</label>--> + <!--<div class="col-sm-8">--> + <!--<input id="recordType" name="recordType" class="form-control" type="text">--> + <!--</div>--> + <!--</div>--> <div class="form-group"> <label class="col-sm-3 control-label">条件名:</label> <div class="col-sm-8"> @@ -45,28 +45,24 @@ <div class="form-group"> <label class="col-sm-3 control-label">是否系统创建:</label> <div class="col-sm-8"> - <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);"> - <input type="radio" id="systemCreated1" name="systemCreated" value="true" checked="checked" - class="radio_select"> - <label for="systemCreated1">是</label> - </div> - <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);"> - <input type="radio" id="systemCreated2" name="systemCreated" value="false"> - <label for="systemCreated2">否</label> + <div class="onoffswitch"> + <input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="systemCreated" name="systemCreated"> + <label class="onoffswitch-label" for="systemCreated"> + <span class="onoffswitch-inner"></span> + <span class="onoffswitch-switch"></span> + </label> </div> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">是否自定义SQL:</label> <div class="col-sm-8"> - <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);"> - <input type="radio" id="customSql1" name="customSql" value="true" checked="checked" - class="radio_select"> - <label for="customSql1">是</label> - </div> - <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);"> - <input type="radio" id="customSql2" name="customSql" value="false"> - <label for="customSql2">否</label> + <div class="onoffswitch"> + <input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="customSql" name="customSql"> + <label class="onoffswitch-label" for="customSql"> + <span class="onoffswitch-inner"></span> + <span class="onoffswitch-switch"></span> + </label> </div> </div> </div> @@ -86,12 +82,12 @@ code:{ required:true, }, - moduleType:{ - required:true, - }, - recordType:{ - required:true, - }, + // moduleType:{ + // required:true, + // }, + // recordType:{ + // required:true, + // }, filterCode:{ required:true, }, @@ -99,6 +95,8 @@ submitHandler: function(form) { // $.operate.save(prefix + "/add", $('#form-locationType-add').serialize()); var tableValue = $.common.getTableValue("#form-filterConfigDetail-add"); + tableValue = formValueReplace(tableValue, "systemCreated", $("input[name='systemCreated']").is(':checked')); + tableValue = formValueReplace(tableValue, "customSql", $("input[name='customSql']").is(':checked')); $.operate.save(prefix + "/add", tableValue); } }); diff --git a/src/main/resources/templates/config/filterConfigDetail/edit.html b/src/main/resources/templates/config/filterConfigDetail/edit.html index abca232..0dc9136 100644 --- a/src/main/resources/templates/config/filterConfigDetail/edit.html +++ b/src/main/resources/templates/config/filterConfigDetail/edit.html @@ -13,18 +13,18 @@ <input id="code" name="code" class="form-control" type="text" th:field="*{code}"> </div> </div> - <div class="form-group"> - <label class="col-sm-3 control-label">模块:</label> - <div class="col-sm-8"> - <input id="moduleType" name="moduleType" class="form-control" type="text" th:field="*{moduleType}"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">类型:</label> - <div class="col-sm-8"> - <input id="recordType" name="recordType" class="form-control" type="text" th:field="*{recordType}"> - </div> - </div> + <!--<div class="form-group">--> + <!--<label class="col-sm-3 control-label">模块:</label>--> + <!--<div class="col-sm-8">--> + <!--<input id="moduleType" name="moduleType" class="form-control" type="text" th:field="*{moduleType}">--> + <!--</div>--> + <!--</div>--> + <!--<div class="form-group">--> + <!--<label class="col-sm-3 control-label">类型:</label>--> + <!--<div class="col-sm-8">--> + <!--<input id="recordType" name="recordType" class="form-control" type="text" th:field="*{recordType}">--> + <!--</div>--> + <!--</div>--> <div class="form-group"> <label class="col-sm-3 control-label">条件名:</label> <div class="col-sm-8"> @@ -46,28 +46,24 @@ <div class="form-group"> <label class="col-sm-3 control-label">是否系统创建:</label> <div class="col-sm-8"> - <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);"> - <input type="radio" id="systemCreated1" name="systemCreated" value="true" th:field="*{systemCreated}" - class="radio_select"> - <label for="systemCreated1">是</label> - </div> - <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);"> - <input type="radio" id="systemCreated2" name="systemCreated" value="false" th:field="*{systemCreated}"> - <label for="systemCreated2">否</label> + <div class="onoffswitch"> + <input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="systemCreated" name="systemCreated"> + <label class="onoffswitch-label" for="systemCreated"> + <span class="onoffswitch-inner"></span> + <span class="onoffswitch-switch"></span> + </label> </div> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">是否自定义SQL:</label> <div class="col-sm-8"> - <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);"> - <input type="radio" id="customSql1" name="customSql" value="true" th:field="*{customSql}" - class="radio_select"> - <label for="customSql1">是</label> - </div> - <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);"> - <input type="radio" id="customSql2" name="customSql" value="false" th:field="*{customSql}"> - <label for="customSql2">否</label> + <div class="onoffswitch"> + <input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="customSql" name="customSql"> + <label class="onoffswitch-label" for="customSql"> + <span class="onoffswitch-inner"></span> + <span class="onoffswitch-switch"></span> + </label> </div> </div> </div> @@ -87,12 +83,12 @@ code:{ required:true, }, - moduleType:{ - required:true, - }, - recordType:{ - required:true, - }, + // moduleType:{ + // required:true, + // }, + // recordType:{ + // required:true, + // }, filterCode:{ required:true, }, @@ -100,6 +96,8 @@ submitHandler: function(form) { // $.operate.save(prefix + "/add", $('#form-locationType-add').serialize()); var tableValue = $.common.getTableValue("#form-filterConfigDetail-edit"); + tableValue = formValueReplace(tableValue, "systemCreated", $("input[name='systemCreated']").is(':checked')); + tableValue = formValueReplace(tableValue, "customSql", $("input[name='customSql']").is(':checked')); $.operate.save(prefix + "/edit", tableValue); } }); diff --git a/src/main/resources/templates/config/filterConfigDetail/filterConfigDetail.html b/src/main/resources/templates/config/filterConfigDetail/filterConfigDetail.html index c47d919..b728ed2 100644 --- a/src/main/resources/templates/config/filterConfigDetail/filterConfigDetail.html +++ b/src/main/resources/templates/config/filterConfigDetail/filterConfigDetail.html @@ -22,6 +22,8 @@ var prefix = ctx + "config/filterConfigDetail"; var editFlag = [[${@permission.hasPermi('config:filterConfigDetail:edit')}]]; var removeFlag = [[${@permission.hasPermi('config:filterConfigDetail:remove')}]]; + var moduleType = [[${@dict.getType('moduleType')}]]; + var recordType = [[${@dict.getType('recordType')}]]; var datas = [[${@dict.getType('sys_normal_disable')}]]; var nessaryDatas = [[${@dict.getType('nessary')}]]; $(function() { @@ -63,11 +65,19 @@ }, { field : 'moduleType', - title : '模块' + title : '模块', + align : "center", + formatter: function (value, item, index) { + return $.table.selectDictLabel(moduleType, value); + } }, { field : 'recordType', - title : '类型' + title : '类型', + align : "center", + formatter: function (value, item, index) { + return $.table.selectDictLabel(recordType, value); + } }, { field : 'filterCode', diff --git a/src/main/resources/templates/config/filterConfigHeader/add.html b/src/main/resources/templates/config/filterConfigHeader/add.html index 5fdaef0..923b700 100644 --- a/src/main/resources/templates/config/filterConfigHeader/add.html +++ b/src/main/resources/templates/config/filterConfigHeader/add.html @@ -9,14 +9,16 @@ <label class="col-sm-3 control-label">模块:</label> <div class="col-sm-8"> <select class="form-control" name="moduleType" th:with="moduleType=${@dict.getType('moduleType')}"> - <option th:each="e : ${moduleType}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option> + <option th:each="item : ${moduleType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> </select> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">类型:</label> <div class="col-sm-8"> - <input id="recordType" name="recordType" class="form-control" type="text"> + <select id="recordType" name="recordType" class="form-control" th:with="recordType=${@dict.getType('recordType')}"> + <option th:each="item : ${recordType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> + </select> </div> </div> <div class="form-group"> @@ -46,14 +48,12 @@ <div class="form-group"> <label class="col-sm-3 control-label">是否系统创建:</label> <div class="col-sm-8"> - <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);"> - <input type="radio" id="systemCreated1" name="systemCreated" value="true" checked="checked" - class="radio_select"> - <label for="systemCreated1">是</label> - </div> - <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);"> - <input type="radio" id="systemCreated2" name="systemCreated" value="false"> - <label for="systemCreated2">否</label> + <div class="onoffswitch"> + <input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="systemCreated" name="systemCreated"> + <label class="onoffswitch-label" for="systemCreated"> + <span class="onoffswitch-inner"></span> + <span class="onoffswitch-switch"></span> + </label> </div> </div> </div> @@ -83,7 +83,8 @@ submitHandler: function (form) { // $.operate.save(prefix + "/add", $('#form-locationType-add').serialize()); var tableValue = $.common.getTableValue("#form-filterConfigHeader-add"); - tableValue = formValueReplace(tableValue, "moduleType", $("#moduleType option:selected").val()); + // tableValue = formValueReplace(tableValue, "moduleType", $("#moduleType option:selected").val()); + tableValue = formValueReplace(tableValue, "systemCreated", $("input[name='systemCreated']").is(':checked')); $.operate.save(prefix + "/add", tableValue); } }); diff --git a/src/main/resources/templates/config/filterConfigHeader/edit.html b/src/main/resources/templates/config/filterConfigHeader/edit.html index 36b8b31..4f37958 100644 --- a/src/main/resources/templates/config/filterConfigHeader/edit.html +++ b/src/main/resources/templates/config/filterConfigHeader/edit.html @@ -6,20 +6,20 @@ <div class="wrapper wrapper-content animated fadeInRight ibox-content"> <form class="form-horizontal m" id="form-filterConfigHeader-edit" th:object="${filterConfigHeader}"> <input name="id" th:field="*{id}" type="hidden"> - <div class="form-group"> - <label class="col-sm-3 control-label">模块:</label> - <div class="col-sm-8"> - <select class="form-control" name="moduleType" th:with="moduleType=${@dict.getType('moduleType')}" th:field="*{moduleType}"> - <option th:each="e : ${moduleType}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option> - </select> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">类型:</label> - <div class="col-sm-8"> - <input id="recordType" name="recordType" class="form-control" type="text" th:field="*{recordType}"> - </div> - </div> + <!--<div class="form-group">--> + <!--<label class="col-sm-3 control-label">模块:</label>--> + <!--<div class="col-sm-8">--> + <!--<select class="form-control" name="moduleType" th:with="moduleType=${@dict.getType('moduleType')}" th:field="*{moduleType}">--> + <!--<option th:each="e : ${moduleType}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option>--> + <!--</select>--> + <!--</div>--> + <!--</div>--> + <!--<div class="form-group">--> + <!--<label class="col-sm-3 control-label">类型:</label>--> + <!--<div class="col-sm-8">--> + <!--<input id="recordType" name="recordType" class="form-control" type="text" th:field="*{recordType}">--> + <!--</div>--> + <!--</div>--> <div class="form-group"> <label class="col-sm-3 control-label">条件名:</label> <div class="col-sm-8"> @@ -38,29 +38,16 @@ <input id="description" name="description" class="form-control" type="text" th:field="*{description}"> </div> </div> - <!--<div class="form-group">--> - <!--<label class="col-sm-3 control-label">是否系统创建:</label>--> - <!--<div class="col-sm-8">--> - <!--<div class="onoffswitch">--> - <!--<input type="checkbox" th:checked="${systemCreated}" class="onoffswitch-checkbox" id="systemCreated" name="systemCreated">--> - <!--<label class="onoffswitch-label" for="systemCreated">--> - <!--<span class="onoffswitch-inner"></span>--> - <!--<span class="onoffswitch-switch"></span>--> - <!--</label>--> - <!--</div>--> - <!--</div>--> - <!--</div>--> + <div class="form-group"> <label class="col-sm-3 control-label">是否系统创建:</label> <div class="col-sm-8"> - <div class="radio radio-info radio-inline" style="transform: scale(1.1, 1.1);"> - <input type="radio" id="systemCreated1" name="systemCreated" value="true" th:field="*{systemCreated}" - class="radio_select"> - <label for="systemCreated1">是</label> - </div> - <div class="radio radio-danger radio-inline " style="transform: scale(1.1, 1.1);"> - <input type="radio" id="systemCreated2" name="systemCreated" value="false" th:field="*{systemCreated}"> - <label for="systemCreated2">否</label> + <div class="onoffswitch"> + <input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="systemCreated" name="systemCreated"> + <label class="onoffswitch-label" for="systemCreated"> + <span class="onoffswitch-inner"></span> + <span class="onoffswitch-switch"></span> + </label> </div> </div> </div> @@ -92,7 +79,8 @@ }, submitHandler: function(form) { var tableValue = $.common.getTableValue("#form-filterConfigHeader-edit"); - tableValue = formValueReplace(tableValue, "moduleType", $("#moduleType option:selected").val()); + // tableValue = formValueReplace(tableValue, "moduleType", $("#moduleType option:selected").val()); + tableValue = formValueReplace(tableValue, "systemCreated", $("input[name='systemCreated']").is(':checked')); $.operate.save(prefix + "/edit", tableValue); } }); diff --git a/src/main/resources/templates/config/filterConfigHeader/filterConfigHeader.html b/src/main/resources/templates/config/filterConfigHeader/filterConfigHeader.html index c396b23..a286e5a 100644 --- a/src/main/resources/templates/config/filterConfigHeader/filterConfigHeader.html +++ b/src/main/resources/templates/config/filterConfigHeader/filterConfigHeader.html @@ -75,6 +75,7 @@ var removeFlag = [[${@permission.hasPermi('config:filterConfigHeader:remove')}]]; var datas = [[${@dict.getType('sys_normal_disable')}]]; var moduleType = [[${@dict.getType('moduleType')}]]; + var recordType = [[${@dict.getType('recordType')}]]; $(function() { var options = { url: prefix + "/list", @@ -105,7 +106,11 @@ }, { field : 'recordType', - title : '类型' + title : '类型', + align : "center", + formatter: function (value, item, index) { + return $.table.selectDictLabel(recordType, value); + } }, { field : 'filterCode', diff --git a/src/main/resources/templates/config/receiptPreference/add.html b/src/main/resources/templates/config/receiptPreference/add.html index b196fd2..a021415 100644 --- a/src/main/resources/templates/config/receiptPreference/add.html +++ b/src/main/resources/templates/config/receiptPreference/add.html @@ -38,8 +38,8 @@ <label class="col-sm-3 control-label">允许超收:</label> <div class="col-sm-8"> <select id="allowOverReceiving" name="allowOverReceiving" class="form-control"> - <option value="0">允许</option> - <option value="1">不允许</option> + <option value="1">允许</option> + <option value="0">不允许</option> </select> </div> </div> @@ -82,7 +82,7 @@ <div class="form-group"> <label class="col-sm-3 control-label">定位规则:</label> <div class="col-sm-8"> - <select id="locatingRule" name="locatingRule" class="form-control" th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail('入库')}"> + <select id="locationRule" name="locationRule" class="form-control" th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail('locationRule')}"> <option value="">请选择</option> <option th:each="item : ${list}" th:text="${item['description']}" th:value="${item['code']}"></option> </select> @@ -92,7 +92,7 @@ <label class="col-sm-3 control-label">空库位规则:</label> <div class="col-sm-8"> <select id="emptyLocRule" name="emptyLocRule" class="form-control" - th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail('空库位规则')}"> + th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail('emptyLocRule')}"> <option value="">请选择</option> <option th:each="item : ${list}" th:text="${item['description']}" th:value="${item['code']}"></option> </select> @@ -137,7 +137,10 @@ <div class="form-group"> <label class="col-sm-3 control-label">RF快速上架:</label> <div class="col-sm-8"> - <input id="allowQuickPutaway" name="allowQuickPutaway" class="form-control" type="text"> + <select id="allowQuickPutaway" name="allowQuickPutaway" class="form-control"> + <option value="0">是</option> + <option value="1">否</option> + </select> </div> </div> <div class="form-group"> @@ -149,7 +152,10 @@ <div class="form-group"> <label class="col-sm-3 control-label">快速入库:</label> <div class="col-sm-8"> - <input id="useQuickCheckIn" name="useQuickCheckIn" class="form-control" type="text"> + <select id="useQuickCheckIn" name="useQuickCheckIn" class="form-control"> + <option value="0">是</option> + <option value="1">否</option> + </select> </div> </div> <!--<div class="form-group"> @@ -284,12 +290,14 @@ submitHandler: function(form) { var tableValue = $.common.getTableValue("#form-receiptPreference-add"); tableValue = formValueReplace(tableValue, "allowOverReceiving", $("#allowOverReceiving option:selected").val()); - tableValue = formValueReplace(tableValue, "receiptFlow", $("#receiptFlow option:selected").val()); + tableValue = formValueReplace(tableValue, "receivingFlow", $("#receivingFlow option:selected").val()); tableValue = formValueReplace(tableValue, "autoAssignLPN", $("#autoAssignLPN option:selected").val()); tableValue = formValueReplace(tableValue, "autoLocate", $("#autoLocate option:selected").val()); tableValue = formValueReplace(tableValue, "showOpenQty", $("#showOpenQty option:selected").val()); - tableValue = formValueReplace(tableValue, "locatingRule", $("#locatingRule option:selected").val()); + tableValue = formValueReplace(tableValue, "locationRule", $("#locationRule option:selected").val()); tableValue = formValueReplace(tableValue, "emptyLocRule", $("#emptyLocRule option:selected").val()); + tableValue = formValueReplace(tableValue, "useQuickCheckIn", $("#useQuickCheckIn option:selected").val()); + tableValue = formValueReplace(tableValue, "allowQuickPutaway", $("#allowQuickPutaway option:selected").val()); $.operate.save(prefix + "/add", tableValue); } }); diff --git a/src/main/resources/templates/config/receiptPreference/edit.html b/src/main/resources/templates/config/receiptPreference/edit.html index 712e423..565b81b 100644 --- a/src/main/resources/templates/config/receiptPreference/edit.html +++ b/src/main/resources/templates/config/receiptPreference/edit.html @@ -5,7 +5,7 @@ <body class="white-bg"> <div class="wrapper wrapper-content animated fadeInRight ibox-content"> <form class="form-horizontal m" id="form-receiptPreference-edit" th:object="${receiptPreference}"> - <input id="id" name="id" th:field="*{id}"> + <input id="id" name="id" th:field="*{id}" type="hidden"> <div class="form-group"> <label class="col-sm-3 control-label">编码:</label> <div class="col-sm-8"> @@ -21,26 +21,27 @@ <div class="form-group"> <label class="col-sm-3 control-label">入库流程:</label> <div class="col-sm-8"> - <input id="receiptFlow" name="receiptFlow" class="form-control" type="text" th:field="*{receiptFlow}"> + <select id="receivingFlow" name="receivingFlow" class="form-control" th:with="statusFlowList=${@StatusFlow.flowList('入库单')}" th:field="*{receivingFlow}"> + <option th:each="flow : ${statusFlowList}" th:text="${flow['name']}" th:value="${flow['code']}"></option> + </select> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">自动生成托盘号:</label> <div class="col-sm-8"> - <input id="autoAssignLPN" name="autoAssignLPN" class="form-control" type="text" th:field="*{autoAssignLPN}"> + <select id="autoAssignLPN" name="autoAssignLPN" class="form-control" th:field="*{autoAssignLPN}"> + <option value="0">自动生成</option> + <option value="1">不自动生成</option> + </select> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">允许超收:</label> <div class="col-sm-8"> - <div class="onoffswitch"> - <input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="allowOverReceiving" - name="allowOverReceiving" th:field="*{allowOverReceiving}"> - <label class="onoffswitch-label" for="allowOverReceiving"> - <span class="onoffswitch-inner"></span> - <span class="onoffswitch-switch"></span> - </label> - </div> + <select id="allowOverReceiving" name="allowOverReceiving" class="form-control" th:field="*{allowOverReceiving}"> + <option value="1">允许</option> + <option value="0">不允许</option> + </select> </div> </div> <div class="form-group"> @@ -52,13 +53,19 @@ <div class="form-group"> <label class="col-sm-3 control-label">自动定位:</label> <div class="col-sm-8"> - <input id="autoLocate" name="autoLocate" class="form-control" type="text" th:field="*{autoLocate}"> + <select id="autoLocate" name="autoLocate" th:field="*{autoLocate}" class="form-control"> + <option value="0">是</option> + <option value="1">否</option> + </select> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">RF显示未收数量:</label> <div class="col-sm-8"> - <input id="showOpenQty" name="showOpenQty" class="form-control" type="text" th:field="*{showOpenQty}"> + <select id="showOpenQty" name="showOpenQty" class="form-control" th:field="*{showOpenQty}"> + <option value="0">是</option> + <option value="1">否</option> + </select> </div> </div> <div class="form-group"> @@ -76,13 +83,21 @@ <div class="form-group"> <label class="col-sm-3 control-label">定位规则:</label> <div class="col-sm-8"> - <input id="locationRule" name="locationRule" class="form-control" type="text" th:field="*{locationRule}"> + <select id="locationRule" name="locationRule" class="form-control" + th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail('locationRule')}" th:field="*{locationRule}"> + <option value="">请选择</option> + <option th:each="item : ${list}" th:text="${item['description']}" th:value="${item['code']}"></option> + </select> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">空库位规则:</label> <div class="col-sm-8"> - <input id="emptyLocRule" name="emptyLocRule" class="form-control" type="text" th:field="*{emptyLocRule}"> + <select id="emptyLocRule" name="emptyLocRule" class="form-control" + th:with="list=${@FilterConfigDetailService.queryFilterConfigDetail('emptyLocRule')}" th:field="*{emptyLocRule}"> + <option value="">请选择</option> + <option th:each="item : ${list}" th:text="${item['description']}" th:value="${item['code']}"></option> + </select> </div> </div> <div class="form-group"> @@ -124,7 +139,10 @@ <div class="form-group"> <label class="col-sm-3 control-label">RF快速上架:</label> <div class="col-sm-8"> - <input id="allowQuickPutaway" name="allowQuickPutaway" class="form-control" type="text" th:field="*{allowQuickPutaway}"> + <select id="allowQuickPutaway" name="allowQuickPutaway" class="form-control" th:field="*{allowQuickPutaway}"> + <option value="0">是</option> + <option value="1">否</option> + </select> </div> </div> <div class="form-group"> @@ -136,7 +154,10 @@ <div class="form-group"> <label class="col-sm-3 control-label">快速入库:</label> <div class="col-sm-8"> - <input id="useQuickCheckIn" name="useQuickCheckIn" class="form-control" type="text" th:field="*{useQuickCheckIn}"> + <select id="useQuickCheckIn" name="useQuickCheckIn" class="form-control" th:field="*{useQuickCheckIn}"> + <option value="0">是</option> + <option value="1">否</option> + </select> </div> </div> <!--<div class="form-group"> @@ -269,8 +290,14 @@ } }, submitHandler: function(form) { - var tableValue = $.common.getTableValue("#form-receiptPreference-edi"); + var tableValue = $.common.getTableValue("#form-receiptPreference-edit"); tableValue = formValueReplace(tableValue, "allowOverReceiving", $("input[name='allowOverReceiving']").is(':checked')); + tableValue = formValueReplace(tableValue, "receivingFlow", $("#receivingFlow option:selected").val()); + tableValue = formValueReplace(tableValue, "autoAssignLPN", $("#autoAssignLPN option:selected").val()); + tableValue = formValueReplace(tableValue, "autoLocate", $("#autoLocate option:selected").val()); + tableValue = formValueReplace(tableValue, "showOpenQty", $("#showOpenQty option:selected").val()); + tableValue = formValueReplace(tableValue, "locationRule", $("#locationRule option:selected").val()); + tableValue = formValueReplace(tableValue, "emptyLocRule", $("#emptyLocRule option:selected").val()); $.operate.save(prefix + "/edit", tableValue); } }); diff --git a/src/main/resources/templates/config/receiptPreference/receiptPreference.html b/src/main/resources/templates/config/receiptPreference/receiptPreference.html index 05ee9a4..8bac2f9 100644 --- a/src/main/resources/templates/config/receiptPreference/receiptPreference.html +++ b/src/main/resources/templates/config/receiptPreference/receiptPreference.html @@ -90,11 +90,19 @@ }, { field : 'autoAssignLPN', - title : '自动生成托盘号' + title : '自动生成托盘号', + align : "center", + formatter : function(value, row, index) { + return $.table.selectWhetherLabel(value); + }, }, { field : 'allowOverReceiving', - title : '允许超收' + title : '允许超收', + align : "center", + formatter : function(value, row, index) { + if (value){return "<span class='badge badge-primary'>是</span>";} else {return "<span class='badge badge-danger'>否</span>";} + }, }, { field : 'allowOverReceivingQty', @@ -102,11 +110,19 @@ }, { field : 'autoLocate', - title : '自动定位' + title : '自动定位', + align : "center", + formatter : function(value, row, index) { + return $.table.selectWhetherLabel(value); + }, }, { field : 'showOpenQty', - title : 'RF显示未收数量' + title : 'RF显示未收数量', + align : "center", + formatter : function(value, row, index) { + return $.table.selectWhetherLabel(value); + }, }, { field : 'receiptTypes', @@ -114,11 +130,18 @@ }, { field : 'groupPutaway', - title : 'RF组车收货' + title : 'RF组车收货', + align : "center", + formatter : function(value, row, index) { + return $.table.selectWhetherLabel(value); + }, }, { field : 'manuallyBuildLPN', - title : '人工组盘' + title : '人工组盘', + formatter : function(value, row, index) { + return $.table.selectWhetherLabel(value); + }, }, { field : 'locationRule', @@ -130,11 +153,19 @@ }, { field : 'checkinByPiece', - title : 'RF逐件收货' + title : 'RF逐件收货', + align : "center", + formatter : function(value, row, index) { + return $.table.selectWhetherLabel(value); + }, }, { field : 'pieceConfirm', - title : 'RF自动提交收货' + title : 'RF自动提交收货', + align : "center", + formatter : function(value, row, index) { + return $.table.selectWhetherLabel(value); + }, }, { field : 'abcClass', @@ -154,7 +185,11 @@ }, { field : 'allowQuickPutaway', - title : 'RF快速上架' + title : 'RF快速上架', + align : "center", + formatter : function(value, row, index) { + return $.table.selectWhetherLabel(value); + }, }, { field : 'attributeTemplateCode', @@ -162,7 +197,11 @@ }, { field : 'useQuickCheckIn', - title : '快速入库' + title : '快速入库', + align : "center", + formatter : function(value, row, index) { + return $.table.selectWhetherLabel(value); + }, }, { field : 'created', diff --git a/src/main/resources/templates/config/shipmentPreference/add.html b/src/main/resources/templates/config/shipmentPreference/add.html index fbc5b0e..4b7119f 100644 --- a/src/main/resources/templates/config/shipmentPreference/add.html +++ b/src/main/resources/templates/config/shipmentPreference/add.html @@ -20,19 +20,25 @@ <div class="form-group"> <label class="col-sm-3 control-label">出库流程:</label> <div class="col-sm-8"> - <input id="receiptFlow" name="shippingFlow" class="form-control" type="text"> + <select id="shippingFlow" name="shippingFlow" class="form-control" th:with="shippingFlow=${@StatusFlow.shipmentStatusFlowHeaders('shipment')}"> + <option th:each="item : ${shippingFlow}" th:text="${item['name']}" th:value="${item['code']}"></option> + </select> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">库存分配规则:</label> <div class="col-sm-8"> - <input id="allocationRule" name="allocationRule" class="form-control" type="text"> + <select id="allocationRule" name="allocationRule" class="form-control" th:with="allocationRule=${@filterConfigHeaderService.getFilterConfigHeaderService('shipment','allocationRule')}"> + <option th:each="item : ${allocationRule}" th:text="${item['filterName']}" th:value="${item['filterCode']}"></option> + </select> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">拣货规则:</label> <div class="col-sm-8"> - <input id="shipmentPickingRule" name="shipmentPickingRule" class="form-control" type="text"> + <select id="shipmentPickingRule" name="shipmentPickingRule" class="form-control" th:with="shipmentPickingRule=${@filterConfigHeaderService.getFilterConfigHeaderService('shipment','shipmentPickingRule')}"> + <option th:each="item : ${shipmentPickingRule}" th:text="${item['filterName']}" th:value="${item['filterCode']}"></option> + </select> </div> </div> <div class="form-group"> diff --git a/src/main/resources/templates/config/shipmentPreference/edit.html b/src/main/resources/templates/config/shipmentPreference/edit.html index 06ad25b..0b9f832 100644 --- a/src/main/resources/templates/config/shipmentPreference/edit.html +++ b/src/main/resources/templates/config/shipmentPreference/edit.html @@ -18,24 +18,24 @@ <input id="name" name="name" class="form-control" type="text" th:field="*{name}"> </div> </div> - <div class="form-group"> - <label class="col-sm-3 control-label">出库流程:</label> - <div class="col-sm-8"> - <input id="shippingFlow" name="shippingFlow" class="form-control" type="text" th:field="*{shippingFlow}"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">库存分配规则:</label> - <div class="col-sm-8"> - <input id="allocationRule" name="allocationRule" class="form-control" type="text" th:field="*{allocationRule}"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">拣货规则:</label> - <div class="col-sm-8"> - <input id="shipmentPickingRule" name="shipmentPickingRule" class="form-control" type="text" th:field="*{shipmentPickingRule}"> - </div> - </div> + <!--<div class="form-group">--> + <!--<label class="col-sm-3 control-label">出库流程:</label>--> + <!--<div class="col-sm-8">--> + <!--<input id="shippingFlow" name="shippingFlow" class="form-control" type="text" th:field="*{shippingFlow}">--> + <!--</div>--> + <!--</div>--> + <!--<div class="form-group">--> + <!--<label class="col-sm-3 control-label">库存分配规则:</label>--> + <!--<div class="col-sm-8">--> + <!--<input id="allocationRule" name="allocationRule" class="form-control" type="text" th:field="*{allocationRule}">--> + <!--</div>--> + <!--</div>--> + <!--<div class="form-group">--> + <!--<label class="col-sm-3 control-label">拣货规则:</label>--> + <!--<div class="col-sm-8">--> + <!--<input id="shipmentPickingRule" name="shipmentPickingRule" class="form-control" type="text" th:field="*{shipmentPickingRule}">--> + <!--</div>--> + <!--</div>--> <div class="form-group"> <label class="col-sm-3 control-label">拣货库位范围规则:</label> <div class="col-sm-8"> @@ -236,18 +236,18 @@ name:{ required: true, }, - shippingFlow:{ - required: true, - }, - shipmentPickingRule:{ - required: true, - }, + // shippingFlow:{ + // required: true, + // }, + // shipmentPickingRule:{ + // required: true, + // }, shipmentPickingLocRange:{ required: true, }, - allocationRule: { - required: true, - }, + // allocationRule: { + // required: true, + // }, autoAssignLPN: { required: true, }, diff --git a/src/main/resources/templates/config/shipmentPreference/shipmentPreference.html b/src/main/resources/templates/config/shipmentPreference/shipmentPreference.html index 3e1b1aa..67fb14b 100644 --- a/src/main/resources/templates/config/shipmentPreference/shipmentPreference.html +++ b/src/main/resources/templates/config/shipmentPreference/shipmentPreference.html @@ -52,7 +52,9 @@ var editFlag = [[${@permission.hasPermi('config:shipmentPreference:edit')}]]; var removeFlag = [[${@permission.hasPermi('config:shipmentPreference:remove')}]]; var prefix = ctx + "config/shipmentPreference"; - var datas = [[${@dict.getType('sys_normal_disable')}]]; + var StatusFlow = [[${@StatusFlow.shipmentStatusFlowHeaders('shipment')}]]; + var shipmentPickingRule = [[${@filterConfigHeaderService.getFilterConfigHeaderService('shipment','shipmentPickingRule')}]]; + var allocationRule = [[${@filterConfigHeaderService.getFilterConfigHeaderService('shipment','allocationRule')}]]; $(function() { var options = { url: prefix + "/list", @@ -83,15 +85,45 @@ }, { field : 'shippingFlow', - title : '出库流程' + title : '出库流程', + formatter: function (value, item, index) { + var actions = []; + $.each(StatusFlow, function(index, dict) { + if (dict.code == value) { + actions.push("<span class='badge badge-" + dict.code + "'>" + dict.name + "</span>"); + return false; + } + }); + return actions.join(''); + } }, { field : 'allocationRule', title : '库存分配规则', + formatter: function (value, item, index) { + var actions = []; + $.each(allocationRule, function(index, dict) { + if (dict.filterCode == value) { + actions.push("<span class='badge badge-" + dict.filterCode + "'>" + dict.filterName + "</span>"); + return false; + } + }); + return actions.join(''); + } }, { field : 'shipmentPickingRule', title : '拣货规则', + formatter: function (value, item, index) { + var actions = []; + $.each(shipmentPickingRule, function(index, dict) { + if (dict.filterCode == value) { + actions.push("<span class='badge badge-" + dict.filterCode + "'>" + dict.filterName + "</span>"); + return false; + } + }); + return actions.join(''); + } }, { field : 'shipmentPickingLocRange', diff --git a/src/main/resources/templates/config/statusFlowDetail/statusFlowDetail.html b/src/main/resources/templates/config/statusFlowDetail/statusFlowDetail.html index 9ff33cf..223716b 100644 --- a/src/main/resources/templates/config/statusFlowDetail/statusFlowDetail.html +++ b/src/main/resources/templates/config/statusFlowDetail/statusFlowDetail.html @@ -23,7 +23,9 @@ var editFlag = [[${@permission.hasPermi('config:statusFlowDetails:edit')}]]; var removeFlag = [[${@permission.hasPermi('config:statusFlowDetails:remove')}]]; var datas = [[${@dict.getType('sys_normal_disable')}]]; + var moduleType = [[${@dict.getType('moduleType')}]]; var nessaryDatas = [[${@dict.getType('nessary')}]]; + $(function() { var options = { url: prefix + "/list", @@ -67,7 +69,11 @@ }, { field : 'moduleType', - title : '模块' + title : '模块', + align : "center", + formatter: function (value, item, index) { + return $.table.selectDictLabel(moduleType, value); + } }, { field : 'recordType', diff --git a/src/main/resources/templates/config/statusFlowHeader/add.html b/src/main/resources/templates/config/statusFlowHeader/add.html index ba86cef..adf741e 100644 --- a/src/main/resources/templates/config/statusFlowHeader/add.html +++ b/src/main/resources/templates/config/statusFlowHeader/add.html @@ -28,7 +28,9 @@ <div class="form-group"> <label class="col-sm-3 control-label">类型:</label> <div class="col-sm-8"> - <input id="recordType" name="recordType" class="form-control" type="text"> + <select id="recordType" name="recordType" class="form-control" th:with="recordType=${@dict.getType('recordType')}"> + <option th:each="item : ${recordType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option> + </select> </div> </div> <!--<div class="form-group">--> diff --git a/src/main/resources/templates/config/statusFlowHeader/edit.html b/src/main/resources/templates/config/statusFlowHeader/edit.html index 6b1c43d..8bae9ed 100644 --- a/src/main/resources/templates/config/statusFlowHeader/edit.html +++ b/src/main/resources/templates/config/statusFlowHeader/edit.html @@ -18,18 +18,20 @@ <input id="name" name="name" class="form-control" type="text" th:field="*{name}"> </div> </div> - <div class="form-group"> - <label class="col-sm-3 control-label">模块:</label> - <div class="col-sm-8"> - <input id="moduleType" name="moduleType" class="form-control" readonly="readonly"> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">类型:</label> - <div class="col-sm-8"> - <input id="recordType" name="recordType" class="form-control" type="text" th:field="*{recordType}"> - </div> - </div> + <!--<div class="form-group">--> + <!--<label class="col-sm-3 control-label">模块:</label>--> + <!--<div class="col-sm-8">--> + <!--<select id="moduleType" name="moduleType" class="form-control" th:with="moduleTyped=${@dict.getType('moduleType')}" th:field="*{moduleType}">--> + <!--<option th:each="item : ${moduleType}" th:text="${item['dictLabel']}" th:value="${item['dictValue']}"></option>--> + <!--</select>--> + <!--</div>--> + <!--</div>--> + <!--<div class="form-group">--> + <!--<label class="col-sm-3 control-label">类型:</label>--> + <!--<div class="col-sm-8">--> + <!--<input id="recordType" name="recordType" class="form-control" type="text" th:field="*{recordType}">--> + <!--</div>--> + <!--</div>--> <!--<div class="form-group">--> <!-- <label class="col-sm-3 control-label">数据版本:</label>--> <!-- <div class="col-sm-8">--> diff --git a/src/main/resources/templates/config/statusFlowHeader/statusFlowHeader.html b/src/main/resources/templates/config/statusFlowHeader/statusFlowHeader.html index 681d46b..675c1e1 100644 --- a/src/main/resources/templates/config/statusFlowHeader/statusFlowHeader.html +++ b/src/main/resources/templates/config/statusFlowHeader/statusFlowHeader.html @@ -27,7 +27,7 @@ 模块:<input type="text" name="moduleType" th:value="${moduleType}"/> </li> <li> - 类型:<input type="text" name="recordType"/> + 类型:<input type="text" name="recordType" th:value="${recordType}"/> </li> <li class="time"> <label>创建时间: </label> @@ -77,7 +77,8 @@ var editFlag = [[${@permission.hasPermi('config:statusFlowHeader:edit')}]]; var removeFlag = [[${@permission.hasPermi('config:statusFlowHeader:remove')}]]; var datas = [[${@dict.getType('sys_normal_disable')}]]; - + var moduleType = [[${@dict.getType('moduleType')}]]; + var recordType = [[${@dict.getType('recordType')}]]; $(function() { var options = { url: prefix + "/list", @@ -112,11 +113,19 @@ }, { field : 'moduleType', - title : '模块' + title : '模块', + align : "center", + formatter: function (value, item, index) { + return $.table.selectDictLabel(moduleType, value); + } }, { field : 'recordType', - title : '类型' + title : '类型', + align : "center", + formatter: function (value, item, index) { + return $.table.selectDictLabel(recordType, value); + } }, { field : 'enable', diff --git a/src/main/resources/templates/config/waveMaster/waveMaster.html b/src/main/resources/templates/config/waveMaster/waveMaster.html index 38719d3..fdd2b32 100644 --- a/src/main/resources/templates/config/waveMaster/waveMaster.html +++ b/src/main/resources/templates/config/waveMaster/waveMaster.html @@ -48,7 +48,7 @@ </div> <div class="btn-group hidden-xs" id="toolbar" role="group"> - <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="config:waveMaster:add"> + <a class="btn btn-outline btn-success btn-rounded" onclick="matserAdd()" shiro:hasPermission="config:waveMaster:add"> <i class="fa fa-plus"></i> 新增 </a> <a class="btn btn-outline btn-danger btn-rounded" onclick="$.operate.batRemove()" shiro:hasPermission="config:waveMaster:remove"> @@ -512,6 +512,11 @@ headerId = rowId; detail(); } + + function matserAdd() { + var url = prefix+"/add"; + $.modal.open("添加" + $.table._option.modalName, url); + } </script> </body> </html> \ No newline at end of file diff --git a/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html b/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html index ecc1659..4101300 100644 --- a/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html +++ b/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html @@ -87,10 +87,10 @@ shiro:hasPermission="shipment:bill:remove"> <i class="fa fa-trash-o"></i> 删除 </a> - <!--<a class="btn btn-outline btn-success btn-rounded" onclick="analysis()"--> - <!--shiro:hasPermission="shipment:bill:analysis">--> - <!--<i class="fa fa-plus"></i> 订单分析--> - <!--</a>--> + <a class="btn btn-outline btn-success btn-rounded" onclick="review()" + shiro:hasPermission="shipment:bill:edit"> + <i class="fa fa-plus"></i> 订单审核 + </a> <a class="btn btn-outline btn-success btn-rounded" onclick="wave()" shiro:hasPermission="shipment:bill:wave"> <i class="fa fa-plus"></i> 加入波次 @@ -214,7 +214,8 @@ var uploadStatus=[[${@dict.getType('uploadStatus')}]]; var detailCreateUrl=prefix_detail+"/add"; var detailRemoveUrl=prefix_detail+"/remove"; - var detailanalysisUrl=prefix+"/analysis"; + var reviewUrl=prefix+"/review"; + var analysisUrl=prefix+"/analysis"; var inventoryStatus=[[${@dict.getType('inventoryStatus')}]]; var rossDoccking = [[${@permission.hasPermi('shipment:bill:rossDoccking')}]]; var rossDocckingUrl =prefix_detail+"/rossDoccking"; @@ -640,10 +641,22 @@ }); } + /* 订单审核 */ + function review() { + var rows=$("#bootstrap-table").bootstrapTable('getSelections'); + if (rows.length == 0) { + $.modal.alertWarning("请至少选择一条记录"); + return; + } + var url = reviewUrl; + var data = { "ids": rows.map(function(v){return v.id;}).join(',') }; + localSubmit(url, "post", "json", data); + } + /* 订单分析 */ function analysis() { - var rows=$("#bootstrap-table-detail").bootstrapTable('getSelections'); + var rows=$("#bootstrap-table").bootstrapTable('getSelections'); if (rows.length == 0) { $.modal.alertWarning("请至少选择一条记录"); return;