From 90f2b72822e4100301b3b5ef412de8eba04b319c Mon Sep 17 00:00:00 2001 From: z Date: Wed, 8 Apr 2026 14:24:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E5=90=8E=E7=AB=AF=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/MybatisPlusMetaObjectHandler.java | 142 +++ .../java/jnpf/mapper/OrderDetailMapper.java | 16 + .../main/java/jnpf/mapper/OrderMapper.java | 16 + .../java/jnpf/service/OrderDetailService.java | 36 + .../main/java/jnpf/service/OrderService.java | 33 + .../service/impl/OrderDetailServiceImpl.java | 39 + .../jnpf/service/impl/OrderServiceImpl.java | 159 +++ .../controller/ExampleOrderController.java | 108 ++ .../controller/OrderDetailController.java | 142 +++ .../java/jnpf/entity/OrderDetailEntity.java | 63 ++ .../main/java/jnpf/entity/OrderEntity.java | 85 ++ .../main/java/jnpf/model/order/OrderForm.java | 128 +++ .../jnpf/model/order/OrderPagination.java | 48 + .../model/orderdetail/OrderDetailForm.java | 85 ++ .../orderdetail/OrderDetailPagination.java | 41 + .../jnpf/model/orderdetail/OrderDetailVO.java | 85 ++ .../service/impl/UserServiceImpl.java | 13 +- .../jnpf/permission/service/UserService.java | 2 + .../components/Generator/generator/config.js | 1 - .../src/views/example/order/Detail.vue | 206 ++++ .../src/views/example/order/columnList.js | 2 + .../jnpf-web/src/views/example/order/form.vue | 938 ++++++++++++++++++ .../src/views/example/order/index.vue | 611 ++++++++++++ .../src/views/example/order/superQueryJson.js | 2 + 24 files changed, 2999 insertions(+), 2 deletions(-) create mode 100644 jnpf-java-boot/jnpf-admin/src/main/java/jnpf/database/config/MybatisPlusMetaObjectHandler.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/mapper/OrderDetailMapper.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/mapper/OrderMapper.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/OrderDetailService.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/OrderService.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/OrderDetailServiceImpl.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/OrderServiceImpl.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ExampleOrderController.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/OrderDetailController.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/entity/OrderDetailEntity.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/entity/OrderEntity.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderForm.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderPagination.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/orderdetail/OrderDetailForm.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/orderdetail/OrderDetailPagination.java create mode 100644 jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/orderdetail/OrderDetailVO.java create mode 100644 jnpf-java-boot/jnpf-web/src/views/example/order/Detail.vue create mode 100644 jnpf-java-boot/jnpf-web/src/views/example/order/columnList.js create mode 100644 jnpf-java-boot/jnpf-web/src/views/example/order/form.vue create mode 100644 jnpf-java-boot/jnpf-web/src/views/example/order/index.vue create mode 100644 jnpf-java-boot/jnpf-web/src/views/example/order/superQueryJson.js diff --git a/jnpf-java-boot/jnpf-admin/src/main/java/jnpf/database/config/MybatisPlusMetaObjectHandler.java b/jnpf-java-boot/jnpf-admin/src/main/java/jnpf/database/config/MybatisPlusMetaObjectHandler.java new file mode 100644 index 0000000..be38886 --- /dev/null +++ b/jnpf-java-boot/jnpf-admin/src/main/java/jnpf/database/config/MybatisPlusMetaObjectHandler.java @@ -0,0 +1,142 @@ +package jnpf.database.config; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import jnpf.base.UserInfo; +import jnpf.constant.PermissionConst; +import jnpf.permission.entity.OrganizeEntity; +import jnpf.permission.service.OrganizeService; +import jnpf.util.DateUtil; +import jnpf.util.StringUtil; +import jnpf.util.UserProvider; +import jnpf.util.context.SpringContext; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + + +/** + * MybatisPlus配置类 + * + * @author Allen Pan + * @version V3.4.1 + * @copyright 长江云息 + * @date 2019年9月27日 上午9:18 + */ +@Component +@Slf4j +//@Configuration +//@Intercepts({@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class})}) +public class MybatisPlusMetaObjectHandler implements MetaObjectHandler { + + //@Autowired + private static ApplicationContext applicationContext; + private UserProvider userProvider; + + private OrganizeService organizeService; + + @Override + public void insertFill(MetaObject metaObject) { + Map map = BeanUtil.toBean(metaObject.getOriginalObject(), Map.class); + String companyId = ""; +// userProvider= applicationContext.getBean(UserProvider.class); + UserProvider userProvider = SpringContext.getBean(UserProvider.class); + OrganizeService organizeService = SpringContext.getBean(OrganizeService.class); + UserInfo userInfo= userProvider.get(); + List organizeIdList = new ArrayList<>(); + if(userInfo != null && StringUtil.isNotEmpty(userInfo.getOrganizeId())){ + OrganizeEntity organizeEntity = organizeService.getInfo(userInfo.getOrganizeId()); + organizeIdList.add(organizeEntity.getId()); + if(PermissionConst.DEPARTMENT.equals(organizeEntity.getCategory())){ + userInfo.setDepartmentId(organizeEntity.getId()); + do { + //获取父组织 + organizeEntity = organizeService.getInfo(organizeEntity.getParentId()); + organizeIdList.add(organizeEntity.getId()); + }while (PermissionConst.DEPARTMENT.equals(organizeEntity.getCategory())); + companyId = organizeEntity.getId(); + + }else{ + companyId = organizeEntity.getId(); + } + organizeEntity = organizeService.getInfo(organizeEntity.getParentId()); + if(organizeEntity != null){ + organizeIdList.add(organizeEntity.getId()); + } + } + Collections.reverse(organizeIdList); + String organizeId = JSON.toJSONString(organizeIdList); +// 可以在这里填充编码查询到编码规则自动填充 +// TableInfo tableInfo = this.findTableInfo(metaObject); +// String tableName = tableInfo.getTableName(); + log.info("start insert fill ...."); + System.out.println(userInfo); +// if(map.get("creatorUserId") == null || StringUtil.isEmpty(map.get("creatorUserId").toString())){ + this.setFieldValByName("creatorUserId", userInfo.getUserId(), metaObject); +// } + this.setFieldValByName("creatorTime", DateUtil.getNowDate(), metaObject); + + this.setFieldValByName("creatorUserName", userInfo.getUserName(), metaObject); + + this.setFieldValByName("creatoruserid", userInfo.getUserId(), metaObject); + + this.setFieldValByName("creatortime", DateUtil.getNowDate(), metaObject); + + this.setFieldValByName("creatorusername", userInfo.getUserName(), metaObject); + + this.setFieldValByName("lastModifyUserId", userInfo.getUserId(), metaObject); + + this.setFieldValByName("lastModifyTime", DateUtil.getNowDate(), metaObject); + + this.setFieldValByName("lastModifyUserName", userInfo.getUserName(), metaObject); + if(map.get("organizeJsonId") == null || StringUtil.isEmpty(map.get("organizeJsonId").toString())){ + this.setFieldValByName("organizeJsonId", organizeId, metaObject); + } + if(map.get("companyId") == null || StringUtil.isEmpty(map.get("companyId").toString())){ + this.setFieldValByName("companyId", companyId, metaObject); + } + if(map.get("departmentId") == null || StringUtil.isEmpty(map.get("departmentId").toString())){ + this.setFieldValByName("departmentId", userInfo.getDepartmentId(), metaObject); + } +// System.out.println(userProvider.getDepartmentId(userInfo.getUserId())); + /*if (userInfo.getUserId()!=null){ + this.setFieldValByName("departmentId", userProvider.getDepartmentId(userInfo.getUserId()), metaObject); + }*/ + + } + + @Override + public void updateFill(MetaObject metaObject) { + log.info("start update fill ...."); + UserProvider userProvider = SpringContext.getBean(UserProvider.class); + System.out.println(userProvider.get()); +// userProvider= applicationContext.getBean(UserProvider.class); + UserInfo userInfo = userProvider.get(); + + + this.setFieldValByName("lastModifyTime", DateUtil.getNowDate(), metaObject); + + + this.setFieldValByName("lastModifyUserId", userInfo.getUserId(), metaObject); + + this.setFieldValByName("lastModifyUserName", userInfo.getUserName(), metaObject); + + + this.setFieldValByName("deleteTime", DateUtil.getNowDate(), metaObject); + + this.setFieldValByName("deleteUserId", userInfo.getUserId(), metaObject); + + this.setFieldValByName("deleteUserName", userInfo.getUserName(), metaObject); + + + } + + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/mapper/OrderDetailMapper.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/mapper/OrderDetailMapper.java new file mode 100644 index 0000000..7d1f817 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/mapper/OrderDetailMapper.java @@ -0,0 +1,16 @@ +package jnpf.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import jnpf.entity.OrderDetailEntity; + +/** + * 业务订单明细 Mapper + * + * @版本: V3.5 + * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) + * @作者: JNPF开发平台组 + * @日期: 2024-02-04 + */ +public interface OrderDetailMapper extends BaseMapper { + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/mapper/OrderMapper.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/mapper/OrderMapper.java new file mode 100644 index 0000000..fbb927e --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/mapper/OrderMapper.java @@ -0,0 +1,16 @@ +package jnpf.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import jnpf.entity.OrderEntity; + +/** + * 业务订单 Mapper + * + * @版本: V3.5 + * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) + * @作者: JNPF开发平台组 + * @日期: 2024-02-04 + */ +public interface OrderMapper extends BaseMapper { + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/OrderDetailService.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/OrderDetailService.java new file mode 100644 index 0000000..deaa5f0 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/OrderDetailService.java @@ -0,0 +1,36 @@ +package jnpf.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import jnpf.base.service.SuperService; +import jnpf.entity.OrderDetailEntity; +import jnpf.model.orderdetail.OrderDetailPagination; + +import java.util.List; + +/** + * 业务订单明细 Service + * + * @版本: V3.5 + * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) + * @作者: JNPF开发平台组 + * @日期: 2024-02-04 + */ +public interface OrderDetailService extends IService { + + /** + * 获取订单明细列表 + * + * @param orderDetailPagination 分页查询对象 + * @return 订单明细列表 + */ + List getList(OrderDetailPagination orderDetailPagination); + + /** + * 根据订单ID获取明细列表 + * + * @param saleOrdId 销售订单ID + * @return 订单明细列表 + */ + List getListByOrderId(Integer saleOrdId); + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/OrderService.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/OrderService.java new file mode 100644 index 0000000..eab6171 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/OrderService.java @@ -0,0 +1,33 @@ +package jnpf.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import jnpf.base.service.SuperService; +import jnpf.entity.OrderEntity; +import jnpf.model.order.OrderForm; +import jnpf.model.order.OrderPagination; + +import java.util.List; + +/** + * 业务订单 Service + * + * @版本: V3.5 + * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) + * @作者: JNPF开发平台组 + * @日期: 2024-02-04 + */ +public interface OrderService extends IService { + + + List getList(OrderPagination orderPagination); + OrderEntity getInfo(String id); + + void delete(OrderEntity entity); + + void create(OrderEntity entity); + + boolean update(String id, OrderEntity entity); + String checkForm(OrderForm form, int i); + void saveOrUpdate(OrderForm orderForm,String id, boolean isSave) throws Exception; + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/OrderDetailServiceImpl.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/OrderDetailServiceImpl.java new file mode 100644 index 0000000..23d1bef --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/OrderDetailServiceImpl.java @@ -0,0 +1,39 @@ +package jnpf.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jnpf.base.service.SuperServiceImpl; +import jnpf.entity.OrderDetailEntity; +import jnpf.mapper.OrderDetailMapper; +import jnpf.model.orderdetail.OrderDetailPagination; +import jnpf.service.OrderDetailService; +import jnpf.util.StringUtil; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 业务订单明细 ServiceImpl + * + * @版本: V3.5 + * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) + * @作者: JNPF开发平台组 + * @日期: 2024-02-04 + */ +@Service +public class OrderDetailServiceImpl extends ServiceImpl implements OrderDetailService { + + @Override + public List getList(OrderDetailPagination orderDetailPagination) { + return null; + } + + @Override + public List getListByOrderId(Integer saleOrdId) { + QueryWrapper query = new QueryWrapper<>(); + query.lambda().eq(OrderDetailEntity::getSaleOrdId, saleOrdId); + query.lambda().orderByAsc(OrderDetailEntity::getId); + return this.list(query); + } + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/OrderServiceImpl.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/OrderServiceImpl.java new file mode 100644 index 0000000..3e2dc32 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/OrderServiceImpl.java @@ -0,0 +1,159 @@ +package jnpf.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jnpf.base.UserInfo; +import jnpf.base.service.SuperServiceImpl; +import jnpf.entity.OrderDetailEntity; +import jnpf.entity.OrderEntity; +import jnpf.mapper.OrderMapper; +import jnpf.model.order.OrderForm; +import jnpf.model.order.OrderPagination; +import jnpf.permission.entity.UserEntity; +import jnpf.permission.service.UserService; +import jnpf.service.OrderDetailService; +import jnpf.service.OrderService; +import jnpf.util.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 业务订单 ServiceImpl + * + * @版本: V3.5 + * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) + * @作者: JNPF开发平台组 + * @日期: 2024-02-04 + */ +@Service +public class OrderServiceImpl extends ServiceImpl implements OrderService { + @Resource + private UserService userService; + @Resource + private GeneraterSwapUtil generaterSwapUtil; + + @Resource + private UserProvider userProvider; + @Resource + private OrderDetailService orderDetailService; + @Override + public List getList(OrderPagination orderPagination) { + LambdaQueryWrapper OrderWrapper=new LambdaQueryWrapper<>(); + if(ObjectUtil.isNotEmpty(orderPagination.getOrdDate())){ + List inParkTimeList = JsonUtil.getJsonToList(orderPagination.getOrdDate(),String.class); + Long fir = Long.valueOf(String.valueOf(inParkTimeList.get(0))); + Long sec = Long.valueOf(String.valueOf(inParkTimeList.get(1))); + OrderWrapper.ge(OrderEntity::getOrdDate, new Date(fir)) + .le(OrderEntity::getOrdDate, DateUtil.stringToDate(DateUtil.daFormatYmd(sec) + " 23:59:59")); + } + if(ObjectUtil.isNotEmpty(orderPagination.getSaleOrdNo())){ + OrderWrapper.like(OrderEntity::getSaleOrdNo,orderPagination.getSaleOrdNo()); + } + if(ObjectUtil.isNotEmpty(orderPagination.getProjectName())){ + OrderWrapper.like(OrderEntity::getProjectName,orderPagination.getProjectName()); + } + if(ObjectUtil.isNotEmpty(orderPagination.getIsUrgent())){ + OrderWrapper.eq(OrderEntity::getIsUrgent,orderPagination.getIsUrgent()); + } + if(ObjectUtil.isNotEmpty(orderPagination.getOrdStatus())){ + OrderWrapper.eq(OrderEntity::getOrdStatus,orderPagination.getOrdStatus()); + } + if(ObjectUtil.isNotEmpty(orderPagination.getSaleManName())){ + List userList = userService.getUserByName(orderPagination.getSaleManName()); + List ids = userList.stream().map(UserEntity::getId).collect(Collectors.toList()); + if (ObjectUtil.isNotEmpty(ids)){ + OrderWrapper.in(OrderEntity::getSaleMan,ids); + } + } + OrderWrapper.isNull(OrderEntity::getDeleteMark); + OrderWrapper.orderByDesc(OrderEntity::getCreatorTime); + if("0".equals(orderPagination.getDataType())){ + Page page=new Page<>(orderPagination.getCurrentPage(), orderPagination.getPageSize()); + IPage userIPage=this.page(page, OrderWrapper); + return orderPagination.setData(userIPage.getRecords(),userIPage.getTotal()); + }else { + return this.list(OrderWrapper); + } + } + @Override + public OrderEntity getInfo(String id){ + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.lambda().eq(OrderEntity::getId,id); + return this.getOne(queryWrapper); + } + @Override + public void create(OrderEntity entity){ + this.save(entity); + } + @Override + public boolean update(String id, OrderEntity entity){ + return this.updateById(entity); + } + @Override + public void delete(OrderEntity entity){ + if(entity!=null){ + this.removeById(entity.getId()); + } + } + /** 验证表单唯一字段,正则,非空 i-0新增-1修改*/ + @Override + public String checkForm(OrderForm form, int i) { + boolean isUp =StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0"); + String id=""; + String countRecover = ""; + if (isUp){ + id = form.getId(); + } + //主表字段验证 + + return countRecover; + } + /** + * 新增修改数据(事务回滚) + * @param id + * @param OrderForm + * @return + */ + @Override + @Transactional + public void saveOrUpdate(OrderForm OrderForm, String id, boolean isSave) throws Exception{ + UserInfo userInfo=userProvider.get(); + UserEntity userEntity = generaterSwapUtil.getUser(userInfo.getUserId()); + OrderEntity entity = JsonUtil.getJsonToBean(OrderForm, OrderEntity.class); + + if(isSave){ + String mainId = RandomUtil.uuId() ; + entity.setId(mainId); + entity.setSaleOrdNo(generaterSwapUtil.getBillNumber("order", false)); + + } + this.saveOrUpdate(entity); + if(!isSave){ + QueryWrapper orderDetailEntityWrapper = new QueryWrapper<>(); + orderDetailEntityWrapper.lambda().eq(OrderDetailEntity::getSaleOrdId, entity.getId()); + orderDetailService.remove(orderDetailEntityWrapper); + } + if (ObjectUtil.isNotEmpty(OrderForm.getOrderDetailList())){ + List orderDetailEntityList = JsonUtil.getJsonToList(OrderForm.getOrderDetailList(),OrderDetailEntity.class); + for(OrderDetailEntity entitys : orderDetailEntityList){ + entitys.setId(RandomUtil.uuId()); + entitys.setSaleOrdId(entity.getId()); + if(isSave){ + }else{ + } + orderDetailService.saveOrUpdate(entitys); + } + } + } + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ExampleOrderController.java b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ExampleOrderController.java new file mode 100644 index 0000000..d8304dd --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ExampleOrderController.java @@ -0,0 +1,108 @@ +package jnpf.controller; + +import io.swagger.v3.oas.annotations.Operation; + +import io.swagger.v3.oas.annotations.tags.Tag; +import jnpf.base.ActionResult; + +import jnpf.base.vo.PageListVO; +import jnpf.base.vo.PaginationVO; + +import jnpf.entity.OrderEntity; +import jnpf.model.order.OrderForm; +import jnpf.model.order.OrderPagination; + +import jnpf.service.OrderService; +import jnpf.util.JsonUtil; +import jnpf.util.StringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 业务订单 控制类 + * + */ +@Tag(name = "业务订单", description = "exampleOrder") +@RestController +@RequestMapping("/api/example/exampleOrder") +public class ExampleOrderController { + + @Autowired + private OrderService orderService; + + /** + * 列表 + * @param orderPagination 分页查询对象 + * @return 列表结果集 + */ + @Operation(summary = "获取订单列表") + @PostMapping("/getList") + public ActionResult getList(OrderPagination orderPagination) { + List list= orderService.getList(orderPagination); + List> realList = list.stream() + .map(JsonUtil::entityToMap) + .collect(Collectors.toList()); + + //返回对象 + PageListVO vo = new PageListVO(); + vo.setList(realList); + PaginationVO page = JsonUtil.getJsonToBean(orderPagination, PaginationVO.class); + vo.setPagination(page); + return ActionResult.success(vo); + } + + /** + * 编辑 + * @param id + * @param orderForm + * @return + */ + @PutMapping("/{id}") + @Operation(summary = "更新") + public ActionResult update(@PathVariable("id") String id,@RequestBody @Valid OrderForm orderForm, + @RequestParam(value = "isImport", required = false) boolean isImport){ + orderForm.setId(id); + if (!isImport) { + String b = orderService.checkForm(orderForm,1); + if (StringUtil.isNotEmpty(b)){ + return ActionResult.fail(b ); + } + } + OrderEntity entity= orderService.getInfo(id); + if(entity!=null){ + try{ + orderService.saveOrUpdate(orderForm,id,false); + }catch(Exception e){ + return ActionResult.fail("修改数据失败"); + } + return ActionResult.success("更新成功"); + }else{ + return ActionResult.fail("更新失败,数据不存在"); + } + } + /** + * 删除 + * @param id + * @return + */ + @Operation(summary = "删除") + @DeleteMapping("/{id}") + @Transactional + public ActionResult delete(@PathVariable("id") String id){ + OrderEntity entity = orderService.getInfo(id); + if (entity != null) { + //假删除 + entity.setDeleteMark(1); + orderService.update(id, entity); + } + return ActionResult.success("删除成功"); + } + + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/OrderDetailController.java b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/OrderDetailController.java new file mode 100644 index 0000000..97baf87 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/OrderDetailController.java @@ -0,0 +1,142 @@ +package jnpf.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; +import jnpf.base.ActionResult; +import jnpf.base.vo.ListVO; +import jnpf.base.vo.PageListVO; +import jnpf.base.vo.PaginationVO; +import jnpf.constant.MsgCode; +import jnpf.entity.OrderDetailEntity; +import jnpf.model.orderdetail.OrderDetailForm; +import jnpf.model.orderdetail.OrderDetailPagination; +import jnpf.model.orderdetail.OrderDetailVO; +import jnpf.service.OrderDetailService; +import jnpf.util.JsonUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 业务订单明细 控制类 + * + * @版本: V3.5 + * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) + * @作者: JNPF开发平台组 + * @日期: 2024-02-04 + */ +@Tag(name = "业务订单明细", description = "example") +@RestController +@RequestMapping("/api/example/OrderDetail") +public class OrderDetailController { + + @Autowired + private OrderDetailService orderDetailService; + + /** + * 列表 + * + * @param orderDetailPagination 分页查询对象 + * @return 列表结果集 + */ + @Operation(summary = "获取订单明细列表") + @PostMapping("/getList") + public ActionResult> getList(OrderDetailPagination orderDetailPagination) { + List entityList = orderDetailService.getList(orderDetailPagination); + List voList = JsonUtil.getJsonToList(entityList, OrderDetailVO.class); + return ActionResult.page(voList, JsonUtil.getJsonToBean(orderDetailPagination, PaginationVO.class)); + } + + /** + * 根据订单ID获取明细列表 + * + * @param saleOrdId 销售订单ID + * @return 明细列表 + */ + @Operation(summary = "根据订单ID获取明细列表") + @Parameter(name = "saleOrdId", description = "销售订单ID", required = true) + @GetMapping("/byOrder/{saleOrdId}") + public ActionResult> getListByOrderId(@PathVariable Integer saleOrdId) { + List entityList = orderDetailService.getListByOrderId(saleOrdId); + List voList = JsonUtil.getJsonToList(entityList, OrderDetailVO.class); + return ActionResult.success(new ListVO<>(voList)); + } + + /** + * 获取信息 + * + * @param id 主键 + * @return + */ + @Operation(summary = "获取订单明细信息") + @Parameter(name = "id", description = "主键", required = true) + @SaCheckPermission("example.orderDetail") + @GetMapping("/{id}") + public ActionResult getInfo(@PathVariable Integer id) { + OrderDetailEntity entity = orderDetailService.getById(id); + OrderDetailVO vo = JsonUtil.getJsonToBean(entity, OrderDetailVO.class); + return ActionResult.success(vo); + } + + /** + * 新建 + * + * @param orderDetailForm 实体模型 + * @return + */ + @Operation(summary = "新建订单明细") + @SaCheckPermission("example.orderDetail") + @Parameter(name = "orderDetailForm", description = "实体模型", required = true) + @PostMapping() + public ActionResult create(@RequestBody OrderDetailForm orderDetailForm) { + OrderDetailEntity entity = JsonUtil.getJsonToBean(orderDetailForm, OrderDetailEntity.class); + orderDetailService.save(entity); + return ActionResult.success(MsgCode.SU001.get()); + } + + /** + * 修改 + * + * @param orderDetailForm 实体模型 + * @return + */ + @Operation(summary = "修改订单明细") + @SaCheckPermission("example.orderDetail") + @Parameters({ + @Parameter(name = "orderDetailForm", description = "实体模型", required = true) + }) + @PutMapping("/{id}") + public ActionResult update(@RequestBody OrderDetailForm orderDetailForm) { + OrderDetailEntity entity = JsonUtil.getJsonToBean(orderDetailForm, OrderDetailEntity.class); + entity.setId(orderDetailForm.getId()); + orderDetailService.updateById(entity); + return ActionResult.success(MsgCode.SU004.get()); + } + + /** + * 删除 + * + * @param id 主键 + * @return + */ + @Operation(summary = "删除订单明细") + @SaCheckPermission("example.orderDetail") + @Parameters({ + @Parameter(name = "id", description = "主键", required = true) + }) + @DeleteMapping("/{id}") + public ActionResult delete(@PathVariable Integer id) { + // 对象存在判断 + if (orderDetailService.getById(id) != null) { + orderDetailService.removeById(id); + return ActionResult.success(MsgCode.SU003.get()); + } else { + return ActionResult.fail(MsgCode.FA003.get()); + } + } + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/entity/OrderDetailEntity.java b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/entity/OrderDetailEntity.java new file mode 100644 index 0000000..f1ba0f3 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/entity/OrderDetailEntity.java @@ -0,0 +1,63 @@ +package jnpf.entity; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 业务订单明细表 + * + * @版本: V3.5 + * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) + * @作者: JNPF开发平台组 + * @日期: 2024-02-04 + */ +@Data +@TableName("tso_order_detail") +public class OrderDetailEntity { + @TableId(value = "id", type = IdType.AUTO) + private String id; + @TableField(value = "f_creator_user_id", fill = FieldFill.INSERT) + private String creatorUserId; + @TableField(value = "f_creator_time", fill = FieldFill.INSERT) + private Date creatorTime; + @TableField(value = "f_last_modify_user_id", fill = FieldFill.INSERT_UPDATE) + private String lastModifyUserId; + @TableField(value = "f_last_modify_time", fill = FieldFill.INSERT_UPDATE) + private Date lastModifyTime; + @TableField(value = "f_delete_user_id", fill = FieldFill.UPDATE) + private String deleteUserId; + @TableField(value = "f_delete_time", fill = FieldFill.UPDATE) + private Date deleteTime; + @TableField(value = "f_delete_mark", updateStrategy = FieldStrategy.IGNORED) + private Integer deleteMark; + @TableField(value = "f_flow_id") + private String flowId; + @TableField(value = "f_flow_task_id") + private String flowTaskId; + @TableField(value = "sale_ord_id", updateStrategy = FieldStrategy.IGNORED) + private String saleOrdId; + @TableField(value = "material_id", updateStrategy = FieldStrategy.IGNORED) + private Integer materialId; + @TableField("material_code") + private String materialCode; + @TableField("material_name") + private String materialName; + @TableField("spec") + private String spec; + @TableField("unit") + private String unit; + @TableField("ord_qty") + private BigDecimal ordQty; + @TableField("price_tax") + private BigDecimal priceTax; + @TableField("material_use") + private String materialUse; + @TableField("delivered_qty") + private BigDecimal deliveredQty; + @TableField(value = "remark", updateStrategy = FieldStrategy.IGNORED) + private String remark; + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/entity/OrderEntity.java b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/entity/OrderEntity.java new file mode 100644 index 0000000..72bd2e1 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/entity/OrderEntity.java @@ -0,0 +1,85 @@ +package jnpf.entity; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 业务订单表 + * + */ +@Data +@TableName("tso_order") +public class OrderEntity { + @TableId(value = "id", type = IdType.AUTO) + private String id; + @TableField(value = "f_creator_user_id", fill = FieldFill.INSERT) + private String creatorUserId; + @TableField(value = "f_creator_time", fill = FieldFill.INSERT) + private Date creatorTime; + @TableField(value = "f_last_modify_user_id", fill = FieldFill.INSERT_UPDATE) + private String lastModifyUserId; + @TableField(value = "f_last_modify_time", fill = FieldFill.INSERT_UPDATE) + private Date lastModifyTime; + @TableField(value = "f_delete_user_id", fill = FieldFill.UPDATE) + private String deleteUserId; + @TableField(value = "f_delete_time", fill = FieldFill.UPDATE) + private Date deleteTime; + @TableField(value = "f_delete_mark", updateStrategy = FieldStrategy.IGNORED) + private Integer deleteMark; + @TableField(value = "f_flow_id") + private String flowId; + @TableField(value = "f_flow_task_id") + private String flowTaskId; + @TableField(value = "sale_ord_no", updateStrategy = FieldStrategy.IGNORED) + private String saleOrdNo; + @TableField("ord_date") + private Date ordDate; + @TableField(value = "cust_id", updateStrategy = FieldStrategy.IGNORED) + private String custId; + @TableField("cust_name") + private String custName; + @TableField("project_name") + private String projectName; + @TableField("contact") + private String contact; + @TableField("con_phone") + private String conPhone; + @TableField("sale_man") + private Long saleMan; + @TableField("sale_dept_id") + private Long saleDeptId; + @TableField("ord_type") + private String ordType; + @TableField(value = "payment_terms", updateStrategy = FieldStrategy.IGNORED) + private String paymentTerms; + @TableField("tax_rate") + private BigDecimal taxRate; + @TableField("total_amount") + private BigDecimal totalAmount; + @TableField(value = "req_delivery_date", updateStrategy = FieldStrategy.IGNORED) + private Date reqDeliveryDate; + @TableField(value = "is_urgent", updateStrategy = FieldStrategy.IGNORED) + private String isUrgent; + @TableField(value = "is_change", updateStrategy = FieldStrategy.IGNORED) + private String isChange; + @TableField(value = "ord_status", updateStrategy = FieldStrategy.IGNORED) + private String ordStatus; + @TableField(value = "contract_no", updateStrategy = FieldStrategy.IGNORED) + private String contractNo; + @TableField(value = "pack_req", updateStrategy = FieldStrategy.IGNORED) + private String packReq; + @TableField(value = "quality_req", updateStrategy = FieldStrategy.IGNORED) + private String qualityReq; + @TableField(value = "remark", updateStrategy = FieldStrategy.IGNORED) + private String remark; + @TableField("audit_id") + private String auditId; + @TableField("audit_time") + private Date auditTime; + @TableField(value = "att_file", updateStrategy = FieldStrategy.IGNORED) + private String attFile; + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderForm.java b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderForm.java new file mode 100644 index 0000000..ec20221 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderForm.java @@ -0,0 +1,128 @@ +package jnpf.model.order; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jnpf.entity.OrderDetailEntity; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 业务订单 Form + * + * @版本: V3.5 + * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) + * @作者: JNPF开发平台组 + * @日期: 2024-02-04 + */ +@Data +public class OrderForm { + + @Schema(description = "主键") + private String id; + + @Schema(description = "销售订单编号") + private String saleOrdNo; + + @Schema(description = "下单日期") + private Date ordDate; + + @Schema(description = "客户ID") + private Integer custId; + + @Schema(description = "客户名称") + private String custName; + + @Schema(description = "项目名称") + private String projectName; + + @Schema(description = "联系人") + private String contact; + + @Schema(description = "联系电话") + private String conPhone; + + @Schema(description = "业务员ID") + private Long saleMan; + + @Schema(description = "业务部门ID") + private Long saleDeptId; + + @Schema(description = "订单类型") + private String ordType; + + @Schema(description = "付款方式") + private String paymentTerms; + + @Schema(description = "税率") + private BigDecimal taxRate; + + @Schema(description = "含税总金额") + private BigDecimal totalAmount; + + @Schema(description = "要求交货日期") + private Date reqDeliveryDate; + + @Schema(description = "是否急单") + private String isUrgent; + + @Schema(description = "是否变更") + private String isChange; + + @Schema(description = "订单状态") + private String ordStatus; + + @Schema(description = "合同编号") + private String contractNo; + + @Schema(description = "包装要求") + private String packReq; + + @Schema(description = "质量要求") + private String qualityReq; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "审核人ID") + private String auditId; + + @Schema(description = "审核时间") + private Date auditTime; + + @Schema(description = "附件信息") + private String attFile; + + @Schema(description = "创建时间") + private Date creatorTime; + + @Schema(description = "创建用户ID") + private String creatorUserId; + + @Schema(description = "最后修改时间") + private Date lastModifyTime; + + @Schema(description = "最后修改用户ID") + private String lastModifyUserId; + + @Schema(description = "删除时间") + private Date deleteTime; + + @Schema(description = "删除用户ID") + private String deleteUserId; + + @Schema(description = "删除标记") + private Integer deleteMark; + + @Schema(description = "流程ID") + private String flowId; + + @Schema(description = "流程任务ID") + private String flowTaskId; + @JsonProperty("OrderDetailList") + private List OrderDetailList; + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderPagination.java b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderPagination.java new file mode 100644 index 0000000..e16c421 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/order/OrderPagination.java @@ -0,0 +1,48 @@ +package jnpf.model.order; + +import jnpf.base.Pagination; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * 业务订单分页查询 + * + * @版本: V3.5 + * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) + * @作者: JNPF开发平台组 + * @日期: 2024-02-04 + */ +@Data +public class OrderPagination extends Pagination { + /** 查询key */ + private String[] selectKey; + /** json */ + private String json; + /** 数据类型 0-当前页,1-全部数据 */ + private String dataType; + /** 高级查询 */ + private String superQueryJson; + /** 功能id */ + private String moduleId; + /** 菜单id */ + private String menuId; + + @Schema(description = "销售订单编号") + private String saleOrdNo; + + @Schema(description = "项目名称") + private String projectName; + + @Schema(description = "是否急单") + private Integer isUrgent; + + @Schema(description = "订单状态") + private String ordStatus; + + @Schema(description = "业务员") + private String saleManName; + @Schema(description = "下单日期") + private Object ordDate; +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/orderdetail/OrderDetailForm.java b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/orderdetail/OrderDetailForm.java new file mode 100644 index 0000000..8d9fa98 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/orderdetail/OrderDetailForm.java @@ -0,0 +1,85 @@ +package jnpf.model.orderdetail; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 业务订单明细 Form + * + * @版本: V3.5 + * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) + * @作者: JNPF开发平台组 + * @日期: 2024-02-04 + */ +@Data +@Schema(description = "OrderDetailForm对象", name = "业务订单明细表单对象") +public class OrderDetailForm implements Serializable { + + @Schema(description = "主键") + private String id; + + @Schema(description = "销售订单主表ID") + private Integer saleOrdId; + + @Schema(description = "物料ID") + private Integer materialId; + + @Schema(description = "物料编码") + private String materialCode; + + @Schema(description = "物料名称") + private String materialName; + + @Schema(description = "规格型号") + private String spec; + + @Schema(description = "单位") + private String unit; + + @Schema(description = "订单数量") + private BigDecimal ordQty; + + @Schema(description = "含税单价") + private BigDecimal priceTax; + + @Schema(description = "用途") + private String materialUse; + + @Schema(description = "已发货数量") + private BigDecimal deliveredQty; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + private Date creatorTime; + + @Schema(description = "创建用户ID") + private String creatorUserId; + + @Schema(description = "最后修改时间") + private Date lastModifyTime; + + @Schema(description = "最后修改用户ID") + private String lastModifyUserId; + + @Schema(description = "删除时间") + private Date deleteTime; + + @Schema(description = "删除用户ID") + private String deleteUserId; + + @Schema(description = "删除标记") + private Integer deleteMark; + + @Schema(description = "流程ID") + private String flowId; + + @Schema(description = "流程任务ID") + private String flowTaskId; + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/orderdetail/OrderDetailPagination.java b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/orderdetail/OrderDetailPagination.java new file mode 100644 index 0000000..2eb1347 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/orderdetail/OrderDetailPagination.java @@ -0,0 +1,41 @@ +package jnpf.model.orderdetail; + +import jnpf.base.Pagination; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; + +/** + * 业务订单明细分页查询 + * + * @版本: V3.5 + * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) + * @作者: JNPF开发平台组 + * @日期: 2024-02-04 + */ +@Data +public class OrderDetailPagination extends Pagination { + + @Schema(description = "销售订单主表ID") + private Integer saleOrdId; + + @Schema(description = "物料ID") + private Integer materialId; + + @Schema(description = "物料编码") + private String materialCode; + + @Schema(description = "物料名称") + private String materialName; + + @Schema(description = "规格型号") + private String spec; + + @Schema(description = "用途") + private String materialUse; + + @Schema(description = "关键词") + private String keyword; + +} diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/orderdetail/OrderDetailVO.java b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/orderdetail/OrderDetailVO.java new file mode 100644 index 0000000..731d440 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/orderdetail/OrderDetailVO.java @@ -0,0 +1,85 @@ +package jnpf.model.orderdetail; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 业务订单明细 VO + * + * @版本: V3.5 + * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) + * @作者: JNPF开发平台组 + * @日期: 2024-02-04 + */ +@Data +@Schema(description = "OrderDetail对象", name = "业务订单明细") +public class OrderDetailVO implements Serializable { + + @Schema(description = "主键") + private Integer id; + + @Schema(description = "销售订单主表ID") + private Integer saleOrdId; + + @Schema(description = "物料ID") + private Integer materialId; + + @Schema(description = "物料编码") + private String materialCode; + + @Schema(description = "物料名称") + private String materialName; + + @Schema(description = "规格型号") + private String spec; + + @Schema(description = "单位") + private String unit; + + @Schema(description = "订单数量") + private BigDecimal ordQty; + + @Schema(description = "含税单价") + private BigDecimal priceTax; + + @Schema(description = "用途") + private String materialUse; + + @Schema(description = "已发货数量") + private BigDecimal deliveredQty; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + private Date creatorTime; + + @Schema(description = "创建用户ID") + private String creatorUserId; + + @Schema(description = "最后修改时间") + private Date lastModifyTime; + + @Schema(description = "最后修改用户ID") + private String lastModifyUserId; + + @Schema(description = "删除时间") + private Date deleteTime; + + @Schema(description = "删除用户ID") + private String deleteUserId; + + @Schema(description = "删除标记") + private Integer deleteMark; + + @Schema(description = "流程ID") + private String flowId; + + @Schema(description = "流程任务ID") + private String flowTaskId; + +} diff --git a/jnpf-java-boot/jnpf-permission/jnpf-permission-biz/src/main/java/jnpf/permission/service/impl/UserServiceImpl.java b/jnpf-java-boot/jnpf-permission/jnpf-permission-biz/src/main/java/jnpf/permission/service/impl/UserServiceImpl.java index 5114e72..94862d8 100644 --- a/jnpf-java-boot/jnpf-permission/jnpf-permission-biz/src/main/java/jnpf/permission/service/impl/UserServiceImpl.java +++ b/jnpf-java-boot/jnpf-permission/jnpf-permission-biz/src/main/java/jnpf/permission/service/impl/UserServiceImpl.java @@ -2,6 +2,7 @@ package jnpf.permission.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.pagehelper.page.PageMethod; import jnpf.base.service.SuperServiceImpl; import cn.afterturn.easypoi.excel.ExcelExportUtil; @@ -52,6 +53,8 @@ import java.util.stream.Collectors; import jnpf.base.UserInfo; import jnpf.permission.model.user.mod.UserConditionModel; +import javax.annotation.Resource; + import static jnpf.consts.AuthConsts.TOKEN_PREFIX; /** @@ -90,7 +93,7 @@ public class UserServiceImpl extends SuperServiceImpl im private OrganizeRelationService organizeRelationService; @Autowired private AuthorizeService authorizeService; - @Autowired + @Resource private UserMapper userMapper; @Autowired private OrganizeAdministratorService organizeAdministratorService; @@ -1706,6 +1709,14 @@ public class UserServiceImpl extends SuperServiceImpl im return list; } + @Override + public List getUserByName(String saleManName) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.like(UserEntity::getRealName, saleManName); + queryWrapper.isNull(UserEntity::getDeleteMark); + return this.list(queryWrapper); + } + @Override public Boolean delCurRoleUser(List objectIdAll) { // 判断角色下面的人 diff --git a/jnpf-java-boot/jnpf-public/jnpf-provider/src/main/java/jnpf/permission/service/UserService.java b/jnpf-java-boot/jnpf-public/jnpf-provider/src/main/java/jnpf/permission/service/UserService.java index 3cdc7fd..73410e4 100644 --- a/jnpf-java-boot/jnpf-public/jnpf-provider/src/main/java/jnpf/permission/service/UserService.java +++ b/jnpf-java-boot/jnpf-public/jnpf-provider/src/main/java/jnpf/permission/service/UserService.java @@ -396,4 +396,6 @@ public interface UserService extends SuperService { * @return */ List selectedByIds(List ids); + + List getUserByName(String saleManName); } diff --git a/jnpf-java-boot/jnpf-web/src/components/Generator/generator/config.js b/jnpf-java-boot/jnpf-web/src/components/Generator/generator/config.js index a5c7d07..7647cb7 100644 --- a/jnpf-java-boot/jnpf-web/src/components/Generator/generator/config.js +++ b/jnpf-java-boot/jnpf-web/src/components/Generator/generator/config.js @@ -120,7 +120,6 @@ export const inputComponents = [ style: { width: "100%" }, maxlength: null, showWordLimit: true, - readonly: false, disabled: false, readonly: false, }, diff --git a/jnpf-java-boot/jnpf-web/src/views/example/order/Detail.vue b/jnpf-java-boot/jnpf-web/src/views/example/order/Detail.vue new file mode 100644 index 0000000..fbf9716 --- /dev/null +++ b/jnpf-java-boot/jnpf-web/src/views/example/order/Detail.vue @@ -0,0 +1,206 @@ + + diff --git a/jnpf-java-boot/jnpf-web/src/views/example/order/columnList.js b/jnpf-java-boot/jnpf-web/src/views/example/order/columnList.js new file mode 100644 index 0000000..139b719 --- /dev/null +++ b/jnpf-java-boot/jnpf-web/src/views/example/order/columnList.js @@ -0,0 +1,2 @@ +const columnList = [{"popupType":"dialog","hasPage":true,"pageSize":20,"columnOptions":[{"label":"母件编码","value":"piece_id"},{"label":"母件名称","value":"piece_name"},{"label":"规格型号","value":"models"},{"label":"计量单位","value":"unit"},{"label":"版本","value":"version_code"}],"align":"left","templateJson":[],"__config__":{"formId":101,"visibility":["pc","app"],"jnpfKey":"popupSelect","defaultValue":"","noShow":false,"tipLabel":"","dragDisabled":false,"className":[],"label":"产品名称","trigger":"change","showLabel":true,"required":true,"tableName":"qa_final_check_data","renderKey":1728102516239,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-popup","tag":"JnpfPopupSelect","regList":[],"span":12},"prop":"checkSeq","__vModel__":"checkSeq","disabled":false,"id":"checkSeq","placeholder":"请选择","interfaceName":"查询产品信息","popupWidth":"800px","on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"},"clearable":true,"jnpfKey":"popupSelect","fullName":"产品名称","label":"产品名称","sortable":false,"relationField":"piece_name","popupTitle":"选择数据","width":0,"fixed":"none","style":{"width":"100%"},"interfaceHasPage":false,"interfaceId":"605051365542070405","propsValue":"id"},{"jnpfKey":"popupAttr","fullName":"产品货号","label":"产品货号","sortable":false,"align":"left","relationField":"checkSeq_jnpfTable_qa_final_check_data1","isStorage":1,"__config__":{"formId":110,"visibility":["pc","app"],"jnpfKey":"popupAttr","noShow":false,"defaultValue":"","tipLabel":"","dragDisabled":false,"className":[],"label":"产品货号","showLabel":true,"required":false,"renderKey":1728103741201,"tableName":"qa_final_check_data","layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-popup-attr","tag":"JnpfPopupAttr","span":12},"showField":"piece_id","prop":"productNumber","width":0,"__vModel__":"productNumber","fixed":"none","style":{"width":"100%"},"id":"productNumber"},{"clearable":true,"maxlength":null,"jnpfKey":"input","suffixIcon":"","fullName":"生产批号","label":"生产批号","sortable":false,"align":"left","addonAfter":"","__config__":{"formId":103,"visibility":["pc","app"],"jnpfKey":"input","noShow":false,"tipLabel":"","dragDisabled":false,"className":[],"label":"生产批号","trigger":"blur","showLabel":true,"required":false,"tableName":"qa_final_check_data","renderKey":1728102534593,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-input","unique":false,"tag":"JnpfInput","regList":[],"span":12},"readonly":false,"prop":"productLot","showWordLimit":false,"width":0,"__vModel__":"productLot","showPassword":false,"fixed":"none","style":{"width":"100%"},"disabled":false,"id":"productLot","placeholder":"请输入","prefixIcon":"","addonBefore":"","on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}","blur":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"}},{"clearable":true,"jnpfKey":"userSelect","ableIds":[],"multiple":false,"fullName":"检验人员","label":"检验人员","sortable":false,"align":"left","relationField":"","__config__":{"formId":105,"visibility":["pc","app"],"jnpfKey":"userSelect","defaultValue":null,"noShow":false,"tipLabel":"","dragDisabled":false,"className":[],"label":"检验人员","trigger":"change","showLabel":true,"required":false,"relationField":"","tableName":"qa_final_check_data","renderKey":1728102556217,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-user","defaultCurrent":false,"tag":"JnpfUserSelect","regList":[],"span":12},"prop":"checkUserName","width":0,"__vModel__":"checkUserName","fixed":"none","style":{"width":"100%"},"selectType":"all","disabled":false,"id":"checkUserName","placeholder":"请选择","on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"}},{"clearable":true,"jnpfKey":"datePicker","format":"yyyy-MM-dd","fullName":"检验日期","label":"检验日期","sortable":false,"align":"left","type":"date","__config__":{"endRelationField":"","defaultValue":null,"dragDisabled":false,"className":[],"showLabel":true,"required":false,"tableName":"qa_final_check_data","renderKey":1728102580205,"tagIcon":"icon-ym icon-ym-generator-date","startRelationField":"","defaultCurrent":false,"tag":"JnpfDatePicker","formId":106,"visibility":["pc","app"],"jnpfKey":"datePicker","noShow":false,"endTimeTarget":1,"tipLabel":"","startTimeType":1,"endTimeRule":false,"label":"检验日期","startTimeRule":false,"startTimeValue":"","trigger":"change","endTimeValue":"","endTimeType":1,"layout":"colFormItem","startTimeTarget":1,"regList":[],"span":12},"readonly":false,"prop":"checkDate","width":0,"__vModel__":"checkDate","fixed":"none","style":{"width":"100%"},"disabled":false,"startTime":null,"id":"checkDate","placeholder":"请选择","endTime":null,"on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}","blur":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"}},{"step-strictly":false,"controls":false,"jnpfKey":"inputNumber","fullName":"抽检数量(件)","label":"抽检数量(件)","sortable":false,"align":"left","thousands":false,"isAmountChinese":false,"addonAfter":null,"__config__":{"formId":107,"visibility":["pc","app"],"jnpfKey":"inputNumber","noShow":false,"tipLabel":"","dragDisabled":false,"className":[],"label":"抽检数量(件)","trigger":["blur","change"],"showLabel":true,"required":false,"tableName":"qa_final_check_data","renderKey":1728102608266,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-number","tag":"JnpfInputNumber","regList":[],"span":12},"prop":"sampleQty","width":0,"__vModel__":"sampleQty","fixed":"none","style":{"width":null},"step":1,"disabled":false,"id":"sampleQty","placeholder":"数字文本","controlsPosition":"","addonBefore":null,"on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}","blur":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"}},{"border":false,"jnpfKey":"radio","fullName":"检验结果","label":"检验结果","sortable":false,"align":"left","props":{"label":"fullName","value":"id"},"optionType":"default","__config__":{"formId":108,"visibility":["pc","app"],"jnpfKey":"radio","defaultValue":"1","noShow":false,"dataType":"static","dictionaryType":"","tipLabel":"","dragDisabled":false,"className":[],"label":"检验结果","trigger":"change","propsUrl":"","templateJson":[],"showLabel":true,"required":false,"tableName":"qa_final_check_data","renderKey":1728102616208,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-radio","propsName":"","tag":"JnpfRadio","regList":[],"span":12},"size":"small","prop":"checkResult","width":0,"options":[{"fullName":"合格","id":"1"},{"fullName":"不合格","id":"0"}],"__vModel__":"checkResult","fixed":"none","style":{},"disabled":false,"interfaceHasPage":false,"id":"checkResult","on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"},"direction":"horizontal"},{"maxlength":null,"jnpfKey":"textarea","fullName":"备注","label":"备注","sortable":false,"align":"left","type":"textarea","autoSize":{"minRows":4,"maxRows":4},"__config__":{"formId":109,"visibility":["pc","app"],"jnpfKey":"textarea","noShow":false,"tipLabel":"","dragDisabled":false,"className":[],"label":"备注","trigger":"blur","showLabel":true,"required":false,"tableName":"qa_final_check_data","renderKey":1728102621547,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-textarea","tag":"JnpfTextarea","regList":[],"span":14},"readonly":false,"prop":"remark","showWordLimit":true,"width":0,"__vModel__":"remark","fixed":"none","style":{"width":"100%"},"disabled":false,"id":"remark","placeholder":"请输入","on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}","blur":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"}}] +export default columnList \ No newline at end of file diff --git a/jnpf-java-boot/jnpf-web/src/views/example/order/form.vue b/jnpf-java-boot/jnpf-web/src/views/example/order/form.vue new file mode 100644 index 0000000..c634b48 --- /dev/null +++ b/jnpf-java-boot/jnpf-web/src/views/example/order/form.vue @@ -0,0 +1,938 @@ + + + + + diff --git a/jnpf-java-boot/jnpf-web/src/views/example/order/index.vue b/jnpf-java-boot/jnpf-web/src/views/example/order/index.vue new file mode 100644 index 0000000..40abeff --- /dev/null +++ b/jnpf-java-boot/jnpf-web/src/views/example/order/index.vue @@ -0,0 +1,611 @@ + + + diff --git a/jnpf-java-boot/jnpf-web/src/views/example/order/superQueryJson.js b/jnpf-java-boot/jnpf-web/src/views/example/order/superQueryJson.js new file mode 100644 index 0000000..0884c78 --- /dev/null +++ b/jnpf-java-boot/jnpf-web/src/views/example/order/superQueryJson.js @@ -0,0 +1,2 @@ +const superQueryJson = [{"popupType":"dialog","hasPage":true,"clearable":true,"fullName":"产品名称","pageSize":20,"columnOptions":[{"label":"母件编码","value":"piece_id"},{"label":"母件名称","value":"piece_name"},{"label":"规格型号","value":"models"},{"label":"计量单位","value":"unit"},{"label":"版本","value":"version_code"}],"templateJson":[],"relationField":"piece_name","__config__":{"formId":101,"visibility":["pc","app"],"jnpfKey":"popupSelect","defaultValue":"","noShow":false,"tipLabel":"","dragDisabled":false,"className":[],"label":"产品名称","trigger":"change","showLabel":true,"required":true,"tableName":"qa_final_check_data","renderKey":1728102516239,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-popup","tag":"JnpfPopupSelect","regList":[],"span":12},"popupTitle":"选择数据","__vModel__":"checkSeq","style":{"width":"100%"},"disabled":false,"interfaceHasPage":false,"id":"checkSeq","placeholder":"请选择","interfaceId":"605051365542070405","interfaceName":"查询产品信息","popupWidth":"800px","on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"},"propsValue":"id"},{"isStorage":1,"__config__":{"formId":110,"visibility":["pc","app"],"jnpfKey":"popupAttr","noShow":false,"defaultValue":"","tipLabel":"","dragDisabled":false,"className":[],"label":"产品货号","showLabel":true,"required":false,"renderKey":1728103741201,"tableName":"qa_final_check_data","layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-popup-attr","tag":"JnpfPopupAttr","span":12},"showField":"piece_id","__vModel__":"productNumber","fullName":"产品货号","style":{"width":"100%"},"id":"productNumber","relationField":"checkSeq_jnpfTable_qa_final_check_data1"},{"clearable":true,"maxlength":null,"suffixIcon":"","fullName":"生产批号","addonAfter":"","__config__":{"formId":103,"visibility":["pc","app"],"jnpfKey":"input","noShow":false,"tipLabel":"","dragDisabled":false,"className":[],"label":"生产批号","trigger":"blur","showLabel":true,"required":false,"tableName":"qa_final_check_data","renderKey":1728102534593,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-input","unique":false,"tag":"JnpfInput","regList":[],"span":12},"readonly":false,"showWordLimit":false,"__vModel__":"productLot","showPassword":false,"style":{"width":"100%"},"disabled":false,"id":"productLot","placeholder":"请输入","prefixIcon":"","addonBefore":"","on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}","blur":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"}},{"clearable":true,"ableIds":[],"multiple":false,"fullName":"检验人员","relationField":"","__config__":{"formId":105,"visibility":["pc","app"],"jnpfKey":"userSelect","defaultValue":null,"noShow":false,"tipLabel":"","dragDisabled":false,"className":[],"label":"检验人员","trigger":"change","showLabel":true,"required":false,"relationField":"","tableName":"qa_final_check_data","renderKey":1728102556217,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-user","defaultCurrent":false,"tag":"JnpfUserSelect","regList":[],"span":12},"__vModel__":"checkUserName","style":{"width":"100%"},"selectType":"all","disabled":false,"id":"checkUserName","placeholder":"请选择","on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"}},{"clearable":true,"format":"yyyy-MM-dd","fullName":"检验日期","type":"date","__config__":{"endRelationField":"","defaultValue":null,"dragDisabled":false,"className":[],"showLabel":true,"required":false,"tableName":"qa_final_check_data","renderKey":1728102580205,"tagIcon":"icon-ym icon-ym-generator-date","startRelationField":"","defaultCurrent":false,"tag":"JnpfDatePicker","formId":106,"visibility":["pc","app"],"jnpfKey":"datePicker","noShow":false,"endTimeTarget":1,"tipLabel":"","startTimeType":1,"endTimeRule":false,"label":"检验日期","startTimeRule":false,"startTimeValue":"","trigger":"change","endTimeValue":"","endTimeType":1,"layout":"colFormItem","startTimeTarget":1,"regList":[],"span":12},"readonly":false,"__vModel__":"checkDate","style":{"width":"100%"},"disabled":false,"startTime":null,"id":"checkDate","placeholder":"请选择","endTime":null,"on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}","blur":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"}},{"step-strictly":false,"controls":false,"fullName":"抽检数量(件)","thousands":false,"isAmountChinese":false,"addonAfter":null,"__config__":{"formId":107,"visibility":["pc","app"],"jnpfKey":"inputNumber","noShow":false,"tipLabel":"","dragDisabled":false,"className":[],"label":"抽检数量(件)","trigger":["blur","change"],"showLabel":true,"required":false,"tableName":"qa_final_check_data","renderKey":1728102608266,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-number","tag":"JnpfInputNumber","regList":[],"span":12},"__vModel__":"sampleQty","style":{"width":null},"step":1,"disabled":false,"id":"sampleQty","placeholder":"数字文本","controlsPosition":"","addonBefore":null,"on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}","blur":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"}},{"border":false,"fullName":"检验结果","props":{"label":"fullName","value":"id"},"optionType":"default","__config__":{"formId":108,"visibility":["pc","app"],"jnpfKey":"radio","defaultValue":"1","noShow":false,"dataType":"static","dictionaryType":"","tipLabel":"","dragDisabled":false,"className":[],"label":"检验结果","trigger":"change","propsUrl":"","templateJson":[],"showLabel":true,"required":false,"tableName":"qa_final_check_data","renderKey":1728102616208,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-radio","propsName":"","tag":"JnpfRadio","regList":[],"span":12},"size":"small","options":[{"fullName":"合格","id":"1"},{"fullName":"不合格","id":"0"}],"__vModel__":"checkResult","style":{},"disabled":false,"interfaceHasPage":false,"id":"checkResult","on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"},"direction":"horizontal"},{"maxlength":null,"fullName":"备注","type":"textarea","autoSize":{"minRows":4,"maxRows":4},"__config__":{"formId":109,"visibility":["pc","app"],"jnpfKey":"textarea","noShow":false,"tipLabel":"","dragDisabled":false,"className":[],"label":"备注","trigger":"blur","showLabel":true,"required":false,"tableName":"qa_final_check_data","renderKey":1728102621547,"layout":"colFormItem","tagIcon":"icon-ym icon-ym-generator-textarea","tag":"JnpfTextarea","regList":[],"span":14},"readonly":false,"showWordLimit":true,"__vModel__":"remark","style":{"width":"100%"},"disabled":false,"id":"remark","placeholder":"请输入","on":{"change":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}","blur":"({ data, formData, setFormData, setShowOrHide, setRequired, setDisabled, onlineUtils }) => {\n // 在此编写代码\n \n}"}}] +export default superQueryJson \ No newline at end of file