gqx 2 anni fa
parent
commit
b5dd89ae03

+ 35 - 21
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/controller/PosOrderGoodsController.java

@@ -115,29 +115,41 @@ private CesGoodsServiceImpl cesGoodsService;
 		 if (ObjectUtils.isEmpty(posOrderGoods.getPosOrderGoodsDetailList())) {
 			 return Result.error("请先选择商品");
 		 }
-		 LocalDateTime localDateTime = LocalDateTime.now().withNano(0).withSecond(0).withMinute(0).withHour(0);
-		 LocalDateTime[] arr = new LocalDateTime[]{localDateTime, localDateTime.withHour(23).withMinute(59)};
-		 LambdaQueryWrapper<PosOrderGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		 lambdaQueryWrapper.eq(PosOrderGoods::getHotelId, posOrderGoods.getHotelId());
-		 lambdaQueryWrapper.ge(PosOrderGoods::getCreateTime, arr[0]);
-		 lambdaQueryWrapper.le(PosOrderGoods::getCreateTime, arr[1]);
-		 lambdaQueryWrapper.isNull(PosOrderGoods::getPosTableId);
-		 Page<PosOrderGoods> page = new Page<PosOrderGoods>(1, 1);
-		 IPage<PosOrderGoods> pageList = posOrderGoodsService.page(page, lambdaQueryWrapper);
-		 if (ObjectUtils.isNotEmpty(pageList.getRecords())) {
-			 String no = pageList.getRecords().get(0).getTableNo();
-			 try {
-				 Integer newNo = Integer.parseInt(no) + 1;
-				 posOrderGoods.setTableNo(String.format("%03d", newNo));
-			 } catch (NumberFormatException ex) {
+
+		 if(ObjectUtils.isEmpty(posOrderGoods.getId())) {
+			 LocalDateTime localDateTime = LocalDateTime.now().withNano(0).withSecond(0).withMinute(0).withHour(0);
+			 LocalDateTime[] arr = new LocalDateTime[]{localDateTime, localDateTime.withHour(23).withMinute(59)};
+			 LambdaQueryWrapper<PosOrderGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			 lambdaQueryWrapper.eq(PosOrderGoods::getHotelId, posOrderGoods.getHotelId());
+			 lambdaQueryWrapper.ge(PosOrderGoods::getCreateTime, arr[0]);
+			 lambdaQueryWrapper.le(PosOrderGoods::getCreateTime, arr[1]);
+			 lambdaQueryWrapper.isNull(PosOrderGoods::getPosTableId);
+			 Page<PosOrderGoods> page = new Page<PosOrderGoods>(1, 1);
+			 lambdaQueryWrapper.orderByDesc(PosOrderGoods::getCreateTime);
+			 IPage<PosOrderGoods> pageList = posOrderGoodsService.page(page, lambdaQueryWrapper);
+			 if (ObjectUtils.isNotEmpty(pageList.getRecords())) {
+				 String no = pageList.getRecords().get(0).getTableNo();
+				 try {
+					 Integer newNo = Integer.parseInt(no) + 1;
+					 posOrderGoods.setTableNo(String.format("%03d", newNo));
+				 } catch (NumberFormatException ex) {
+					 posOrderGoods.setTableNo("001");
+				 }
+			 } else {
 				 posOrderGoods.setTableNo("001");
 			 }
-		 } else {
-			 posOrderGoods.setTableNo("001");
+			 posOrderGoods.setCode(randomNumber("P"));
+		 }else {
+			 List<PosOrderGoodsDetail> list = posOrderGoods.getPosOrderGoodsDetailList();
+			 String toRoomFeeOrderId=posOrderGoods.getToRoomFeeOrderId();
+			 posOrderGoods = posOrderGoodsService.getById(posOrderGoods.getId());
+			 posOrderGoods.setPosOrderGoodsDetailList(list);
+			 posOrderGoods.setToRoomFeeOrderId(toRoomFeeOrderId);
+		 }
+		 if(ObjectUtils.isNotEmpty(posOrderGoods.getToRoomFeeOrderId())){
+		 	posOrderGoods.setStatus(1);
 		 }
 		 posOrderGoods.setTenantId(TokenUtils.currentTenantId());
-		 posOrderGoods.setCode(randomNumber("P"));
-
 		 BigDecimal amount = BigDecimal.ZERO;
 		 for (PosOrderGoodsDetail posOrderGoodsDetail : posOrderGoods.getPosOrderGoodsDetailList()) {
 			 amount = amount.add(posOrderGoodsDetail.getMoney().multiply(BigDecimal.valueOf(posOrderGoodsDetail.getNum())));
@@ -151,9 +163,11 @@ private CesGoodsServiceImpl cesGoodsService;
 		 posOrderGoods.setMoney(amount);
 		 posOrderGoods.setConsumeMoney(amount);
 		 posOrderGoods.setCreateTime(new Date());
-
-		 Boolean res = posOrderGoodsService.save(posOrderGoods);
+		 Boolean res = posOrderGoodsService.saveOrUpdate(posOrderGoods);
 		 if (res) {
+		 	LambdaQueryWrapper<PosOrderGoodsDetail> lambdaQueryWrapper =new LambdaQueryWrapper<>();
+		 	lambdaQueryWrapper.eq(PosOrderGoodsDetail::getOrderId,posOrderGoods.getCode());
+			 posOrderGoodsDetailService.remove(lambdaQueryWrapper);
 			 res = posOrderGoodsDetailService.saveBatch(posOrderGoods.getPosOrderGoodsDetailList());
 			 if (res) {
 				 //商品减库存

+ 13 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/controller/PosOrderGoodsDetailController.java

@@ -9,10 +9,13 @@ import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.pos.entity.PosOrderGoodsDetail;
+import org.jeecg.modules.pos.entity.PosSellClearGoods;
 import org.jeecg.modules.pos.service.IPosOrderGoodsDetailService;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -20,6 +23,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
+import org.jeecg.modules.rooms.entity.CesGoods;
+import org.jeecg.modules.rooms.service.CesGoodsServiceImpl;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -50,7 +55,8 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
 public class PosOrderGoodsDetailController extends JeecgController<PosOrderGoodsDetail, IPosOrderGoodsDetailService> {
 	@Autowired
 	private IPosOrderGoodsDetailService posOrderGoodsDetailService;
-
+@Autowired
+private CesGoodsServiceImpl cesGoodsService;
 	/**
 	 * 分页列表查询
 	 *
@@ -70,6 +76,12 @@ public class PosOrderGoodsDetailController extends JeecgController<PosOrderGoods
 		QueryWrapper<PosOrderGoodsDetail> queryWrapper = QueryGenerator.initQueryWrapper(posOrderGoodsDetail, req.getParameterMap());
 		Page<PosOrderGoodsDetail> page = new Page<PosOrderGoodsDetail>(pageNo, pageSize);
 		IPage<PosOrderGoodsDetail> pageList = posOrderGoodsDetailService.page(page, queryWrapper);
+		pageList.getRecords().forEach(item -> {
+			CesGoods cesGoods = cesGoodsService.getById(item.getGoodsId());
+			if(cesGoods!=null){
+				item.setGoodsName(cesGoods.getName());
+			}
+		});
 		return Result.OK(pageList);
 	}
 

+ 5 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/entity/PosOrderGoodsDetail.java

@@ -4,10 +4,8 @@ import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
 import java.math.BigDecimal;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableLogic;
+
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -68,4 +66,7 @@ public class PosOrderGoodsDetail implements Serializable {
 	@Excel(name = "金额", width = 15)
     @ApiModelProperty(value = "金额")
     private BigDecimal payMoney;
+
+	@TableField(exist = false)
+	private  String goodsName;
 }