diff --git a/src/main/java/com/glxp/api/constant/Constant.java b/src/main/java/com/glxp/api/constant/Constant.java index 57241b98d..7887d34eb 100644 --- a/src/main/java/com/glxp/api/constant/Constant.java +++ b/src/main/java/com/glxp/api/constant/Constant.java @@ -36,6 +36,11 @@ public class Constant { public static final String DEV_DBG = "DBG"; //设备变更 public static final String DEV_DYC = "DYC"; //设备移除 + public static final String DEV_DJH = "DJH"; //设备计划 + public static final String DEV_DXJ = "DXJ"; //设备巡检任务 + public static final String DEV_DBX = "DBX"; //设备报修单号 + public static final String DEV_DWX = "DWX"; //设备维修单号 + /** * 盘点单据前缀 diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java index c56dbc9d2..c4779fa66 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -20,6 +20,7 @@ import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.system.CompanyEntity; +import com.glxp.api.entity.system.SysPdfTemplateRelevanceLabelEntity; import com.glxp.api.entity.system.SysPdfTemplateRelevanceStatemenEntity; import com.glxp.api.entity.system.SystemPDFTemplateEntity; import com.glxp.api.entity.thrsys.ThrProductsEntity; @@ -53,6 +54,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.math.RoundingMode; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; @@ -250,6 +252,24 @@ public class IoOrderDetailResultController extends BaseController { return ResultVOUtils.success(sysPdfTemplateRelevanceStatemenEntity.getTemplateId()); } + //校验模板是否正确--标签 + @AuthRuleAnnotation("") + @PostMapping("/udiwms/pdf/templateLabel/order/result/file") + public BaseResponse inspectionStockOrderPDFFromTemplateLabelFile(@RequestBody InspectionPDFTemplateRequest inspectionPDFTemplateRequest) { + + //查询模板文件是否存在 + SysPdfTemplateRelevanceLabelEntity sysPdfTemplateRelevanceLabelEntity = systemPDFModuleService.selectByLabelId(inspectionPDFTemplateRequest.getId()); + if (null == sysPdfTemplateRelevanceLabelEntity) { + return ResultVOUtils.error(ResultEnum.DATA_NOT, "所属模块错误"); + } + + SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(String.valueOf(sysPdfTemplateRelevanceLabelEntity.getTemplateId())); + if (null == systemPDFTemplateEntity) { + return ResultVOUtils.error(ResultEnum.DATA_NOT, "模板错误"); + } + return ResultVOUtils.success(sysPdfTemplateRelevanceLabelEntity.getTemplateId()); + } + /** * 出入库明细打印 @@ -397,23 +417,24 @@ public class IoOrderDetailResultController extends BaseController { deviceInfoData.put("index", String.valueOf(i)); deviceInfoData.put("deviceCode", item.getDeviceCode() == null ? ' ' : item.getDeviceCode()); deviceInfoData.put("deptName", item.getDeptName() == null ? ' ' : item.getDeptName()); - deviceInfoData.put("statusName", item.getStatusName() == null ? ' ' : item.getStatusName()); - deviceInfoData.put("udi", item.getUdi() == null ? ' ' : item.getUdi()); - deviceInfoData.put("nameCode", item.getNameCode() == null ? ' ' : item.getNameCode()); +// deviceInfoData.put("statusName", item.getStatusName() == null ? ' ' : item.getStatusName()); +// deviceInfoData.put("udi", item.getUdi() == null ? ' ' : item.getUdi()); +// deviceInfoData.put("nameCode", item.getNameCode() == null ? ' ' : item.getNameCode()); deviceInfoData.put("productName", item.getProductName() == null ? ' ' : item.getProductName()); deviceInfoData.put("ggxh", item.getGgxh() == null ? ' ' : item.getGgxh()); - deviceInfoData.put("batchNo", item.getBatchNo() == null ? ' ' : item.getBatchNo()); - deviceInfoData.put("serialNo", item.getSerialNo() == null ? ' ' : item.getSerialNo()); - deviceInfoData.put("productionDate", item.getProductionDate() == null ? ' ' : item.getProductionDate()); - deviceInfoData.put("expireDate", item.getExpireDate() == null ? ' ' : item.getExpireDate()); - deviceInfoData.put("manufactory", item.getManufactory() == null ? ' ' : item.getManufactory()); - deviceInfoData.put("measname", item.getMeasname() == null ? ' ' : item.getMeasname()); - deviceInfoData.put("zczbhhzbapzbh", item.getZczbhhzbapzbh() == null ? ' ' : item.getZczbhhzbapzbh()); - deviceInfoData.put("supName", item.getSupName() == null ? ' ' : item.getSupName()); - deviceInfoData.put("changeCount", item.getChangeCount() == null ? '0' : item.getChangeCount()); - deviceInfoData.put("repairApplyCount", item.getRepairApplyCount() == null ? '0' : item.getRepairApplyCount()); - deviceInfoData.put("repairCount", item.getRepairCount() == null ? '0' : item.getRepairCount()); - deviceInfoData.put("checkCount", item.getCheckCount() == null ? '0' : item.getCheckCount()); + deviceInfoData.put("assetValue", item.getAssetValue() == null ? "0.00" : String.valueOf(item.getAssetValue().setScale(2, RoundingMode.HALF_UP))); +// deviceInfoData.put("batchNo", item.getBatchNo() == null ? ' ' : item.getBatchNo()); +// deviceInfoData.put("serialNo", item.getSerialNo() == null ? ' ' : item.getSerialNo()); +// deviceInfoData.put("productionDate", item.getProductionDate() == null ? ' ' : item.getProductionDate()); +// deviceInfoData.put("expireDate", item.getExpireDate() == null ? ' ' : item.getExpireDate()); +// deviceInfoData.put("manufactory", item.getManufactory() == null ? ' ' : item.getManufactory()); +// deviceInfoData.put("measname", item.getMeasname() == null ? ' ' : item.getMeasname()); +// deviceInfoData.put("zczbhhzbapzbh", item.getZczbhhzbapzbh() == null ? ' ' : item.getZczbhhzbapzbh()); +// deviceInfoData.put("supName", item.getSupName() == null ? ' ' : item.getSupName()); +// deviceInfoData.put("changeCount", item.getChangeCount() == null ? '0' : item.getChangeCount()); +// deviceInfoData.put("repairApplyCount", item.getRepairApplyCount() == null ? '0' : item.getRepairApplyCount()); +// deviceInfoData.put("repairCount", item.getRepairCount() == null ? '0' : item.getRepairCount()); +// deviceInfoData.put("checkCount", item.getCheckCount() == null ? '0' : item.getCheckCount()); list.add(deviceInfoData); i++; diff --git a/src/main/java/com/glxp/api/controller/purchase/PurApplyArgumentController.java b/src/main/java/com/glxp/api/controller/purchase/PurApplyArgumentController.java new file mode 100644 index 000000000..254e3ce22 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/purchase/PurApplyArgumentController.java @@ -0,0 +1,120 @@ +package com.glxp.api.controller.purchase; + +import com.alibaba.fastjson.JSON; +import com.github.pagehelper.PageInfo; +import com.glxp.api.annotation.AuthRuleAnnotation; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.purchase.PurApplyArgument; +import com.glxp.api.entity.purchase.PurInquiryItemEntity; +import com.glxp.api.entity.system.SystemPDFTemplateEntity; +import com.glxp.api.req.dev.DeviceInfoDetailQuery; +import com.glxp.api.req.purchase.PurApplyArgumentRequest; +import com.glxp.api.req.purchase.PurInquiryOfferRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.purchase.PurInquiryOfferEntityResponse; +import com.glxp.api.service.purchase.impl.PurApplyArgumentService; +import com.glxp.api.service.system.SystemPDFTemplateService; +import com.glxp.api.util.EntityToMapConverter; +import com.glxp.api.util.JasperUtils; +import com.glxp.api.vo.dev.DeviceInfoVo; +import lombok.RequiredArgsConstructor; +import net.sf.jasperreports.engine.JRException; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.io.IOException; +import java.math.RoundingMode; +import java.util.*; + +@Validated +@RequiredArgsConstructor +@RestController +public class PurApplyArgumentController { + + @Resource + PurApplyArgumentService purApplyArgumentService; + @Resource + private SystemPDFTemplateService systemPDFTemplateService; + @Value("${file_path}") + private String filePath; + + /** + * 查询询价业务列表 + */ + @GetMapping("/purchase/purApplyArgument/list") + public BaseResponse list(PurApplyArgumentRequest purApplyArgumentRequest) { + + List list = purApplyArgumentService.queryPageList(purApplyArgumentRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(list); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(list); + return ResultVOUtils.success(pageSimpleResponse); + } + + + /** + * 修改 + */ + @PostMapping("/purchase/purApplyArgument/updateArg") + public BaseResponse updateArg(@RequestBody PurApplyArgument purApplyArgument) { + purApplyArgumentService.updateById(purApplyArgument); + return ResultVOUtils.success("修改成功"); + } + + + /** + * 论证单明细打印 + * + * @param purApplyArgumentRequest + * @return + */ + @PostMapping("/purchase/purApplyArgument/printArg") + public BaseResponse printArg(@RequestBody PurApplyArgumentRequest purApplyArgumentRequest, HttpServletRequest request, HttpServletResponse response) throws JRException, IOException { + List resList = new ArrayList<>(); + SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(purApplyArgumentRequest.getTemplateId()); + //打印单号标签 + Map data = new HashMap<>(1); + List list = new ArrayList<>(); + + //按选入打印 + if (purApplyArgumentRequest.getList() != null && purApplyArgumentRequest.getList().size() > 0) { + resList = purApplyArgumentRequest.getList(); + } else { + resList = purApplyArgumentService.queryPageList(purApplyArgumentRequest); + } + int i = 1; + for (PurApplyArgument item : resList) { + //组装数据 + Map purApplyArgumentData = EntityToMapConverter.convertEntityToMap(item); + purApplyArgumentData.put("index", String.valueOf(i)); + list.add(purApplyArgumentData); + i++; + } + data.put("data", list); + String param = JSON.toJSONString(data); + JasperUtils.jasperReport(request, response, param, filePath + "pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf"); + return ResultVOUtils.success(); + } + + + /** + * 查看是否全部通过 + * + * @param id 主键串 + */ + @GetMapping("/purchase/purApplyArgument/argAllPass/{id}") + public BaseResponse argAllPass(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + int data = purApplyArgumentService.argAllPass(id); + return ResultVOUtils.success(data); + } +} diff --git a/src/main/java/com/glxp/api/controller/purchase/PurApplyController.java b/src/main/java/com/glxp/api/controller/purchase/PurApplyController.java index 50785525f..e04849ab0 100644 --- a/src/main/java/com/glxp/api/controller/purchase/PurApplyController.java +++ b/src/main/java/com/glxp/api/controller/purchase/PurApplyController.java @@ -2,10 +2,7 @@ package com.glxp.api.controller.purchase; import com.glxp.api.req.purchase.AddDetailByWarlockBagRequest; import com.glxp.api.service.basic.SysApprovalFlowService; -import com.glxp.api.service.purchase.impl.PurApplyDetailService; -import com.glxp.api.service.purchase.impl.PurApplyService; -import com.glxp.api.service.purchase.impl.PurOrderDetailService; -import com.glxp.api.service.purchase.impl.PurPlanDetailService; +import com.glxp.api.service.purchase.impl.*; import com.glxp.api.service.system.SystemParamConfigService; import org.springframework.beans.BeanUtils; import cn.hutool.core.collection.CollUtil; @@ -88,6 +85,8 @@ public class PurApplyController { SysApprovalFlowService sysApprovalFlowService; @Resource SystemParamConfigService systemParamConfigService; + @Resource + PurApplyArgumentService purApplyArgumentService; final String type = "sg"; @@ -124,12 +123,10 @@ public class PurApplyController { } else { purApplyService.update(purApplyEntity); } -// if (CollUtil.isNotEmpty(postPurApplyRequest.getSubErpOrders())) { -// for (PurApplyDetailEntity purApplyDetailEntity : postPurApplyRequest.getSubErpOrders()) { -// purApplyDetailEntity.setId(null); -// purApplyDetailService.insert(purApplyDetailEntity); -// } -// } + + if (editStatus == 2){ + purApplyArgumentService.genPurApplyArguments(purApplyEntity); + } return ResultVOUtils.success("提交成功!"); diff --git a/src/main/java/com/glxp/api/controller/purchase/PurContractController.java b/src/main/java/com/glxp/api/controller/purchase/PurContractController.java index 16697c97c..1347b561d 100644 --- a/src/main/java/com/glxp/api/controller/purchase/PurContractController.java +++ b/src/main/java/com/glxp/api/controller/purchase/PurContractController.java @@ -1,6 +1,7 @@ package com.glxp.api.controller.purchase; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.RepeatSubmit; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; @@ -10,6 +11,7 @@ import com.glxp.api.entity.purchase.PurPlanEntity; import com.glxp.api.req.purchase.*; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.purchase.PurContractEntityResponse; +import com.glxp.api.res.purchase.PurOrderResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.basic.SysApprovalFlowService; import com.glxp.api.service.purchase.impl.PurContractDetailService; @@ -26,6 +28,7 @@ import javax.annotation.Resource; import javax.validation.constraints.NotEmpty; import java.util.Arrays; import java.util.Date; +import java.util.List; @RestController @Slf4j @@ -97,10 +100,12 @@ public class PurContractController { Boolean sys_approval_flow = "1".equals(systemParamConfigService.selectValueByParamKey("sys_approval_flow")); purContractRequest.setSysApprovalFlow(sys_approval_flow); - IPage page = purContractService.queryPageList(purContractRequest); + List purContractEntityResponses = purContractService.queryPageList(purContractRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(purContractEntityResponses); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); - pageSimpleResponse.setTotal(page.getTotal()); - pageSimpleResponse.setList(page.getRecords()); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(purContractEntityResponses); return ResultVOUtils.success(pageSimpleResponse); } diff --git a/src/main/java/com/glxp/api/controller/purchase/PurInquiryController.java b/src/main/java/com/glxp/api/controller/purchase/PurInquiryController.java new file mode 100644 index 000000000..d836a0531 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/purchase/PurInquiryController.java @@ -0,0 +1,210 @@ +package com.glxp.api.controller.purchase; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.pagehelper.PageInfo; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.purchase.*; +import com.glxp.api.req.purchase.*; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.purchase.PurContractEntityResponse; +import com.glxp.api.res.purchase.PurInquiryEntityResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.basic.SysApprovalFlowService; +import com.glxp.api.service.purchase.impl.PurInquiryItemDetailService; +import com.glxp.api.service.purchase.impl.PurInquiryItemService; +import com.glxp.api.service.purchase.impl.PurInquiryService; +import com.glxp.api.service.system.SystemParamConfigService; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; +import jodd.util.StringUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +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; + +@RestController +@Slf4j +@RequiredArgsConstructor +public class PurInquiryController { + + @Resource + CustomerService customerService; + @Resource + GennerOrderUtils gennerOrderUtils; + @Resource + SystemParamConfigService systemParamConfigService; + @Resource + PurInquiryService purInquiryService; + @Resource + PurInquiryItemService purInquiryItemService; + @Resource + SysApprovalFlowService sysApprovalFlowService; + @Resource + PurInquiryItemDetailService purInquiryItemDetailService; + + final String type_xjjh = "xjjh"; + + /** + * 查询询价业务列表 + */ + @GetMapping("/purchase/purInquiry/list") + public BaseResponse list(PurInquiryRequest purInquiryRequest) { + + Boolean sys_approval_flow = "1".equals(systemParamConfigService.selectValueByParamKey("sys_approval_flow")); + purInquiryRequest.setSysApprovalFlow(sys_approval_flow); + List purInquiryEntityResponses = purInquiryService.queryPageList(purInquiryRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(purInquiryEntityResponses); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(purInquiryEntityResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + + /** + * 新增询价业务 + */ + @PostMapping("/purchase/addPurInquiryItem/add") + public BaseResponse add() { + Long userId = customerService.getUserId(); + PurInquiryEntity purInquiryEntity = new PurInquiryEntity(); + Date date = new Date(); + purInquiryEntity.setCreateUser(userId + ""); + purInquiryEntity.setCreateTime(date); + purInquiryEntity.setUpdateTime(date); + purInquiryEntity.setUpdateUser(userId + ""); + purInquiryEntity.setPageType(1); + purInquiryService.insert(purInquiryEntity); + Long id = purInquiryEntity.getId(); + return ResultVOUtils.success(id); + } + + /** + * 添加产品到合同里面 + */ + @PostMapping("/purchase/purInquiry/addPurInquiryItem") + public BaseResponse addPurInquiryItem(@RequestBody AddPurInquiryItemRequest addPurInquiryItemRequest) { + int falg = purInquiryItemService.insert(addPurInquiryItemRequest); + if (falg > 0) { + return ResultVOUtils.success("添加成功"); + } else { + return ResultVOUtils.success("添加失败"); + } + } + + /** + * 查询询价单详情列表 + * + * @param purContractDetailRequest + * @return + */ + @GetMapping("/purchase/purInquiry/list/detail") + public BaseResponse getDetailList(PurContractDetailRequest purContractDetailRequest) { + List page = purInquiryItemService.queryPageList(purContractDetailRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(page); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(page); + return ResultVOUtils.success(pageSimpleResponse); + } + /** + * 查询询价单详情列表 + * + * @param purContractDetailRequest + * @return + */ + @GetMapping("/purchase/purInquiry/list/itemDetail") + public BaseResponse getItemDetailList(PurContractDetailRequest purContractDetailRequest) { + List page = purInquiryItemDetailService.queryPageList(purContractDetailRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(page); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(page); + return ResultVOUtils.success(pageSimpleResponse); + } + + + /** + * 草稿保存 + */ + @PostMapping("/purchase/purInquiry/postOrder") + public BaseResponse postOrder(@RequestBody PostPurInquiryRequest postPurInquiryRequest) { + + Long userId = customerService.getUserId(); + PurInquiryEntity purInquiryEntity = postPurInquiryRequest.getPurInquiryEntity(); + + Date date = new Date(); + purInquiryEntity.setUpdateTime(date); + purInquiryEntity.setUpdateUser(userId + ""); + purInquiryEntity.setStatus(postPurInquiryRequest.getEditStatus()); //状态 + + Integer editStatus = postPurInquiryRequest.getEditStatus(); + + String billNo = purInquiryEntity.getBillNo(); + if (StringUtil.isEmpty(billNo)) { + billNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean("XJJH", "yyyyMMdd")); + purInquiryEntity.setBillNo(billNo); + } + + Boolean sys_approval_flow = "1".equals(systemParamConfigService.selectValueByParamKey("sys_approval_flow")); + if (editStatus == 2 && sys_approval_flow){//提交审核 + String approvalFlowId = sysApprovalFlowService.getApprovalFlowId(); + purInquiryEntity.setApprovalFlowId(approvalFlowId); + sysApprovalFlowService.generateFlow(approvalFlowId,purInquiryEntity.getBillNo(),type_xjjh); + } + + if (purInquiryEntity.getId() == null) { + purInquiryEntity.setCreateTime(date); + purInquiryEntity.setCreateUser(userId + ""); + purInquiryService.save(purInquiryEntity); + } else { + purInquiryService.updateById(purInquiryEntity); + } + + //更新明细详情表 + purInquiryItemDetailService.updateItemDetail(purInquiryEntity); + + return ResultVOUtils.success("提交成功!"); + } + + /** + * 修改询价明细 + */ + @PostMapping("/purchase/purInquiry/updateItem") + public BaseResponse updateItem(@RequestBody PurInquiryItemEntity purInquiryItemEntity) { + purInquiryItemService.updateById(purInquiryItemEntity); + return ResultVOUtils.success("修改成功"); + } + + + /** + * 删除询价明细 + * + * @param ids 主键串 + */ + @DeleteMapping("/purchase/purInquiry/item/{ids}") + public BaseResponse detailRemove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + + purInquiryItemService.deleteByIds(Arrays.asList(ids)); + return ResultVOUtils.success("删除成功"); + } + + /** + * 发起报价 + */ + @PostMapping("/purchase/purInquiry/submitOffer") + public BaseResponse submitOffer(@RequestBody PurInquiryEntity purInquiryEntity) { + purInquiryService.submitOffer(purInquiryEntity); + return ResultVOUtils.success("发起成功"); + } + +} diff --git a/src/main/java/com/glxp/api/controller/purchase/PurInquiryOfferController.java b/src/main/java/com/glxp/api/controller/purchase/PurInquiryOfferController.java new file mode 100644 index 000000000..d881ae8d6 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/purchase/PurInquiryOfferController.java @@ -0,0 +1,229 @@ +package com.glxp.api.controller.purchase; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.purchase.PurInquiryOfferEntity; +import com.glxp.api.entity.purchase.PurInquiryOfferItemDetailEntity; +import com.glxp.api.entity.purchase.PurInquiryOfferItemEntity; +import com.glxp.api.req.purchase.AddPurInquiryOfferItemRequest; +import com.glxp.api.req.purchase.PostPurInquiryOfferRequest; +import com.glxp.api.req.purchase.PurContractDetailRequest; +import com.glxp.api.req.purchase.PurInquiryOfferRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.purchase.PurInquiryOfferEntityResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.basic.SysApprovalFlowService; +import com.glxp.api.service.purchase.impl.PurInquiryOfferItemDetailService; +import com.glxp.api.service.purchase.impl.PurInquiryOfferItemService; +import com.glxp.api.service.purchase.impl.PurInquiryOfferService; +import com.glxp.api.service.system.SystemParamConfigService; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; +import jodd.util.StringUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +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; + +@RestController +@Slf4j +@RequiredArgsConstructor +public class PurInquiryOfferController { + + @Resource + CustomerService customerService; + @Resource + GennerOrderUtils gennerOrderUtils; + @Resource + SystemParamConfigService systemParamConfigService; + @Resource + PurInquiryOfferService purInquiryOfferService; + @Resource + PurInquiryOfferItemService purInquiryOfferItemService; + @Resource + SysApprovalFlowService sysApprovalFlowService; + @Resource + PurInquiryOfferItemDetailService purInquiryOfferItemDetailService; + + final String type_xjbj = "xjbj"; + + /** + * 查询询价业务列表 + */ + @GetMapping("/purchase/purInquiryOffer/list") + public BaseResponse list(PurInquiryOfferRequest purInquiryOfferRequest) { + + Boolean sys_approval_flow = "1".equals(systemParamConfigService.selectValueByParamKey("sys_approval_flow")); + purInquiryOfferRequest.setSysApprovalFlow(sys_approval_flow); + List purInquiryOfferEntityResponses = purInquiryOfferService.queryPageList(purInquiryOfferRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(purInquiryOfferEntityResponses); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(purInquiryOfferEntityResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + + /** + * 新增询价业务 + */ + @PostMapping("/purchase/addPurInquiryOfferItem/add") + public BaseResponse add() { + Long userId = customerService.getUserId(); + PurInquiryOfferEntity purInquiryOfferEntity = new PurInquiryOfferEntity(); + Date date = new Date(); + purInquiryOfferEntity.setCreateUser(userId + ""); + purInquiryOfferEntity.setCreateTime(date); + purInquiryOfferEntity.setUpdateTime(date); + purInquiryOfferEntity.setUpdateUser(userId + ""); + purInquiryOfferEntity.setPageType(1); + purInquiryOfferService.insert(purInquiryOfferEntity); + Long id = purInquiryOfferEntity.getId(); + return ResultVOUtils.success(id); + } + + /** + * 添加产品到合同里面 + */ + @PostMapping("/purchase/purInquiryOffer/addPurInquiryOfferItem") + public BaseResponse addPurInquiryOfferItem(@RequestBody AddPurInquiryOfferItemRequest addPurInquiryOfferItemRequest) { + int falg = purInquiryOfferItemService.insert(addPurInquiryOfferItemRequest); + if (falg > 0) { + return ResultVOUtils.success("添加成功"); + } else { + return ResultVOUtils.success("添加失败"); + } + } + + /** + * 查询询价单详情列表 + * + * @param purContractDetailRequest + * @return + */ + @GetMapping("/purchase/purInquiryOffer/list/detail") + public BaseResponse getDetailList(PurContractDetailRequest purContractDetailRequest) { + List page = purInquiryOfferItemService.queryPageList(purContractDetailRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(page); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(page); + return ResultVOUtils.success(pageSimpleResponse); + } + /** + * 查询询价单详情列表 + * + * @param purContractDetailRequest + * @return + */ + @GetMapping("/purchase/purInquiryOffer/list/itemDetail") + public BaseResponse getItemDetailList(PurContractDetailRequest purContractDetailRequest) { + List page = purInquiryOfferItemDetailService.queryPageList(purContractDetailRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(page); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(page); + return ResultVOUtils.success(pageSimpleResponse); + } + + + /** + * 草稿保存 + */ + @PostMapping("/purchase/purInquiryOffer/postOrder") + public BaseResponse postOrder(@RequestBody PostPurInquiryOfferRequest postPurInquiryOfferRequest) { + + Long userId = customerService.getUserId(); + PurInquiryOfferEntity purInquiryOfferEntity = postPurInquiryOfferRequest.getPurInquiryOfferEntity(); + + Date date = new Date(); + purInquiryOfferEntity.setUpdateTime(date); + purInquiryOfferEntity.setUpdateUser(userId + ""); + purInquiryOfferEntity.setStatus(postPurInquiryOfferRequest.getEditStatus()); //状态 + + Integer editStatus = postPurInquiryOfferRequest.getEditStatus(); + + String billNo = purInquiryOfferEntity.getBillNo(); + if (StringUtil.isEmpty(billNo)) { + billNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean("XJ", "yyyyMMdd")); + purInquiryOfferEntity.setBillNo(billNo); + } + + Boolean sys_approval_flow = "1".equals(systemParamConfigService.selectValueByParamKey("sys_approval_flow")); + if (editStatus == 2 && sys_approval_flow){//提交审核 + String approvalFlowId = sysApprovalFlowService.getApprovalFlowId(); + purInquiryOfferEntity.setApprovalFlowId(approvalFlowId); + sysApprovalFlowService.generateFlow(approvalFlowId,purInquiryOfferEntity.getBillNo(),type_xjbj); + } + + if (purInquiryOfferEntity.getId() == null) { + purInquiryOfferEntity.setCreateTime(date); + purInquiryOfferEntity.setCreateUser(userId + ""); + purInquiryOfferService.save(purInquiryOfferEntity); + } else { + purInquiryOfferService.updateById(purInquiryOfferEntity); + } + + //更新明细详情表 + purInquiryOfferItemDetailService.updateItemDetail(purInquiryOfferEntity); + + return ResultVOUtils.success("提交成功!"); + } + + /** + * 修改询价明细 + */ + @PostMapping("/purchase/purInquiryOffer/updateItem") + public BaseResponse updateItem(@RequestBody PurInquiryOfferItemEntity purInquiryOfferItemEntity) { + purInquiryOfferItemService.updateById(purInquiryOfferItemEntity); + return ResultVOUtils.success("修改成功"); + } + + + /** + * 删除询价明细 + * + * @param ids 主键串 + */ + @DeleteMapping("/purchase/purInquiryOffer/item/{ids}") + public BaseResponse detailRemove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + + purInquiryOfferItemService.deleteByIds(Arrays.asList(ids)); + return ResultVOUtils.success("删除成功"); + } + + + /** + * 发起审批 + */ + @PostMapping("/purchase/purInquiryOffer/submitApproval") + public BaseResponse submitApproval(@RequestBody PurInquiryOfferEntity purInquiryOfferEntity) { + + Long userId = customerService.getUserId(); + Date date = new Date(); + purInquiryOfferEntity.setUpdateTime(date); + purInquiryOfferEntity.setUpdateUser(userId + ""); + purInquiryOfferEntity.setStatus(2); //状态 + + Boolean sys_approval_flow = "1".equals(systemParamConfigService.selectValueByParamKey("sys_approval_flow")); + if (sys_approval_flow){//提交审核 + String approvalFlowId = sysApprovalFlowService.getApprovalFlowId(); + purInquiryOfferEntity.setApprovalFlowId(approvalFlowId); + sysApprovalFlowService.generateFlow(approvalFlowId,purInquiryOfferEntity.getBillNo(),type_xjbj); + } + purInquiryOfferService.updateById(purInquiryOfferEntity); + + return ResultVOUtils.success("提交成功!"); + } + + +} diff --git a/src/main/java/com/glxp/api/dao/purchase/PurApplyArgumentMapper.java b/src/main/java/com/glxp/api/dao/purchase/PurApplyArgumentMapper.java new file mode 100644 index 000000000..86e069797 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/purchase/PurApplyArgumentMapper.java @@ -0,0 +1,9 @@ +package com.glxp.api.dao.purchase; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.purchase.PurApplyArgument; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface PurApplyArgumentMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/dao/purchase/PurContractMapper.java b/src/main/java/com/glxp/api/dao/purchase/PurContractMapper.java index 9dc509ae6..f734c141f 100644 --- a/src/main/java/com/glxp/api/dao/purchase/PurContractMapper.java +++ b/src/main/java/com/glxp/api/dao/purchase/PurContractMapper.java @@ -7,9 +7,11 @@ import com.glxp.api.req.purchase.PurContractRequest; import com.glxp.api.res.purchase.PurContractEntityResponse; import org.apache.ibatis.annotations.Param; +import java.util.List; + public interface PurContractMapper extends BaseMapper { @Override int insert(PurContractEntity purContractEntity); - Page selectPage(Page page, @Param("purContractRequest") PurContractRequest purContractRequest); + List selectPage(@Param("purContractRequest") PurContractRequest purContractRequest); } diff --git a/src/main/java/com/glxp/api/dao/purchase/PurInquiryItemDetailMapper.java b/src/main/java/com/glxp/api/dao/purchase/PurInquiryItemDetailMapper.java new file mode 100644 index 000000000..b0c727120 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/purchase/PurInquiryItemDetailMapper.java @@ -0,0 +1,17 @@ +package com.glxp.api.dao.purchase; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.purchase.PurInquiryItemDetailEntity; +import com.glxp.api.req.purchase.PurContractDetailRequest; +import com.glxp.api.req.purchase.PurInquiryRequest; +import com.glxp.api.res.purchase.PurInquiryEntityResponse; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface PurInquiryItemDetailMapper extends BaseMapper { + + List selectPage(@Param("purContractDetailRequest") PurContractDetailRequest purContractDetailRequest); +} diff --git a/src/main/java/com/glxp/api/dao/purchase/PurInquiryItemMapper.java b/src/main/java/com/glxp/api/dao/purchase/PurInquiryItemMapper.java new file mode 100644 index 000000000..68f570e8a --- /dev/null +++ b/src/main/java/com/glxp/api/dao/purchase/PurInquiryItemMapper.java @@ -0,0 +1,16 @@ +package com.glxp.api.dao.purchase; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.purchase.PurInquiryItemDetailEntity; +import com.glxp.api.entity.purchase.PurInquiryItemEntity; +import com.glxp.api.req.purchase.PurContractDetailRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface PurInquiryItemMapper extends BaseMapper { + + List selectPage(@Param("purContractDetailRequest") PurContractDetailRequest purContractDetailRequest); +} diff --git a/src/main/java/com/glxp/api/dao/purchase/PurInquiryMapper.java b/src/main/java/com/glxp/api/dao/purchase/PurInquiryMapper.java new file mode 100644 index 000000000..9eafb7fba --- /dev/null +++ b/src/main/java/com/glxp/api/dao/purchase/PurInquiryMapper.java @@ -0,0 +1,21 @@ +package com.glxp.api.dao.purchase; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.glxp.api.entity.purchase.PurContractEntity; +import com.glxp.api.entity.purchase.PurInquiryEntity; +import com.glxp.api.req.purchase.PurInquiryRequest; +import com.glxp.api.res.purchase.PurInquiryEntityResponse; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface PurInquiryMapper extends BaseMapper { + + @Override + int insert(PurInquiryEntity purInquiryEntity); + + List selectPage(@Param("purInquiryRequest") PurInquiryRequest purInquiryRequest); +} diff --git a/src/main/java/com/glxp/api/dao/purchase/PurInquiryOfferItemDetailMapper.java b/src/main/java/com/glxp/api/dao/purchase/PurInquiryOfferItemDetailMapper.java new file mode 100644 index 000000000..0d7bbaf66 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/purchase/PurInquiryOfferItemDetailMapper.java @@ -0,0 +1,16 @@ +package com.glxp.api.dao.purchase; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.purchase.PurInquiryItemDetailEntity; +import com.glxp.api.entity.purchase.PurInquiryOfferItemDetailEntity; +import com.glxp.api.req.purchase.PurContractDetailRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface PurInquiryOfferItemDetailMapper extends BaseMapper { + + List selectPage(@Param("purContractDetailRequest") PurContractDetailRequest purContractDetailRequest); +} diff --git a/src/main/java/com/glxp/api/dao/purchase/PurInquiryOfferItemMapper.java b/src/main/java/com/glxp/api/dao/purchase/PurInquiryOfferItemMapper.java new file mode 100644 index 000000000..ae96d81e7 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/purchase/PurInquiryOfferItemMapper.java @@ -0,0 +1,16 @@ +package com.glxp.api.dao.purchase; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.purchase.PurInquiryItemEntity; +import com.glxp.api.entity.purchase.PurInquiryOfferItemEntity; +import com.glxp.api.req.purchase.PurContractDetailRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface PurInquiryOfferItemMapper extends BaseMapper { + + List selectPage(@Param("purContractDetailRequest") PurContractDetailRequest purContractDetailRequest); +} diff --git a/src/main/java/com/glxp/api/dao/purchase/PurInquiryOfferMapper.java b/src/main/java/com/glxp/api/dao/purchase/PurInquiryOfferMapper.java new file mode 100644 index 000000000..971081b83 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/purchase/PurInquiryOfferMapper.java @@ -0,0 +1,22 @@ +package com.glxp.api.dao.purchase; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.purchase.PurInquiryEntity; +import com.glxp.api.entity.purchase.PurInquiryOfferEntity; +import com.glxp.api.req.purchase.PurInquiryOfferRequest; +import com.glxp.api.req.purchase.PurInquiryRequest; +import com.glxp.api.res.purchase.PurInquiryEntityResponse; +import com.glxp.api.res.purchase.PurInquiryOfferEntityResponse; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface PurInquiryOfferMapper extends BaseMapper { + + @Override + int insert(PurInquiryOfferEntity purInquiryOfferEntity); + + List selectPage(@Param("purInquiryOfferRequest") PurInquiryOfferRequest purInquiryOfferRequest); +} diff --git a/src/main/java/com/glxp/api/entity/dev/DeviceCheckEntity.java b/src/main/java/com/glxp/api/entity/dev/DeviceCheckEntity.java index e2894c0c1..ed7a5ef3c 100644 --- a/src/main/java/com/glxp/api/entity/dev/DeviceCheckEntity.java +++ b/src/main/java/com/glxp/api/entity/dev/DeviceCheckEntity.java @@ -32,6 +32,12 @@ public class DeviceCheckEntity { @TableId(value = "taskId") private Long taskId; + /** + * 巡检任务单号 + */ + @TableField(value = "taskBillNo") + private String taskBillNo; + /** * 计划id */ diff --git a/src/main/java/com/glxp/api/entity/dev/DevicePlanEntity.java b/src/main/java/com/glxp/api/entity/dev/DevicePlanEntity.java index f6dee2f85..7dd4fbbc6 100644 --- a/src/main/java/com/glxp/api/entity/dev/DevicePlanEntity.java +++ b/src/main/java/com/glxp/api/entity/dev/DevicePlanEntity.java @@ -33,6 +33,12 @@ public class DevicePlanEntity { @TableId(value = "planId") private Long planId; + /** + * 计划单号 + */ + @TableField(value = "planBillNo") + private String planBillNo; + /** * 计划名称 */ diff --git a/src/main/java/com/glxp/api/entity/dev/DeviceRepairApplyEntity.java b/src/main/java/com/glxp/api/entity/dev/DeviceRepairApplyEntity.java index 32242278d..65791031a 100644 --- a/src/main/java/com/glxp/api/entity/dev/DeviceRepairApplyEntity.java +++ b/src/main/java/com/glxp/api/entity/dev/DeviceRepairApplyEntity.java @@ -28,6 +28,12 @@ public class DeviceRepairApplyEntity { @TableId(value = "id") private Long id; + /** + * 报修单号 + */ + @TableField(value = "repairApplyBillNo") + private String repairApplyBillNo; + /** * 状态 待受理,受理中,维修中,完成 */ diff --git a/src/main/java/com/glxp/api/entity/dev/DeviceRepairEntity.java b/src/main/java/com/glxp/api/entity/dev/DeviceRepairEntity.java index 813ad8ced..9ca2d7da4 100644 --- a/src/main/java/com/glxp/api/entity/dev/DeviceRepairEntity.java +++ b/src/main/java/com/glxp/api/entity/dev/DeviceRepairEntity.java @@ -32,6 +32,12 @@ public class DeviceRepairEntity { @TableId(value = "id") private Long id; + /** + * 维修单号 + */ + @TableField(value = "repairBillNo") + private String repairBillNo; + /** * 维修申请id */ diff --git a/src/main/java/com/glxp/api/entity/dev/DeviceUpkeepEntity.java b/src/main/java/com/glxp/api/entity/dev/DeviceUpkeepEntity.java index e42f6d70d..43cbd0a4c 100644 --- a/src/main/java/com/glxp/api/entity/dev/DeviceUpkeepEntity.java +++ b/src/main/java/com/glxp/api/entity/dev/DeviceUpkeepEntity.java @@ -29,6 +29,12 @@ public class DeviceUpkeepEntity { @TableId(value = "taskId") private Long taskId; + /** + * 保养任务单号 + */ + @TableField(value = "taskBillNo") + private String taskBillNo; + /** * 计划id */ diff --git a/src/main/java/com/glxp/api/entity/purchase/PurApplyArgument.java b/src/main/java/com/glxp/api/entity/purchase/PurApplyArgument.java new file mode 100644 index 000000000..5f2a036b2 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/purchase/PurApplyArgument.java @@ -0,0 +1,190 @@ +package com.glxp.api.entity.purchase; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +@ApiModel(description="udi_wms_ct.pur_apply_argument") +@Data +@TableName(value = "udi_wms_ct.pur_apply_argument") +public class PurApplyArgument implements Serializable { + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value="") + private Long id; + + /** + * 订单外键 + */ + @TableField(value = "orderIdFk") + @ApiModelProperty(value="订单外键") + private String orderIdFk; + + /** + * 订单详情外键 + */ + @TableField(value = "orderDetailIdFk") + @ApiModelProperty(value="订单详情外键") + private String orderDetailIdFk; + + /** + * 申领单据号 + */ + @TableField(value = "applyBillNo") + @ApiModelProperty(value="申领单据号") + private String applyBillNo; + + /** + * 当前仓库 + */ + @TableField(value = "invCode") + @ApiModelProperty(value="当前仓库") + private String invCode; + + /** + * 所属部门 + */ + @TableField(value = "deptCode") + @ApiModelProperty(value="所属部门") + private String deptCode; + + /** + * 所属部门名字 + */ + @TableField(value = "deptName") + @ApiModelProperty(value="所属部门名字") + private String deptName; + + /** + * 创建人 + */ + @TableField(value = "`createUser`") + @ApiModelProperty(value="创建人") + private String createUser; + + /** + * 创建人 + */ + @TableField(value = "`createName`") + @ApiModelProperty(value="创建人") + private String createName; + + /** + * 创建时间 + */ + @TableField(value = "createTime") + @ApiModelProperty(value="创建时间") + private Date createTime; + + /** + * 更新人 + */ + @TableField(value = "updateUser") + @ApiModelProperty(value="更新人") + private String updateUser; + + /** + * 更新时间 + */ + @TableField(value = "updateTime") + @ApiModelProperty(value="更新时间") + private Date updateTime; + + /** + * 产品ID + */ + @TableField(value = "productId") + @ApiModelProperty(value="产品ID") + private Long productId; + + /** + * 产品名称 + */ + @TableField(value = "productName") + @ApiModelProperty(value="产品名称") + private String productName; + + /** + * 数量 + */ + @TableField(value = "`count`") + @ApiModelProperty(value="数量") + private Integer count; + + /** + * 单位 + */ + @TableField(value = "measname") + @ApiModelProperty(value="单位") + private String measname; + + /** + * 配置要求及主要技术参数 + */ + @TableField(value = "mainParam") + @ApiModelProperty(value="配置要求及主要技术参数") + private String mainParam; + + /** + * 申请理由 + */ + @TableField(value = "applicationReason") + @ApiModelProperty(value="申请理由") + private String applicationReason; + + /** + * 效益预测 + */ + @TableField(value = "benefitPrediction") + @ApiModelProperty(value="效益预测") + private String benefitPrediction; + + /** + * 配套条件 + */ + @TableField(value = "supportCondition") + @ApiModelProperty(value="配套条件") + private String supportCondition; + + /** + * 使用科室人员配备情况 + */ + @TableField(value = "supportPerson") + @ApiModelProperty(value="使用科室人员配备情况") + private String supportPerson; + + /** + * 维修技术力量的保证或维修途径 + */ + @TableField(value = "maintenanceForce") + @ApiModelProperty(value="维修技术力量的保证或维修途径") + private String maintenanceForce; + + /** + * 资金来源 + */ + @TableField(value = "fundSource") + @ApiModelProperty(value="资金来源") + private String fundSource; + + /** + * 可行性论证 + */ + @TableField(value = "feasibility") + @ApiModelProperty(value="可行性论证") + private String feasibility; + + /** + * 论证状态 + */ + @TableField(value = "argStatus") + @ApiModelProperty(value="论证状态") + private Integer argStatus; + + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/com/glxp/api/entity/purchase/PurApplyDetailEntity.java b/src/main/java/com/glxp/api/entity/purchase/PurApplyDetailEntity.java index ef9ca7844..15884b4f5 100644 --- a/src/main/java/com/glxp/api/entity/purchase/PurApplyDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/purchase/PurApplyDetailEntity.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @@ -54,4 +55,11 @@ public class PurApplyDetailEntity { @TableField(value = "destinyId") private String destinyId; + /** + * 单位 + */ + @TableField(value = "measname") + @ApiModelProperty(value="单位") + private String measname; + } diff --git a/src/main/java/com/glxp/api/entity/purchase/PurInquiryEntity.java b/src/main/java/com/glxp/api/entity/purchase/PurInquiryEntity.java new file mode 100644 index 000000000..a4c38c594 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/purchase/PurInquiryEntity.java @@ -0,0 +1,221 @@ +package com.glxp.api.entity.purchase; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.util.Date; +import lombok.Data; +import org.springframework.data.annotation.Transient; + +/** + * 询价业务 + */ +@ApiModel(description="询价业务") +@Data +@TableName(value = "pur_inquiry") +public class PurInquiryEntity implements Serializable { + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value="") + private Long id; + + /** + * 询价单据号 + */ + @TableField(value = "billNo") + @ApiModelProperty(value="询价单据号") + private String billNo; + + /** + * 询价发起日期 + */ + @TableField(value = "billDate") + @ApiModelProperty(value="询价发起时间") + private Date billDate; + + /** + * 状态(1.草稿,2.未审核,3.已审核,4.已拒绝) + */ + @TableField(value = "`status`") + @ApiModelProperty(value="状态(1.草稿,2.未审核,3.已审核,4.已拒绝)") + private Integer status; + + @TableField(value = "billType") + @ApiModelProperty(value="") + private String billType; + + /** + * 询价说明 + */ + @TableField(value = "remark") + @ApiModelProperty(value="询价说明") + private String remark; + + /** + * 当前仓库 + */ + @TableField(value = "invCode") + @ApiModelProperty(value="当前仓库") + private String invCode; + + /** + * 所属部门 + */ + @TableField(value = "deptCode") + @ApiModelProperty(value="所属部门") + private String deptCode; + + /** + * 创建人 + */ + @TableField(value = "`createUser`") + @ApiModelProperty(value="创建人") + private String createUser; + + /** + * 创建时间 + */ + @TableField(value = "createTime") + @ApiModelProperty(value="创建时间") + private Date createTime; + + /** + * 审核人 + */ + @TableField(value = "auditUser") + @ApiModelProperty(value="审核人") + private String auditUser; + + /** + * 审核时间 + */ + @TableField(value = "auditTime") + @ApiModelProperty(value="审核时间") + private Date auditTime; + + /** + * 更新人 + */ + @TableField(value = "updateUser") + @ApiModelProperty(value="更新人") + private String updateUser; + + /** + * 更新时间 + */ + @TableField(value = "updateTime") + @ApiModelProperty(value="更新时间") + private Date updateTime; + + /** + * 审核说明 + */ + @TableField(value = "auditRemark") + @ApiModelProperty(value="审核说明") + private String auditRemark; + + /** + * 目标仓库 + */ + @TableField(value = "targetInvCode") + @ApiModelProperty(value="目标仓库") + private String targetInvCode; + + /** + * 目标部门 + */ + @TableField(value = "targetDeptCode") + @ApiModelProperty(value="目标部门") + private String targetDeptCode; + + /** + * 生成采购计划单据号 + */ + @TableField(value = "planBillNo") + @ApiModelProperty(value="生成采购计划单据号") + private String planBillNo; + + /** + * 是否已生成采购计划 + */ + @TableField(value = "generatePlan") + @ApiModelProperty(value="是否已生成采购计划") + private Integer generatePlan; + + /** + * 紧急情况 + */ + @TableField(value = "emergency") + @ApiModelProperty(value="紧急情况") + private Integer emergency; + + /** + * 期望到货时间 + */ + @TableField(value = "arrivalTime") + @ApiModelProperty(value="期望到货时间") + private Date arrivalTime; + + /** + * 审批表主键(关联审批流程主表) + */ + @TableField(value = "approvalFlowId") + @ApiModelProperty(value="审批表主键(关联审批流程主表)") + private String approvalFlowId; + + /** + * 1:业务管理;2:设备管理 + */ + @TableField(value = "pageType") + @ApiModelProperty(value="1:业务管理;2:设备管理") + private Integer pageType; + + /** + * 询价截止时间 + */ + @TableField(value = "validUntil") + @ApiModelProperty(value="询价截止时间") + private Date validUntil; + + private static final long serialVersionUID = 1L; + + @TableField(value = "supIds") + @ApiModelProperty(value="供应商ids") + private String supIds; + + // 临时存储实际的字符串数组(不会被JPA持久化) + @TableField(exist = false) + private String[] fromCorp; + + // Getter和Setter用于处理JSON转换 + public String getSupIds() { + try { + return new ObjectMapper().writeValueAsString(fromCorp); + } catch (Exception e) { + // 处理异常 + return null; + } + } + + public void setSupIds(String json) { + try { + this.fromCorp = new ObjectMapper().readValue(json, String[].class); + } catch (Exception e) { + // 处理异常 + this.fromCorp = null; + } + } + + // 提供对字符串数组的getter和setter + public String[] getFromCorp() { + return fromCorp; + } + + public void setFromCorp(String[] fromCorp) { + this.fromCorp = fromCorp; + } +} diff --git a/src/main/java/com/glxp/api/entity/purchase/PurInquiryItemDetailEntity.java b/src/main/java/com/glxp/api/entity/purchase/PurInquiryItemDetailEntity.java new file mode 100644 index 000000000..d8853a92f --- /dev/null +++ b/src/main/java/com/glxp/api/entity/purchase/PurInquiryItemDetailEntity.java @@ -0,0 +1,133 @@ +package com.glxp.api.entity.purchase; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.math.BigDecimal; +import lombok.Data; + +/** + * 询价业务明细详情表 + */ +@ApiModel(description="询价业务明细详情表") +@Data +@TableName(value = "pur_inquiry_item_detail") +public class PurInquiryItemDetailEntity implements Serializable { + /** + * ID + */ + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value="ID") + private Long id; + + /** + * 关联询价编号 + */ + @TableField(value = "orderIdFk") + @ApiModelProperty(value="关联询价编号") + private String orderIdFk; + + /** + * 关联询明细价id + */ + @TableField(value = "orderItemIdFk") + @ApiModelProperty(value="关联询明细价id") + private String orderItemIdFk; + + /** + * 供应商报价第几次 + */ + @TableField(value = "supNumber") + @ApiModelProperty(value="供应商报价第几次") + private Integer supNumber; + + /** + * 供应商id + */ + @TableField(value = "supId") + @ApiModelProperty(value="供应商id") + private Long supId; + + /** + * 供应商名称 + */ + @TableField(value = "supName") + @ApiModelProperty(value="供应商名称") + private String supName; + + /** + * 供应商联系人姓名 + */ + @TableField(value = "supPerson") + @ApiModelProperty(value="供应商联系人姓名") + private String supPerson; + + /** + * 供应商联系人电话 + */ + @TableField(value = "supPhone") + @ApiModelProperty(value="供应商联系人电话") + private String supPhone; + + /** + * 供应商联系人电子邮件 + */ + @TableField(value = "supEmail") + @ApiModelProperty(value="供应商联系人电子邮件") + private String supEmail; + + /** + * 供应商附件的路径或URL + */ + @TableField(value = "supFilePath") + @ApiModelProperty(value="供应商附件的路径或URL") + private String supFilePath; + + /** + * 供应商报价数量 + */ + @TableField(value = "supCount") + @ApiModelProperty(value="供应商报价数量") + private Integer supCount; + + /** + * 供应商报价单价 + */ + @TableField(value = "supPrice") + @ApiModelProperty(value="供应商报价单价") + private BigDecimal supPrice; + + /** + * 供应商报价总价 + */ + @TableField(value = "supTotalPrice") + @ApiModelProperty(value="供应商报价总价") + private BigDecimal supTotalPrice; + + /** + * 说明 + */ + @TableField(value = "supRemark") + @ApiModelProperty(value="说明") + private String supRemark; + + /** + * 是否符合 1 符合 ;0 不符合 + */ + @TableField(value = "accord") + @ApiModelProperty(value="是否符合 1 符合 ;0 不符合") + private Integer accord; + + /** + * 是否采纳 1 采纳 ;0 不采纳 + */ + @TableField(value = "adopt") + @ApiModelProperty(value="是否采纳 1 采纳 ;0 不采纳") + private Integer adopt; + + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/com/glxp/api/entity/purchase/PurInquiryItemEntity.java b/src/main/java/com/glxp/api/entity/purchase/PurInquiryItemEntity.java new file mode 100644 index 000000000..81a990cc1 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/purchase/PurInquiryItemEntity.java @@ -0,0 +1,155 @@ +package com.glxp.api.entity.purchase; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import lombok.Data; + +/** + * 询价业务明细表 + */ +@ApiModel(description="询价业务明细表") +@Data +@TableName(value = "pur_inquiry_item") +public class PurInquiryItemEntity implements Serializable { + /** + * ID + */ + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value="ID") + private Long id; + + /** + * 关联询价编号 + */ + @TableField(value = "orderIdFk") + @ApiModelProperty(value="关联询价编号") + private String orderIdFk; + + /** + * 询价数量 + */ + @TableField(value = "`count`") + @ApiModelProperty(value="询价数量") + private Integer count; + + /** + * 期望单价 + */ + @TableField(value = "price") + @ApiModelProperty(value="期望单价") + private BigDecimal price; + + /** + * 期望总价 + */ + @TableField(value = "totalPrice") + @ApiModelProperty(value="期望总价") + private BigDecimal totalPrice; + + /** + * 询价附件的路径或URL(如产品规格书、图纸等) + */ + @TableField(value = "attachmentPath") + @ApiModelProperty(value="询价附件的路径或URL(如产品规格书、图纸等)") + private String attachmentPath; + + /** + * 说明 + */ + @TableField(value = "remark") + @ApiModelProperty(value="说明") + private String remark; + + /** + * 产品编码 + */ + @TableField(value = "productId") + @ApiModelProperty(value="产品编码") + private Long productId; + + /** + * 产品唯一id uniqueId + */ + @TableField(value = "productUniqueId") + @ApiModelProperty(value="产品唯一id uniqueId") + private String productUniqueId; + + /** + * 最小销售标识 + */ + @TableField(value = "nameCode") + @ApiModelProperty(value="最小销售标识") + private String nameCode; + + /** + * 批次号 + */ + @TableField(value = "batchNo") + @ApiModelProperty(value="批次号") + private String batchNo; + + /** + * 产品名称 + */ + @TableField(value = "productName") + @ApiModelProperty(value="产品名称") + private String productName; + + /** + * 生产厂家 + */ + @TableField(value = "productCompany") + @ApiModelProperty(value="生产厂家") + private String productCompany; + + /** + * 生产日期 + */ + @TableField(value = "produceDate") + @ApiModelProperty(value="生产日期") + private Date produceDate; + + /** + * 过期时间 + */ + @TableField(value = "expireDate") + @ApiModelProperty(value="过期时间") + private Date expireDate; + + /** + * 注册证/备案号 + */ + @TableField(value = "zczbhhzbapzbh") + @ApiModelProperty(value="注册证/备案号") + private String zczbhhzbapzbh; + + /** + * 规格型号 + */ + @TableField(value = "ggxh") + @ApiModelProperty(value="规格型号") + private String ggxh; + + /** + * 单位 + */ + @TableField(value = "measname") + @ApiModelProperty(value="单位") + private String measname; + + /** + * 包装级别 + */ + @TableField(value = "packRatio") + @ApiModelProperty(value="包装级别") + private String packRatio; + + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/com/glxp/api/entity/purchase/PurInquiryOfferEntity.java b/src/main/java/com/glxp/api/entity/purchase/PurInquiryOfferEntity.java new file mode 100644 index 000000000..8072d95a5 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/purchase/PurInquiryOfferEntity.java @@ -0,0 +1,221 @@ +package com.glxp.api.entity.purchase; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 询价报价业务 + */ +@ApiModel(description="询价报价业务") +@Data +@TableName(value = "pur_inquiry_offer") +public class PurInquiryOfferEntity implements Serializable { + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value="") + private Long id; + + /** + * 询价单据号 + */ + @TableField(value = "billNo") + @ApiModelProperty(value="询价单据号") + private String billNo; + + /** + * 询价发起日期 + */ + @TableField(value = "billDate") + @ApiModelProperty(value="询价发起时间") + private Date billDate; + + /** + * 状态(1.草稿,2.未审核,3.已审核,4.已拒绝) + */ + @TableField(value = "`status`") + @ApiModelProperty(value="状态(1.草稿,2.未审核,3.已审核,4.已拒绝)") + private Integer status; + + @TableField(value = "billType") + @ApiModelProperty(value="") + private String billType; + + /** + * 询价说明 + */ + @TableField(value = "remark") + @ApiModelProperty(value="询价说明") + private String remark; + + /** + * 当前仓库 + */ + @TableField(value = "invCode") + @ApiModelProperty(value="当前仓库") + private String invCode; + + /** + * 所属部门 + */ + @TableField(value = "deptCode") + @ApiModelProperty(value="所属部门") + private String deptCode; + + /** + * 创建人 + */ + @TableField(value = "`createUser`") + @ApiModelProperty(value="创建人") + private String createUser; + + /** + * 创建时间 + */ + @TableField(value = "createTime") + @ApiModelProperty(value="创建时间") + private Date createTime; + + /** + * 审核人 + */ + @TableField(value = "auditUser") + @ApiModelProperty(value="审核人") + private String auditUser; + + /** + * 审核时间 + */ + @TableField(value = "auditTime") + @ApiModelProperty(value="审核时间") + private Date auditTime; + + /** + * 更新人 + */ + @TableField(value = "updateUser") + @ApiModelProperty(value="更新人") + private String updateUser; + + /** + * 更新时间 + */ + @TableField(value = "updateTime") + @ApiModelProperty(value="更新时间") + private Date updateTime; + + /** + * 审核说明 + */ + @TableField(value = "auditRemark") + @ApiModelProperty(value="审核说明") + private String auditRemark; + + /** + * 目标仓库 + */ + @TableField(value = "targetInvCode") + @ApiModelProperty(value="目标仓库") + private String targetInvCode; + + /** + * 目标部门 + */ + @TableField(value = "targetDeptCode") + @ApiModelProperty(value="目标部门") + private String targetDeptCode; + + /** + * 生成采购计划单据号 + */ + @TableField(value = "planBillNo") + @ApiModelProperty(value="生成采购计划单据号") + private String planBillNo; + + /** + * 是否已生成采购计划 + */ + @TableField(value = "generatePlan") + @ApiModelProperty(value="是否已生成采购计划") + private Integer generatePlan; + + /** + * 紧急情况 + */ + @TableField(value = "emergency") + @ApiModelProperty(value="紧急情况") + private Integer emergency; + + /** + * 期望到货时间 + */ + @TableField(value = "arrivalTime") + @ApiModelProperty(value="期望到货时间") + private Date arrivalTime; + + /** + * 审批表主键(关联审批流程主表) + */ + @TableField(value = "approvalFlowId") + @ApiModelProperty(value="审批表主键(关联审批流程主表)") + private String approvalFlowId; + + /** + * 1:业务管理;2:设备管理 + */ + @TableField(value = "pageType") + @ApiModelProperty(value="1:业务管理;2:设备管理") + private Integer pageType; + + /** + * 询价截止时间 + */ + @TableField(value = "validUntil") + @ApiModelProperty(value="询价截止时间") + private Date validUntil; + + private static final long serialVersionUID = 1L; + + @TableField(value = "supIds") + @ApiModelProperty(value="供应商ids") + private String supIds; + + // 临时存储实际的字符串数组(不会被JPA持久化) + @TableField(exist = false) + private String[] fromCorp; + + // Getter和Setter用于处理JSON转换 + public String getSupIds() { + try { + return new ObjectMapper().writeValueAsString(fromCorp); + } catch (Exception e) { + // 处理异常 + return null; + } + } + + public void setSupIds(String json) { + try { + this.fromCorp = new ObjectMapper().readValue(json, String[].class); + } catch (Exception e) { + // 处理异常 + this.fromCorp = null; + } + } + + // 提供对字符串数组的getter和setter + public String[] getFromCorp() { + return fromCorp; + } + + public void setFromCorp(String[] fromCorp) { + this.fromCorp = fromCorp; + } +} diff --git a/src/main/java/com/glxp/api/entity/purchase/PurInquiryOfferItemDetailEntity.java b/src/main/java/com/glxp/api/entity/purchase/PurInquiryOfferItemDetailEntity.java new file mode 100644 index 000000000..bb8324ff2 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/purchase/PurInquiryOfferItemDetailEntity.java @@ -0,0 +1,134 @@ +package com.glxp.api.entity.purchase; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 询价业务明细详情表 + */ +@ApiModel(description="询价报价业务明细详情表") +@Data +@TableName(value = "pur_inquiry_offer_item_detail") +public class PurInquiryOfferItemDetailEntity implements Serializable { + /** + * ID + */ + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value="ID") + private Long id; + + /** + * 关联询价编号 + */ + @TableField(value = "orderIdFk") + @ApiModelProperty(value="关联询价编号") + private String orderIdFk; + + /** + * 关联询明细价id + */ + @TableField(value = "orderItemIdFk") + @ApiModelProperty(value="关联询明细价id") + private String orderItemIdFk; + + /** + * 供应商报价第几次 + */ + @TableField(value = "supNumber") + @ApiModelProperty(value="供应商报价第几次") + private Integer supNumber; + + /** + * 供应商id + */ + @TableField(value = "supId") + @ApiModelProperty(value="供应商id") + private Long supId; + + /** + * 供应商名称 + */ + @TableField(value = "supName") + @ApiModelProperty(value="供应商名称") + private String supName; + + /** + * 供应商联系人姓名 + */ + @TableField(value = "supPerson") + @ApiModelProperty(value="供应商联系人姓名") + private String supPerson; + + /** + * 供应商联系人电话 + */ + @TableField(value = "supPhone") + @ApiModelProperty(value="供应商联系人电话") + private String supPhone; + + /** + * 供应商联系人电子邮件 + */ + @TableField(value = "supEmail") + @ApiModelProperty(value="供应商联系人电子邮件") + private String supEmail; + + /** + * 供应商附件的路径或URL + */ + @TableField(value = "supFilePath") + @ApiModelProperty(value="供应商附件的路径或URL") + private String supFilePath; + + /** + * 供应商报价数量 + */ + @TableField(value = "supCount") + @ApiModelProperty(value="供应商报价数量") + private Integer supCount; + + /** + * 供应商报价单价 + */ + @TableField(value = "supPrice") + @ApiModelProperty(value="供应商报价单价") + private BigDecimal supPrice; + + /** + * 供应商报价总价 + */ + @TableField(value = "supTotalPrice") + @ApiModelProperty(value="供应商报价总价") + private BigDecimal supTotalPrice; + + /** + * 说明 + */ + @TableField(value = "supRemark") + @ApiModelProperty(value="说明") + private String supRemark; + + /** + * 是否符合 1 符合 ;0 不符合 + */ + @TableField(value = "accord") + @ApiModelProperty(value="是否符合 1 符合 ;0 不符合") + private Integer accord; + + /** + * 是否采纳 1 采纳 ;0 不采纳 + */ + @TableField(value = "adopt") + @ApiModelProperty(value="是否采纳 1 采纳 ;0 不采纳") + private Integer adopt; + + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/com/glxp/api/entity/purchase/PurInquiryOfferItemEntity.java b/src/main/java/com/glxp/api/entity/purchase/PurInquiryOfferItemEntity.java new file mode 100644 index 000000000..cb8c4e490 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/purchase/PurInquiryOfferItemEntity.java @@ -0,0 +1,156 @@ +package com.glxp.api.entity.purchase; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 询价业务明细表 + */ +@ApiModel(description="询价业务明细表") +@Data +@TableName(value = "pur_inquiry_offer_item") +public class PurInquiryOfferItemEntity implements Serializable { + /** + * ID + */ + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value="ID") + private Long id; + + /** + * 关联询价编号 + */ + @TableField(value = "orderIdFk") + @ApiModelProperty(value="关联询价编号") + private String orderIdFk; + + /** + * 询价数量 + */ + @TableField(value = "`count`") + @ApiModelProperty(value="询价数量") + private Integer count; + + /** + * 期望单价 + */ + @TableField(value = "price") + @ApiModelProperty(value="期望单价") + private BigDecimal price; + + /** + * 期望总价 + */ + @TableField(value = "totalPrice") + @ApiModelProperty(value="期望总价") + private BigDecimal totalPrice; + + /** + * 询价附件的路径或URL(如产品规格书、图纸等) + */ + @TableField(value = "attachmentPath") + @ApiModelProperty(value="询价附件的路径或URL(如产品规格书、图纸等)") + private String attachmentPath; + + /** + * 说明 + */ + @TableField(value = "remark") + @ApiModelProperty(value="说明") + private String remark; + + /** + * 产品编码 + */ + @TableField(value = "productId") + @ApiModelProperty(value="产品编码") + private Long productId; + + /** + * 产品唯一id uniqueId + */ + @TableField(value = "productUniqueId") + @ApiModelProperty(value="产品唯一id uniqueId") + private String productUniqueId; + + /** + * 最小销售标识 + */ + @TableField(value = "nameCode") + @ApiModelProperty(value="最小销售标识") + private String nameCode; + + /** + * 批次号 + */ + @TableField(value = "batchNo") + @ApiModelProperty(value="批次号") + private String batchNo; + + /** + * 产品名称 + */ + @TableField(value = "productName") + @ApiModelProperty(value="产品名称") + private String productName; + + /** + * 生产厂家 + */ + @TableField(value = "productCompany") + @ApiModelProperty(value="生产厂家") + private String productCompany; + + /** + * 生产日期 + */ + @TableField(value = "produceDate") + @ApiModelProperty(value="生产日期") + private Date produceDate; + + /** + * 过期时间 + */ + @TableField(value = "expireDate") + @ApiModelProperty(value="过期时间") + private Date expireDate; + + /** + * 注册证/备案号 + */ + @TableField(value = "zczbhhzbapzbh") + @ApiModelProperty(value="注册证/备案号") + private String zczbhhzbapzbh; + + /** + * 规格型号 + */ + @TableField(value = "ggxh") + @ApiModelProperty(value="规格型号") + private String ggxh; + + /** + * 单位 + */ + @TableField(value = "measname") + @ApiModelProperty(value="单位") + private String measname; + + /** + * 包装级别 + */ + @TableField(value = "packRatio") + @ApiModelProperty(value="包装级别") + private String packRatio; + + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/com/glxp/api/req/basic/BasicUnitMaintainFilterRequest.java b/src/main/java/com/glxp/api/req/basic/BasicUnitMaintainFilterRequest.java index 2b6ede471..d9b3db6e0 100644 --- a/src/main/java/com/glxp/api/req/basic/BasicUnitMaintainFilterRequest.java +++ b/src/main/java/com/glxp/api/req/basic/BasicUnitMaintainFilterRequest.java @@ -29,4 +29,6 @@ public class BasicUnitMaintainFilterRequest extends ListPageRequest { private List corpTypeList; private List corpTypeLists;//用来往来单位查询 ListthrCorpEntities; + + private List erpIds; } diff --git a/src/main/java/com/glxp/api/req/dev/DevicePlanParam.java b/src/main/java/com/glxp/api/req/dev/DevicePlanParam.java index ac12793b8..795fcdb13 100644 --- a/src/main/java/com/glxp/api/req/dev/DevicePlanParam.java +++ b/src/main/java/com/glxp/api/req/dev/DevicePlanParam.java @@ -1,11 +1,15 @@ package com.glxp.api.req.dev; +import com.glxp.api.constant.Constant; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.auth.DeptEntity; import com.glxp.api.entity.dev.DevicePlanEntity; import com.glxp.api.exception.JsonException; import com.glxp.api.service.auth.DeptService; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; import com.glxp.api.util.SnowflakeUtil; +import com.glxp.api.util.SpringUtils; import lombok.Data; import org.hibernate.validator.constraints.Length; @@ -83,6 +87,7 @@ public class DevicePlanParam { } public DevicePlanEntity getEntity(AuthAdmin user) { + GennerOrderUtils gennerOrderUtils = SpringUtils.getBean(GennerOrderUtils.class); boolean isUpdate = (planId != null); DevicePlanEntity build = DevicePlanEntity.builder() .planId(!isUpdate ? SnowflakeUtil.getId() : planId) @@ -96,7 +101,8 @@ public class DevicePlanParam { .type(type) .build(); if (!isUpdate) { - build.setCreateUserId(user.getId()).setCreateUserName(user.getEmployeeName()).setCreateTime(LocalDateTime.now()); + build.setCreateUserId(user.getId()).setCreateUserName(user.getEmployeeName()).setCreateTime(LocalDateTime.now()) + .setPlanBillNo(gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.DEV_DJH, "yyyyMMdd"))); } return build; } diff --git a/src/main/java/com/glxp/api/req/dev/DeviceRepairApplyAddParam.java b/src/main/java/com/glxp/api/req/dev/DeviceRepairApplyAddParam.java index 245093bbf..a0dd014c2 100644 --- a/src/main/java/com/glxp/api/req/dev/DeviceRepairApplyAddParam.java +++ b/src/main/java/com/glxp/api/req/dev/DeviceRepairApplyAddParam.java @@ -2,6 +2,7 @@ package com.glxp.api.req.dev; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.annotation.TableField; +import com.glxp.api.constant.Constant; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.dev.DeviceInfoEntity; import com.glxp.api.entity.dev.DeviceRepairApplyDetailEntity; @@ -11,7 +12,10 @@ import com.glxp.api.enums.dev.DeviceRepairApplyStatusEnum; import com.glxp.api.enums.dev.DeviceStatusEnum; import com.glxp.api.exception.JsonException; import com.glxp.api.service.dev.DeviceInfoService; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; import com.glxp.api.util.SnowflakeUtil; +import com.glxp.api.util.SpringUtils; import com.glxp.api.vo.dev.DeviceInfoVo; import lombok.Data; @@ -77,9 +81,11 @@ public class DeviceRepairApplyAddParam { public DeviceRepairApplyEntity getEntity(AuthAdmin user) { + GennerOrderUtils gennerOrderUtils = SpringUtils.getBean(GennerOrderUtils.class); return DeviceRepairApplyEntity .builder() .id(SnowflakeUtil.getId()) + .repairApplyBillNo(gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.DEV_DBX, "yyyyMMdd"))) .status(DeviceRepairApplyStatusEnum.WAIT_PROCESS) .applyDeptCode(user.getLocDeptCode()) .applyDeptName(user.getDeptName()) diff --git a/src/main/java/com/glxp/api/req/purchase/AddPurInquiryItemRequest.java b/src/main/java/com/glxp/api/req/purchase/AddPurInquiryItemRequest.java new file mode 100644 index 000000000..a519e8817 --- /dev/null +++ b/src/main/java/com/glxp/api/req/purchase/AddPurInquiryItemRequest.java @@ -0,0 +1,22 @@ +package com.glxp.api.req.purchase; + +import com.glxp.api.entity.purchase.PurInquiryItemEntity; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class AddPurInquiryItemRequest { + + @NotNull(message ="产品不可为空!") + private List productIds; + + /** + * 采购计划ID外键 + */ + @NotEmpty(message = "采购订单id不可为空!") + private String orderIdFk; +} diff --git a/src/main/java/com/glxp/api/req/purchase/AddPurInquiryOfferItemRequest.java b/src/main/java/com/glxp/api/req/purchase/AddPurInquiryOfferItemRequest.java new file mode 100644 index 000000000..6c6022d2e --- /dev/null +++ b/src/main/java/com/glxp/api/req/purchase/AddPurInquiryOfferItemRequest.java @@ -0,0 +1,21 @@ +package com.glxp.api.req.purchase; + +import com.glxp.api.res.basic.UdiRelevanceResponse; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class AddPurInquiryOfferItemRequest { + + @NotNull(message ="产品不可为空!") + private List productIds; + + /** + * 采购计划ID外键 + */ + @NotEmpty(message = "采购订单id不可为空!") + private String orderIdFk; +} diff --git a/src/main/java/com/glxp/api/req/purchase/PostPurInquiryOfferRequest.java b/src/main/java/com/glxp/api/req/purchase/PostPurInquiryOfferRequest.java new file mode 100644 index 000000000..f85966e31 --- /dev/null +++ b/src/main/java/com/glxp/api/req/purchase/PostPurInquiryOfferRequest.java @@ -0,0 +1,16 @@ +package com.glxp.api.req.purchase; + +import com.glxp.api.entity.purchase.PurInquiryEntity; +import com.glxp.api.entity.purchase.PurInquiryItemEntity; +import com.glxp.api.entity.purchase.PurInquiryOfferEntity; +import com.glxp.api.entity.purchase.PurInquiryOfferItemEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class PostPurInquiryOfferRequest { + Integer editStatus; + PurInquiryOfferEntity purInquiryOfferEntity; + List purInquiryOfferItemEntities; +} diff --git a/src/main/java/com/glxp/api/req/purchase/PostPurInquiryRequest.java b/src/main/java/com/glxp/api/req/purchase/PostPurInquiryRequest.java new file mode 100644 index 000000000..bdc0f4918 --- /dev/null +++ b/src/main/java/com/glxp/api/req/purchase/PostPurInquiryRequest.java @@ -0,0 +1,14 @@ +package com.glxp.api.req.purchase; + +import com.glxp.api.entity.purchase.PurInquiryEntity; +import com.glxp.api.entity.purchase.PurInquiryItemEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class PostPurInquiryRequest { + Integer editStatus; + PurInquiryEntity purInquiryEntity; + List purInquiryItemEntities; +} diff --git a/src/main/java/com/glxp/api/req/purchase/PurApplyArgumentRequest.java b/src/main/java/com/glxp/api/req/purchase/PurApplyArgumentRequest.java new file mode 100644 index 000000000..f86728562 --- /dev/null +++ b/src/main/java/com/glxp/api/req/purchase/PurApplyArgumentRequest.java @@ -0,0 +1,42 @@ +package com.glxp.api.req.purchase; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.glxp.api.entity.purchase.PurApplyArgument; +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +import java.util.List; + +@Data +public class PurApplyArgumentRequest extends ListPageRequest { + + + /** + * 询价单据号 + */ + private String applyBillNo; + + /** + * 论证状态 + */ + private Integer argStatus; + + /** + * 申购负责人 + */ + private String createName; + + /** + * 产品名字 + */ + private String productName; + + private Long deptCode; + + @TableField(value = "pageType") + private Integer pageType; + + private String templateId; + + private List list; +} diff --git a/src/main/java/com/glxp/api/req/purchase/PurContractDetailRequest.java b/src/main/java/com/glxp/api/req/purchase/PurContractDetailRequest.java index 0cfda7324..2e25d3ce4 100644 --- a/src/main/java/com/glxp/api/req/purchase/PurContractDetailRequest.java +++ b/src/main/java/com/glxp/api/req/purchase/PurContractDetailRequest.java @@ -11,7 +11,10 @@ public class PurContractDetailRequest extends ListPageRequest { /** * 合同外键 */ - @NotBlank(message = "合同外键不能为空") private String orderIdFk; + /** + * 合同外键 + */ + private String orderItemIdFk; } diff --git a/src/main/java/com/glxp/api/req/purchase/PurInquiryOfferRequest.java b/src/main/java/com/glxp/api/req/purchase/PurInquiryOfferRequest.java new file mode 100644 index 000000000..32e40c465 --- /dev/null +++ b/src/main/java/com/glxp/api/req/purchase/PurInquiryOfferRequest.java @@ -0,0 +1,40 @@ +package com.glxp.api.req.purchase; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +@Data +public class PurInquiryOfferRequest extends ListPageRequest { + + + /** + * 询价单据号 + */ + private String billNo; + + /** + * 询价单状态 + */ + private Integer status; + + /** + * 询价日期 + */ + private String startDate; + + /** + * 询价日期 + */ + private String endDate; + + /** + * 是否生成订单 1.已生成;0.未生成 + */ + private Integer generatePlan; + + private Boolean sysApprovalFlow; + + @TableField(value = "pageType") + private Integer pageType; +} diff --git a/src/main/java/com/glxp/api/req/purchase/PurInquiryRequest.java b/src/main/java/com/glxp/api/req/purchase/PurInquiryRequest.java new file mode 100644 index 000000000..df500c476 --- /dev/null +++ b/src/main/java/com/glxp/api/req/purchase/PurInquiryRequest.java @@ -0,0 +1,40 @@ +package com.glxp.api.req.purchase; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +@Data +public class PurInquiryRequest extends ListPageRequest { + + + /** + * 询价单据号 + */ + private String billNo; + + /** + * 询价单状态 + */ + private Integer status; + + /** + * 询价日期 + */ + private String startDate; + + /** + * 询价日期 + */ + private String endDate; + + /** + * 是否生成订单 1.已生成;0.未生成 + */ + private Integer generatePlan; + + private Boolean sysApprovalFlow; + + @TableField(value = "pageType") + private Integer pageType; +} diff --git a/src/main/java/com/glxp/api/res/purchase/PurInquiryEntityResponse.java b/src/main/java/com/glxp/api/res/purchase/PurInquiryEntityResponse.java new file mode 100644 index 000000000..ca5bb3fd8 --- /dev/null +++ b/src/main/java/com/glxp/api/res/purchase/PurInquiryEntityResponse.java @@ -0,0 +1,15 @@ +package com.glxp.api.res.purchase; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.glxp.api.entity.purchase.PurInquiryEntity; +import lombok.Data; + +@Data +public class PurInquiryEntityResponse extends PurInquiryEntity { + + private String nextNodeName; + + private Integer nextApprovalNodeType; + + private Integer flowStatus; +} diff --git a/src/main/java/com/glxp/api/res/purchase/PurInquiryOfferEntityResponse.java b/src/main/java/com/glxp/api/res/purchase/PurInquiryOfferEntityResponse.java new file mode 100644 index 000000000..2394b0f4b --- /dev/null +++ b/src/main/java/com/glxp/api/res/purchase/PurInquiryOfferEntityResponse.java @@ -0,0 +1,14 @@ +package com.glxp.api.res.purchase; + +import com.glxp.api.entity.purchase.PurInquiryEntity; +import lombok.Data; + +@Data +public class PurInquiryOfferEntityResponse extends PurInquiryEntity { + + private String nextNodeName; + + private Integer nextApprovalNodeType; + + private Integer flowStatus; +} diff --git a/src/main/java/com/glxp/api/service/dev/impl/DeviceCheckServiceImpl.java b/src/main/java/com/glxp/api/service/dev/impl/DeviceCheckServiceImpl.java index 77ec517c2..6b9aa7091 100644 --- a/src/main/java/com/glxp/api/service/dev/impl/DeviceCheckServiceImpl.java +++ b/src/main/java/com/glxp/api/service/dev/impl/DeviceCheckServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; +import com.glxp.api.constant.Constant; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.dev.*; import com.glxp.api.enums.dev.DeviceStatusEnum; @@ -14,6 +15,8 @@ import com.glxp.api.req.dev.DevicePlanDetailItemQuery; import com.glxp.api.req.dev.DevicePlanDetailQuery; import com.glxp.api.service.dev.*; import com.glxp.api.dao.dev.DeviceCheckMapper; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; import com.glxp.api.util.SnowflakeUtil; import com.glxp.api.vo.dev.DeviceCheckPrintVo; import com.glxp.api.vo.dev.DeviceCheckPrintVo.DetailVo; @@ -55,6 +58,9 @@ public class DeviceCheckServiceImpl extends ServiceImpl detailEntityList = param.getDetailEntityList(repairApply.getId(), deviceInfoService, user); Long taskId = param.getTaskId(); detailEntityList.forEach(d -> { diff --git a/src/main/java/com/glxp/api/service/dev/impl/DeviceRepairServiceImpl.java b/src/main/java/com/glxp/api/service/dev/impl/DeviceRepairServiceImpl.java index 1d95b91e4..22d1578dc 100644 --- a/src/main/java/com/glxp/api/service/dev/impl/DeviceRepairServiceImpl.java +++ b/src/main/java/com/glxp/api/service/dev/impl/DeviceRepairServiceImpl.java @@ -44,7 +44,7 @@ public class DeviceRepairServiceImpl extends ServiceImpl list = super.list(Wrappers.lambdaQuery(DeviceRepairEntity.class) .eq(DeviceRepairEntity::getRepairUserId, query.getCreateUserId()) .eq(query.getIsFinish() != null, DeviceRepairEntity::getFinishFlag, query.getIsFinish()) - .eq(StrUtil.isNotBlank(query.getDeviceCode()), DeviceRepairEntity::getDeviceCode, query.getDeviceCode()) + .like(StrUtil.isNotBlank(query.getDeviceCode()), DeviceRepairEntity::getDeviceCode, query.getDeviceCode()) .orderByAsc(DeviceRepairEntity::getFinishFlag) .orderByDesc(DeviceRepairEntity::getCreateTime) ); diff --git a/src/main/java/com/glxp/api/service/dev/impl/DeviceUpkeepServiceImpl.java b/src/main/java/com/glxp/api/service/dev/impl/DeviceUpkeepServiceImpl.java index 3d91f1f2a..cc929d6a0 100644 --- a/src/main/java/com/glxp/api/service/dev/impl/DeviceUpkeepServiceImpl.java +++ b/src/main/java/com/glxp/api/service/dev/impl/DeviceUpkeepServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; +import com.glxp.api.constant.Constant; import com.glxp.api.dao.dev.DeviceUpkeepMapper; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.dev.*; @@ -12,6 +13,8 @@ import com.glxp.api.enums.dev.DeviceStatusEnum; import com.glxp.api.exception.JsonException; import com.glxp.api.req.dev.DeviceUpkeepQuery; import com.glxp.api.service.dev.*; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; import com.glxp.api.util.SnowflakeUtil; import com.glxp.api.vo.dev.*; import lombok.RequiredArgsConstructor; @@ -48,6 +51,8 @@ public class DeviceUpkeepServiceImpl extends ServiceImpl { + + @Resource + PurApplyDetailService purApplyDetailService; + @Resource + DeptService deptService; + @Resource + CustomerService customerService; + + public void genPurApplyArguments(PurApplyEntity purApplyEntity) { + Long id = purApplyEntity.getId(); + String billNo = purApplyEntity.getBillNo(); + String invCode = purApplyEntity.getInvCode(); + String deptCode = purApplyEntity.getDeptCode(); + DeptEntity dept = deptService.selectByCode(deptCode); + String deptName = dept.getName(); + Date date = new Date(); + AuthAdmin userBean = customerService.getUserBean(); + String userId = userBean.getId() + ""; + String employeeName = userBean.getEmployeeName(); + + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("orderIdFk",id); + List list = purApplyDetailService.list(qw); + if (CollectionUtil.isNotEmpty(list)){ + List purApplyArguments = new ArrayList<>(list.size()); + list.forEach( item -> { + PurApplyArgument purApplyArgument = new PurApplyArgument(); + purApplyArgument.setOrderIdFk(String.valueOf(id)); + purApplyArgument.setOrderDetailIdFk(String.valueOf(item.getId())); + purApplyArgument.setApplyBillNo(billNo); + purApplyArgument.setInvCode(invCode); + purApplyArgument.setDeptCode(deptCode); + purApplyArgument.setDeptName(deptName); + purApplyArgument.setCreateUser(userId); + purApplyArgument.setCreateTime(date); + purApplyArgument.setCreateName(employeeName); + purApplyArgument.setProductId(item.getProductId()); + purApplyArgument.setProductName(item.getProductName()); + purApplyArgument.setCount(item.getCount()); + purApplyArgument.setMeasname(item.getMeasname()); + + purApplyArguments.add(purApplyArgument); + }); + saveBatch(purApplyArguments); + } + + } + + public List queryPageList(PurApplyArgumentRequest purApplyArgumentRequest) { + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.like(StrUtil.isNotEmpty(purApplyArgumentRequest.getApplyBillNo()),PurApplyArgument::getApplyBillNo,purApplyArgumentRequest.getApplyBillNo()); + qw.like(StrUtil.isNotEmpty(purApplyArgumentRequest.getCreateName()),PurApplyArgument::getCreateName,purApplyArgumentRequest.getCreateName()); + qw.like(StrUtil.isNotEmpty(purApplyArgumentRequest.getProductName()),PurApplyArgument::getProductName,purApplyArgumentRequest.getProductName()); + qw.eq(ObjectUtil.isNotNull(purApplyArgumentRequest.getArgStatus()),PurApplyArgument::getArgStatus,purApplyArgumentRequest.getArgStatus()); + qw.eq(ObjectUtil.isNotNull(purApplyArgumentRequest.getDeptCode()),PurApplyArgument::getDeptCode,purApplyArgumentRequest.getDeptCode()); + return list(qw); + } + + public int argAllPass(Long id) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("orderIdFk",id); + qw.eq("argStatus",2); + List list = list(qw); + if (CollectionUtil.isNotEmpty(list)){ + return 2;//有拒绝的 + } + qw.eq("argStatus",0); + list = list(qw); + if (CollectionUtil.isNotEmpty(list)){ + return 0;//有未论证的 + } + return 1;//全部通过 + } + +} diff --git a/src/main/java/com/glxp/api/service/purchase/impl/PurContractService.java b/src/main/java/com/glxp/api/service/purchase/impl/PurContractService.java index 2189b0447..5bc639135 100644 --- a/src/main/java/com/glxp/api/service/purchase/impl/PurContractService.java +++ b/src/main/java/com/glxp/api/service/purchase/impl/PurContractService.java @@ -6,6 +6,7 @@ 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.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; import com.glxp.api.dao.purchase.PurContractDetailMapper; import com.glxp.api.dao.purchase.PurContractMapper; import com.glxp.api.dao.purchase.PurPlanDao; @@ -16,9 +17,11 @@ import com.glxp.api.entity.purchase.PurPlanDetailEntity; import com.glxp.api.entity.purchase.PurPlanEntity; import com.glxp.api.req.purchase.PurApplyDetailRequest; import com.glxp.api.req.purchase.PurContractRequest; +import com.glxp.api.req.purchase.PurOrderRequest; import com.glxp.api.req.purchase.PurPlanDetailRequest; import com.glxp.api.res.purchase.PurContractEntityResponse; import com.glxp.api.res.purchase.PurOrderDetailResponse; +import com.glxp.api.res.purchase.PurOrderResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.OrderNoTypeBean; @@ -26,6 +29,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Collections; import java.util.Date; import java.util.List; @@ -45,9 +49,16 @@ public class PurContractService extends ServiceImpl queryPageList(PurContractRequest purContractRequest) { - IPage purPlanEntities = purContractMapper.selectPage(purContractRequest.getPageObj(),purContractRequest); - return purPlanEntities; + public List queryPageList(PurContractRequest purContractRequest) { + if (purContractRequest == null) { + return Collections.emptyList(); + } + if (purContractRequest.getPage() != null) { + int offset = (purContractRequest.getPage() - 1) * purContractRequest.getLimit(); + PageHelper.offsetPage(offset, purContractRequest.getLimit()); + } + List data = purContractMapper.selectPage(purContractRequest); + return data; } // // /** diff --git a/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryItemDetailService.java b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryItemDetailService.java new file mode 100644 index 000000000..e313a9e23 --- /dev/null +++ b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryItemDetailService.java @@ -0,0 +1,80 @@ +package com.glxp.api.service.purchase.impl; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.api.dao.purchase.PurInquiryItemMapper; +import com.glxp.api.entity.basic.BasicCorpEntity; +import com.glxp.api.entity.purchase.PurInquiryEntity; +import com.glxp.api.entity.purchase.PurInquiryItemEntity; +import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest; +import com.glxp.api.req.purchase.PurContractDetailRequest; +import com.glxp.api.service.basic.BasicCorpService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.glxp.api.dao.purchase.PurInquiryItemDetailMapper; +import com.glxp.api.entity.purchase.PurInquiryItemDetailEntity; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@Service +@Transactional(rollbackFor = Exception.class) +public class PurInquiryItemDetailService extends ServiceImpl { + + @Resource + private BasicCorpService basicUnitMaintainService; + @Resource + private PurInquiryItemMapper purInquiryItemMapper; + + public List queryPageList(PurContractDetailRequest purContractDetailRequest) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("orderItemIdFk", purContractDetailRequest.getOrderItemIdFk()); + return super.baseMapper.selectList(wrapper); + } + + public int updateItemDetail(PurInquiryEntity purInquiryEntity) { + Long id = purInquiryEntity.getId(); + //先清空 + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("orderIdFk", id); + super.baseMapper.delete(qw); + + //保存 + String[] fromCorp = purInquiryEntity.getFromCorp(); + ArrayList list = new ArrayList<>(); + if (fromCorp != null && fromCorp.length > 0) { + BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest = new BasicUnitMaintainFilterRequest(); + basicUnitMaintainFilterRequest.setErpIds(Arrays.asList(fromCorp)); + List basicUnitMaintainEntities = basicUnitMaintainService.filterList(basicUnitMaintainFilterRequest); + + //获取明细 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("orderIdFk", id); + List purInquiryItemEntities = purInquiryItemMapper.selectList(wrapper); + if (CollectionUtil.isNotEmpty(purInquiryItemEntities)) { + purInquiryItemEntities.forEach(item -> { + basicUnitMaintainEntities.forEach(x -> { + PurInquiryItemDetailEntity purInquiryItemDetailEntity = new PurInquiryItemDetailEntity(); + purInquiryItemDetailEntity.setOrderIdFk(String.valueOf(id)); + purInquiryItemDetailEntity.setOrderItemIdFk(String.valueOf(item.getId())); + purInquiryItemDetailEntity.setSupNumber(1); + purInquiryItemDetailEntity.setSupId(Long.valueOf(x.getErpId())); + purInquiryItemDetailEntity.setSupName(x.getName()); + purInquiryItemDetailEntity.setSupPerson(x.getContact()); + purInquiryItemDetailEntity.setSupPhone(x.getMobile()); +// purInquiryItemDetailEntity.setSupEmail(x.getAddr()); + + list.add(purInquiryItemDetailEntity); + }); + }); + } + if (CollectionUtil.isNotEmpty(list)) { + super.saveBatch(list); + } + } + return 1; + } +} diff --git a/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryItemService.java b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryItemService.java new file mode 100644 index 000000000..c621de6d1 --- /dev/null +++ b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryItemService.java @@ -0,0 +1,78 @@ +package com.glxp.api.service.purchase.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.basic.UdiRlSupDao; +import com.glxp.api.entity.purchase.PurContractDetailEntity; +import com.glxp.api.req.basic.CompanyProductRelevanceRequest; +import com.glxp.api.req.purchase.AddPurInquiryItemRequest; +import com.glxp.api.req.purchase.AddPurPlanDetailRequest; +import com.glxp.api.req.purchase.PurContractDetailRequest; +import com.glxp.api.req.purchase.PurInquiryRequest; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.res.basic.UdiRlSupResponse; +import com.glxp.api.res.purchase.PurInquiryEntityResponse; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.glxp.api.dao.purchase.PurInquiryItemMapper; +import com.glxp.api.entity.purchase.PurInquiryItemEntity; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +@Service +public class PurInquiryItemService extends ServiceImpl { + + public int insert(AddPurInquiryItemRequest addPurInquiryItemRequest) { + String orderIdFk = addPurInquiryItemRequest.getOrderIdFk(); + List productIds = addPurInquiryItemRequest.getProductIds(); + if (CollectionUtil.isNotEmpty(productIds)){ + productIds.forEach( x-> { + PurInquiryItemEntity purInquiryItemEntity = new PurInquiryItemEntity(); + purInquiryItemEntity.setOrderIdFk(orderIdFk); + purInquiryItemEntity.setCount(1); + purInquiryItemEntity.setPrice(x.getPrice()); + purInquiryItemEntity.setTotalPrice(x.getPrice()); + purInquiryItemEntity.setProductId(x.getId()); + purInquiryItemEntity.setProductUniqueId(x.getUuid()); + purInquiryItemEntity.setNameCode(x.getNameCode()); + purInquiryItemEntity.setProductName(x.getCpmctymc()); + purInquiryItemEntity.setProductCompany(x.getManufactory()); + purInquiryItemEntity.setZczbhhzbapzbh(x.getZczbhhzbapzbh()); + purInquiryItemEntity.setGgxh(x.getGgxh()); + purInquiryItemEntity.setMeasname(x.getMeasname()); + purInquiryItemEntity.setPackRatio(x.getPackRatio()); + super.baseMapper.insert(purInquiryItemEntity); + }); + } + return 1; + } + + public List queryPageList(PurContractDetailRequest purContractDetailRequest) { + + if (purContractDetailRequest == null) { + return Collections.emptyList(); + } + if (purContractDetailRequest.getPage() != null) { + int offset = (purContractDetailRequest.getPage() - 1) * purContractDetailRequest.getLimit(); + PageHelper.offsetPage(offset, purContractDetailRequest.getLimit()); + } + return super.baseMapper.selectPage(purContractDetailRequest); + } + + public int deleteByIds(List asList) { + UpdateWrapper uw = new UpdateWrapper<>(); + uw.in("id",asList); + return super.baseMapper.delete(uw); + } + +} diff --git a/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryOfferItemDetailService.java b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryOfferItemDetailService.java new file mode 100644 index 000000000..7538c5685 --- /dev/null +++ b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryOfferItemDetailService.java @@ -0,0 +1,80 @@ +package com.glxp.api.service.purchase.impl; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.glxp.api.dao.purchase.PurInquiryOfferItemDetailMapper; +import com.glxp.api.dao.purchase.PurInquiryOfferItemMapper; +import com.glxp.api.entity.basic.BasicCorpEntity; +import com.glxp.api.entity.purchase.PurInquiryOfferEntity; +import com.glxp.api.entity.purchase.PurInquiryOfferItemDetailEntity; +import com.glxp.api.entity.purchase.PurInquiryOfferItemEntity; +import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest; +import com.glxp.api.req.purchase.PurContractDetailRequest; +import com.glxp.api.service.basic.BasicCorpService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@Service +@Transactional(rollbackFor = Exception.class) +public class PurInquiryOfferItemDetailService extends ServiceImpl { + + @Resource + private BasicCorpService basicUnitMaintainService; + @Resource + private PurInquiryOfferItemMapper purInquiryOfferItemMapper; + + public List queryPageList(PurContractDetailRequest purContractDetailRequest) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("orderItemIdFk", purContractDetailRequest.getOrderItemIdFk()); + return super.baseMapper.selectList(wrapper); + } + + public int updateItemDetail(PurInquiryOfferEntity purInquiryOfferEntity) { + Long id = purInquiryOfferEntity.getId(); + //先清空 + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("orderIdFk", id); + super.baseMapper.delete(qw); + + //保存 + String[] fromCorp = purInquiryOfferEntity.getFromCorp(); + ArrayList list = new ArrayList<>(); + if (fromCorp != null && fromCorp.length > 0) { + BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest = new BasicUnitMaintainFilterRequest(); + basicUnitMaintainFilterRequest.setErpIds(Arrays.asList(fromCorp)); + List basicUnitMaintainEntities = basicUnitMaintainService.filterList(basicUnitMaintainFilterRequest); + + //获取明细 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("orderIdFk", id); + List purInquiryOfferItemEntities = purInquiryOfferItemMapper.selectList(wrapper); + if (CollectionUtil.isNotEmpty(purInquiryOfferItemEntities)) { + purInquiryOfferItemEntities.forEach(item -> { + basicUnitMaintainEntities.forEach(x -> { + PurInquiryOfferItemDetailEntity purInquiryOfferItemDetailEntity = new PurInquiryOfferItemDetailEntity(); + purInquiryOfferItemDetailEntity.setOrderIdFk(String.valueOf(id)); + purInquiryOfferItemDetailEntity.setOrderItemIdFk(String.valueOf(item.getId())); + purInquiryOfferItemDetailEntity.setSupNumber(1); + purInquiryOfferItemDetailEntity.setSupId(Long.valueOf(x.getErpId())); + purInquiryOfferItemDetailEntity.setSupName(x.getName()); + purInquiryOfferItemDetailEntity.setSupPerson(x.getContact()); + purInquiryOfferItemDetailEntity.setSupPhone(x.getMobile()); +// purInquiryOfferItemDetailEntity.setSupEmail(x.getAddr()); + + list.add(purInquiryOfferItemDetailEntity); + }); + }); + } + if (CollectionUtil.isNotEmpty(list)) { + super.saveBatch(list); + } + } + return 1; + } +} diff --git a/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryOfferItemService.java b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryOfferItemService.java new file mode 100644 index 000000000..ee6adb4c9 --- /dev/null +++ b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryOfferItemService.java @@ -0,0 +1,63 @@ +package com.glxp.api.service.purchase.impl; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.purchase.PurInquiryOfferItemMapper; +import com.glxp.api.entity.purchase.PurInquiryOfferItemEntity; +import com.glxp.api.req.purchase.AddPurInquiryOfferItemRequest; +import com.glxp.api.req.purchase.PurContractDetailRequest; +import com.glxp.api.res.basic.UdiRelevanceResponse; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +@Service +public class PurInquiryOfferItemService extends ServiceImpl { + + public int insert(AddPurInquiryOfferItemRequest addPurInquiryOfferItemRequest) { + String orderIdFk = addPurInquiryOfferItemRequest.getOrderIdFk(); + List productIds = addPurInquiryOfferItemRequest.getProductIds(); + if (CollectionUtil.isNotEmpty(productIds)){ + productIds.forEach( x-> { + PurInquiryOfferItemEntity purInquiryOfferItemEntity = new PurInquiryOfferItemEntity(); + purInquiryOfferItemEntity.setOrderIdFk(orderIdFk); + purInquiryOfferItemEntity.setCount(1); + purInquiryOfferItemEntity.setPrice(x.getPrice()); + purInquiryOfferItemEntity.setTotalPrice(x.getPrice()); + purInquiryOfferItemEntity.setProductId(x.getId()); + purInquiryOfferItemEntity.setProductUniqueId(x.getUuid()); + purInquiryOfferItemEntity.setNameCode(x.getNameCode()); + purInquiryOfferItemEntity.setProductName(x.getCpmctymc()); + purInquiryOfferItemEntity.setProductCompany(x.getManufactory()); + purInquiryOfferItemEntity.setZczbhhzbapzbh(x.getZczbhhzbapzbh()); + purInquiryOfferItemEntity.setGgxh(x.getGgxh()); + purInquiryOfferItemEntity.setMeasname(x.getMeasname()); + purInquiryOfferItemEntity.setPackRatio(x.getPackRatio()); + super.baseMapper.insert(purInquiryOfferItemEntity); + }); + } + return 1; + } + + public List queryPageList(PurContractDetailRequest purContractDetailRequest) { + + if (purContractDetailRequest == null) { + return Collections.emptyList(); + } + if (purContractDetailRequest.getPage() != null) { + int offset = (purContractDetailRequest.getPage() - 1) * purContractDetailRequest.getLimit(); + PageHelper.offsetPage(offset, purContractDetailRequest.getLimit()); + } + return super.baseMapper.selectPage(purContractDetailRequest); + } + + public int deleteByIds(List asList) { + UpdateWrapper uw = new UpdateWrapper<>(); + uw.in("id",asList); + return super.baseMapper.delete(uw); + } + +} diff --git a/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryOfferService.java b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryOfferService.java new file mode 100644 index 000000000..a82f7f9ca --- /dev/null +++ b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryOfferService.java @@ -0,0 +1,112 @@ +package com.glxp.api.service.purchase.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; +import com.glxp.api.dao.purchase.PurInquiryMapper; +import com.glxp.api.dao.purchase.PurInquiryOfferMapper; +import com.glxp.api.entity.BaseEntity; +import com.glxp.api.entity.purchase.*; +import com.glxp.api.req.purchase.PurInquiryOfferRequest; +import com.glxp.api.req.purchase.PurInquiryRequest; +import com.glxp.api.res.purchase.PurInquiryEntityResponse; +import com.glxp.api.res.purchase.PurInquiryOfferEntityResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.basic.SysApprovalFlowService; +import com.glxp.api.service.system.SystemParamConfigService; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; +import jodd.util.StringUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +@Service +@Transactional(rollbackFor = Exception.class) +public class PurInquiryOfferService extends ServiceImpl { + + @Resource + CustomerService customerService; + @Resource + GennerOrderUtils gennerOrderUtils; + @Resource + SystemParamConfigService systemParamConfigService; + @Resource + SysApprovalFlowService sysApprovalFlowService; + final String type_xjbj = "xjbj"; + @Resource + PurInquiryOfferItemService purInquiryOfferItemService; + @Resource + PurInquiryOfferItemDetailService purInquiryOfferItemDetailService; + + public List queryPageList(PurInquiryOfferRequest purInquiryOfferRequest) { + + if (purInquiryOfferRequest == null) { + return Collections.emptyList(); + } + if (purInquiryOfferRequest.getPage() != null) { + int offset = (purInquiryOfferRequest.getPage() - 1) * purInquiryOfferRequest.getLimit(); + PageHelper.offsetPage(offset, purInquiryOfferRequest.getLimit()); + } + List data = super.baseMapper.selectPage(purInquiryOfferRequest); + return data; + } + + public int insert(PurInquiryOfferEntity purInquiryOfferEntity) { + return super.baseMapper.insert(purInquiryOfferEntity); + } + + public void submitOffer(PurInquiryEntity purInquiryEntity, List itemEntities, List itemDetailEntities) { + PurInquiryOfferEntity purInquiryOfferEntity = new PurInquiryOfferEntity(); + BeanUtils.copyProperties(purInquiryEntity,purInquiryOfferEntity); + purInquiryOfferEntity.setId(null); + Long userId = customerService.getUserId(); + Date date = new Date(); + purInquiryOfferEntity.setUpdateTime(date); + purInquiryOfferEntity.setUpdateUser(userId + ""); + purInquiryOfferEntity.setStatus(1); //状态 待报价 + String billNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean("XJBJ", "yyyyMMdd")); + purInquiryOfferEntity.setBillNo(billNo); + purInquiryOfferEntity.setApprovalFlowId(null); + +// Boolean sys_approval_flow = "1".equals(systemParamConfigService.selectValueByParamKey("sys_approval_flow")); +// if (sys_approval_flow){//提交审核 +// String approvalFlowId = sysApprovalFlowService.getApprovalFlowId(); +// purInquiryOfferEntity.setApprovalFlowId(approvalFlowId); +// sysApprovalFlowService.generateFlow(approvalFlowId,purInquiryOfferEntity.getBillNo(),type_xjbj); +// } + + purInquiryOfferEntity.setCreateTime(date); + purInquiryOfferEntity.setCreateUser(userId + ""); + purInquiryOfferEntity.setPlanBillNo(purInquiryEntity.getBillNo()); + save(purInquiryOfferEntity); + Long id = purInquiryOfferEntity.getId(); + + + //处理明细 + ArrayList purInquiryOfferItemEntities = new ArrayList<>(); + itemEntities.forEach( item -> { + PurInquiryOfferItemEntity purInquiryOfferItemEntity = new PurInquiryOfferItemEntity(); + BeanUtils.copyProperties(item,purInquiryOfferItemEntity); + purInquiryOfferItemEntity.setOrderIdFk(String.valueOf(id)); + purInquiryOfferItemEntities.add(purInquiryOfferItemEntity); + }); + purInquiryOfferItemService.saveBatch(purInquiryOfferItemEntities); + + //处理明细详情 + ArrayList purInquiryOfferItemDetailEntities = new ArrayList<>(); + itemDetailEntities.forEach( itemDetail -> { + PurInquiryOfferItemDetailEntity purInquiryOfferItemDetailEntity = new PurInquiryOfferItemDetailEntity(); + BeanUtils.copyProperties(itemDetail,purInquiryOfferItemDetailEntity); + purInquiryOfferItemDetailEntity.setOrderIdFk(String.valueOf(id)); + purInquiryOfferItemDetailEntities.add(purInquiryOfferItemDetailEntity); + }); + purInquiryOfferItemDetailService.saveBatch(purInquiryOfferItemDetailEntities); + + } +} diff --git a/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryService.java b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryService.java new file mode 100644 index 000000000..86c2691cb --- /dev/null +++ b/src/main/java/com/glxp/api/service/purchase/impl/PurInquiryService.java @@ -0,0 +1,74 @@ +package com.glxp.api.service.purchase.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.pagehelper.PageHelper; +import com.glxp.api.entity.purchase.PurInquiryItemDetailEntity; +import com.glxp.api.entity.purchase.PurInquiryItemEntity; +import com.glxp.api.req.purchase.PurInquiryRequest; +import com.glxp.api.res.purchase.PurContractEntityResponse; +import com.glxp.api.res.purchase.PurInquiryEntityResponse; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.glxp.api.entity.purchase.PurInquiryEntity; +import com.glxp.api.dao.purchase.PurInquiryMapper; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +@Transactional(rollbackFor = Exception.class) +public class PurInquiryService extends ServiceImpl { + + @Resource + PurInquiryItemService purInquiryItemService; + @Resource + PurInquiryItemDetailService purInquiryItemDetailService; + @Resource + PurInquiryOfferService purInquiryOfferService; + + + public List queryPageList(PurInquiryRequest purInquiryRequest) { + + if (purInquiryRequest == null) { + return Collections.emptyList(); + } + if (purInquiryRequest.getPage() != null) { + int offset = (purInquiryRequest.getPage() - 1) * purInquiryRequest.getLimit(); + PageHelper.offsetPage(offset, purInquiryRequest.getLimit()); + } + List data = super.baseMapper.selectPage(purInquiryRequest); + return data; + } + + public int insert(PurInquiryEntity purInquiryEntity) { + return super.baseMapper.insert(purInquiryEntity); + } + + public void submitOffer(PurInquiryEntity purInquiryEntity) { + Long id = purInquiryEntity.getId(); + purInquiryEntity = super.baseMapper.selectById(id); + + QueryWrapper purInquiryItemEntityQueryWrapper = new QueryWrapper<>(); + purInquiryItemEntityQueryWrapper.eq("orderIdFk",id); + List itemEntities = purInquiryItemService.list(purInquiryItemEntityQueryWrapper); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("orderIdFk",id); + List itemDetailEntities = purInquiryItemDetailService.list(queryWrapper); + + //生成询价报价单 + if (CollectionUtil.isNotEmpty(itemEntities) && CollectionUtil.isNotEmpty(itemDetailEntities) && ObjectUtil.isNotNull(purInquiryEntity)){ + purInquiryOfferService.submitOffer(purInquiryEntity,itemEntities,itemDetailEntities); + } + + purInquiryEntity.setGeneratePlan(1); + super.baseMapper.updateById(purInquiryEntity); + } + + +} diff --git a/src/main/java/com/glxp/api/util/EntityToMapConverter.java b/src/main/java/com/glxp/api/util/EntityToMapConverter.java new file mode 100644 index 000000000..fdb34b4ef --- /dev/null +++ b/src/main/java/com/glxp/api/util/EntityToMapConverter.java @@ -0,0 +1,35 @@ +package com.glxp.api.util; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +public class EntityToMapConverter { + + public static Map convertEntityToMap(T entity) { + if (entity == null) { + return null; + } + + Map result = new HashMap<>(); + Class clazz = entity.getClass(); + + // 获取所有字段(包括私有字段,但需要设置setAccessible(true)) + Field[] fields = clazz.getDeclaredFields(); + + for (Field field : fields) { + field.setAccessible(true); // 设置为可访问,以便访问私有字段 + + try { + // 获取字段的值 + Object value = field.get(entity); + result.put(field.getName(), value); + } catch (IllegalAccessException e) { + // 这通常不会发生,因为我们已经调用了setAccessible(true) + e.printStackTrace(); + } + } + + return result; + } +} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 087dbec16..10d81b490 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_pt?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_ct?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: 123456 hikari: diff --git a/src/main/resources/mybatis/mapper/basic/BasicCorpDao.xml b/src/main/resources/mybatis/mapper/basic/BasicCorpDao.xml index 168df717a..81eb6001f 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicCorpDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicCorpDao.xml @@ -52,6 +52,14 @@ and DATE_FORMAT(updateTime, '%Y-%m-%d %H:%i:%S') >= DATE_FORMAT(#{lastUpdateTime}, '%Y-%m-%d %H:%i:%S') ]]> + + + AND erpId in + + #{item} + + + order by updateTime desc diff --git a/src/main/resources/mybatis/mapper/dev/DeviceCheckMapper.xml b/src/main/resources/mybatis/mapper/dev/DeviceCheckMapper.xml index 9c1df51f0..84e175c53 100644 --- a/src/main/resources/mybatis/mapper/dev/DeviceCheckMapper.xml +++ b/src/main/resources/mybatis/mapper/dev/DeviceCheckMapper.xml @@ -3,28 +3,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - - taskId,planId,planName, - checkUserId,checkUserName,checkUserPhone, - name,remark,sysFlag, - createTime,createUserId,createUserName - - SELECT pur_apply_detail.*, + SELECT + pur_apply_detail.*, basic_products.nameCode nameCode, basic_products.ggxh spec, - basic_products.measname, basic_products.manufactory, basic_products.ylqxzcrbarmc, basic_products.spmc, diff --git a/src/main/resources/mybatis/mapper/purchase/PurInquiryItemDetailMapper.xml b/src/main/resources/mybatis/mapper/purchase/PurInquiryItemDetailMapper.xml new file mode 100644 index 000000000..18fb8a59a --- /dev/null +++ b/src/main/resources/mybatis/mapper/purchase/PurInquiryItemDetailMapper.xml @@ -0,0 +1,24 @@ + + + + + + id, orderIdFk, orderItemIdFk, supNumber, supId, supName, supPerson, supPhone, supEmail, + supFilePath, supCount, supPrice, supTotalPrice, supRemark, accord, adopt + + + + + diff --git a/src/main/resources/mybatis/mapper/purchase/PurInquiryItemMapper.xml b/src/main/resources/mybatis/mapper/purchase/PurInquiryItemMapper.xml new file mode 100644 index 000000000..6ed3ef35c --- /dev/null +++ b/src/main/resources/mybatis/mapper/purchase/PurInquiryItemMapper.xml @@ -0,0 +1,26 @@ + + + + + + id, orderIdFk, `count`, price, totalPrice, attachmentPath, remark, productId, productUniqueId, + nameCode, batchNo, productName, productCompany, produceDate, expireDate, zczbhhzbapzbh, + ggxh, packRatio + + + + + diff --git a/src/main/resources/mybatis/mapper/purchase/PurInquiryMapper.xml b/src/main/resources/mybatis/mapper/purchase/PurInquiryMapper.xml new file mode 100644 index 000000000..015c55dc1 --- /dev/null +++ b/src/main/resources/mybatis/mapper/purchase/PurInquiryMapper.xml @@ -0,0 +1,115 @@ + + + + + + id, billNo, billDate, `status`, billType, remark, invCode, deptCode, `createUser`, + createTime, auditUser, auditTime, updateUser, updateTime, auditRemark, targetInvCode, + targetDeptCode, planBillNo, generatePlan, emergency, arrivalTime, approvalFlowId, + pageType, validUntil + + + + + + + insert + INTO pur_inquiry + ( + billNo, billDate, `status`, billType, remark, invCode, deptCode, `createUser`, + createTime, auditUser, auditTime, updateUser, updateTime, auditRemark, targetInvCode, + targetDeptCode, planBillNo, generatePlan, emergency, arrivalTime, approvalFlowId, + pageType, validUntil + ) + values ( + #{billNo}, + #{billDate}, + #{status}, + #{billType}, + #{remark}, + #{invCode}, + #{deptCode}, + #{createUser}, + #{createTime}, + #{auditUser}, + #{auditTime}, + #{updateUser}, + #{updateTime}, + #{auditRemark}, + #{targetInvCode}, + #{targetDeptCode}, + #{planBillNo}, + #{generatePlan}, + #{emergency}, + #{arrivalTime}, + #{approvalFlowId}, + #{pageType}, + #{validUntil} + ) + + + diff --git a/src/main/resources/mybatis/mapper/purchase/PurInquiryOfferItemDetailMapper.xml b/src/main/resources/mybatis/mapper/purchase/PurInquiryOfferItemDetailMapper.xml new file mode 100644 index 000000000..844d07046 --- /dev/null +++ b/src/main/resources/mybatis/mapper/purchase/PurInquiryOfferItemDetailMapper.xml @@ -0,0 +1,24 @@ + + + + + + id, orderIdFk, orderItemIdFk, supNumber, supId, supName, supPerson, supPhone, supEmail, + supFilePath, supCount, supPrice, supTotalPrice, supRemark, accord, adopt + + + + + diff --git a/src/main/resources/mybatis/mapper/purchase/PurInquiryOfferItemMapper.xml b/src/main/resources/mybatis/mapper/purchase/PurInquiryOfferItemMapper.xml new file mode 100644 index 000000000..e7854a79d --- /dev/null +++ b/src/main/resources/mybatis/mapper/purchase/PurInquiryOfferItemMapper.xml @@ -0,0 +1,26 @@ + + + + + + id, orderIdFk, `count`, price, totalPrice, attachmentPath, remark, productId, productUniqueId, + nameCode, batchNo, productName, productCompany, produceDate, expireDate, zczbhhzbapzbh, + ggxh, packRatio + + + + + diff --git a/src/main/resources/mybatis/mapper/purchase/PurInquiryOfferMapper.xml b/src/main/resources/mybatis/mapper/purchase/PurInquiryOfferMapper.xml new file mode 100644 index 000000000..8077574ca --- /dev/null +++ b/src/main/resources/mybatis/mapper/purchase/PurInquiryOfferMapper.xml @@ -0,0 +1,115 @@ + + + + + + id, billNo, billDate, `status`, billType, remark, invCode, deptCode, `createUser`, + createTime, auditUser, auditTime, updateUser, updateTime, auditRemark, targetInvCode, + targetDeptCode, planBillNo, generatePlan, emergency, arrivalTime, approvalFlowId, + pageType, validUntil + + + + + + + insert + INTO pur_inquiry_offer + ( + billNo, billDate, `status`, billType, remark, invCode, deptCode, `createUser`, + createTime, auditUser, auditTime, updateUser, updateTime, auditRemark, targetInvCode, + targetDeptCode, planBillNo, generatePlan, emergency, arrivalTime, approvalFlowId, + pageType, validUntil + ) + values ( + #{billNo}, + #{billDate}, + #{status}, + #{billType}, + #{remark}, + #{invCode}, + #{deptCode}, + #{createUser}, + #{createTime}, + #{auditUser}, + #{auditTime}, + #{updateUser}, + #{updateTime}, + #{auditRemark}, + #{targetInvCode}, + #{targetDeptCode}, + #{planBillNo}, + #{generatePlan}, + #{emergency}, + #{arrivalTime}, + #{approvalFlowId}, + #{pageType}, + #{validUntil} + ) + + + diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index fff975249..9d1f14c55 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -3386,33 +3386,284 @@ CALL Pro_Temp_ColumnWork('device_repair_apply_detail', 'diagnosisLivePath', 'varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT''诊断照片''', 1); -INSERT IGNORE INTO basic_bustype_change(`id`, `originAction`, `originName`, `targetAction`, `type`, `enable`, - `createUser`, `updateUser`, `createTime`, `updateTime`, `remark`, `auditStatus`, - `busAuditStatus`, `targetBusAction`, `beforeTime`, `busBeforeTime`) -VALUES (1724370174626394116, 'DECPSG', '设备产品申购', NULL, 2, 1, NULL, '1', NULL, '2023-11-14 18:14:44', NULL, 2, 3, - 'DECGJH', NULL, NULL); -INSERT IGNORE INTO basic_bustype_change(`id`, `originAction`, `originName`, `targetAction`, `type`, `enable`, - `createUser`, `updateUser`, `createTime`, `updateTime`, `remark`, `auditStatus`, - `busAuditStatus`, `targetBusAction`, `beforeTime`, `busBeforeTime`) -VALUES (1724370174626394117, 'DECGJH', '设备采购计划', NULL, 3, 1, NULL, '1', NULL, '2023-11-14 18:14:34', NULL, 2, 1, - 'DECGDD', NULL, NULL); -INSERT IGNORE INTO basic_bustype_change(`id`, `originAction`, `originName`, `targetAction`, `type`, `enable`, - `createUser`, `updateUser`, `createTime`, `updateTime`, `remark`, `auditStatus`, - `busAuditStatus`, `targetBusAction`, `beforeTime`, `busBeforeTime`) -VALUES (1724370174626394118, 'DECGDD', '设备采购订单', NULL, 5, 1, NULL, '1', NULL, '2023-11-14 18:14:22', NULL, 2, 2, NULL, - NULL, NULL); +INSERT IGNORE INTO basic_bustype_change(`id`, `originAction`, `originName`, `targetAction`, `type`, `enable`, `createUser`, `updateUser`, `createTime`, `updateTime`, `remark`, `auditStatus`, `busAuditStatus`, `targetBusAction`, `beforeTime`, `busBeforeTime`) VALUES (1724370174626394116, 'DECPSG', '设备产品申购', NULL, 2, 1, NULL, '1', NULL, '2023-11-14 18:14:44', NULL, 2, 3, 'DECGJH', NULL, NULL); +INSERT IGNORE INTO basic_bustype_change(`id`, `originAction`, `originName`, `targetAction`, `type`, `enable`, `createUser`, `updateUser`, `createTime`, `updateTime`, `remark`, `auditStatus`, `busAuditStatus`, `targetBusAction`, `beforeTime`, `busBeforeTime`) VALUES (1724370174626394117, 'DECGJH', '设备采购计划', NULL, 3, 1, NULL, '1', NULL, '2023-11-14 18:14:34', NULL, 2, 1, 'DECGDD', NULL, NULL); +INSERT IGNORE INTO basic_bustype_change(`id`, `originAction`, `originName`, `targetAction`, `type`, `enable`, `createUser`, `updateUser`, `createTime`, `updateTime`, `remark`, `auditStatus`, `busAuditStatus`, `targetBusAction`, `beforeTime`, `busBeforeTime`) VALUES (1724370174626394118, 'DECGDD', '设备采购订单', NULL, 5, 1, NULL, '1', NULL, '2023-11-14 18:14:22', NULL, 2, 2, NULL, NULL, NULL); CALL Pro_Temp_ColumnWork('device_repair', 'repairUserId', 'bigint DEFAULT NULL COMMENT''报修人id''', 1); -ALTER TABLE device_plan_detail_item +ALTER TABLE device_plan_detail_item DROP PRIMARY KEY, ADD PRIMARY KEY (`planId`, `productId`, `itemCode`, `deviceCode`) USING BTREE; -INSERT ignore INTO `sys_pdf_template_relevance_statemen`(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, - `localAction`, `remark1`, `remark2`, `remark3`, `printType`, - `modelKey`) -VALUES (6, 33, 110, 0, NULL, '科室设备报表打印', NULL, NULL, NULL, NULL, 'reportForms'); +INSERT IGNORE INTO sys_pdf_template(`id`, `name`, `type`, `module`, `param`, `path`, `rowCount`, `qrcodeCount`, `remark`, `create_time`, `update_time`, `jrxmlPath`, + `bussinessType`, `bussinessStatus`) VALUES (4, '设备标签模板', 2, 0, '', '7bdc497e-b0e4-444d-be63-cc27978568ea.jasper', 10, + 1, '', '2024-05-21 16:24:56', '2024-05-21 16:24:56', '2427d70b-2b69-483f-9a9d-7c9c4a3c688e.jrxml', NULL, NULL); + + +CALL Pro_Temp_ColumnWork('device_plan', 'planBillNo', 'varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT''计划单号''', 1); +CALL Pro_Temp_ColumnWork('device_check', 'taskBillNo', 'varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT''巡检任务单号''', 1); +CALL Pro_Temp_ColumnWork('device_repair_apply', 'repairApplyBillNo', 'varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT''报修单号''', 1); +CALL Pro_Temp_ColumnWork('device_repair', 'repairBillNo', 'varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT''维修单号''', 1); +CALL Pro_Temp_ColumnWork('device_upkeep', 'taskBillNo', 'varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT''保养任务单号''', 1); + + +INSERT IGNORE INTO auth_menu (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, + `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) + VALUES (3711, '询价管理', 1673, 2, 'purInquiry', NULL, NULL, 1, 0, 'M', '0', '0', NULL, NULL, '超级用户', '2023-02-08 17:01:50', NULL, NULL, NULL); + +INSERT IGNORE INTO auth_menu (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, + `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) + VALUES (3712, '新增询价计划单', 3711, 1, 'purchase/purInquiry/purInquiry', 'purchase/purInquiry/purInquiry', '{\"pageType\":1}', 1, 0, 'C', + '0', '0', 'purchase:purInquiry:purInquiry', NULL, '超级用户', '2023-02-08 17:02:19', NULL, NULL, NULL); + +INSERT IGNORE INTO auth_menu (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, + `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) + VALUES (3713, '待审核询价计划单', 3711, 2, 'purchase/purInquiry/purInquiryReviewed', 'purchase/purInquiry/purInquiryReviewed', '{\"pageType\":1}', 1, 0, 'C', + '0', '0', 'purchase:purInquiry:purInquiryReviewed', NULL, '超级用户', '2023-02-08 17:02:19', NULL, NULL, NULL); + +INSERT IGNORE INTO auth_menu (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, + `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) + VALUES (3714, '已审核询价计划单', 3711, 3, 'purchase/purInquiry/purInquiryFinish', 'purchase/purInquiry/purInquiryFinish', '{\"pageType\":1}', 1, 0, 'C', + '0', '0', 'purchase:purInquiry:purInquiryFinish', NULL, '超级用户', '2023-02-08 17:02:19', NULL, NULL, NULL); + +INSERT IGNORE INTO auth_menu (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, + `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) + VALUES (3715, '待审核询价报价单', 3711, 5, 'purchase/purInquiryOffer/purInquiryOfferReviewed', 'purchase/purInquiryOffer/purInquiryOfferReviewed', '{\"pageType\":1}', 1, 0, 'C', + '0', '0', 'purchase:purInquiryOffer:purInquiryOfferReviewed', NULL, '超级用户', '2023-02-08 17:02:19', NULL, NULL, NULL); +INSERT IGNORE INTO auth_menu (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, + `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) + VALUES (3716, '已审核询价报价单', 3711, 6, 'purchase/purInquiryOffer/purInquiryOfferFinish', 'purchase/purInquiryOffer/purInquiryOfferFinish', '{\"pageType\":1}', 1, 0, 'C', + '0', '0', 'purchase:purInquiryOffer:purInquiryOfferFinish', NULL, '超级用户', '2023-02-08 17:02:19', NULL, NULL, NULL); + +INSERT IGNORE INTO auth_menu (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, `is_cache`, `menu_type`, + `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) + VALUES (3717, '待报价询价报价单', 3711, 4, 'purchase/purInquiryOffer/purInquiryOffer', 'purchase/purInquiryOffer/purInquiryOffer', '{\"pageType\":1}', 1, 0, 'C', + '0', '0', 'purchase:purInquiryOffer:purInquiryOffer', NULL, '超级用户', '2023-02-08 17:02:19', NULL, NULL, NULL); + +INSERT IGNORE INTO sys_approval_flow_config(`id`, `type`, `typeName`, `approvalSort`, `createUser`, `createTime`, `updateUser`, `updateTime`) +VALUES ('7', 'xjjh', '询价计划单据', 7, NULL, NULL, NULL, NULL); + +INSERT IGNORE INTO sys_approval_flow_config(`id`, `type`, `typeName`, `approvalSort`, `createUser`, `createTime`, `updateUser`, `updateTime`) +VALUES ('8', 'xjbj', '询价报价单据', 8, NULL, NULL, NULL, NULL); + +-- ---------------------------- +-- Table structure for pur_inquiry +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `pur_inquiry` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT, + `billNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '询价单据号', + `billDate` datetime(0) NULL DEFAULT NULL COMMENT '询价发起日期', + `status` tinyint(0) NULL DEFAULT NULL COMMENT '状态(1.草稿,2.未审核,3.已审核,4.已拒绝)', + `billType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `remark` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '询价说明', + `invCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '当前仓库', + `deptCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属部门', + `createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人', + `createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `auditUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '审核人', + `auditTime` datetime(0) NULL DEFAULT NULL COMMENT '审核时间', + `updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人', + `updateTime` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `auditRemark` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '审核说明', + `targetInvCode` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '目标仓库', + `targetDeptCode` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '目标部门', + `planBillNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成采购计划单据号', + `generatePlan` tinyint(0) NULL DEFAULT NULL COMMENT '是否已生成采购计划', + `emergency` tinyint(0) NULL DEFAULT NULL COMMENT '紧急情况', + `arrivalTime` datetime(0) NULL DEFAULT NULL COMMENT '期望到货时间', + `approvalFlowId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '审批表主键(关联审批流程主表)', + `pageType` int(0) NOT NULL DEFAULT 1 COMMENT '1:业务管理;2:设备管理', + `validUntil` datetime(0) NULL DEFAULT NULL COMMENT '询价截止时间', + `supIds` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '供应商ids', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 97 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '询价业务' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for pur_inquiry_item +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `pur_inquiry_item` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `orderIdFk` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NOT NULL COMMENT '关联询价编号', + `count` int(0) NULL DEFAULT NULL COMMENT '询价数量', + `price` decimal(10, 2) NULL DEFAULT NULL COMMENT '期望单价', + `totalPrice` decimal(10, 2) NULL DEFAULT NULL COMMENT '期望总价', + `attachmentPath` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '询价附件的路径或URL(如产品规格书、图纸等)', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '说明', + `productId` bigint(0) NULL DEFAULT NULL COMMENT '产品编码', + `productUniqueId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '产品唯一id uniqueId', + `nameCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '最小销售标识', + `batchNo` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '批次号', + `productName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '产品名称', + `productCompany` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '生产厂家', + `produceDate` date NULL DEFAULT NULL COMMENT '生产日期', + `expireDate` date NULL DEFAULT NULL COMMENT '过期时间', + `zczbhhzbapzbh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '注册证/备案号', + `ggxh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '规格型号', + `packRatio` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '包装级别', + `measname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '单位', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1791362555050999838 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_as_cs COMMENT = '询价业务明细表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for pur_inquiry_item_detail +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `pur_inquiry_item_detail` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `orderIdFk` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NOT NULL COMMENT '关联询价编号', + `orderItemIdFk` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NOT NULL COMMENT '关联询明细价id', + `supNumber` int(0) NOT NULL COMMENT '供应商报价第几次', + `supId` bigint(0) NOT NULL COMMENT '供应商id', + `supName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '供应商名称', + `supPerson` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '供应商联系人姓名', + `supPhone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '供应商联系人电话', + `supEmail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '供应商联系人电子邮件', + `supFilePath` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '供应商附件的路径或URL', + `supCount` int(0) NULL DEFAULT NULL COMMENT '供应商报价数量', + `supPrice` decimal(10, 2) NULL DEFAULT NULL COMMENT '供应商报价单价', + `supTotalPrice` decimal(10, 2) NULL DEFAULT NULL COMMENT '供应商报价总价', + `supRemark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '说明', + `accord` int(0) NULL DEFAULT NULL COMMENT '是否符合 1 符合 ;0 不符合', + `adopt` int(0) NULL DEFAULT NULL COMMENT '是否采纳 1 采纳 ;0 不采纳', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 235 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_as_cs COMMENT = '询价业务明细详情表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for pur_inquiry_offer +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `pur_inquiry_offer` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT, + `billNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '询价单据号', + `billDate` datetime(0) NULL DEFAULT NULL COMMENT '询价发起日期', + `status` tinyint(0) NULL DEFAULT NULL COMMENT '状态(1.草稿,2.未审核,3.已审核,4.已拒绝)', + `billType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `remark` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '询价说明', + `invCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '当前仓库', + `deptCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属部门', + `createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人', + `createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `auditUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '审核人', + `auditTime` datetime(0) NULL DEFAULT NULL COMMENT '审核时间', + `updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人', + `updateTime` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `auditRemark` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '审核说明', + `targetInvCode` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '目标仓库', + `targetDeptCode` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '目标部门', + `planBillNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成采购计划单据号', + `generatePlan` tinyint(0) NULL DEFAULT NULL COMMENT '是否已生成采购计划', + `emergency` tinyint(0) NULL DEFAULT NULL COMMENT '紧急情况', + `arrivalTime` datetime(0) NULL DEFAULT NULL COMMENT '期望到货时间', + `approvalFlowId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '审批表主键(关联审批流程主表)', + `pageType` int(0) NOT NULL DEFAULT 1 COMMENT '1:业务管理;2:设备管理', + `validUntil` datetime(0) NULL DEFAULT NULL COMMENT '询价截止时间', + `supIds` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '供应商ids', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 97 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '询价报价业务' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for pur_inquiry_offer_item +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `pur_inquiry_offer_item` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `orderIdFk` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NOT NULL COMMENT '关联询价编号', + `count` int(0) NULL DEFAULT NULL COMMENT '询价数量', + `price` decimal(10, 2) NULL DEFAULT NULL COMMENT '期望单价', + `totalPrice` decimal(10, 2) NULL DEFAULT NULL COMMENT '期望总价', + `attachmentPath` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '询价附件的路径或URL(如产品规格书、图纸等)', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '说明', + `productId` bigint(0) NULL DEFAULT NULL COMMENT '产品编码', + `productUniqueId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '产品唯一id uniqueId', + `nameCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '最小销售标识', + `batchNo` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '批次号', + `productName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '产品名称', + `productCompany` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '生产厂家', + `produceDate` date NULL DEFAULT NULL COMMENT '生产日期', + `expireDate` date NULL DEFAULT NULL COMMENT '过期时间', + `zczbhhzbapzbh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '注册证/备案号', + `ggxh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '规格型号', + `packRatio` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '包装级别', + `measname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '单位', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1791362555050999838 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_as_cs COMMENT = '询价报价业务明细表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Table structure for pur_inquiry_offer_item_detail +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `pur_inquiry_offer_item_detail` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `orderIdFk` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NOT NULL COMMENT '关联询价编号', + `orderItemIdFk` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NOT NULL COMMENT '关联询明细价id', + `supNumber` int(0) NOT NULL COMMENT '供应商报价第几次', + `supId` bigint(0) NOT NULL COMMENT '供应商id', + `supName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '供应商名称', + `supPerson` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '供应商联系人姓名', + `supPhone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '供应商联系人电话', + `supEmail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '供应商联系人电子邮件', + `supFilePath` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '供应商附件的路径或URL', + `supCount` int(0) NULL DEFAULT NULL COMMENT '供应商报价数量', + `supPrice` decimal(10, 2) NULL DEFAULT NULL COMMENT '供应商报价单价', + `supTotalPrice` decimal(10, 2) NULL DEFAULT NULL COMMENT '供应商报价总价', + `supRemark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '说明', + `accord` int(0) NULL DEFAULT NULL COMMENT '是否符合 1 符合 ;0 不符合', + `adopt` int(0) NULL DEFAULT NULL COMMENT '是否采纳 1 采纳 ;0 不采纳', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 250 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_as_cs COMMENT = '询价报价业务明细详情表' ROW_FORMAT = Dynamic; + + +CALL Pro_Temp_ColumnWork('pur_apply_detail', 'measname', + ' varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT''单位''', + 1); + +-- ---------------------------- +-- Table structure for pur_apply_argument +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `pur_apply_argument` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT, + `orderIdFk` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单外键', + `orderDetailIdFk` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单详情外键', + `applyBillNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '申领单据号', + `invCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '当前仓库', + `deptCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属部门', + `deptName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属部门名字', + `createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人', + `createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人', + `updateTime` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `productId` bigint(0) NULL DEFAULT NULL COMMENT '产品ID', + `productName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '产品名称', + `count` int(0) NULL DEFAULT NULL COMMENT '数量', + `measname` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL DEFAULT NULL COMMENT '单位', + `mainParam` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL COMMENT '配置要求及主要技术参数', + `applicationReason` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL COMMENT '申请理由', + `benefitPrediction` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL COMMENT '效益预测', + `supportCondition` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs NULL COMMENT '配套条件', + `supportPerson` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '使用科室人员配备情况', + `maintenanceForce` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '维修技术力量的保证或维修途径', + `fundSource` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '资金来源', + `feasibility` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '可行性论证', + `argStatus` int(0) NULL DEFAULT 0 COMMENT '论证状态', + `createName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人昵称', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 91 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; + +INSERT IGNORE INTO auth_menu(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, + `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, + `update_time`, `remark`) + VALUES (3718, '论证管理', 1703, 0, 'purApplyArgument', NULL, NULL, 1, 0, 'M', '0', '0', NULL, NULL, + '超级用户', '2023-02-08 17:01:50', NULL, NULL, NULL); +INSERT IGNORE INTO auth_menu(`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query_param`, `is_frame`, + `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) + VALUES (3719, '论证明细', 3718, 1, 'purchase/purApplyArgument/purApplyArgument', 'purchase/purApplyArgument/purApplyArgument', '{\"pageType\":2}', 1, 0, 'C', + '0', '0', 'purchase:purApplyArgument:purApplyArgument', NULL, '超级用户', '2023-02-08 17:02:19', NULL, NULL, NULL); + +INSERT IGNORE INTO sys_pdf_template(`id`, `name`, `type`, `module`, `param`, `path`, `rowCount`, `qrcodeCount`, `remark`, `create_time`, `update_time`, `jrxmlPath`, + `bussinessType`, `bussinessStatus`) VALUES (6, '设备申购论证单据模板', 2, 0, '', '', 10, 1, '', '2024-05-21 17:04:11', '2024-05-21 17:04:11', '', NULL, NULL); + + + +INSERT IGNORE INTO sys_pdf_template_relevance_statemen(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, `localAction`, `remark1`, `remark2`, `remark3`, `printType`, + `modelKey`, `updateTime`) VALUES (7, 33, 110, 0, NULL, '设备论证单据打印', NULL, NULL, NULL, NULL, 'reportForms', NULL); CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'vailHcType',