| | |
| | | import com.java110.core.context.ICmdDataFlowContext; |
| | | import com.java110.core.event.cmd.Cmd; |
| | | import com.java110.core.event.cmd.CmdEvent; |
| | | import com.java110.core.factory.GenerateCodeFactory; |
| | | import com.java110.dto.purchase.AllocationStorehouseApplyDto; |
| | | import com.java110.dto.purchase.AllocationStorehouseDto; |
| | | import com.java110.dto.purchase.PurchaseApplyDto; |
| | | import com.java110.dto.resource.ResourceStoreDto; |
| | | import com.java110.dto.resource.ResourceStoreTimesDto; |
| | | import com.java110.dto.store.StorehouseDto; |
| | | import com.java110.intf.common.IAllocationStorehouseUserInnerServiceSMO; |
| | | import com.java110.intf.common.IOaWorkflowActivitiInnerServiceSMO; |
| | | import com.java110.intf.store.*; |
| | | import com.java110.po.purchase.AllocationStorehouseApplyPo; |
| | | import com.java110.po.purchase.PurchaseApplyPo; |
| | | import com.java110.po.purchase.ResourceStorePo; |
| | | import com.java110.po.resource.ResourceStoreTimesPo; |
| | | import com.java110.po.purchase.AllocationStorehousePo; |
| | | import com.java110.store.bmo.allocation.IAllocationBMO; |
| | | import com.java110.utils.exception.CmdException; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | | import com.java110.vo.ResultVo; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | |
| | |
| | | @Autowired |
| | | private IAllocationStorehouseApplyInnerServiceSMO allocationStorehouseApplyInnerServiceSMOImpl; |
| | | |
| | | |
| | | @Autowired |
| | | private IResourceStoreTimesV1InnerServiceSMO resourceStoreTimesV1InnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IResourceStoreInnerServiceSMO resourceStoreInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IAllocationStorehouseUserInnerServiceSMO allocationStorehouseUserInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IUserStorehouseInnerServiceSMO userStorehouseInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IAllocationStorehouseApplyV1InnerServiceSMO allocationStorehouseApplyV1InnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IAllocationStorehouseV1InnerServiceSMO allocationStorehouseV1InnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IResourceStoreV1InnerServiceSMO resourceStoreV1InnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IAllocationBMO allocationBMOImpl; |
| | |
| | | @Override |
| | | public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException { |
| | | Assert.hasKeyAndValue(reqJson, "applyId", "订单ID为空"); |
| | | |
| | | AllocationStorehouseApplyDto allocationStorehouseApplyDto = new AllocationStorehouseApplyDto(); |
| | | allocationStorehouseApplyDto.setApplyId(reqJson.getString("applyId")); |
| | | List<AllocationStorehouseApplyDto> allocationStorehouseDtos |
| | |
| | | JSONObject resourceStore = null; |
| | | ResourceStoreTimesDto resourceStoreTimesDto = null; |
| | | List<ResourceStoreTimesDto> resourceStoreTimesDtos = null; |
| | | int originStock = 0; |
| | | double originStock = 0; |
| | | for (int detailIndex = 0; detailIndex < resourceStores.size(); detailIndex++) { |
| | | resourceStore = resourceStores.getJSONObject(detailIndex); |
| | | Assert.hasKeyAndValue(resourceStore, "quantity", "调拨数量未包含"); |
| | |
| | | Assert.hasKeyAndValue(resourceStore, "timesId", "单价未填写"); |
| | | Assert.hasKeyAndValue(resourceStore, "resCode", "物品编码未填写"); |
| | | Assert.hasKeyAndValue(resourceStore, "asId", "调拨明细未填写"); |
| | | |
| | | |
| | | resourceStoreTimesDto = new ResourceStoreTimesDto(); |
| | | resourceStoreTimesDto.setTimesId(resourceStore.getString("timesId")); |
| | | resourceStoreTimesDto.setShId(resourceStore.getString("shIda")); |
| | | resourceStoreTimesDtos = resourceStoreTimesV1InnerServiceSMOImpl.queryResourceStoreTimess(resourceStoreTimesDto); |
| | | |
| | | Assert.listOnlyOne(resourceStoreTimesDtos, "物品不存在"); |
| | | originStock = Integer.parseInt(resourceStoreTimesDtos.get(0).getStock()); |
| | | if(originStock < resourceStore.getIntValue("quantity")){ |
| | | throw new CmdException(reqJson.getString("resCode")+"库存不足"); |
| | | originStock = Double.parseDouble(resourceStoreTimesDtos.get(0).getStock()); |
| | | double quantity = Double.parseDouble(resourceStore.getString("quantity")); |
| | | if (originStock < quantity) { |
| | | throw new CmdException(reqJson.getString("resCode") + "库存不足"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException { |
| | | |
| | | JSONArray resourceStores = reqJson.getJSONArray("resourceStores"); |
| | | JSONObject resourceStore = null; |
| | | int quantity = 0; |
| | | double quantity = 0; |
| | | for (int detailIndex = 0; detailIndex < resourceStores.size(); detailIndex++) { |
| | | resourceStore = resourceStores.getJSONObject(detailIndex); |
| | | //todo 查询调拨记录 |
| | |
| | | allocationStorehouseDto.setApplyId(reqJson.getString("applyId")); |
| | | allocationStorehouseDto.setAsId(resourceStore.getString("asId")); |
| | | List<AllocationStorehouseDto> allocationStorehouseDtos = allocationStorehouseV1InnerServiceSMOImpl.queryAllocationStorehouses(allocationStorehouseDto); |
| | | quantity = resourceStore.getIntValue("quantity"); |
| | | quantity = Double.parseDouble(resourceStore.getString("quantity")); |
| | | //todo 每条记录调拨 |
| | | allocationBMOImpl.doToAllocationStorehouse(allocationStorehouseDtos.get(0), quantity); |
| | | //把调拨申请库存更新为实际调拨库存 |
| | | AllocationStorehousePo allocationStorehousePo = new AllocationStorehousePo(); |
| | | allocationStorehousePo.setAsId(resourceStore.getString("asId")); |
| | | allocationStorehousePo.setStock(resourceStore.getString("quantity")); |
| | | allocationStorehouseV1InnerServiceSMOImpl.updateAllocationStorehouse(allocationStorehousePo); |
| | | } |
| | | |
| | | // |
| | | String applyId = reqJson.getString("applyId"); |
| | | AllocationStorehouseApplyPo allocationStorehouseApplyPo = new AllocationStorehouseApplyPo(); |
| | | allocationStorehouseApplyPo.setApplyId(applyId); |
| | |
| | | } |
| | | allocationStorehouseApplyPo.setStatusCd("0"); |
| | | allocationStorehouseApplyV1InnerServiceSMOImpl.updateAllocationStorehouseApply(allocationStorehouseApplyPo); |
| | | |
| | | |
| | | |
| | | context.setResponseEntity(ResultVo.createResponseEntity(ResultVo.CODE_OK, "采购申请成功")); |
| | | } |
| | | |
| | | } |