diff --git a/src/main/java/com/glxp/api/controller/inv/InnerOrderController.java b/src/main/java/com/glxp/api/controller/inv/InnerOrderController.java new file mode 100644 index 000000000..689525e6b --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inv/InnerOrderController.java @@ -0,0 +1,202 @@ +package com.glxp.api.controller.inv; + +import cn.hutool.core.collection.CollUtil; +import com.github.pagehelper.PageInfo; +import com.glxp.api.annotation.AuthRuleAnnotation; +import com.glxp.api.annotation.RepeatSubmit; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.constant.Constant; +import com.glxp.api.entity.inv.InnerOrderDetailEntity; +import com.glxp.api.entity.inv.InnerOrderEntity; +import com.glxp.api.req.inv.InnerOrderDetailRequest; +import com.glxp.api.req.inv.InnerOrderRequest; +import com.glxp.api.req.inv.PostInnerOrderRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.inv.innerOrderDetailResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.inv.InnerOrderDetailService; +import com.glxp.api.service.inv.InnerOrderService; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.constraints.NotEmpty; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +/** + * pur + * + * @author anthony.ywj + * @date 2022-10-12 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/inv/inner/order") +public class InnerOrderController { + + @Resource + InnerOrderService innerOrderService; + @Resource + InnerOrderDetailService innerOrderDetailService; + @Resource + CustomerService customerService; + @Resource + GennerOrderUtils gennerOrderUtils; + + /** + * 新增内部码打印单 + */ + @RepeatSubmit() + @AuthRuleAnnotation("") + @PostMapping("/postOrder") + public BaseResponse postOrder(@RequestBody PostInnerOrderRequest postInnerOrderRequest) { + + long userId = customerService.getUserId(); + InnerOrderEntity innerOrderEntity = postInnerOrderRequest.getInnerOrderEntity(); + innerOrderEntity.setCreateUser(userId + ""); + innerOrderEntity.setCreateTime(new Date()); + innerOrderEntity.setUpdateTime(new Date()); + innerOrderEntity.setStatus(postInnerOrderRequest.getEditStatus()); //草稿状态 + if (innerOrderEntity.getId() == null) { + String billNo = gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.NBM_ORDER, "yyyyMMdd")); + innerOrderEntity.setRecordKey(billNo); + innerOrderEntity.setPrintStatus(1); + innerOrderEntity.setGenStatus(1); + innerOrderService.insert(innerOrderEntity); + } else { + innerOrderService.update(innerOrderEntity); + } + return ResultVOUtils.success(innerOrderEntity.getId()); + } + + + /** + * 查询内部码打印单列表 + */ + @GetMapping("/list") + public BaseResponse list(InnerOrderRequest innerOrderRequest) { + + List innerOrderEntities = innerOrderService.queryPageList(innerOrderRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(innerOrderEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(innerOrderEntities); + return ResultVOUtils.success(pageSimpleResponse); + + } + + + /** + * 新增内部码打印单 + */ + @RepeatSubmit() + @PostMapping() + public BaseResponse add(@RequestBody InnerOrderEntity innerOrderEntity) { + + innerOrderService.insert(innerOrderEntity); + return ResultVOUtils.success("新增成功!"); + } + + /** + * 修改内部码打印单 + */ + @RepeatSubmit() + @PutMapping() + public BaseResponse edit(@RequestBody InnerOrderEntity innerOrderEntity) { + innerOrderService.update(innerOrderEntity); + return ResultVOUtils.success("删除成功"); + } + + /** + * 删除内部码打印单 + * + * @param ids 主键串 + */ + @DeleteMapping("/{ids}") + public BaseResponse remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + List idArray = Arrays.asList(ids); + if (CollUtil.isNotEmpty(idArray)) { + innerOrderService.deleteByIds(idArray); + for (String id : idArray) { + innerOrderDetailService.deleteByOrderId(id + ""); + } + } + + + return ResultVOUtils.success("删除成功"); + } + + + /** + * 查询内部码打印单列表 + */ + @PostMapping("/list/detail") + public BaseResponse detailList(@RequestBody InnerOrderDetailRequest innerOrderDetailRequest) { + + List purApplyDetailEntities = innerOrderDetailService.joinQueryList(innerOrderDetailRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(purApplyDetailEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(purApplyDetailEntities); + return ResultVOUtils.success(pageSimpleResponse); + + } + + /** + * 新增内部码打印单 + */ + @RepeatSubmit() + @PostMapping("/insertDetail") + public BaseResponse detailAdd(@RequestBody InnerOrderDetailEntity innerOrderDetailEntity) { + +// long userId = customerService.getUserId(); +// InnerOrderEntity innerOrderEntity=new InnerOrderEntity(); +//// innerOrderEntity.setPrintStatus(1); +//// innerOrderEntity.setGenStatus(1); +// innerOrderEntity.setCreateTime(new Date()); +// innerOrderEntity.setCreateUser(userId+""); +// innerOrderEntity.setStatus(1); +// innerOrderService.insert(innerOrderEntity); +// Integer id=innerOrderEntity.getId(); +// +// innerOrderDetailEntity.setOrderIdFk(id); + innerOrderDetailService.insert(innerOrderDetailEntity); + return ResultVOUtils.success(""); + } + + /** + * 修改内部码打印单 + */ + @RepeatSubmit() + @PostMapping("/updateDetail") + public BaseResponse detailEdit(@RequestBody InnerOrderDetailEntity innerOrderDetailEntity) { + innerOrderDetailService.update(innerOrderDetailEntity); + return ResultVOUtils.success("更新成功"); + } + + /** + * 删除内部码打印单 + * + * @param ids 主键串 + */ + @DeleteMapping("/detail/{ids}") + public BaseResponse detailRemove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + + innerOrderDetailService.deleteByIds(Arrays.asList(ids)); + return ResultVOUtils.success("删除成功"); + } + + +} diff --git a/src/main/java/com/glxp/api/dao/inv/InnerOrderDao.java b/src/main/java/com/glxp/api/dao/inv/InnerOrderDao.java new file mode 100644 index 000000000..a88dfb110 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inv/InnerOrderDao.java @@ -0,0 +1,22 @@ +package com.glxp.api.dao.inv; + + +import com.glxp.api.entity.inv.InnerOrderEntity; +import com.glxp.api.req.inv.InnerOrderRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface InnerOrderDao { + + List queryPageList(InnerOrderRequest innerOrderRequest); + + Integer insert(InnerOrderEntity innerOrderEntity); + + Boolean update(InnerOrderEntity innerOrderEntity); + + Boolean deleteByIds(@Param("ids") List ids); + +} diff --git a/src/main/java/com/glxp/api/dao/inv/InnerOrderDetailDao.java b/src/main/java/com/glxp/api/dao/inv/InnerOrderDetailDao.java new file mode 100644 index 000000000..ae6f81b60 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inv/InnerOrderDetailDao.java @@ -0,0 +1,24 @@ +package com.glxp.api.dao.inv; + + +import com.glxp.api.entity.inv.InnerOrderDetailEntity; +import com.glxp.api.req.inv.InnerOrderDetailRequest; +import com.glxp.api.res.inv.innerOrderDetailResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface InnerOrderDetailDao { + + + List joinQueryList(InnerOrderDetailRequest innerOrderDetailRequest); + + Boolean insert(InnerOrderDetailEntity purApplyDetailEntity); + + Boolean update(InnerOrderDetailEntity purApplyRequest); + + Boolean deleteByIds(List ids); + + Boolean deleteByOrderId(@Param("orderIdFk") String orderIdFk); + +} diff --git a/src/main/java/com/glxp/api/entity/inv/InnerOrderDetailEntity.java b/src/main/java/com/glxp/api/entity/inv/InnerOrderDetailEntity.java new file mode 100644 index 000000000..cd135c6a3 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inv/InnerOrderDetailEntity.java @@ -0,0 +1,17 @@ +package com.glxp.api.entity.inv; + +import lombok.Data; + +@Data +public class InnerOrderDetailEntity { + + private Long id; + private String orderIdFk; + private String productId; + private String productName; + private Integer count; + private String productDate; + private String expireDate; + private String batchNo; + +} diff --git a/src/main/java/com/glxp/api/entity/inv/InnerOrderEntity.java b/src/main/java/com/glxp/api/entity/inv/InnerOrderEntity.java new file mode 100644 index 000000000..ffd1bfb31 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inv/InnerOrderEntity.java @@ -0,0 +1,19 @@ +package com.glxp.api.entity.inv; + +import lombok.Data; + +import java.util.Date; + +@Data +public class InnerOrderEntity { + + private Integer id; + private String recordKey; + private Date createTime; + private Integer genStatus; + private Integer printStatus; + private Date updateTime; + private String remark; + private String createUser; + private int status; +} diff --git a/src/main/java/com/glxp/api/req/inv/InnerOrderDetailRequest.java b/src/main/java/com/glxp/api/req/inv/InnerOrderDetailRequest.java new file mode 100644 index 000000000..03092dbe4 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inv/InnerOrderDetailRequest.java @@ -0,0 +1,12 @@ +package com.glxp.api.req.inv; + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +@Data +public class InnerOrderDetailRequest extends ListPageRequest { + + private String orderIdFk; + private String productId; + +} diff --git a/src/main/java/com/glxp/api/req/inv/InnerOrderRequest.java b/src/main/java/com/glxp/api/req/inv/InnerOrderRequest.java new file mode 100644 index 000000000..889f7a0f4 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inv/InnerOrderRequest.java @@ -0,0 +1,15 @@ +package com.glxp.api.req.inv; + + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +@Data +public class InnerOrderRequest extends ListPageRequest { + + private String recordKey; + + private String startDate; + + private String endDate; +} diff --git a/src/main/java/com/glxp/api/req/inv/PostInnerOrderRequest.java b/src/main/java/com/glxp/api/req/inv/PostInnerOrderRequest.java new file mode 100644 index 000000000..72f096b1e --- /dev/null +++ b/src/main/java/com/glxp/api/req/inv/PostInnerOrderRequest.java @@ -0,0 +1,18 @@ +package com.glxp.api.req.inv; + + +import com.glxp.api.entity.inv.InnerOrderDetailEntity; +import com.glxp.api.entity.inv.InnerOrderEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class PostInnerOrderRequest { + + int editStatus; + InnerOrderEntity innerOrderEntity; + List innerOrderDetailEntities; + List subErpOrders; + +} diff --git a/src/main/java/com/glxp/api/res/inv/innerOrderDetailResponse.java b/src/main/java/com/glxp/api/res/inv/innerOrderDetailResponse.java new file mode 100644 index 000000000..6c02066d2 --- /dev/null +++ b/src/main/java/com/glxp/api/res/inv/innerOrderDetailResponse.java @@ -0,0 +1,50 @@ +package com.glxp.api.res.inv; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class innerOrderDetailResponse { + + private String id; + private String orderIdFk; + private String productId; + private String productName; + private String spec; + private String batchNo; + private String expireDate; + private String productDate; + private Integer count; + private int reCount; + private Integer sweepCount; + private String ylqxzcrbarmc; + private String zczbhhzbapzbh; + private BigDecimal price; + private String relId; + + //销售清单号(第二票) + private String secSalesListNo; + + //销售发票号(第一票) + private String firstSalesInvNo; + + //销售发票号(第二票) + private String secSalesInvNo; + + //开票日期 + private String invoiceDate; + private String manufactory; + private boolean allowNoBatch; + + private String code; + private String serialNo; + + private Integer codeId; + + private int acceptCount; + private String measname; + private String supId; + + private String supName; +} diff --git a/src/main/java/com/glxp/api/service/inv/InnerOrderDetailService.java b/src/main/java/com/glxp/api/service/inv/InnerOrderDetailService.java new file mode 100644 index 000000000..cbb07f392 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/InnerOrderDetailService.java @@ -0,0 +1,24 @@ +package com.glxp.api.service.inv; + + +import com.glxp.api.entity.inv.InnerOrderDetailEntity; +import com.glxp.api.req.inv.InnerOrderDetailRequest; +import com.glxp.api.res.inv.innerOrderDetailResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface InnerOrderDetailService { + + + List joinQueryList(InnerOrderDetailRequest innerOrderDetailRequest); + + Boolean insert(InnerOrderDetailEntity purApplyDetailEntity); + + Boolean update(InnerOrderDetailEntity purApplyRequest); + + Boolean deleteByIds(List ids); + + Boolean deleteByOrderId(@Param("orderIdFk") String orderIdFk); + +} diff --git a/src/main/java/com/glxp/api/service/inv/InnerOrderService.java b/src/main/java/com/glxp/api/service/inv/InnerOrderService.java new file mode 100644 index 000000000..5362a6097 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/InnerOrderService.java @@ -0,0 +1,25 @@ +package com.glxp.api.service.inv; + + + +import com.glxp.api.entity.inv.InnerOrderEntity; +import com.glxp.api.req.inv.InnerOrderRequest; + +import java.util.List; + +public interface InnerOrderService { + + + InnerOrderEntity findByRecordKey(String recordKey); + + List queryPageList(InnerOrderRequest innerOrderRequest); + + Integer insert(InnerOrderEntity innerOrderRequest); + + Boolean update(InnerOrderEntity innerOrderRequest); + + Boolean deleteByIds(List ids); + + +} + diff --git a/src/main/java/com/glxp/api/service/inv/impl/InnerOrderDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InnerOrderDetailServiceImpl.java new file mode 100644 index 000000000..2db6fb5be --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/impl/InnerOrderDetailServiceImpl.java @@ -0,0 +1,52 @@ +package com.glxp.api.service.inv.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.inv.InnerOrderDetailDao; +import com.glxp.api.entity.inv.InnerOrderDetailEntity; +import com.glxp.api.req.inv.InnerOrderDetailRequest; +import com.glxp.api.res.inv.innerOrderDetailResponse; +import com.glxp.api.service.inv.InnerOrderDetailService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class InnerOrderDetailServiceImpl implements InnerOrderDetailService { + @Resource + InnerOrderDetailDao innerOrderDetailDao; + + @Override + public List joinQueryList(InnerOrderDetailRequest innerOrderDetailRequest) { + if (innerOrderDetailRequest == null) { + return Collections.emptyList(); + } + if (innerOrderDetailRequest.getPage() != null) { + int offset = (innerOrderDetailRequest.getPage() - 1) * innerOrderDetailRequest.getLimit(); + PageHelper.offsetPage(offset, innerOrderDetailRequest.getLimit()); + } + List data = innerOrderDetailDao.joinQueryList(innerOrderDetailRequest); + return data; + } + + @Override + public Boolean insert(InnerOrderDetailEntity innerOrderDetailEntity) { + return innerOrderDetailDao.insert(innerOrderDetailEntity); + } + + @Override + public Boolean update(InnerOrderDetailEntity innerOrderDetailEntity) { + return innerOrderDetailDao.update(innerOrderDetailEntity); + } + + @Override + public Boolean deleteByIds(List ids) { + return innerOrderDetailDao.deleteByIds(ids); + } + + @Override + public Boolean deleteByOrderId(String orderIdFk) { + return innerOrderDetailDao.deleteByOrderId(orderIdFk); + } +} diff --git a/src/main/java/com/glxp/api/service/inv/impl/InnerOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InnerOrderServiceImpl.java new file mode 100644 index 000000000..0e2f5793d --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/impl/InnerOrderServiceImpl.java @@ -0,0 +1,60 @@ +package com.glxp.api.service.inv.impl; + +import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.inv.InnerOrderDao; +import com.glxp.api.entity.inv.InnerOrderEntity; +import com.glxp.api.req.inv.InnerOrderRequest; +import com.glxp.api.service.inv.InnerOrderService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class InnerOrderServiceImpl implements InnerOrderService { + + @Resource + InnerOrderDao innerOrderDao; + + + @Override + public InnerOrderEntity findByRecordKey(String recordKey) { + + if (StrUtil.isEmpty(recordKey)) + return null; + InnerOrderRequest innerOrderRequest = new InnerOrderRequest(); + innerOrderRequest.setRecordKey(recordKey); + List data = innerOrderDao.queryPageList(innerOrderRequest); + return data.get(0); + } + + @Override + public List queryPageList(InnerOrderRequest innerOrderRequest) { + if (innerOrderRequest == null) { + return Collections.emptyList(); + } + if (innerOrderRequest.getPage() != null) { + int offset = (innerOrderRequest.getPage() - 1) * innerOrderRequest.getLimit(); + PageHelper.offsetPage(offset, innerOrderRequest.getLimit()); + } + List data = innerOrderDao.queryPageList(innerOrderRequest); + return data; + } + + @Override + public Integer insert(InnerOrderEntity innerOrderEntity) { + return innerOrderDao.insert(innerOrderEntity); + } + + @Override + public Boolean update(InnerOrderEntity innerOrderEntity) { + return innerOrderDao.update(innerOrderEntity); + } + + @Override + public Boolean deleteByIds(List ids) { + return innerOrderDao.deleteByIds(ids); + } +} diff --git a/src/main/resources/mybatis/mapper/inv/InnerOrderDao.xml b/src/main/resources/mybatis/mapper/inv/InnerOrderDao.xml new file mode 100644 index 000000000..7149391f0 --- /dev/null +++ b/src/main/resources/mybatis/mapper/inv/InnerOrderDao.xml @@ -0,0 +1,73 @@ + + + + + + + + + replace + INTO inv_inner_order + ( + recordKey,createTime,genStatus,printStatus,updateTime,remark,createUser,status + ) + values ( + #{recordKey}, + #{createTime}, + #{genStatus}, + #{printStatus}, + #{updateTime}, + #{remark}, + #{createUser}, + #{status} + ) + + + + + DELETE FROM inv_inner_order WHERE id in + + #{item} + + + + + + DELETE + FROM inv_inner_order + WHERE id = #{id} + + + + UPDATE inv_inner_order + + recordKey=#{recordKey}, + createTime=#{createTime}, + genStatus=#{genStatus}, + printStatus=#{printStatus}, + updateTime=#{updateTime}, + remark=#{remark}, + createUser=#{createUser}, + createTime=#{createTime}, + status=#{status}, + + + WHERE id = #{id} + + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/inv/InnerOrderDetailDao.xml b/src/main/resources/mybatis/mapper/inv/InnerOrderDetailDao.xml new file mode 100644 index 000000000..2929b743a --- /dev/null +++ b/src/main/resources/mybatis/mapper/inv/InnerOrderDetailDao.xml @@ -0,0 +1,82 @@ + + + + + + + + + + replace + INTO inv_inner_order_detail + ( + orderIdFk,productId,productName,`count`,productDate,expireDate,batchNo + ) + values ( + #{orderIdFk}, + #{productId}, + #{productName}, + #{count}, + #{productDate}, + #{expireDate}, + #{batchNo} + ) + + + + + DELETE FROM inv_inner_order_detail WHERE id in + + #{item} + + + + + + DELETE + FROM inv_inner_order_detail + WHERE id = #{id} + + + + DELETE + FROM inv_inner_order_detail + WHERE orderIdFk = #{orderIdFk} + + + + + UPDATE inv_inner_order_detail + + orderIdFk=#{orderIdFk}, + productId=#{productId}, + productName=#{productName}, + `count`=#{count}, + expireDate=#{expireDate}, + productDate=#{productDate}, + batchNo=#{batchNo}, + + WHERE id = #{id} + + + \ No newline at end of file