| | |
| | | package com.example.erp.service.mm; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.example.erp.dto.mm.FinishedOperateLogDTO; |
| | | import com.example.erp.entity.mm.FinishedGoodsInventory; |
| | | import com.example.erp.entity.mm.FinishedOperateLog; |
| | | import com.example.erp.entity.pp.FlowCard; |
| | | import com.example.erp.entity.sd.Order; |
| | | import com.example.erp.entity.sd.OrderDetail; |
| | | import com.example.erp.entity.userInfo.SysError; |
| | | import com.example.erp.mapper.mm.BasicWarehouseTypeMapper; |
| | | import com.example.erp.mapper.mm.FinishedGoodsInventoryMapper; |
| | | import com.example.erp.mapper.mm.FinishedOperateLogMapper; |
| | | import com.example.erp.service.userInfo.SysErrorService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | | |
| | | import java.util.List; |
| | | import java.sql.SQLException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | | |
| | | @Service |
| | | @DS("mm") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public class FinishedGoodsInventoryService { |
| | | @Autowired |
| | | FinishedGoodsInventoryMapper finishedGoodsInventoryMapper; |
| | | public List<FinishedGoodsInventory> defaultDateFinishedGoodsInventory(Integer pageNum, Integer pageSize) { |
| | | Integer offset = (pageNum-1)*pageSize; |
| | | return finishedGoodsInventoryMapper.defaultfinishedGoodsInventory(offset,pageSize); |
| | | @Autowired |
| | | FinishedOperateLogMapper finishedOperateLogMapper; |
| | | @Autowired |
| | | BasicWarehouseTypeMapper basicWarehouseTypeMapper; |
| | | @Autowired |
| | | SysErrorService sysErrorService; |
| | | |
| | | public Map<String, Object> defaultDateFinishedGoodsInventory(Integer pageNum, Integer pageSize, FinishedGoodsInventory finishedGoodsInventory) { |
| | | Integer offset = (pageNum - 1) * pageSize; |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", finishedGoodsInventoryMapper.defaultfinishedGoods(offset, pageSize, finishedGoodsInventory)); |
| | | map.put("total", finishedGoodsInventoryMapper.getPageTotal(offset, pageSize, finishedGoodsInventory)); |
| | | return map; |
| | | } |
| | | |
| | | public Map<String, Object> getSelectWarehousing(Integer pageNum, Integer pageSize, FlowCard flowCard) { |
| | | Integer offset = (pageNum - 1) * pageSize; |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", finishedGoodsInventoryMapper.getSelectWarehousing(offset, pageSize, flowCard)); |
| | | map.put("total", finishedGoodsInventoryMapper.getSelectWarehousingPageTotal(offset, pageSize, flowCard)); |
| | | |
| | | return map; |
| | | } |
| | | |
| | | public Boolean addSelectWarehousing(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | //定义前端传输的数据 |
| | | String storageRegion = ""; |
| | | String remark = ""; |
| | | if (object.get("remark") != null) { |
| | | remark = object.get("remark").toString(); |
| | | } |
| | | if (object.get("storageRegion") != null) { |
| | | storageRegion = object.get("storageRegion").toString(); |
| | | } |
| | | |
| | | String userName = ""; |
| | | String userId = ""; |
| | | if (object.get("userName") != null) { |
| | | userName = object.get("userName").toString(); |
| | | } |
| | | if (object.get("userId") != null) { |
| | | userId = object.get("userId").toString(); |
| | | } |
| | | |
| | | //获取对象集合循环进行新增修改 |
| | | List<FlowCard> flowCardlist = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowcard")), FlowCard.class); |
| | | if (!flowCardlist.isEmpty()){ |
| | | for (FlowCard flowCard : flowCardlist) { |
| | | //获取单号 |
| | | String oddNumber= orderNumberSetting("入库"); |
| | | //添加出入库记录 |
| | | finishedOperateLogMapper.insertIntFinishedOperateLog(flowCard,userName,oddNumber); |
| | | Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber()); |
| | | Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(flowCard.getOrder().getOrderId()); |
| | | Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(flowCard.getOrder().getOrderId()); |
| | | |
| | | /*System.out.println("订单总数:" + ordersum + "已入库数量:" + ordernumbersum + "准备入库数量" + flowCard.getInventoryQuantity());*/ |
| | | if (finishedGoodsInventorycount > 0) { |
| | | //修改库存表入库数量 |
| | | finishedGoodsInventoryMapper.updateInventory(flowCard,storageRegion, remark); |
| | | //修改流程卡表入库数量 |
| | | finishedGoodsInventoryMapper.updateflowcard(flowCard); |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1); |
| | | //修改订单明细表入库数量 |
| | | finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(),flowCard.getInventoryQuantity()); |
| | | //判断订单是否全部入库 |
| | | if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) { |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2); |
| | | } |
| | | } else { |
| | | if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard, storageRegion, remark)) { |
| | | //修改流程卡表入库数量 |
| | | finishedGoodsInventoryMapper.updateflowcard(flowCard); |
| | | //修改订单明细表入库数量 |
| | | finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(),flowCard.getInventoryQuantity()); |
| | | if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) { |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2); |
| | | }else{ |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | | }else{ |
| | | return false; |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | //将异常传入数据库 |
| | | SysError sysError = new SysError(); |
| | | sysError.setError(e.toString()); |
| | | sysError.setFunc("saveOrder"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | |
| | | } |
| | | |
| | | return saveState; |
| | | |
| | | } |
| | | |
| | | |
| | | public Map<String, Object> getSelectDeliveryDetail(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { |
| | | Integer offset = (pageNum - 1) * pageSize; |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", finishedGoodsInventoryMapper.getSelectDeliveryDetail(offset, pageSize, orderDetail)); |
| | | map.put("total", finishedGoodsInventoryMapper.getSelectDeliveryDetailPageTotal(offset, pageSize, orderDetail)); |
| | | return map; |
| | | } |
| | | |
| | | |
| | | public Boolean addDeliveryDetail(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | //设置回滚点 |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | String userName = ""; |
| | | String userId = ""; |
| | | if (object.get("userName") != null) { |
| | | userName = object.get("userName").toString(); |
| | | } |
| | | if (object.get("userId") != null) { |
| | | userId = object.get("userId").toString(); |
| | | } |
| | | //获取对象集合循环进行新增修改 |
| | | List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class); |
| | | if (!orderDetaillist.isEmpty()){ |
| | | for (OrderDetail orderDetail : orderDetaillist) { |
| | | //获取单号 |
| | | String oddNumber= orderNumberSetting("出库"); |
| | | //添加出入库记录 |
| | | finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber); |
| | | Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber()); |
| | | |
| | | |
| | | Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId()); |
| | | Integer orderDeliveryQuantitySum = finishedGoodsInventoryMapper.findOrderDeliveryQuantitySum(orderDetail.getDeliveryDetail().getOrderId()); |
| | | |
| | | Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId()); |
| | | Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0); |
| | | if(deliverydetailsum==null){ |
| | | deliverydetailsum=0; |
| | | } |
| | | |
| | | /*System.out.println("订单总数:" + ordersum + "订单已发数量:" + orderDeliveryQuantitySum + "准备出库数量" + |
| | | orderDetail.getWarehouseNum()+ "发货数量" + orderDetail.getDeliveryDetail().getQuantity()+ "发货总数" + |
| | | deliverysum+ "已发数量" + deliverydetailsum);*/ |
| | | if (finishedGoodsInventorycount > 0) { |
| | | if(orderDetail.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){ |
| | | //修改库存表库存数量 |
| | | finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity()); |
| | | //修改发货明细表状态 |
| | | finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0); |
| | | //修改发货表状态 |
| | | finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1); |
| | | //修改订单明细表发货数量 |
| | | finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity()); |
| | | //修改订单表发货状态 |
| | | finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1); |
| | | //判断订单是否全部发货 |
| | | if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) { |
| | | //修改订单表发货状态 |
| | | finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2); |
| | | } |
| | | if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) { |
| | | //修改发货表状态 |
| | | finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | //将异常传入数据库 |
| | | SysError sysError = new SysError(); |
| | | sysError.setError(e.toString()); |
| | | sysError.setFunc("saveOrder"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | |
| | | } |
| | | return saveState; |
| | | |
| | | } |
| | | |
| | | public Map<String, Object> getSelectAllocate(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { |
| | | Integer offset = (pageNum - 1) * pageSize; |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", finishedGoodsInventoryMapper.getSelectAllocate(offset, pageSize, orderDetail)); |
| | | map.put("total", finishedGoodsInventoryMapper.getSelectAllocatePageTotal(offset, pageSize, orderDetail)); |
| | | map.put("type", basicWarehouseTypeMapper.getBasicWarehouseTypeTakeOut()); |
| | | map.put("types", basicWarehouseTypeMapper.getBasicWarehouseTypeRework()); |
| | | return map; |
| | | } |
| | | |
| | | public Boolean updateFinishedGoodsInventoryAllocate(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | //设置回滚点 |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | String userName = ""; |
| | | String userId = ""; |
| | | if (object.get("userName") != null) { |
| | | userName = object.get("userName").toString(); |
| | | } |
| | | if (object.get("userId") != null) { |
| | | userId = object.get("userId").toString(); |
| | | } |
| | | //获取对象集合循环进行新增修改 |
| | | List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class); |
| | | if (!orderDetaillist.isEmpty()){ |
| | | for (OrderDetail orderDetail : orderDetaillist) { |
| | | Integer oldordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getFinishedGoodsInventory().getOrderId()); |
| | | Integer oldordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getFinishedGoodsInventory().getOrderId()); |
| | | |
| | | Integer newordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getOrderId()); |
| | | Integer newordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getOrderId()); |
| | | |
| | | //获取单号 |
| | | String oddNumber= orderNumberSetting("调拨"); |
| | | //添加调拨记录 |
| | | finishedOperateLogMapper.insertFinishedOperateLogAllocate(orderDetail,userName,oddNumber); |
| | | //修改原订单的库存数量 |
| | | finishedGoodsInventoryMapper.updateInventoryquantityAllocateOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); |
| | | //修改调拨后订单的库存数量 |
| | | finishedGoodsInventoryMapper.updateInventoryquantityAllocateInt(orderDetail.getOrderId(),orderDetail.getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); |
| | | //修改原订单明细表发货数量 |
| | | finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); |
| | | //修改调拨新订单明细表发货数量 |
| | | finishedGoodsInventoryMapper.updateIntOrderNumberConut(orderDetail.getOrderId(),orderDetail.getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); |
| | | if (newordersum==newordernumbersum+orderDetail.getQuantity()){ |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getOrderId(),2); |
| | | } |
| | | if (Objects.equals(oldordersum, oldordernumbersum)){ |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getFinishedGoodsInventory().getOrderId(),1); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | //将异常传入数据库 |
| | | SysError sysError = new SysError(); |
| | | sysError.setError(e.toString()); |
| | | sysError.setFunc("saveOrder"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | |
| | | } |
| | | return saveState; |
| | | |
| | | |
| | | } |
| | | |
| | | public Map<String, Object> getSelectAllocateFinishedOperateLog(Integer pageNum, Integer pageSize,List<String> selectDate, FinishedOperateLog finishedOperateLog) { |
| | | Integer offset = (pageNum - 1) * pageSize; |
| | | |
| | | String endDate = LocalDate.now().toString(); |
| | | String startDate = LocalDate.now().minusDays(15).toString(); |
| | | if(selectDate !=null && selectDate.size()==2){ |
| | | if(!selectDate.get(0).isEmpty()){ |
| | | startDate = selectDate.get(0); |
| | | } |
| | | if(!selectDate.get(1).isEmpty()){ |
| | | endDate = selectDate.get(1); |
| | | } |
| | | } |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", finishedOperateLogMapper.getselectAllocateFinishedOperateLog(offset, pageSize,startDate,endDate, finishedOperateLog)); |
| | | map.put("total", finishedOperateLogMapper.getselectAllocateFinishedOperateLogPageTotal(offset, pageSize,startDate,endDate, finishedOperateLog)); |
| | | List<String> list = new ArrayList<>(); |
| | | list.add(startDate); |
| | | list.add(endDate); |
| | | map.put("selectDate",list); |
| | | return map; |
| | | } |
| | | |
| | | public Boolean updateFinishedGoodsInventoryTakeOut(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | //设置回滚点 |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | String userName = ""; |
| | | String userId = ""; |
| | | if (object.get("userName") != null) { |
| | | userName = object.get("userName").toString(); |
| | | } |
| | | if (object.get("userId") != null) { |
| | | userId = object.get("userId").toString(); |
| | | } |
| | | |
| | | String operateType = ""; |
| | | String remarks = ""; |
| | | if (object.get("remarks") != null) { |
| | | remarks = object.get("remarks").toString(); |
| | | } |
| | | if (object.get("operateType") != null) { |
| | | operateType = object.get("operateType").toString(); |
| | | } |
| | | //获取对象集合循环进行新增修改 |
| | | List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class); |
| | | if (!orderDetaillist.isEmpty()){ |
| | | for (OrderDetail orderDetail : orderDetaillist) { |
| | | Integer oldordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getFinishedGoodsInventory().getOrderId()); |
| | | Integer oldordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getFinishedGoodsInventory().getOrderId()); |
| | | |
| | | //获取单号 |
| | | String oddNumber= orderNumberSetting("领出"); |
| | | //添加领出记录 |
| | | finishedOperateLogMapper.insertFinishedOperateLogTakeOut(orderDetail,userName,oddNumber,operateType,remarks); |
| | | //修改库存数量 |
| | | finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); |
| | | //修改订单明细表数量 |
| | | finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); |
| | | if (Objects.equals(oldordersum, oldordernumbersum)){ |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getFinishedGoodsInventory().getOrderId(),1); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | //将异常传入数据库 |
| | | SysError sysError = new SysError(); |
| | | sysError.setError(e.toString()); |
| | | sysError.setFunc("saveOrder"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | |
| | | } |
| | | return saveState; |
| | | |
| | | } |
| | | |
| | | |
| | | public Map<String, Object> getSelectOperateRecord(Integer pageNum, Integer pageSize, List<String> selectDate, FinishedOperateLog finishedOperateLog) { |
| | | Integer offset = (pageNum-1)*pageSize; |
| | | String endDate = LocalDate.now().toString(); |
| | | String startDate = LocalDate.now().minusDays(15).toString(); |
| | | if(selectDate !=null && selectDate.size()==2){ |
| | | if(!selectDate.get(0).isEmpty()){ |
| | | startDate = selectDate.get(0); |
| | | } |
| | | if(!selectDate.get(1).isEmpty()){ |
| | | endDate = selectDate.get(1); |
| | | } |
| | | } |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", finishedOperateLogMapper.getSelectOperateRecord(offset, pageSize,startDate, endDate, finishedOperateLog)); |
| | | map.put("total", finishedOperateLogMapper.getSelectOperateRecordLogPageTotal(offset, pageSize,startDate, endDate, finishedOperateLog)); |
| | | List<String> list = new ArrayList<>(); |
| | | list.add(startDate); |
| | | list.add(endDate); |
| | | map.put("selectDate",list); |
| | | return map; |
| | | } |
| | | |
| | | |
| | | public Boolean updateFinishedGoodsInventoryRework(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | //设置回滚点 |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | String userName = ""; |
| | | String userId = ""; |
| | | if (object.get("userName") != null) { |
| | | userName = object.get("userName").toString(); |
| | | } |
| | | if (object.get("userId") != null) { |
| | | userId = object.get("userId").toString(); |
| | | } |
| | | |
| | | String operateType = ""; |
| | | String remarks = ""; |
| | | if (object.get("remarks") != null) { |
| | | remarks = object.get("remarks").toString(); |
| | | } |
| | | if (object.get("operateType") != null) { |
| | | operateType = object.get("operateType").toString(); |
| | | } |
| | | //获取对象集合循环进行新增修改 |
| | | List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class); |
| | | if (!orderDetaillist.isEmpty()){ |
| | | for (OrderDetail orderDetail : orderDetaillist) { |
| | | Integer oldordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getFinishedGoodsInventory().getOrderId()); |
| | | Integer oldordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getFinishedGoodsInventory().getOrderId()); |
| | | |
| | | //获取单号 |
| | | String oddNumber= orderNumberSetting("返工"); |
| | | //添加领出记录 |
| | | finishedOperateLogMapper.insertFinishedOperateLogRework(orderDetail,userName,oddNumber,operateType,remarks); |
| | | //修改库存数量 |
| | | finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); |
| | | //修改订单明细表数量 |
| | | finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity())); |
| | | if (Objects.equals(oldordersum, oldordernumbersum)){ |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getFinishedGoodsInventory().getOrderId(),1); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | //将异常传入数据库 |
| | | SysError sysError = new SysError(); |
| | | sysError.setError(e.toString()); |
| | | sysError.setFunc("saveOrder"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | |
| | | } |
| | | return saveState; |
| | | |
| | | } |
| | | |
| | | |
| | | public Boolean updateFinishedGoodsInventoryToExamine(Map<String,Object> object,String type) { |
| | | boolean saveState = true; |
| | | //设置回滚点 |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | String userName = ""; |
| | | String userId = ""; |
| | | if (object.get("userName") != null) { |
| | | userName = object.get("userName").toString(); |
| | | } |
| | | if (object.get("userId") != null) { |
| | | userId = object.get("userId").toString(); |
| | | } |
| | | //获取对象集合循环进行新增修改 |
| | | List<FinishedOperateLog> finishedOperateLogslist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), FinishedOperateLog.class); |
| | | if (!finishedOperateLogslist.isEmpty()){ |
| | | for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) { |
| | | if(Objects.equals(type, "审核")){ |
| | | //审核修改领出记录 |
| | | finishedOperateLogMapper.updateToExamine(finishedOperateLog,userName,"已审核"); |
| | | //审核修改库存数量 |
| | | finishedGoodsInventoryMapper.updateInventoryInventoryOut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity())); |
| | | } else if (Objects.equals(type, "反审")) { |
| | | //审核修改领出记录 |
| | | finishedOperateLogMapper.updateToExamine(finishedOperateLog,userName,"未审核"); |
| | | //审核修改库存数量 |
| | | finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity())); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | //将异常传入数据库 |
| | | SysError sysError = new SysError(); |
| | | sysError.setError(e.toString()); |
| | | sysError.setFunc("saveOrder"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | |
| | | } |
| | | return saveState; |
| | | |
| | | } |
| | | |
| | | public Boolean cancelFinishedGoodsInventoryToExamine(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | //设置回滚点 |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | String userName = ""; |
| | | String userId = ""; |
| | | if (object.get("userName") != null) { |
| | | userName = object.get("userName").toString(); |
| | | } |
| | | if (object.get("userId") != null) { |
| | | userId = object.get("userId").toString(); |
| | | } |
| | | //获取对象集合循环进行新增修改 |
| | | List<FinishedOperateLog> finishedOperateLogslist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), FinishedOperateLog.class); |
| | | if (!finishedOperateLogslist.isEmpty()){ |
| | | for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) { |
| | | finishedGoodsInventoryMapper.updateInventoryquantityInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(), Math.toIntExact(finishedOperateLog.getQuantity())); |
| | | finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"已作废"); |
| | | |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | //将异常传入数据库 |
| | | SysError sysError = new SysError(); |
| | | sysError.setError(e.toString()); |
| | | sysError.setFunc("saveOrder"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | |
| | | } |
| | | return saveState; |
| | | |
| | | } |
| | | |
| | | |
| | | public Map<String, Object> getSelectStorageRecord(Integer pageNum, Integer pageSize, List<String> selectDate,String type, FinishedOperateLog finishedOperateLog) { |
| | | Integer offset = (pageNum-1)*pageSize; |
| | | String endDate = LocalDate.now().toString(); |
| | | String startDate = LocalDate.now().minusDays(15).toString(); |
| | | if(selectDate !=null && selectDate.size()==2){ |
| | | if(!selectDate.get(0).isEmpty()){ |
| | | startDate = selectDate.get(0); |
| | | } |
| | | if(!selectDate.get(1).isEmpty()){ |
| | | endDate = selectDate.get(1); |
| | | } |
| | | } |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", finishedOperateLogMapper.getSelectStorageRecord(offset, pageSize,startDate, endDate,type, finishedOperateLog)); |
| | | map.put("total", finishedOperateLogMapper.getSelectStorageRecordLogPageTotal(offset, pageSize,startDate, endDate,type, finishedOperateLog)); |
| | | List<String> list = new ArrayList<>(); |
| | | list.add(startDate); |
| | | list.add(endDate); |
| | | map.put("selectDate",list); |
| | | return map; |
| | | } |
| | | |
| | | public Map<String, Object> getSelectFinishedOperateLogReport(Integer pageNum, Integer pageSize, List<String> selectDate, FinishedOperateLog finishedOperateLog) { |
| | | Integer offset = (pageNum-1)*pageSize; |
| | | String endDate = LocalDate.now().toString(); |
| | | String startDate = LocalDate.now().minusDays(15).toString(); |
| | | if(selectDate !=null && selectDate.size()==2){ |
| | | if(!selectDate.get(0).isEmpty()){ |
| | | startDate = selectDate.get(0); |
| | | } |
| | | if(!selectDate.get(1).isEmpty()){ |
| | | endDate = selectDate.get(1); |
| | | } |
| | | } |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", finishedOperateLogMapper.getSelectFinishedOperateLogReport(offset, pageSize,startDate, endDate, finishedOperateLog)); |
| | | map.put("total", finishedOperateLogMapper.getSelectFinishedOperateLogReportPageTotal(offset, pageSize,startDate, endDate, finishedOperateLog)); |
| | | List<String> list = new ArrayList<>(); |
| | | list.add(startDate); |
| | | list.add(endDate); |
| | | map.put("selectDate",list); |
| | | return map; |
| | | } |
| | | |
| | | |
| | | public Boolean cancelFinishedGoodsInventoryStorage(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | //设置回滚点 |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | try { |
| | | |
| | | //获取对象集合循环进行新增修改 |
| | | List<FinishedOperateLog> finishedOperateLogslist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), FinishedOperateLog.class); |
| | | if (!finishedOperateLogslist.isEmpty()){ |
| | | for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) { |
| | | Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(finishedOperateLog.getOrderId()); |
| | | Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(finishedOperateLog.getOrderId()); |
| | | |
| | | if(Objects.equals(finishedOperateLog.getOperateType(), "入库")){ |
| | | //修改记录表 |
| | | finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"已作废"); |
| | | //修改库存表入库数量 |
| | | finishedGoodsInventoryMapper.updateInventoryOut(finishedOperateLog); |
| | | //修改流程卡表入库数量 |
| | | finishedGoodsInventoryMapper.updateflowcardOut(finishedOperateLog); |
| | | //修改订单明细表入库数量 |
| | | finishedGoodsInventoryMapper.updateOutOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity()); |
| | | //判断订单是否全部入库 |
| | | if (Objects.equals(ordersum, ordernumbersum)) { |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),1); |
| | | } |
| | | if (ordernumbersum-finishedOperateLog.getQuantity()==0) { |
| | | //修改订单表入库状态 |
| | | finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),0); |
| | | } |
| | | |
| | | }else if(Objects.equals(finishedOperateLog.getOperateType(), "出库")){ |
| | | //修改记录表 |
| | | finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"已作废"); |
| | | //修改库存表库存数量 |
| | | finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity()); |
| | | //修改发货明细表状态 |
| | | finishedGoodsInventoryMapper.updateDeliveryDetailState(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getOperationOrderNumber(),1); |
| | | //修改发货表状态 |
| | | finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),0); |
| | | //修改订单明细表库内数量 |
| | | finishedGoodsInventoryMapper.updateIntOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity()); |
| | | //修改订单表发货状态 |
| | | finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOrderId(),1); |
| | | //判断订单是否全部发货 |
| | | if (ordernumbersum-finishedOperateLog.getQuantity()==0) { |
| | | //修改订单表发货状态 |
| | | finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),1); |
| | | |
| | | } |
| | | if (ordersum==finishedOperateLog.getQuantity()+ordernumbersum) { |
| | | //修改订单表发货状态 |
| | | finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),0); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | //将异常传入数据库 |
| | | SysError sysError = new SysError(); |
| | | sysError.setError(e.toString()); |
| | | sysError.setFunc("saveOrder"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | |
| | | } |
| | | return saveState; |
| | | |
| | | } |
| | | |
| | | public List<FinishedOperateLogDTO> exportFinishedOperateLogReport(List<LocalDate> dates) { |
| | | return finishedOperateLogMapper.exportFinishedOperateLogReport(dates); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | public String orderNumberSetting(String type) { |
| | | //根据类型自动生成不同的操作单号 |
| | | String alias=""; |
| | | if(Objects.equals(type, "入库")){ |
| | | alias="RK"; |
| | | }else if(Objects.equals(type, "出库")){ |
| | | alias="CK"; |
| | | }else if(Objects.equals(type, "调拨")){ |
| | | alias="DB"; |
| | | }else if(Objects.equals(type, "领出")){ |
| | | alias="LC"; |
| | | }else if(Objects.equals(type, "返工")){ |
| | | alias="FG"; |
| | | } |
| | | //查询当天的最大数量 |
| | | Integer maximum=finishedOperateLogMapper.getmaximum(type); |
| | | //设置两位不够补0 |
| | | String formattedNumber = String.format("%02d", maximum+1); |
| | | //格式化当前日期 |
| | | Date currentDate = new Date(); |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); |
| | | String formattedDate = dateFormat.format(currentDate); |
| | | String oddNumbers = alias+formattedDate+formattedNumber; |
| | | return oddNumbers; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |