Commit f103151801b605b2903977758ed9dc2e3eecb167
Merge remote-tracking branch 'origin/develop' into develop
Showing
10 changed files
with
252 additions
and
40 deletions
src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceService.java
@@ -2,8 +2,14 @@ package com.huaheng.pc.config.shipmentPreference.service; | @@ -2,8 +2,14 @@ package com.huaheng.pc.config.shipmentPreference.service; | ||
2 | 2 | ||
3 | import com.baomidou.mybatisplus.extension.service.IService; | 3 | import com.baomidou.mybatisplus.extension.service.IService; |
4 | import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference; | 4 | import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference; |
5 | +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; | ||
6 | + | ||
7 | +import java.util.List; | ||
5 | 8 | ||
6 | public interface ShipmentPreferenceService extends IService<ShipmentPreference>{ | 9 | public interface ShipmentPreferenceService extends IService<ShipmentPreference>{ |
7 | 10 | ||
8 | 11 | ||
12 | + //查看出库此操作是否符合出库首选项的出库流程 | ||
13 | + List<ShipmentHeader> checkShipmentProcess(String ids, Integer code); | ||
14 | + | ||
9 | } | 15 | } |
src/main/java/com/huaheng/pc/config/shipmentPreference/service/ShipmentPreferenceServiceImpl.java
1 | package com.huaheng.pc.config.shipmentPreference.service; | 1 | package com.huaheng.pc.config.shipmentPreference.service; |
2 | 2 | ||
3 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
4 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||
3 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 5 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
6 | +import com.huaheng.common.exception.service.ServiceException; | ||
7 | +import com.huaheng.common.support.Convert; | ||
8 | +import com.huaheng.common.utils.StringUtils; | ||
9 | +import com.huaheng.common.utils.security.ShiroUtils; | ||
4 | import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference; | 10 | import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference; |
5 | import com.huaheng.pc.config.shipmentPreference.mapper.ShipmentPreferenceMapper; | 11 | import com.huaheng.pc.config.shipmentPreference.mapper.ShipmentPreferenceMapper; |
12 | +import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail; | ||
13 | +import com.huaheng.pc.config.statusFlow.domain.StatusFlowHeader; | ||
14 | +import com.huaheng.pc.config.statusFlow.service.StatusFlowDetailService; | ||
15 | +import com.huaheng.pc.config.statusFlow.service.StatusFlowHeaderService; | ||
16 | +import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; | ||
17 | +import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService; | ||
18 | +import org.springframework.beans.factory.annotation.Autowired; | ||
6 | import org.springframework.stereotype.Service; | 19 | import org.springframework.stereotype.Service; |
7 | 20 | ||
21 | +import java.util.ArrayList; | ||
22 | +import java.util.List; | ||
23 | + | ||
8 | @Service("shipmentPreference") | 24 | @Service("shipmentPreference") |
9 | public class ShipmentPreferenceServiceImpl extends ServiceImpl<ShipmentPreferenceMapper, ShipmentPreference> implements ShipmentPreferenceService { | 25 | public class ShipmentPreferenceServiceImpl extends ServiceImpl<ShipmentPreferenceMapper, ShipmentPreference> implements ShipmentPreferenceService { |
10 | 26 | ||
27 | + @Autowired | ||
28 | + private ShipmentPreferenceService shipmentPreferenceService; | ||
29 | + @Autowired | ||
30 | + private StatusFlowHeaderService statusFlowHeaderService; | ||
31 | + @Autowired | ||
32 | + private StatusFlowDetailService statusFlowDetailService; | ||
33 | + @Autowired | ||
34 | + private ShipmentHeaderService shipmentHeaderService; | ||
35 | + | ||
36 | + | ||
37 | + /** | ||
38 | + * 1、找出出库首选项 | ||
39 | + * 2、查看出库首选项的出库流程 | ||
40 | + * 3、找到该状态流的出库流程明细 | ||
41 | + * 4、判断单据是否按出库流程操作 | ||
42 | + * | ||
43 | + * @param ids 出库单id | ||
44 | + * @param code 状态流 | ||
45 | + * @return | ||
46 | + */ | ||
47 | + @Override | ||
48 | + public List<ShipmentHeader> checkShipmentProcess(String ids, Integer code) { | ||
49 | + //查找出库首选项 | ||
50 | + ShipmentPreference shipmentPreference = shipmentPreferenceService.list().get(0); | ||
51 | + if(shipmentPreference == null){ | ||
52 | + throw new ServiceException("系统没有设置出库首选"); | ||
53 | + } | ||
54 | + if(StringUtils.isEmpty(shipmentPreference.getShippingFlow())){ | ||
55 | + throw new ServiceException("出库首选没有绑定出库流程"); | ||
56 | + } | ||
57 | + | ||
58 | + //查看出库流程 | ||
59 | + LambdaQueryWrapper<StatusFlowHeader> statusFlowHeaderLam = Wrappers.lambdaQuery(); | ||
60 | + statusFlowHeaderLam.eq(StatusFlowHeader::getCode,shipmentPreference.getShippingFlow()) | ||
61 | + .eq(StatusFlowHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()); | ||
62 | + StatusFlowHeader statusFlowHeader = statusFlowHeaderService.getOne(statusFlowHeaderLam); | ||
63 | + if(statusFlowHeader == null){ | ||
64 | + throw new ServiceException("出库首选绑定的出库流程不在系统中"); | ||
65 | + } | ||
66 | + //查看流程明细 | ||
67 | + LambdaQueryWrapper<StatusFlowDetail> statusFlowDetailLamb = Wrappers.lambdaQuery(); | ||
68 | + statusFlowDetailLamb.eq(StatusFlowDetail::getHeaderId,statusFlowHeader.getId()) | ||
69 | + .eq(StatusFlowDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()) | ||
70 | + .eq(StatusFlowDetail::getFlowCode,code.toString()); | ||
71 | + StatusFlowDetail statusFlowDetail = statusFlowDetailService.getOne(statusFlowDetailLamb); | ||
72 | + | ||
73 | + List<ShipmentHeader> shipmentHeaderList = new ArrayList<>(); | ||
74 | + if(statusFlowDetail != null && statusFlowDetail.getNessary() == 1){ | ||
75 | + for (Integer id : Convert.toIntArray(ids)) | ||
76 | + { | ||
77 | + //判断单据是否按出库流程操作 | ||
78 | + ShipmentHeader shipmentHeader = shipmentHeaderService.getById(id); | ||
79 | + if(shipmentHeader == null || shipmentHeader.getFirstStatus()<code){ | ||
80 | + throw new ServiceException("单据状态不对,此操作不符合出库流程,请按照出库流程出库"); | ||
81 | + } | ||
82 | + shipmentHeaderList.add(shipmentHeader); | ||
83 | + } | ||
84 | + } | ||
85 | + return shipmentHeaderList; | ||
86 | + } | ||
11 | } | 87 | } |
src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java
@@ -16,7 +16,9 @@ import com.huaheng.framework.web.page.TableDataInfo; | @@ -16,7 +16,9 @@ import com.huaheng.framework.web.page.TableDataInfo; | ||
16 | import com.huaheng.framework.web.page.TableSupport; | 16 | import com.huaheng.framework.web.page.TableSupport; |
17 | import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail; | 17 | import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail; |
18 | import com.huaheng.pc.inventory.adjustDetail.service.AdjustDetailService; | 18 | import com.huaheng.pc.inventory.adjustDetail.service.AdjustDetailService; |
19 | +import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader; | ||
19 | import com.huaheng.pc.inventory.adjustHeader.service.AdjustHeaderService; | 20 | import com.huaheng.pc.inventory.adjustHeader.service.AdjustHeaderService; |
21 | +import org.apache.shiro.authz.annotation.RequiresPermissions; | ||
20 | import org.springframework.stereotype.Controller; | 22 | import org.springframework.stereotype.Controller; |
21 | import org.springframework.ui.ModelMap; | 23 | import org.springframework.ui.ModelMap; |
22 | import org.springframework.web.bind.annotation.GetMapping; | 24 | import org.springframework.web.bind.annotation.GetMapping; |
@@ -117,11 +119,59 @@ public class adjustDetailController extends BaseController { | @@ -117,11 +119,59 @@ public class adjustDetailController extends BaseController { | ||
117 | for (Integer id : integers) | 119 | for (Integer id : integers) |
118 | { | 120 | { |
119 | AdjustDetail adjustDetailEdit = adjustDetailService.getById(id); | 121 | AdjustDetail adjustDetailEdit = adjustDetailService.getById(id); |
122 | + //单据先审批 | ||
123 | + if(StringUtils.isEmpty(adjustDetailEdit.getAgreeBy()) || adjustDetailEdit.getStatus() < 1 ){ | ||
124 | + return AjaxResult.error("单据未审批不允许调整"); | ||
125 | + } | ||
120 | adjustDetailService.updateAdjustDetail(adjustDetailEdit); | 126 | adjustDetailService.updateAdjustDetail(adjustDetailEdit); |
121 | } | 127 | } |
122 | return AjaxResult.success("调整下发成功!"); | 128 | return AjaxResult.success("调整下发成功!"); |
123 | } | 129 | } |
124 | 130 | ||
131 | + /** | ||
132 | + * 调整审批 | ||
133 | + * @param ids | ||
134 | + * @return | ||
135 | + */ | ||
136 | + @Log(title = "库存-调整单", operating = "调整审批", action = BusinessType.OTHER) | ||
137 | + @PostMapping("/adjustAgree") | ||
138 | + @ResponseBody | ||
139 | + public AjaxResult adjustAgree (String ids){ | ||
140 | + | ||
141 | + if(ids == null){ | ||
142 | + throw new SecurityException("ID不能为空!"); | ||
143 | + } | ||
144 | + Integer[] integers = Convert.toIntArray(ids); | ||
145 | + for (Integer id : integers){ | ||
146 | + AdjustDetail adjustDetailEdit = adjustDetailService.getById(id); | ||
147 | + adjustDetailService.adjustAgree(adjustDetailEdit); | ||
148 | + | ||
149 | + } | ||
150 | + return AjaxResult.success("审批已下发!"); | ||
151 | + } | ||
152 | + | ||
153 | + /** | ||
154 | + * 删除调整单明细 | ||
155 | + */ | ||
156 | + //@RequiresPermissions("inventory:cyclecountDetail:remove") | ||
157 | + @Log(title = "库存-调整", operating = "删除调整单明细", action = BusinessType.DELETE) | ||
158 | + @PostMapping( "/remove") | ||
159 | + @ResponseBody | ||
160 | + public AjaxResult remove(Integer id){ | ||
161 | + if(id == null){ | ||
162 | + return AjaxResult.error("ID不能为空!"); | ||
163 | + } | ||
164 | + AdjustDetail adjustDetail = adjustDetailService.getById(id); | ||
165 | + if(adjustDetail.getStatus() > 0 ){ | ||
166 | + return AjaxResult.error("单据状态不允许删除"); | ||
167 | + } | ||
168 | + adjustDetailService.removeById(id); | ||
169 | + | ||
170 | + return AjaxResult.success("删除成功!"); | ||
171 | + } | ||
172 | + | ||
173 | + | ||
174 | + | ||
125 | 175 | ||
126 | 176 | ||
127 | 177 |
src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailService.java
@@ -10,6 +10,8 @@ public interface AdjustDetailService extends IService<AdjustDetail> { | @@ -10,6 +10,8 @@ public interface AdjustDetailService extends IService<AdjustDetail> { | ||
10 | 10 | ||
11 | AjaxResult updateAdjustDetail(AdjustDetail adjustDetail); | 11 | AjaxResult updateAdjustDetail(AdjustDetail adjustDetail); |
12 | 12 | ||
13 | + AjaxResult adjustAgree(AdjustDetail adjustDetail); | ||
14 | + | ||
13 | } | 15 | } |
14 | 16 | ||
15 | 17 |
src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java
@@ -39,10 +39,6 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -39,10 +39,6 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
39 | @Resource | 39 | @Resource |
40 | private AdjustHeaderService adjustHeaderService; | 40 | private AdjustHeaderService adjustHeaderService; |
41 | @Resource | 41 | @Resource |
42 | - private CycleCountHeaderService cycleCountHeaderService; | ||
43 | - @Resource | ||
44 | - private CycleCountDetailService cycleCountDetailService; | ||
45 | - @Resource | ||
46 | private InventoryHeaderService inventoryHeaderService; | 42 | private InventoryHeaderService inventoryHeaderService; |
47 | @Resource | 43 | @Resource |
48 | private InventoryDetailService inventoryDetailService; | 44 | private InventoryDetailService inventoryDetailService; |
@@ -59,6 +55,30 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -59,6 +55,30 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
59 | 55 | ||
60 | 56 | ||
61 | 57 | ||
58 | + | ||
59 | + /** | ||
60 | + * 调整审批 | ||
61 | + * @param adjustDetail | ||
62 | + * @return | ||
63 | + */ | ||
64 | + @Transactional | ||
65 | + @Override | ||
66 | + public AjaxResult adjustAgree(AdjustDetail adjustDetail) { | ||
67 | + //修改状态,审批人栏填入名称,修改状态 | ||
68 | + if(adjustDetail.getStatus() > 1){ | ||
69 | + return AjaxResult.error("单据状态无法审批!"); | ||
70 | + } | ||
71 | + adjustDetail.setAgreeBy(ShiroUtils.getLoginName()); | ||
72 | + adjustDetail.setAgreeTime(new Date()); | ||
73 | + adjustDetail.setStatus(1); | ||
74 | + adjustDetail.setLastUpdated(new Date()); | ||
75 | + adjustDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); | ||
76 | + this.saveOrUpdate(adjustDetail); | ||
77 | + | ||
78 | + return AjaxResult.success("审批完成!"); | ||
79 | + } | ||
80 | + | ||
81 | + | ||
62 | /** | 82 | /** |
63 | * 调整库存 | 83 | * 调整库存 |
64 | * 调整数量,调整库存状态 | 84 | * 调整数量,调整库存状态 |
@@ -89,7 +109,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -89,7 +109,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
89 | LambdaQueryWrapper<Location> lambdaQueryWrapper = Wrappers.lambdaQuery(location); | 109 | LambdaQueryWrapper<Location> lambdaQueryWrapper = Wrappers.lambdaQuery(location); |
90 | location = locationService.getOne(lambdaQueryWrapper); | 110 | location = locationService.getOne(lambdaQueryWrapper); |
91 | if (!location.getStatus().equals("empty")) { | 111 | if (!location.getStatus().equals("empty")) { |
92 | - throw new SecurityException(inventoryDetail.getId() + "库存非空闲,请等待任务完成再进行调整!"); | 112 | + throw new SecurityException(inventoryDetail.getId() + "库存非空闲,请等待其他任务完成再进行调整!"); |
93 | } | 113 | } |
94 | 114 | ||
95 | //判断调整哪一个属性值 | 115 | //判断调整哪一个属性值 |
@@ -123,6 +143,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | @@ -123,6 +143,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj | ||
123 | return AjaxResult.success("调整库存成功!"); | 143 | return AjaxResult.success("调整库存成功!"); |
124 | } | 144 | } |
125 | 145 | ||
146 | + | ||
126 | /** | 147 | /** |
127 | * 调整修改库存数量 | 148 | * 调整修改库存数量 |
128 | * @param adjustDetail | 149 | * @param adjustDetail |
src/main/java/com/huaheng/pc/inventory/cycleCountDetail/controller/CycleCountDetailController.java
@@ -174,14 +174,14 @@ public class CycleCountDetailController extends BaseController { | @@ -174,14 +174,14 @@ public class CycleCountDetailController extends BaseController { | ||
174 | if(cyclecountHeader == null){ | 174 | if(cyclecountHeader == null){ |
175 | return AjaxResult.error("主单据不存在"); | 175 | return AjaxResult.error("主单据不存在"); |
176 | } | 176 | } |
177 | - if(cyclecountHeader.getStatusCyc() > 5){ | 177 | + if(cyclecountHeader.getStatusCyc() > 1){ |
178 | return AjaxResult.error("主单据状态不允许删除"); | 178 | return AjaxResult.error("主单据状态不允许删除"); |
179 | } | 179 | } |
180 | for (Integer id : detailsIds) | 180 | for (Integer id : detailsIds) |
181 | { | 181 | { |
182 | //只允许删除新建状态下的盘点明细。 | 182 | //只允许删除新建状态下的盘点明细。 |
183 | CycleCountDetail cyclecountDetails = cycleCountDetailService.getById(id); | 183 | CycleCountDetail cyclecountDetails = cycleCountDetailService.getById(id); |
184 | - if(cyclecountDetails.getEnableStatus() > 5){ | 184 | + if(cyclecountDetails.getEnableStatus() > 1){ |
185 | return AjaxResult.error("盘点已开始执行,不允许删除该盘点明细!"); | 185 | return AjaxResult.error("盘点已开始执行,不允许删除该盘点明细!"); |
186 | } | 186 | } |
187 | cycleCountDetailService.removeById(id); | 187 | cycleCountDetailService.removeById(id); |
src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java
@@ -10,6 +10,7 @@ import com.huaheng.pc.config.location.domain.Location; | @@ -10,6 +10,7 @@ import com.huaheng.pc.config.location.domain.Location; | ||
10 | import com.huaheng.pc.config.location.service.LocationService; | 10 | import com.huaheng.pc.config.location.service.LocationService; |
11 | import com.huaheng.pc.config.material.domain.Material; | 11 | import com.huaheng.pc.config.material.domain.Material; |
12 | import com.huaheng.pc.config.material.service.MaterialService; | 12 | import com.huaheng.pc.config.material.service.MaterialService; |
13 | +import com.huaheng.pc.config.shipmentPreference.service.ShipmentPreferenceService; | ||
13 | import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; | 14 | import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; |
14 | import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; | 15 | import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; |
15 | import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; | 16 | import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; |
@@ -67,6 +68,8 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont | @@ -67,6 +68,8 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont | ||
67 | private TaskDetailService taskDetailService; | 68 | private TaskDetailService taskDetailService; |
68 | @Autowired | 69 | @Autowired |
69 | private WaveService waveService; | 70 | private WaveService waveService; |
71 | + @Autowired | ||
72 | + private ShipmentPreferenceService shipmentPreferenceService; | ||
70 | 73 | ||
71 | 74 | ||
72 | @Override | 75 | @Override |
@@ -392,6 +395,15 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont | @@ -392,6 +395,15 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont | ||
392 | @Override | 395 | @Override |
393 | @Transactional | 396 | @Transactional |
394 | public AjaxResult autoCombination(String shipmentCode) { | 397 | public AjaxResult autoCombination(String shipmentCode) { |
398 | + LambdaQueryWrapper<ShipmentHeader> shipmentHeaderLam = Wrappers.lambdaQuery(); | ||
399 | + shipmentHeaderLam.eq(ShipmentHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) | ||
400 | + .eq(ShipmentHeader::getCode,shipmentCode); | ||
401 | + ShipmentHeader shipmentHeader = shipmentHeaderService.getOne(shipmentHeaderLam); | ||
402 | + if(shipmentHeader == null){ | ||
403 | + throw new ServiceException("系统没有此单据"); | ||
404 | + } | ||
405 | + shipmentPreferenceService.checkShipmentProcess(shipmentHeader.getId().toString(),100); | ||
406 | + | ||
395 | LambdaQueryWrapper<ShipmentDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); | 407 | LambdaQueryWrapper<ShipmentDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
396 | lambdaQueryWrapper.eq(ShipmentDetail::getShipmentCode, shipmentCode) | 408 | lambdaQueryWrapper.eq(ShipmentDetail::getShipmentCode, shipmentCode) |
397 | .eq(ShipmentDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()); | 409 | .eq(ShipmentDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()); |
src/main/java/com/huaheng/pc/shipment/shipmentDetail/service/ShipmentDetailServiceImpl.java
@@ -10,6 +10,12 @@ import com.huaheng.common.utils.security.ShiroUtils; | @@ -10,6 +10,12 @@ import com.huaheng.common.utils.security.ShiroUtils; | ||
10 | import com.huaheng.framework.web.domain.AjaxResult; | 10 | import com.huaheng.framework.web.domain.AjaxResult; |
11 | import com.huaheng.pc.config.material.domain.Material; | 11 | import com.huaheng.pc.config.material.domain.Material; |
12 | import com.huaheng.pc.config.material.service.MaterialService; | 12 | import com.huaheng.pc.config.material.service.MaterialService; |
13 | +import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference; | ||
14 | +import com.huaheng.pc.config.shipmentPreference.service.ShipmentPreferenceService; | ||
15 | +import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail; | ||
16 | +import com.huaheng.pc.config.statusFlow.domain.StatusFlowHeader; | ||
17 | +import com.huaheng.pc.config.statusFlow.service.StatusFlowDetailService; | ||
18 | +import com.huaheng.pc.config.statusFlow.service.StatusFlowHeaderService; | ||
13 | import com.huaheng.pc.config.waveMaster.domain.WaveMaster; | 19 | import com.huaheng.pc.config.waveMaster.domain.WaveMaster; |
14 | import com.huaheng.pc.config.waveMaster.service.WaveMasterService; | 20 | import com.huaheng.pc.config.waveMaster.service.WaveMasterService; |
15 | import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; | 21 | import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; |
@@ -43,6 +49,12 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | @@ -43,6 +49,12 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | ||
43 | private WaveMasterService waveMasterService; | 49 | private WaveMasterService waveMasterService; |
44 | @Autowired | 50 | @Autowired |
45 | private WaveService waveService; | 51 | private WaveService waveService; |
52 | + @Autowired | ||
53 | + private ShipmentPreferenceService shipmentPreferenceService; | ||
54 | + @Autowired | ||
55 | + private StatusFlowHeaderService statusFlowHeaderService; | ||
56 | + @Autowired | ||
57 | + private StatusFlowDetailService statusFlowDetailService; | ||
46 | 58 | ||
47 | /** | 59 | /** |
48 | * 新增出库明细 | 60 | * 新增出库明细 |
@@ -152,6 +164,7 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | @@ -152,6 +164,7 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | ||
152 | 164 | ||
153 | 165 | ||
154 | /** | 166 | /** |
167 | + * 查看选中的单据状态是否符合出库流程 | ||
155 | * 选中的单据加入波次 | 168 | * 选中的单据加入波次 |
156 | * 根据选中的主单ID和波次主表的code,判断主单之和是否符合波次的限制条件, | 169 | * 根据选中的主单ID和波次主表的code,判断主单之和是否符合波次的限制条件, |
157 | * 看此code的波次是否建成未开始执行,如果是则只需修改波次属性,否则创建新的波次, | 170 | * 看此code的波次是否建成未开始执行,如果是则只需修改波次属性,否则创建新的波次, |
@@ -160,6 +173,9 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | @@ -160,6 +173,9 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | ||
160 | @Override | 173 | @Override |
161 | @Transactional | 174 | @Transactional |
162 | public void saveWave(String ids, String code) { | 175 | public void saveWave(String ids, String code) { |
176 | + Integer status = 100; | ||
177 | + List<ShipmentHeader> shipmentHeaderList =shipmentPreferenceService.checkShipmentProcess(ids,status); | ||
178 | + | ||
163 | //找到波次主表,看系统是否有此波次 | 179 | //找到波次主表,看系统是否有此波次 |
164 | LambdaQueryWrapper<WaveMaster> lam=Wrappers.lambdaQuery(); | 180 | LambdaQueryWrapper<WaveMaster> lam=Wrappers.lambdaQuery(); |
165 | lam.eq(WaveMaster::getCode,code) | 181 | lam.eq(WaveMaster::getCode,code) |
@@ -248,12 +264,8 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | @@ -248,12 +264,8 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, | ||
248 | throw new ServiceException("出库子单加入波次失败"); | 264 | throw new ServiceException("出库子单加入波次失败"); |
249 | } | 265 | } |
250 | 266 | ||
251 | - List<ShipmentHeader> shipmentHeaderList=new ArrayList<>(); | ||
252 | - //修改主单状态 | ||
253 | - for (Integer id : Convert.toIntArray(ids)){ | ||
254 | - ShipmentHeader shipmentHeader = shipmentHeaderService.getById(id); | 267 | + for(ShipmentHeader shipmentHeader :shipmentHeaderList){ |
255 | shipmentHeader.setLastStatus(200); | 268 | shipmentHeader.setLastStatus(200); |
256 | - shipmentHeaderList.add(shipmentHeader); | ||
257 | } | 269 | } |
258 | flag = shipmentHeaderService.updateBatchById(shipmentHeaderList); | 270 | flag = shipmentHeaderService.updateBatchById(shipmentHeaderList); |
259 | if(flag == false){ | 271 | if(flag == false){ |
src/main/resources/templates/config/statusFlowDetail/statusFlowDetail.html
@@ -25,7 +25,6 @@ | @@ -25,7 +25,6 @@ | ||
25 | var datas = [[${@dict.getType('sys_normal_disable')}]]; | 25 | var datas = [[${@dict.getType('sys_normal_disable')}]]; |
26 | var moduleType = [[${@dict.getType('moduleType')}]]; | 26 | var moduleType = [[${@dict.getType('moduleType')}]]; |
27 | var nessaryDatas = [[${@dict.getType('nessary')}]]; | 27 | var nessaryDatas = [[${@dict.getType('nessary')}]]; |
28 | - var moduleType = [[${@dict.getType('moduleType')}]]; | ||
29 | 28 | ||
30 | $(function() { | 29 | $(function() { |
31 | var options = { | 30 | var options = { |
src/main/resources/templates/inventory/adjustDetail/adjustDetail.html
@@ -94,8 +94,8 @@ | @@ -94,8 +94,8 @@ | ||
94 | <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()"> | 94 | <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()"> |
95 | <i class="fa fa-plus"></i> 新增 | 95 | <i class="fa fa-plus"></i> 新增 |
96 | </a> | 96 | </a> |
97 | - <a class="btn btn-outline btn-primary btn-rounded" onclick=""> | ||
98 | - <i class="fa fa-edit"></i> 审核 | 97 | + <a class="btn btn-outline btn-primary btn-rounded" onclick="agree()"> |
98 | + <i class="fa fa-edit"></i> 审批 | ||
99 | </a> | 99 | </a> |
100 | <a class="btn btn-outline btn-danger btn-rounded" onclick="addAdjust()"/> | 100 | <a class="btn btn-outline btn-danger btn-rounded" onclick="addAdjust()"/> |
101 | <!--shiro:hasPermission="inventory:cyclecountAdjustDetail:addAdjust"--> | 101 | <!--shiro:hasPermission="inventory:cyclecountAdjustDetail:addAdjust"--> |
@@ -320,7 +320,7 @@ | @@ -320,7 +320,7 @@ | ||
320 | align: 'center', | 320 | align: 'center', |
321 | formatter: function (value, row, index) { | 321 | formatter: function (value, row, index) { |
322 | var actions = []; | 322 | var actions = []; |
323 | - actions.push('<a class="btn btn-danger btn-xs" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> '); | 323 | + actions.push('<a class="btn btn-danger btn-xs" href="#" onclick="remove(\'' + row.id + '\')"><i class="fa fa-trash-o"></i>删除</a> '); |
324 | return actions.join(''); | 324 | return actions.join(''); |
325 | } | 325 | } |
326 | } | 326 | } |
@@ -353,10 +353,22 @@ | @@ -353,10 +353,22 @@ | ||
353 | 353 | ||
354 | }); | 354 | }); |
355 | 355 | ||
356 | + /*审批*/ | ||
357 | + function agree() { | ||
358 | + var rows = $.common.isEmpty($.table._option.id) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.id); | ||
359 | + if (rows.length == 0) { | ||
360 | + $.modal.alertWarning("请至少选择一条记录"); | ||
361 | + return; | ||
362 | + } | ||
363 | + $.modal.confirm("审批请谨慎核对数据!" | ||
364 | + , function() { | ||
365 | + var url = prefix + "/adjustAgree"; | ||
366 | + var data = { "ids": rows.join() }; | ||
367 | + postInner(url, data); | ||
368 | + }); | ||
369 | + } | ||
356 | 370 | ||
357 | - /* | ||
358 | - *盘点差异调整 | ||
359 | - * */ | 371 | + /*调整*/ |
360 | function addAdjust() { | 372 | function addAdjust() { |
361 | var rows = $.common.isEmpty($.table._option.id) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.id); | 373 | var rows = $.common.isEmpty($.table._option.id) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.id); |
362 | if (rows.length == 0) { | 374 | if (rows.length == 0) { |
@@ -365,9 +377,49 @@ | @@ -365,9 +377,49 @@ | ||
365 | } | 377 | } |
366 | $.modal.confirm("注意:该操作将更改库存,当实盘数量为0且库位上只剩空容器时,请手动执行空托出库任务,容器上有货则无需其他操作!" | 378 | $.modal.confirm("注意:该操作将更改库存,当实盘数量为0且库位上只剩空容器时,请手动执行空托出库任务,容器上有货则无需其他操作!" |
367 | , function() { | 379 | , function() { |
368 | - var url = prefix + "/adjustEdit"; | ||
369 | - var data = { "ids": rows.join() }; | ||
370 | - postInner(url, data); | 380 | + var url = prefix + "/adjustEdit"; |
381 | + var data = { "ids": rows.join() }; | ||
382 | + postInner(url, data); | ||
383 | + }); | ||
384 | + } | ||
385 | + | ||
386 | + function postInner(url,data) { | ||
387 | + $.modal.loading("正在处理中,请稍后..."); | ||
388 | + $.ajax({ | ||
389 | + url:url, | ||
390 | + type:"post", | ||
391 | + data:data, | ||
392 | + success:function (result) { | ||
393 | + if (result.code == web_status.SUCCESS) { | ||
394 | + $.modal.msgSuccess(result.msg); | ||
395 | + $.table.refresh(); | ||
396 | + } else { | ||
397 | + $.modal.alertError(result.msg); | ||
398 | + } | ||
399 | + $.modal.closeLoading(); | ||
400 | + } | ||
401 | + }) | ||
402 | + } | ||
403 | + | ||
404 | + /*单条删除*/ | ||
405 | + function remove(id) { | ||
406 | + $.modal.confirm("确定删除该条" + $.table._option.modalName + "信息吗?", function() { | ||
407 | + var url = prefix+"/remove"; | ||
408 | + var data = { "id": id }; | ||
409 | + $.ajax({ | ||
410 | + url: url, | ||
411 | + type:"post", | ||
412 | + data:data, | ||
413 | + success:function (result) { | ||
414 | + if (result.code == web_status.SUCCESS) { | ||
415 | + $.modal.msgSuccess(result.msg); | ||
416 | + $.table.refresh(); | ||
417 | + } else { | ||
418 | + $.modal.alertError(result.msg); | ||
419 | + } | ||
420 | + $.modal.closeLoading(); | ||
421 | + } | ||
422 | + }) | ||
371 | }); | 423 | }); |
372 | } | 424 | } |
373 | 425 | ||
@@ -402,24 +454,6 @@ | @@ -402,24 +454,6 @@ | ||
402 | // shadeClose: true, //点击遮罩关闭层 | 454 | // shadeClose: true, //点击遮罩关闭层 |
403 | }) | 455 | }) |
404 | } | 456 | } |
405 | - function postInner(url,data) { | ||
406 | - $.modal.loading("正在处理中,请稍后..."); | ||
407 | - $.ajax({ | ||
408 | - url:url, | ||
409 | - type:"post", | ||
410 | - data:data, | ||
411 | - success:function (result) { | ||
412 | - if (result.code == web_status.SUCCESS) { | ||
413 | - $.modal.msgSuccess(result.msg); | ||
414 | - update(); | ||
415 | - } else { | ||
416 | - $.modal.alertError(result.msg); | ||
417 | - } | ||
418 | - $.modal.closeLoading(); | ||
419 | - } | ||
420 | - }) | ||
421 | - } | ||
422 | - | ||
423 | 457 | ||
424 | </script> | 458 | </script> |
425 | </body> | 459 | </body> |