diff --git a/ruoyi-admin/src/main/resources/templates/inventory/execution/edit.html b/ruoyi-admin/src/main/resources/templates/inventory/execution/edit.html new file mode 100644 index 00000000..19d688dc --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/inventory/execution/edit.html @@ -0,0 +1,729 @@ + + + + + + + + +
+
+
+ 订单信息 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
项目名称*版本号*
项目编号* + + + + + + + + 最终客户* +
BG* + + 行业* + + 代表处* + +
进货商接口人* + Email联系方式* +
合同编号* + 执行单有效截止时间 + +
币种* + 总代进货金额 + + 总代出货金额 + +
要求到货时间* + + 公司直发 + +
下单通路* + + 供货商* + +
汇智责任人 + + Email联系方式*
进货商* + 进货商类型* + +
进货商联系人Email联系方式* +
其他特别说明 + +
+ +
+
+ 产品信息 +
+
+
+
+
+
+
+ 已生成出库单 +
+
+
+
+
+ +
+
+ + + + + + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/inventory/execution/generatedOuter.html b/ruoyi-admin/src/main/resources/templates/inventory/execution/generatedOuter.html new file mode 100644 index 00000000..ed0772bd --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/inventory/execution/generatedOuter.html @@ -0,0 +1,101 @@ + + + + + + + +
+
+ +
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+
+ + +
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/inventory/execution/track.html b/ruoyi-admin/src/main/resources/templates/inventory/execution/track.html new file mode 100644 index 00000000..fad93669 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/inventory/execution/track.html @@ -0,0 +1,310 @@ + + + + + + + + +
+ +
+
+
+
+
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • + +
  • + + + +
  • + +
  • + + +
  • +
  • + + +
  • + +
  • +
    + + +
    +
    + + - + + +
    +
  • + +
  • +  搜索 +  重置 +
  • +
+ + +
+
+
+ + +
+
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/inventory/info/info.html b/ruoyi-admin/src/main/resources/templates/inventory/info/info.html index cca872b5..ed7bc4f3 100644 --- a/ruoyi-admin/src/main/resources/templates/inventory/info/info.html +++ b/ruoyi-admin/src/main/resources/templates/inventory/info/info.html @@ -95,11 +95,17 @@ }, { field: 'availableCount', - title: '实时库存' + title: '实时库存', + formatter: function (value, row, index) { + return value ??0; + } }, { - field: 'reservedCount', - title: '累计发货' + field: 'cumulativeCount', + title: '累计发货', + formatter: function (value, row, index) { + return value ??0; + } }, { field: 'vendorName', diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/InventoryExecutionController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/InventoryExecutionController.java new file mode 100644 index 00000000..d9bfc0ec --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/InventoryExecutionController.java @@ -0,0 +1,72 @@ +package com.ruoyi.sip.controller; + +import cn.hutool.core.collection.CollUtil; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.ShiroUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.sip.domain.*; +import com.ruoyi.sip.dto.warehouse.WarehouseInnerExcelDto; +import com.ruoyi.sip.flowable.domain.Todo; +import com.ruoyi.sip.service.*; +import com.ruoyi.sip.vo.ExecutionOrderVo; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.Collections; +import java.util.List; + +/** + * 入库单信息Controller + * + * @author ruoyi + * @date 2025-08-06 + */ +@Controller +@RequestMapping("/inventory/execution") +public class InventoryExecutionController extends BaseController { + private String prefix = "inventory/execution"; + + @Autowired + private IProjectOrderInfoService orderInfoService; + @Autowired + private IExecutionTrackService service; + + @RequiresPermissions("inventory:inner:view") + @GetMapping() + public String inner() { + return prefix + "/track"; + } + + + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(ProjectOrderInfo projectOrderInfo) { + startPage(); + projectOrderInfo.setOrderStatus(ProjectOrderInfo.OrderStatus.APPROVE_COMPLETE.getCode()); + List list = orderInfoService.selectProjectOrderInfoList(projectOrderInfo); + return getDataTable(list); + } + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Long id, ModelMap mmap) + { + ExecutionOrderVo vo = service.selectInfo(id); + mmap.put("projectOrderInfo", vo.getProjectOrderInfo()); + mmap.put("productDetailList", vo.getProductDetailList()); + mmap.put("inventoryOuterList", vo.getInventoryOuterList()); + + + return prefix + "/edit"; + } + + + +} diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/InventoryInfoController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/InventoryInfoController.java index ae6e220f..31176637 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/InventoryInfoController.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/InventoryInfoController.java @@ -1,8 +1,16 @@ package com.ruoyi.sip.controller; +import java.util.Collections; import java.util.List; -import com.ruoyi.sip.dto.inventory.GroupInfo; +import cn.hutool.core.collection.CollUtil; +import com.ruoyi.common.utils.ShiroUtils; +import com.ruoyi.sip.domain.ProductInfo; +import com.ruoyi.sip.domain.ProjectInfo; +import com.ruoyi.sip.domain.VendorInfo; +import com.ruoyi.sip.service.IProductInfoService; +import com.ruoyi.sip.service.IVendorInfoService; +import liquibase.pro.packaged.A; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -35,6 +43,10 @@ public class InventoryInfoController extends BaseController @Autowired private IInventoryInfoService inventoryInfoService; + @Autowired + private IProductInfoService productInfoService; + @Autowired + private IVendorInfoService vendorInfoService; @RequiresPermissions("inventory:info:view") @GetMapping() @@ -57,10 +69,17 @@ public class InventoryInfoController extends BaseController } @PostMapping("/group/list") @ResponseBody - public TableDataInfo groupList(GroupInfo info) + public TableDataInfo groupList(ProductInfo info) { startPage(); - List list = inventoryInfoService.listGroup(info); +// List current = vendorInfoService.current(); +// if (CollUtil.isEmpty(current)) { +// return getDataTable(Collections.emptyList()); +// } +// if (!ShiroUtils.getSysUser().isAdmin()) { +// info.setVendorCode(current.get(0).getVendorCode()); +// } + List list = productInfoService.selectProductInfoList(info); return getDataTable(list); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/InventoryOuterController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/InventoryOuterController.java new file mode 100644 index 00000000..34ec3729 --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/InventoryOuterController.java @@ -0,0 +1,128 @@ +package com.ruoyi.sip.controller; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.sip.domain.InventoryOuter; +import com.ruoyi.sip.service.IInventoryOuterService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 出库单Controller + * + * @author ch + * @date 2025-08-08 + */ +@Controller +@RequestMapping("/inventory/outer") +public class InventoryOuterController extends BaseController +{ + private String prefix = "inventory/outer"; + + @Autowired + private IInventoryOuterService inventoryOuterService; + + @RequiresPermissions("inventory:outer:view") + @GetMapping() + public String outer() + { + return prefix + "/outer"; + } + + /** + * 查询出库单列表 + */ + @RequiresPermissions("inventory:outer:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(InventoryOuter inventoryOuter) + { + startPage(); + List list = inventoryOuterService.selectInventoryOuterList(inventoryOuter); + return getDataTable(list); + } + + /** + * 导出出库单列表 + */ + @RequiresPermissions("inventory:outer:export") + @Log(title = "出库单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public AjaxResult export(InventoryOuter inventoryOuter) + { + List list = inventoryOuterService.selectInventoryOuterList(inventoryOuter); + ExcelUtil util = new ExcelUtil(InventoryOuter.class); + return util.exportExcel(list, "出库单数据"); + } + + /** + * 新增出库单 + */ + @RequiresPermissions("inventory:outer:add") + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存出库单 + */ + @RequiresPermissions("inventory:outer:add") + @Log(title = "出库单", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(InventoryOuter inventoryOuter) + { + return toAjax(inventoryOuterService.insertInventoryOuter(inventoryOuter)); + } + + /** + * 修改出库单 + */ + @RequiresPermissions("inventory:outer:edit") + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Long id, ModelMap mmap) + { + InventoryOuter inventoryOuter = inventoryOuterService.selectInventoryOuterById(id); + mmap.put("inventoryOuter", inventoryOuter); + return prefix + "/edit"; + } + + /** + * 修改保存出库单 + */ + @RequiresPermissions("inventory:outer:edit") + @Log(title = "出库单", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(InventoryOuter inventoryOuter) + { + return toAjax(inventoryOuterService.updateInventoryOuter(inventoryOuter)); + } + + /** + * 删除出库单 + */ + @RequiresPermissions("inventory:outer:remove") + @Log(title = "出库单", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(inventoryOuterService.deleteInventoryOuterByIds(ids)); + } +} diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/InventoryOuter.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/InventoryOuter.java new file mode 100644 index 00000000..8867c5a1 --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/InventoryOuter.java @@ -0,0 +1,71 @@ +package com.ruoyi.sip.domain; + +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.ToString; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 出库单对象 oms_inventory_outer + * + * @author ch + * @date 2025-08-08 + */ +@Data +@ToString +public class InventoryOuter extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** */ + private Long id; + + /** 出库单号 */ + @Excel(name = "出库单号") + private String outerCode; + + /** 产品BOM编码 */ + @Excel(name = "产品BOM编码") + private String productCode; + private List productCodeList; + + /** 数量 */ + @Excel(name = "数量") + private Long quantity; + + /** 出库状态 */ + @Excel(name = "出库状态") + private String outerStatus; + + /** 订单编码 */ + @Excel(name = "订单编码") + private String orderCode; + + /** 联系人 */ + @Excel(name = "联系人") + private String contactPerson; + + /** 联系电话 */ + @Excel(name = "联系电话") + private String contactPhone; + + /** 联系地址 */ + @Excel(name = "联系地址") + private String contactAddress; + + /** 发货时间 */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date deliveryTime; + + /** 发货时间选择(0:立即发货 1:自定义) */ + @Excel(name = "发货时间选择(0:立即发货 1:自定义)") + private String deliveryTimeType; + +} diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProductInfo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProductInfo.java index 3929ad97..5b799109 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProductInfo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProductInfo.java @@ -62,6 +62,8 @@ public class ProductInfo extends BaseEntity private String serialNumber; private String vendorCode; private String vendorName; + private Long availableCount; + private Long cumulativeCount; @Getter public enum ProductTypeEnum { /** diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java index 32babcb0..1dccc741 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java @@ -129,6 +129,7 @@ public class ProjectOrderInfo extends BaseEntity { private String partnerCode; @Excel(name = "进货商") private String partnerName; + private String projectPartnerName; /** * 实际进货金额 @@ -216,6 +217,12 @@ public class ProjectOrderInfo extends BaseEntity { * 模板 0:直签 1:总代 2 定制开发 */ private String processTemplate; + private String deliveryStatus; + private String signStatus; + private String outerStatus; + private Date approveTime; + private Date approveTimeStart; + private Date approveTimeEnd; private BigDecimal discountFold; @@ -286,4 +293,57 @@ public class ProjectOrderInfo extends BaseEntity { } } + @Getter + public enum DeliveryStatusEnum { + NOT_DELIVERY("0", "未发货"), + PART_DELIVERY("1", "部分发货"), + ALL_DELIVERY("2", "全部发货"), + + ; + + private final String value; + private final String code; + + DeliveryStatusEnum(String code, String value) { + this.code = code; + this.value = value; + } + + } + @Getter + public enum SignStatusEnum { + NOT_SIGN("0", "未签收"), + SIGN("1", "已签收"), + + + ; + + private final String value; + private final String code; + + SignStatusEnum(String code, String value) { + this.code = code; + this.value = value; + } + + } + @Getter + public enum OuterStatusEnum { + NOT_OUTER("0", "未出库"), + PART_OUTER("1", "部分出库"), + ALL_OUTER("2", "全部出库"), + RETURN("3", "已退回"), + + + ; + + private final String value; + private final String code; + + OuterStatusEnum(String code, String value) { + this.code = code; + this.value = value; + } + + } } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/GroupInfo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/ProductDetail.java similarity index 55% rename from ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/GroupInfo.java rename to ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/ProductDetail.java index 4a25c018..1550d48d 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/GroupInfo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/ProductDetail.java @@ -1,35 +1,28 @@ package com.ruoyi.sip.dto.inventory; -import com.ruoyi.common.annotation.Excel; import lombok.Data; /** * @author : ch * @version : 1.0 - * @ClassName : GroupInfo + * @ClassName : ProductDetail * @Description : - * @DATE : Created in 17:32 2025/8/7 + * @DATE : Created in 11:28 2025/8/8 *
       Copyright: Copyright(c) 2025     
*
       Company :   	紫光汇智信息技术有限公司		           
* Modification History: * Date Author Version Discription * -------------------------------------------------------------------------- - * 2025/08/07 ch 1.0 Why & What is modified: <修改原因描述> * + * 2025/08/08 ch 1.0 Why & What is modified: <修改原因描述> * */ @Data -public class GroupInfo { - @Excel(name = "产品编码") +public class ProductDetail { private String productCode; - @Excel(name = "产品型号") - private String model; - @Excel(name = "产品名称") - private String productName; - @Excel(name = "实时库存") - private Long availableCount; - @Excel(name = "累计发货") - private Long reservedCount; - @Excel(name = "制造商") private String vendorName; - + private String model; + private Long quantity; + private Long generatedQuantity; + private Long confirmQuantity; + private Long availableCount; } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/InventoryInfoMapper.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/InventoryInfoMapper.java index c5a17f44..4d4ddfb5 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/InventoryInfoMapper.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/InventoryInfoMapper.java @@ -2,7 +2,7 @@ package com.ruoyi.sip.mapper; import java.util.List; import com.ruoyi.sip.domain.InventoryInfo; -import com.ruoyi.sip.dto.inventory.GroupInfo; +import org.apache.ibatis.annotations.Param; /** * 产品库存Mapper接口 @@ -61,6 +61,4 @@ public interface InventoryInfoMapper public int deleteInventoryInfoByIds(String[] ids); void saveBatch(List inventoryInfoList); - - List listGroup(GroupInfo inventoryInfo); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/InventoryOuterMapper.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/InventoryOuterMapper.java new file mode 100644 index 00000000..b7b7db93 --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/InventoryOuterMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.sip.mapper; + +import java.util.List; +import com.ruoyi.sip.domain.InventoryOuter; + +/** + * 出库单Mapper接口 + * + * @author ch + * @date 2025-08-08 + */ +public interface InventoryOuterMapper +{ + /** + * 查询出库单 + * + * @param id 出库单主键 + * @return 出库单 + */ + public InventoryOuter selectInventoryOuterById(Long id); + + /** + * 查询出库单列表 + * + * @param inventoryOuter 出库单 + * @return 出库单集合 + */ + public List selectInventoryOuterList(InventoryOuter inventoryOuter); + + /** + * 新增出库单 + * + * @param inventoryOuter 出库单 + * @return 结果 + */ + public int insertInventoryOuter(InventoryOuter inventoryOuter); + + /** + * 修改出库单 + * + * @param inventoryOuter 出库单 + * @return 结果 + */ + public int updateInventoryOuter(InventoryOuter inventoryOuter); + + /** + * 删除出库单 + * + * @param id 出库单主键 + * @return 结果 + */ + public int deleteInventoryOuterById(Long id); + + /** + * 批量删除出库单 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteInventoryOuterByIds(String[] ids); +} diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/ProductInfoMapper.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/ProductInfoMapper.java index 29abe5c7..7c1c257b 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/ProductInfoMapper.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/ProductInfoMapper.java @@ -70,4 +70,6 @@ public interface ProductInfoMapper List query(MaintenanceRecordsDto dto); + void updateAvailableCount(@Param("quantity") Long quantity, @Param("productCode") String productCode); + void updateCumulativeCount(@Param("quantity") Long quantity, @Param("productCode") String productCode); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IExecutionTrackService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IExecutionTrackService.java new file mode 100644 index 00000000..d88dd219 --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IExecutionTrackService.java @@ -0,0 +1,31 @@ +package com.ruoyi.sip.service; + + +import com.ruoyi.sip.domain.ProjectOrderInfo; +import com.ruoyi.sip.domain.ProjectProductInfo; +import com.ruoyi.sip.mapper.ProjectOrderInfoMapper; +import com.ruoyi.sip.vo.ExecutionOrderVo; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author : ch + * @version : 1.0 + * @ClassName : IExecutionTrackService + * @Description : + * @DATE : Created in 11:05 2025/8/8 + *
       Copyright: Copyright(c) 2025     
+ *
       Company :   	紫光汇智信息技术有限公司		           
+ * Modification History: + * Date Author Version Discription + * -------------------------------------------------------------------------- + * 2025/08/08 ch 1.0 Why & What is modified: <修改原因描述> * + */ +public interface IExecutionTrackService { + + ExecutionOrderVo selectInfo(Long id); +} diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IInventoryInfoService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IInventoryInfoService.java index 50d5202d..a827170f 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IInventoryInfoService.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IInventoryInfoService.java @@ -2,7 +2,6 @@ package com.ruoyi.sip.service; import java.util.List; import com.ruoyi.sip.domain.InventoryInfo; -import com.ruoyi.sip.dto.inventory.GroupInfo; import com.ruoyi.sip.dto.warehouse.WarehouseInnerExcelDto; /** @@ -72,5 +71,5 @@ public interface IInventoryInfoService void saveBatch(List inventoryInfoList); - List listGroup(GroupInfo inventoryInfo); + } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IInventoryOuterService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IInventoryOuterService.java new file mode 100644 index 00000000..6aa5f11a --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IInventoryOuterService.java @@ -0,0 +1,61 @@ +package com.ruoyi.sip.service; + +import java.util.List; +import com.ruoyi.sip.domain.InventoryOuter; + +/** + * 出库单Service接口 + * + * @author ch + * @date 2025-08-08 + */ +public interface IInventoryOuterService +{ + /** + * 查询出库单 + * + * @param id 出库单主键 + * @return 出库单 + */ + public InventoryOuter selectInventoryOuterById(Long id); + + /** + * 查询出库单列表 + * + * @param inventoryOuter 出库单 + * @return 出库单集合 + */ + public List selectInventoryOuterList(InventoryOuter inventoryOuter); + + /** + * 新增出库单 + * + * @param inventoryOuter 出库单 + * @return 结果 + */ + public int insertInventoryOuter(InventoryOuter inventoryOuter); + + /** + * 修改出库单 + * + * @param inventoryOuter 出库单 + * @return 结果 + */ + public int updateInventoryOuter(InventoryOuter inventoryOuter); + + /** + * 批量删除出库单 + * + * @param ids 需要删除的出库单主键集合 + * @return 结果 + */ + public int deleteInventoryOuterByIds(String ids); + + /** + * 删除出库单信息 + * + * @param id 出库单主键 + * @return 结果 + */ + public int deleteInventoryOuterById(Long id); +} diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProductInfoService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProductInfoService.java index 947a7903..cbf11b36 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProductInfoService.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProductInfoService.java @@ -2,7 +2,6 @@ package com.ruoyi.sip.service; import java.util.List; -import com.ruoyi.sip.controller.ProductInfoController; import com.ruoyi.sip.domain.MaintenanceRecordsDto; import com.ruoyi.sip.domain.ProductInfo; @@ -64,4 +63,6 @@ public interface IProductInfoService List query(MaintenanceRecordsDto dto); List selectProductInfoByCodeList(List productCodeList); + + void updateAvailableCount(Long quantity, String productCode); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ExecutionTrackServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ExecutionTrackServiceImpl.java new file mode 100644 index 00000000..5299e10a --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ExecutionTrackServiceImpl.java @@ -0,0 +1,149 @@ +package com.ruoyi.sip.service.impl; + + +import com.ruoyi.sip.domain.InventoryOuter; +import com.ruoyi.sip.domain.ProductInfo; +import com.ruoyi.sip.domain.ProjectOrderInfo; +import com.ruoyi.sip.domain.ProjectProductInfo; +import com.ruoyi.sip.dto.inventory.ProductDetail; +import com.ruoyi.sip.mapper.ProjectOrderInfoMapper; +import com.ruoyi.sip.service.*; +import com.ruoyi.sip.vo.ExecutionOrderVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @author : ch + * @version : 1.0 + * @ClassName : ExecutionTrackServiceImpl + * @Description : + * @DATE : Created in 11:05 2025/8/8 + *
       Copyright: Copyright(c) 2025     
+ *
       Company :   	紫光汇智信息技术有限公司		           
+ * Modification History: + * Date Author Version Discription + * -------------------------------------------------------------------------- + * 2025/08/08 ch 1.0 Why & What is modified: <修改原因描述> * + */ +@Service +public class ExecutionTrackServiceImpl implements IExecutionTrackService { + @Resource + private ProjectOrderInfoMapper projectOrderInfoMapper; + @Autowired + private IProjectProductInfoService projectProductInfoService; + @Autowired + private IInventoryInfoService inventoryInfoService; + @Autowired + private IProductInfoService productInfoService; + @Autowired + private IInventoryOuterService outerService; + + @Override + public ExecutionOrderVo selectInfo(Long id) { + ExecutionOrderVo vo = new ExecutionOrderVo(); + //基础信息 + ProjectOrderInfo projectOrderInfo = projectOrderInfoMapper.selectProjectOrderInfoById(id); + vo.setProjectOrderInfo(projectOrderInfo); + //产品清单 + List projectProductInfos = projectProductInfoService.selectProjectProductInfoListByProjectId(Collections.singletonList(projectOrderInfo.getProjectId())); + // 筛选软件或硬件产品并合并相同产品代码的记录 + List productDetails = projectProductInfos.stream() + .filter(item -> item.getType().equals(ProductInfo.ProductTypeEnum.HARDWARE.getType()) || + item.getType().equals(ProductInfo.ProductTypeEnum.SOFTWARE.getType())) + .collect(Collectors.groupingBy(ProjectProductInfo::getProductBomCode)) + .entrySet().stream() + .map(entry -> { + ProductDetail detail = new ProductDetail(); + String productCode = entry.getKey(); + List items = entry.getValue(); + + // 合并数量 + Long totalQuantity = items.stream() + .mapToLong(ProjectProductInfo::getQuantity) + .sum(); + + detail.setProductCode(productCode); + detail.setQuantity(totalQuantity); + + // 设置型号(取第一个匹配项的型号) + if (!items.isEmpty()) { + detail.setModel(items.get(0).getModel()); + } + + return detail; + }) + .collect(Collectors.toList()); + + // 获取产品代码列表 + List productCodeList = productDetails.stream() + .map(ProductDetail::getProductCode) + .collect(Collectors.toList()); + + // 查询库存信息 + List groupInfos = productInfoService.selectProductInfoByCodeList(productCodeList); + + // 将库存信息映射到产品详情中 + if (groupInfos != null && !groupInfos.isEmpty()) { + Map inventoryMap = groupInfos.stream() + .collect(Collectors.toMap(ProductInfo::getProductCode, + Function.identity(), (v1, v2) -> v1)); + + for (ProductDetail detail : productDetails) { + ProductInfo info = inventoryMap.get(detail.getProductCode()); + detail.setAvailableCount((info != null && info.getAvailableCount() != null) ? info.getAvailableCount() : 0L); + detail.setVendorName((info != null && info.getVendorName() != null) ? info.getVendorName():"" ); + } + + } else { + productDetails.forEach(detail -> detail.setAvailableCount(0L)); + } + + // 查询出库单信息 + InventoryOuter inventoryOuter = new InventoryOuter(); + inventoryOuter.setOuterCode(projectOrderInfo.getOrderCode()); + List inventoryOuters = outerService.selectInventoryOuterList(inventoryOuter); + vo.setInventoryOuterList(inventoryOuters); + // 根据出库单状态设置generatedQuantity和confirmQuantity + if (inventoryOuters != null && !inventoryOuters.isEmpty()) { + Map> outersByProductCode = inventoryOuters.stream() + .collect(Collectors.groupingBy(InventoryOuter::getProductCode)); + + productDetails.forEach(detail -> { + List outers = outersByProductCode.get(detail.getProductCode()); + if (outers != null) { + // generatedQuantity: 状态为"已生成"(假设为"1")的出库单数量总和 + Long generated = outers.stream() + .filter(outer -> "1".equals(outer.getOuterStatus())) + .mapToLong(InventoryOuter::getQuantity) + .sum(); + + // confirmQuantity: 状态为"已确认"(假设为"2")的出库单数量总和 + Long confirmed = outers.stream() + .filter(outer -> "2".equals(outer.getOuterStatus())) + .mapToLong(InventoryOuter::getQuantity) + .sum(); + + detail.setGeneratedQuantity(generated); + detail.setConfirmQuantity(confirmed); + } else { + detail.setGeneratedQuantity(0L); + detail.setConfirmQuantity(0L); + } + }); + } else { + productDetails.forEach(detail -> { + detail.setGeneratedQuantity(0L); + detail.setConfirmQuantity(0L); + }); + } + vo.setProductDetailList(productDetails); + return vo; + } +} diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/InventoryInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/InventoryInfoServiceImpl.java index 2f224146..4fb209d3 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/InventoryInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/InventoryInfoServiceImpl.java @@ -1,28 +1,26 @@ package com.ruoyi.sip.service.impl; +import cn.hutool.core.collection.CollUtil; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.sip.domain.InventoryInfo; +import com.ruoyi.sip.domain.OmsWarehouseInfo; +import com.ruoyi.sip.domain.ProductInfo; +import com.ruoyi.sip.dto.warehouse.WarehouseInnerExcelDto; +import com.ruoyi.sip.mapper.InventoryInfoMapper; +import com.ruoyi.sip.service.IInventoryInfoService; +import com.ruoyi.sip.service.IOmsWarehouseInfoService; +import com.ruoyi.sip.service.IProductInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import java.util.Collections; import java.util.List; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; -import cn.hutool.core.collection.CollUtil; -import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.sip.domain.OmsWarehouseInfo; -import com.ruoyi.sip.domain.ProductInfo; -import com.ruoyi.sip.dto.inventory.GroupInfo; -import com.ruoyi.sip.dto.warehouse.WarehouseInnerExcelDto; -import com.ruoyi.sip.service.IOmsWarehouseInfoService; -import com.ruoyi.sip.service.IProductInfoService; -import liquibase.pro.packaged.A; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.ruoyi.sip.mapper.InventoryInfoMapper; -import com.ruoyi.sip.domain.InventoryInfo; -import com.ruoyi.sip.service.IInventoryInfoService; -import com.ruoyi.common.core.text.Convert; - /** * 产品库存Service业务层处理 * @@ -151,8 +149,5 @@ public class InventoryInfoServiceImpl implements IInventoryInfoService { inventoryInfoMapper.saveBatch(inventoryInfoList); } - @Override - public List listGroup(GroupInfo inventoryInfo) { - return inventoryInfoMapper.listGroup(inventoryInfo); - } + } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/InventoryOuterServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/InventoryOuterServiceImpl.java new file mode 100644 index 00000000..7f8d4d24 --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/InventoryOuterServiceImpl.java @@ -0,0 +1,97 @@ +package com.ruoyi.sip.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.sip.mapper.InventoryOuterMapper; +import com.ruoyi.sip.domain.InventoryOuter; +import com.ruoyi.sip.service.IInventoryOuterService; +import com.ruoyi.common.core.text.Convert; + +/** + * 出库单Service业务层处理 + * + * @author ch + * @date 2025-08-08 + */ +@Service +public class InventoryOuterServiceImpl implements IInventoryOuterService +{ + @Autowired + private InventoryOuterMapper inventoryOuterMapper; + + /** + * 查询出库单 + * + * @param id 出库单主键 + * @return 出库单 + */ + @Override + public InventoryOuter selectInventoryOuterById(Long id) + { + return inventoryOuterMapper.selectInventoryOuterById(id); + } + + /** + * 查询出库单列表 + * + * @param inventoryOuter 出库单 + * @return 出库单 + */ + @Override + public List selectInventoryOuterList(InventoryOuter inventoryOuter) + { + return inventoryOuterMapper.selectInventoryOuterList(inventoryOuter); + } + + /** + * 新增出库单 + * + * @param inventoryOuter 出库单 + * @return 结果 + */ + @Override + public int insertInventoryOuter(InventoryOuter inventoryOuter) + { + inventoryOuter.setCreateTime(DateUtils.getNowDate()); + return inventoryOuterMapper.insertInventoryOuter(inventoryOuter); + } + + /** + * 修改出库单 + * + * @param inventoryOuter 出库单 + * @return 结果 + */ + @Override + public int updateInventoryOuter(InventoryOuter inventoryOuter) + { + inventoryOuter.setUpdateTime(DateUtils.getNowDate()); + return inventoryOuterMapper.updateInventoryOuter(inventoryOuter); + } + + /** + * 批量删除出库单 + * + * @param ids 需要删除的出库单主键 + * @return 结果 + */ + @Override + public int deleteInventoryOuterByIds(String ids) + { + return inventoryOuterMapper.deleteInventoryOuterByIds(Convert.toStrArray(ids)); + } + + /** + * 删除出库单信息 + * + * @param id 出库单主键 + * @return 结果 + */ + @Override + public int deleteInventoryOuterById(Long id) + { + return inventoryOuterMapper.deleteInventoryOuterById(id); + } +} diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsInventoryInnerServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsInventoryInnerServiceImpl.java index d453f9ce..1b8f71a0 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsInventoryInnerServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsInventoryInnerServiceImpl.java @@ -7,16 +7,14 @@ import java.util.Objects; import java.util.stream.Collectors; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DateUtil; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.sip.domain.InventoryInfo; import com.ruoyi.sip.domain.VendorInfo; -import com.ruoyi.sip.dto.warehouse.WarehouseInnerExcelDto; -import com.ruoyi.sip.mapper.InventoryInfoMapper; import com.ruoyi.sip.service.IInventoryInfoService; +import com.ruoyi.sip.service.IProductInfoService; import com.ruoyi.sip.service.IVendorInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,6 +22,7 @@ import com.ruoyi.sip.mapper.OmsInventoryInnerMapper; import com.ruoyi.sip.domain.OmsInventoryInner; import com.ruoyi.sip.service.IOmsInventoryInnerService; import com.ruoyi.common.core.text.Convert; +import org.springframework.transaction.annotation.Transactional; /** * 入库单信息Service业务层处理 @@ -32,6 +31,7 @@ import com.ruoyi.common.core.text.Convert; * @date 2025-08-06 */ @Service +@Transactional(rollbackFor = Exception.class) public class OmsInventoryInnerServiceImpl implements IOmsInventoryInnerService { @Autowired private OmsInventoryInnerMapper omsInventoryInnerMapper; @@ -40,6 +40,8 @@ public class OmsInventoryInnerServiceImpl implements IOmsInventoryInnerService { private IInventoryInfoService inventoryInfoService; @Autowired private IVendorInfoService vendorInfoService; + @Autowired + private IProductInfoService productInfoService; /** * 查询入库单信息 @@ -105,6 +107,7 @@ public class OmsInventoryInnerServiceImpl implements IOmsInventoryInnerService { item.setCreateTime(nowDate); }); inventoryInfoService.saveBatch(inventoryInfoList); + productInfoService.updateAvailableCount(omsInventoryInner.getQuantity(),omsInventoryInner.getProductCode()); return omsInventoryInnerMapper.insertOmsInventoryInner(omsInventoryInner); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProductInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProductInfoServiceImpl.java index f20eef2a..9ae02a16 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProductInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProductInfoServiceImpl.java @@ -124,4 +124,9 @@ public class ProductInfoServiceImpl implements IProductInfoService } return productInfoMapper.selectProductInfoByCodeList(productCodeList); } + + @Override + public void updateAvailableCount(Long quantity, String productCode) { + productInfoMapper.updateAvailableCount(quantity,productCode); + } } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java index a442a205..2da09bff 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java @@ -667,6 +667,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To headerList.add(Collections.singletonList("最终客户")); headerList.add(Collections.singletonList("BG")); headerList.add(Collections.singletonList("行业")); + headerList.add(Collections.singletonList("运作方")); headerList.add(Collections.singletonList("进货商接口人")); // headerList.add(Collections.singletonList("Email")); @@ -830,7 +831,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To totalPrice = processProducts(deployList, maxDeployService, row, totalPrice); //添加维保 totalPrice = processProducts(maintenanceList, maxMaintenanceService, row, totalPrice); - int insertIndex=17; + int insertIndex=18; row.add(insertIndex++, wssDto.getQuantity().toString()); row.add(insertIndex++, wssDto.getAllPrice().toString()); row.add(insertIndex++, wspDto.getQuantity().toString()); @@ -883,7 +884,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To row.add(DictUtils.getDictLabel("bg_type", info.getBgProperty())); row.add(info.getIndustryType()); - + row.add(info.getProjectPartnerName()); row.add(info.getBusinessPerson()); // row.add(info.getBusinessEmail()); row.add(info.getBusinessPhone()); @@ -1015,6 +1016,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To ProjectOrderInfo dbProjectOrderInfo = projectOrderInfoMapper.selectProjectOrderInfoByCode(todo.getBusinessKey()); ProjectOrderInfo projectOrderInfo = new ProjectOrderInfo(); projectOrderInfo.setOrderStatus(ProjectOrderInfo.OrderStatus.APPROVE_COMPLETE.getCode()); + projectOrderInfo.setApproveTime(DateUtils.getNowDate()); //修改执行单时间 只有直签且有现金折扣的时间才是配置时间 否则默认30天 int addHour = ProjectOrderInfo.ProcessTemplateEnum.DIRECT_SIGNING.getCode().equals(dbProjectOrderInfo.getProcessTemplate()) && dbProjectOrderInfo.getDiscountFold() != null && dbProjectOrderInfo.getDiscountFold().compareTo(BigDecimal.ONE) < 0 ? endHour : 30; @@ -1026,7 +1028,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To // projectInfo if (dbProjectOrderInfo.getDiscountFold().compareTo(BigDecimal.ONE)!=0){ - productInfoService.calcByDiscountFold(dbProjectOrderInfo.getDiscountFold(), projectOrderInfo.getProjectId()); + productInfoService.calcByDiscountFold(dbProjectOrderInfo.getDiscountFold(), dbProjectOrderInfo.getProjectId()); } //todo 总代 发 代理商 商务 执行单发 商务 制造商 diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/ExecutionOrderVo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/ExecutionOrderVo.java new file mode 100644 index 00000000..708a2f5e --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/ExecutionOrderVo.java @@ -0,0 +1,30 @@ +package com.ruoyi.sip.vo; + + +import com.ruoyi.sip.domain.InventoryOuter; +import com.ruoyi.sip.domain.ProductInfo; +import com.ruoyi.sip.domain.ProjectOrderInfo; +import com.ruoyi.sip.dto.inventory.ProductDetail; +import lombok.Data; + +import java.util.List; + +/** + * @author : ch + * @version : 1.0 + * @ClassName : ExecutionOrderVo + * @Description : + * @DATE : Created in 15:05 2025/8/8 + *
       Copyright: Copyright(c) 2025     
+ *
       Company :   	紫光汇智信息技术有限公司		           
+ * Modification History: + * Date Author Version Discription + * -------------------------------------------------------------------------- + * 2025/08/08 ch 1.0 Why & What is modified: <修改原因描述> * + */ +@Data +public class ExecutionOrderVo { + private ProjectOrderInfo projectOrderInfo; + private List productDetailList; + private List inventoryOuterList; +} diff --git a/ruoyi-sip/src/main/resources/mapper/inventory/InventoryInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/inventory/InventoryInfoMapper.xml index 6ae6ce49..e56a634a 100644 --- a/ruoyi-sip/src/main/resources/mapper/inventory/InventoryInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/inventory/InventoryInfoMapper.xml @@ -47,23 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where t1.id = #{id} - insert into oms_inventory_info diff --git a/ruoyi-sip/src/main/resources/mapper/inventory/InventoryOuterMapper.xml b/ruoyi-sip/src/main/resources/mapper/inventory/InventoryOuterMapper.xml new file mode 100644 index 00000000..43086a50 --- /dev/null +++ b/ruoyi-sip/src/main/resources/mapper/inventory/InventoryOuterMapper.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + select id, outer_code, product_code, quantity, outer_status, order_code, contact_person, contact_phone, contact_address, delivery_time, delivery_time_type, create_by, update_by, create_time, update_time from oms_inventory_outer + + + + + + + + insert into oms_inventory_outer + + outer_code, + product_code, + quantity, + outer_status, + order_code, + contact_person, + contact_phone, + contact_address, + delivery_time, + delivery_time_type, + create_by, + update_by, + create_time, + update_time, + + + #{outerCode}, + #{productCode}, + #{quantity}, + #{outerStatus}, + #{orderCode}, + #{contactPerson}, + #{contactPhone}, + #{contactAddress}, + #{deliveryTime}, + #{deliveryTimeType}, + #{createBy}, + #{updateBy}, + #{createTime}, + #{updateTime}, + + + + + update oms_inventory_outer + + outer_code = #{outerCode}, + product_code = #{productCode}, + quantity = #{quantity}, + outer_status = #{outerStatus}, + order_code = #{orderCode}, + contact_person = #{contactPerson}, + contact_phone = #{contactPhone}, + contact_address = #{contactAddress}, + delivery_time = #{deliveryTime}, + delivery_time_type = #{deliveryTimeType}, + create_by = #{createBy}, + update_by = #{updateBy}, + create_time = #{createTime}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from oms_inventory_outer where id = #{id} + + + + delete from oms_inventory_outer where id in + + #{id} + + + + \ No newline at end of file diff --git a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml index 87064e58..fce80414 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml @@ -40,16 +40,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, project_id,province, city, business_person, business_email, business_phone, order_code, currencyType, shipment_amount, actual_purchase_amount, order_end_time, delivery_time, company_delivery, notifier, notifier_email, notifier_phone, duty, duty_email, duty_phone, order_channel, partner_code, supplier,notifier_address, - remark, order_status, create_by, create_time, update_by, update_time,version_code,process_type,process_template,discount_fold from project_order_info t1 + remark, order_status, create_by, create_time, update_by, update_time,version_code,process_type,process_template,discount_fold, + delivery_status,sign_status,outer_status,approve_time + + from project_order_info t1 select t1.id, t1.project_id,t1.province, t1.city, t1.business_person, t1.business_email, t1.business_phone, t1.order_code, t1.currencyType, t1.shipment_amount, t1.actual_purchase_amount, t1.order_end_time, t1.delivery_time, t1.company_delivery, t1.notifier, t1.notifier_email, t1.notifier_phone, t1.duty, t1.duty_email, t1.duty_phone, t1.order_channel, t1.partner_code, t1.supplier, t1.remark, t1.order_status, t1.create_by, t1.create_time, t1.update_by, t1.update_time,t1.partner_user_name,t1.partner_email - ,t1.partner_phone,t1.version_code,t1.process_type,t1.process_template,t1.discount_fold,t1.notifier_address + ,t1.partner_phone,t1.version_code,t1.process_type,t1.process_template,t1.discount_fold,t1.notifier_address, + t1.delivery_status,t1.sign_status,t1.outer_status,t1.approve_time ,t2.project_code,t2.project_name,t2.province,t2.customer_name,t2.customer_code,t2.industry_type,t2.bg_property,t2.agent_code,t2.estimated_order_time - ,t2.customer_phone,t2.customer_user_name,t2.agent_code,t2.customer_code + ,t2.customer_phone,t2.customer_user_name,t2.agent_code,t2.customer_code,t2.partner_name project_partner_name ,t3.partner_name,t3.level ,t4.agent_name ,t5.user_name as duty_name @@ -109,6 +113,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + and t1.approve_time between date_format(#{approveTimeStart}, '%Y-%m-%d 00:00:00') and date_format(#{approveTimeEnd}, '%Y-%m-%d 23:59:59') + + + and t1.approve_time = ]]> date_format(#{approveTimeStart}, '%Y-%m-%d 00:00:00') + + + and t1.approve_time date_format(#{approveTimeEnd}, '%Y-%m-%d 23:59:59') + + + + @@ -298,6 +316,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime}, + approve_time = #{approveTime}, where id = #{id} @@ -310,6 +329,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" business_person = #{businessPerson}, business_email = #{businessEmail}, business_phone = #{businessPhone}, + approve_time = #{approveTime}, diff --git a/ruoyi-sip/src/main/resources/mapper/system/ProductInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/system/ProductInfoMapper.xml index bb8b6ac0..1467e5c7 100644 --- a/ruoyi-sip/src/main/resources/mapper/system/ProductInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/system/ProductInfoMapper.xml @@ -21,7 +21,7 @@ select t1.id, t1.product_code, t1.product_name, t1.model, t1.description, t1.remark, t1.created_at, t1.updated_at, - t1.deleted_at,t1.value,t1.type,t1.hz_code,t1.catalogue_price,t1.guidance_discount,t1.vendor_code + t1.deleted_at,t1.value,t1.type,t1.hz_code,t1.catalogue_price,t1.guidance_discount,t1.vendor_code,t1.available_count,t1.cumulative_count ,t2.vendor_name from product_info t1 left join oms_vendor_info t2 on t1.vendor_code = t2.vendor_code @@ -35,6 +35,7 @@ and t1.model like concat('%', #{model}, '%') and find_in_set(t1.type , #{type}) and t2.vendor_name like concat('%', #{vendorName}, '%') + and t1.vendor_code = #{vendorCode} @@ -147,6 +148,16 @@ where id = #{id} + + update product_info + set available_count=ifnull(available_count,0) + #{quantity} + where product_code = #{productCode} + + + update product_info + set cumulative_count=ifnull(cumulative_count,0) + #{quantity} + where product_code = #{productCode} + update product_info set status=1, deleted_at=now() where id = #{id}