diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductDemandTemplateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductDemandTemplateController.java new file mode 100644 index 000000000..05bfbf103 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductDemandTemplateController.java @@ -0,0 +1,56 @@ +package com.ruoyi.web.controller.xkt; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.XktBaseController; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.web.controller.xkt.vo.storeProductDemandTemplate.StoreDemandTemplateResVO; +import com.ruoyi.web.controller.xkt.vo.storeProductDemandTemplate.StoreDemandTemplateUpdateVO; +import com.ruoyi.xkt.dto.storeProductDemandTemplate.StoreDemandTemplateUpdateDTO; +import com.ruoyi.xkt.service.IStoreProductDemandTemplateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +/** + * 档口生产需求模板 Controller + * + * @author ruoyi + * @date 2025-03-26 + */ +@Api(tags = "档口生产需求下载模板") +@RestController +@RequiredArgsConstructor +@RequestMapping("/rest/v1/store-templates") +public class StoreProductDemandTemplateController extends XktBaseController { + + final IStoreProductDemandTemplateService templateService; + + @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()") + @ApiOperation(value = "查询档口设置的需求下载模板", httpMethod = "GET", response = R.class) + @GetMapping("/{storeId}") + public R getTemplate(@PathVariable Long storeId) { + return R.ok(BeanUtil.toBean(templateService.getTemplate(storeId), StoreDemandTemplateResVO.class)); + } + + @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()") + @Log(title = "更新档口需求下载模板", businessType = BusinessType.UPDATE) + @ApiOperation(value = "更新档口需求下载模板", httpMethod = "PUT", response = R.class) + @PutMapping("") + public R updateTemplate(@RequestBody StoreDemandTemplateUpdateVO updateVO) { + return R.ok(templateService.updateTemplate(BeanUtil.toBean(updateVO, StoreDemandTemplateUpdateDTO.class))); + } + + @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()") + @Log(title = "重置档口需求模板", businessType = BusinessType.UPDATE) + @ApiOperation(value = "重置档口需求模板", httpMethod = "PUT", response = R.class) + @PutMapping("/reset/{storeId}") + public R resetTemplate(@PathVariable Long storeId) { + return R.ok(templateService.initTemplate(storeId)); + } + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemandTemplate/StoreDemandTemplateResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemandTemplate/StoreDemandTemplateResVO.java new file mode 100644 index 000000000..17bda8355 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemandTemplate/StoreDemandTemplateResVO.java @@ -0,0 +1,117 @@ +package com.ruoyi.web.controller.xkt.vo.storeProductDemandTemplate; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@ApiModel + +public class StoreDemandTemplateResVO { + + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "尺码30") + private Integer selectSize30; + @ApiModelProperty(value = "尺码31") + private Integer selectSize31; + @ApiModelProperty(value = "尺码32") + private Integer selectSize32; + @ApiModelProperty(value = "尺码33") + private Integer selectSize33; + @ApiModelProperty(value = "尺码34") + private Integer selectSize34; + @ApiModelProperty(value = "尺码35") + private Integer selectSize35; + @ApiModelProperty(value = "尺码36") + private Integer selectSize36; + @ApiModelProperty(value = "尺码37") + private Integer selectSize37; + @ApiModelProperty(value = "尺码38") + private Integer selectSize38; + @ApiModelProperty(value = "尺码39") + private Integer selectSize39; + @ApiModelProperty(value = "尺码40") + private Integer selectSize40; + @ApiModelProperty(value = "尺码41") + private Integer selectSize41; + @ApiModelProperty(value = "尺码42") + private Integer selectSize42; + @ApiModelProperty(value = "尺码43") + private Integer selectSize43; + @ApiModelProperty(value = "商品信息 工厂名称") + private Integer selectFacName; + @ApiModelProperty(value = "商品信息 需求单号") + private Integer selectDemandCode; + @ApiModelProperty(value = "商品信息 提单时间") + private Integer selectMakeTime; + @ApiModelProperty(value = "商品信息 工厂货号") + private Integer selectFactoryArtNum; + @ApiModelProperty(value = "商品信息 商品货号") + private Integer selectProdArtNum; + @ApiModelProperty(value = "商品信息 颜色") + private Integer selectColorName; + @ApiModelProperty(value = "商品信息 内里材质") + private Integer selectShoeUpperLiningMaterial; + @ApiModelProperty(value = "商品信息 鞋面材质") + private Integer selectShaftMaterial; + @ApiModelProperty(value = "商品信息 生产状态 1 待生产 2 生产中 3 生产完成") + private Integer selectDemandStatus; + @ApiModelProperty(value = "商品信息 紧急程度 0正常 1紧急") + private Integer selectEmergency; + @ApiModelProperty(value = "商品信息 总需求数量") + private Integer selectQuantity; + @ApiModelProperty(value = "工艺信息 客户名称") + private Integer selectPartnerName; + @ApiModelProperty(value = "工艺信息 商标") + private Integer selectTrademark; + @ApiModelProperty(value = "工艺信息 鞋型") + private Integer selectShoeType; + @ApiModelProperty(value = "工艺信息 楦号") + private Integer selectShoeSize; + @ApiModelProperty(value = "工艺信息 主皮") + private Integer selectMainSkin; + @ApiModelProperty(value = "工艺信息 主皮用量") + private Integer selectMainSkinUsage; + @ApiModelProperty(value = "工艺信息 配皮") + private Integer selectMatchSkin; + @ApiModelProperty(value = "工艺信息 配皮用量") + private Integer selectMatchSkinUsage; + @ApiModelProperty(value = "工艺信息 领口") + private Integer selectNeckline; + @ApiModelProperty(value = "工艺信息 膛底") + private Integer selectInsole; + @ApiModelProperty(value = "工艺信息 扣件/拉头") + private Integer selectFastener; + @ApiModelProperty(value = "工艺信息 辅料") + private Integer selectShoeAccessories; + @ApiModelProperty(value = "工艺信息 包头") + private Integer selectToeCap; + @ApiModelProperty(value = "工艺信息 包边") + private Integer selectEdgeBinding; + @ApiModelProperty(value = "工艺信息 中大底") + private Integer selectMidOutsole; + @ApiModelProperty(value = "工艺信息 防水台") + private Integer selectPlatformSole; + @ApiModelProperty(value = "工艺信息 中底厂家编码") + private Integer selectMidsoleFactoryCode; + @ApiModelProperty(value = "工艺信息 外底厂家编码") + private Integer selectOutsoleFactoryCode; + @ApiModelProperty(value = "工艺信息 跟厂编码") + private Integer selectHeelFactoryCode; + @ApiModelProperty(value = "工艺信息 配料") + private Integer selectComponents; + @ApiModelProperty(value = "工艺信息 第二底料") + private Integer selectSecondSoleMaterial; + @ApiModelProperty(value = "工艺信息 第二配料") + private Integer selectSecondUpperMaterial; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemandTemplate/StoreDemandTemplateUpdateVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemandTemplate/StoreDemandTemplateUpdateVO.java new file mode 100644 index 000000000..ddf68c2a1 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProductDemandTemplate/StoreDemandTemplateUpdateVO.java @@ -0,0 +1,114 @@ +package com.ruoyi.web.controller.xkt.vo.storeProductDemandTemplate; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@ApiModel + +public class StoreDemandTemplateUpdateVO { + + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "尺码30") + private Integer selectSize30; + @ApiModelProperty(value = "尺码31") + private Integer selectSize31; + @ApiModelProperty(value = "尺码32") + private Integer selectSize32; + @ApiModelProperty(value = "尺码33") + private Integer selectSize33; + @ApiModelProperty(value = "尺码34") + private Integer selectSize34; + @ApiModelProperty(value = "尺码35") + private Integer selectSize35; + @ApiModelProperty(value = "尺码36") + private Integer selectSize36; + @ApiModelProperty(value = "尺码37") + private Integer selectSize37; + @ApiModelProperty(value = "尺码38") + private Integer selectSize38; + @ApiModelProperty(value = "尺码39") + private Integer selectSize39; + @ApiModelProperty(value = "尺码40") + private Integer selectSize40; + @ApiModelProperty(value = "尺码41") + private Integer selectSize41; + @ApiModelProperty(value = "尺码42") + private Integer selectSize42; + @ApiModelProperty(value = "尺码43") + private Integer selectSize43; + @ApiModelProperty(value = "商品信息 工厂名称") + private Integer selectFacName; + @ApiModelProperty(value = "商品信息 需求单号") + private Integer selectDemandCode; + @ApiModelProperty(value = "商品信息 提单时间") + private Integer selectMakeTime; + @ApiModelProperty(value = "商品信息 工厂货号") + private Integer selectFactoryArtNum; + @ApiModelProperty(value = "商品信息 商品货号") + private Integer selectProdArtNum; + @ApiModelProperty(value = "商品信息 颜色") + private Integer selectColorName; + @ApiModelProperty(value = "商品信息 内里材质") + private Integer selectShoeUpperLiningMaterial; + @ApiModelProperty(value = "商品信息 鞋面材质") + private Integer selectShaftMaterial; + @ApiModelProperty(value = "商品信息 生产状态 1 待生产 2 生产中 3 生产完成") + private Integer selectDemandStatus; + @ApiModelProperty(value = "商品信息 紧急程度 0正常 1紧急") + private Integer selectEmergency; + @ApiModelProperty(value = "商品信息 总需求数量") + private Integer selectQuantity; + @ApiModelProperty(value = "工艺信息 客户名称") + private Integer selectPartnerName; + @ApiModelProperty(value = "工艺信息 商标") + private Integer selectTrademark; + @ApiModelProperty(value = "工艺信息 鞋型") + private Integer selectShoeType; + @ApiModelProperty(value = "工艺信息 楦号") + private Integer selectShoeSize; + @ApiModelProperty(value = "工艺信息 主皮") + private Integer selectMainSkin; + @ApiModelProperty(value = "工艺信息 主皮用量") + private Integer selectMainSkinUsage; + @ApiModelProperty(value = "工艺信息 配皮") + private Integer selectMatchSkin; + @ApiModelProperty(value = "工艺信息 配皮用量") + private Integer selectMatchSkinUsage; + @ApiModelProperty(value = "工艺信息 领口") + private Integer selectNeckline; + @ApiModelProperty(value = "工艺信息 膛底") + private Integer selectInsole; + @ApiModelProperty(value = "工艺信息 扣件/拉头") + private Integer selectFastener; + @ApiModelProperty(value = "工艺信息 辅料") + private Integer selectShoeAccessories; + @ApiModelProperty(value = "工艺信息 包头") + private Integer selectToeCap; + @ApiModelProperty(value = "工艺信息 包边") + private Integer selectEdgeBinding; + @ApiModelProperty(value = "工艺信息 中大底") + private Integer selectMidOutsole; + @ApiModelProperty(value = "工艺信息 防水台") + private Integer selectPlatformSole; + @ApiModelProperty(value = "工艺信息 中底厂家编码") + private Integer selectMidsoleFactoryCode; + @ApiModelProperty(value = "工艺信息 外底厂家编码") + private Integer selectOutsoleFactoryCode; + @ApiModelProperty(value = "工艺信息 跟厂编码") + private Integer selectHeelFactoryCode; + @ApiModelProperty(value = "工艺信息 配料") + private Integer selectComponents; + @ApiModelProperty(value = "工艺信息 第二底料") + private Integer selectSecondSoleMaterial; + @ApiModelProperty(value = "工艺信息 第二配料") + private Integer selectSecondUpperMaterial; + +} diff --git a/sql/ry_20240629.sql b/sql/ry_20240629.sql index 8ee66e3c1..459d1ae74 100644 --- a/sql/ry_20240629.sql +++ b/sql/ry_20240629.sql @@ -3353,7 +3353,6 @@ CREATE TABLE `store_factory` `fac_contact` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人', `fac_phone` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '工厂联系电话', `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', - `fac_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '工厂状态', `version` bigint UNSIGNED NOT NULL COMMENT '版本号', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '删除标志(0代表存在 2代表删除)', `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', @@ -3603,7 +3602,7 @@ CREATE TABLE `store_product_demand` `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `demand_status` tinyint UNSIGNED NULL DEFAULT NULL COMMENT '需求状态 1待生产 2 生产中 3 生产完成', + `demand_status` tinyint UNSIGNED NULL DEFAULT NULL COMMENT '生产状态 1待生产 2 生产中 3 生产完成', `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '档口商品需求单' ROW_FORMAT = DYNAMIC; @@ -3701,6 +3700,8 @@ CREATE TABLE `store_product_process` ( `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '档口商品工艺信息ID', `store_prod_id` bigint UNSIGNED NOT NULL COMMENT '档口商品ID', + `partner_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '客户', + `trademark` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商标', `shoe_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '鞋型', `shoe_size` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '楦号', `main_skin` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主皮', @@ -4354,6 +4355,69 @@ INSERT INTO `express_fee_config` VALUES (129, 1, '513200', NULL, 8.00, 8.00, '0' INSERT INTO `express_fee_config` VALUES (130, 2, '440300', NULL, 4.20, 4.20, '0', '', NULL, '', NULL, 0); +-- ---------------------------- +-- Table structure for store_product_demand_template +-- ---------------------------- +DROP TABLE IF EXISTS `store_product_demand_template`; +CREATE TABLE `store_product_demand_template` +( + `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', + `store_id` bigint(20) UNSIGNED NOT NULL COMMENT '档口ID', + `select_size30` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码30', + `select_size31` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码31', + `select_size32` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码32', + `select_size33` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码33', + `select_size34` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码34', + `select_size35` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码35', + `select_size36` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码36', + `select_size37` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码37', + `select_size38` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码38', + `select_size39` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码39', + `select_size40` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码40', + `select_size41` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码41', + `select_size42` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码42', + `select_size43` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '尺码43', + `select_fac_name` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '工厂名称', + `select_demand_code` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '需求单号', + `select_make_time` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '提单时间', + `select_factory_art_num` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '工厂货号', + `select_prod_art_num` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '商品货号', + `select_color_name` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '颜色', + `select_shoe_upper_lining_material` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '内里材质', + `select_shaft_material` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '鞋面材质', + `select_demand_status` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '生产状态', + `select_emergency` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '紧急程度', + `select_quantity` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '总数量', + `select_partner_name` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '客户名称', + `select_trademark` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '商标', + `select_shoe_type` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '鞋型', + `select_shoe_size` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '楦号', + `select_main_skin` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '主皮', + `select_main_skin_usage` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '主皮用量', + `select_match_skin` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '配皮', + `select_match_skin_usage` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '配皮用量', + `select_neckline` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '领口', + `select_insole` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '膛底', + `select_fastener` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '扣件/拉头', + `select_shoe_accessories` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '辅料', + `select_toe_cap` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '包头', + `select_edge_binding` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '包边', + `select_mid_outsole` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '中大底', + `select_platform_sole` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '防水台', + `select_midsole_factory_code` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '中底厂家编码', + `select_outsole_factory_code` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '外底厂家编码', + `select_heel_factory_code` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '跟厂编码', + `select_components` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '配料', + `select_second_sole_material` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '第二底料', + `select_second_upper_material` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '第二配料', + `version` bigint(20) UNSIGNED NOT NULL COMMENT '版本号', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '删除标志(0代表存在 2代表删除)', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreFactory.java b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreFactory.java index 826bfa85e..75f0b9e1c 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreFactory.java +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreFactory.java @@ -5,6 +5,7 @@ import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.XktBaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -16,6 +17,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; */ @EqualsAndHashCode(callSuper = true) @Data +@Accessors(chain = true) public class StoreFactory extends XktBaseEntity { private static final long serialVersionUID = 1L; @@ -52,27 +54,5 @@ public class StoreFactory extends XktBaseEntity { * 备注 */ private String remark; - /** - * 工厂状态 - */ - @Excel(name = "工厂状态") - private String facStatus; - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("storeId", getStoreId()) - .append("facName", getFacName()) - .append("facAddress", getFacAddress()) - .append("facPhone", getFacPhone()) - .append("facStatus", getFacStatus()) - .append("version", getVersion()) - .append("delFlag", getDelFlag()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); - } } diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductDemand.java b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductDemand.java index 6f8059a3a..798434469 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductDemand.java +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductDemand.java @@ -46,9 +46,9 @@ public class StoreProductDemand extends XktBaseEntity { private String code; /** - * 需求状态 1 待生产 2 生产中 3 生产完成 + * 生产状态 1 待生产 2 生产中 3 生产完成 */ - @Excel(name = "需求状态") + @Excel(name = "生产状态") private Integer demandStatus; /** * 备注 diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductDemandTemplate.java b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductDemandTemplate.java new file mode 100644 index 000000000..3e0aca645 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductDemandTemplate.java @@ -0,0 +1,221 @@ +package com.ruoyi.xkt.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.ruoyi.common.core.domain.XktBaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * 下载生产需求模板 store_product_demand_template + * 0 代表未选中 1代表选中 + * + * @author ruoyi + * @date 2025-03-26 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Accessors(chain = true) +public class StoreProductDemandTemplate extends XktBaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 档口商品需求ID + */ + @TableId + private Long id; + /** + * 档口ID + */ + private Long storeId; + /** + * 尺码30 + */ + private Integer selectSize30; + /** + * 尺码31 + */ + private Integer selectSize31; + /** + * 尺码32 + */ + private Integer selectSize32; + /** + * 尺码33 + */ + private Integer selectSize33; + /** + * 尺码34 + */ + private Integer selectSize34; + /** + * 尺码35 + */ + private Integer selectSize35; + /** + * 尺码36 + */ + private Integer selectSize36; + /** + * 尺码37 + */ + private Integer selectSize37; + /** + * 尺码38 + */ + private Integer selectSize38; + /** + * 尺码39 + */ + private Integer selectSize39; + /** + * 尺码40 + */ + private Integer selectSize40; + /** + * 尺码41 + */ + private Integer selectSize41; + /** + * 尺码42 + */ + private Integer selectSize42; + /** + * 尺码43 + */ + private Integer selectSize43; + + /** + * 商品信息 工厂名称 + */ + private Integer selectFacName; + /** + * 商品信息 需求单号 + */ + private Integer selectDemandCode; + /** + * 商品信息 提单时间 + */ + private Integer selectMakeTime; + /** + * 商品信息 工厂货号 + */ + private Integer selectFactoryArtNum; + /** + * 商品信息 商品货号 + */ + private Integer selectProdArtNum; + /** + * 商品信息 颜色 + */ + private Integer selectColorName; + /** + * 商品信息 内里材质 + */ + private Integer selectShoeUpperLiningMaterial; + /** + * 商品信息 鞋面材质 + */ + private Integer selectShaftMaterial; + /** + * 商品信息 生产状态 1 待生产 2 生产中 3 生产完成 + */ + private Integer selectDemandStatus; + /** + * 商品信息 紧急程度 0正常 1紧急 + */ + private Integer selectEmergency; + /** + * 商品信息 总需求数量 + */ + private Integer selectQuantity; + /** + * 工艺信息 客户名称 + */ + private Integer selectPartnerName; + /** + * 工艺信息 商标 + */ + private Integer selectTrademark; + /** + * 工艺信息 鞋型 + */ + private Integer selectShoeType; + /** + * 工艺信息 楦号 + */ + private Integer selectShoeSize; + /** + * 工艺信息 主皮 + */ + private Integer selectMainSkin; + /** + * 工艺信息 主皮用量 + */ + private Integer selectMainSkinUsage; + /** + * 工艺信息 配皮 + */ + private Integer selectMatchSkin; + /** + * 工艺信息 配皮用量 + */ + private Integer selectMatchSkinUsage; + /** + * 工艺信息 领口 + */ + private Integer selectNeckline; + /** + * 工艺信息 膛底 + */ + private Integer selectInsole; + /** + * 工艺信息 扣件/拉头 + */ + private Integer selectFastener; + /** + * 工艺信息 辅料 + */ + private Integer selectShoeAccessories; + /** + * 工艺信息 包头 + */ + private Integer selectToeCap; + /** + * 工艺信息 包边 + */ + private Integer selectEdgeBinding; + /** + * 工艺信息 中大底 + */ + private Integer selectMidOutsole; + /** + * 工艺信息 防水台 + */ + private Integer selectPlatformSole; + /** + * 工艺信息 中底厂家编码 + */ + private Integer selectMidsoleFactoryCode; + /** + * 工艺信息 外底厂家编码 + */ + private Integer selectOutsoleFactoryCode; + /** + * 工艺信息 跟厂编码 + */ + private Integer selectHeelFactoryCode; + /** + * 工艺信息 配料 + */ + private Integer selectComponents; + /** + * 工艺信息 第二底料 + */ + private Integer selectSecondSoleMaterial; + /** + * 工艺信息 第二配料 + */ + private Integer selectSecondUpperMaterial; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductProcess.java b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductProcess.java index a64d6c0e2..5d0623132 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductProcess.java +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductProcess.java @@ -30,7 +30,14 @@ public class StoreProductProcess extends XktBaseEntity { */ @Excel(name = "档口商品ID") private Long storeProdId; - + /** + * 客户 + */ + private String partnerName; + /** + * 商标 + */ + private String trademark; /** * 鞋型 */ diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductDemandTemplate/StoreDemandTemplateResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductDemandTemplate/StoreDemandTemplateResDTO.java new file mode 100644 index 000000000..49582473d --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductDemandTemplate/StoreDemandTemplateResDTO.java @@ -0,0 +1,114 @@ +package com.ruoyi.xkt.dto.storeProductDemandTemplate; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@ApiModel + +public class StoreDemandTemplateResDTO { + + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "尺码30") + private Integer selectSize30; + @ApiModelProperty(value = "尺码31") + private Integer selectSize31; + @ApiModelProperty(value = "尺码32") + private Integer selectSize32; + @ApiModelProperty(value = "尺码33") + private Integer selectSize33; + @ApiModelProperty(value = "尺码34") + private Integer selectSize34; + @ApiModelProperty(value = "尺码35") + private Integer selectSize35; + @ApiModelProperty(value = "尺码36") + private Integer selectSize36; + @ApiModelProperty(value = "尺码37") + private Integer selectSize37; + @ApiModelProperty(value = "尺码38") + private Integer selectSize38; + @ApiModelProperty(value = "尺码39") + private Integer selectSize39; + @ApiModelProperty(value = "尺码40") + private Integer selectSize40; + @ApiModelProperty(value = "尺码41") + private Integer selectSize41; + @ApiModelProperty(value = "尺码42") + private Integer selectSize42; + @ApiModelProperty(value = "尺码43") + private Integer selectSize43; + @ApiModelProperty(value = "商品信息 工厂名称") + private Integer selectFacName; + @ApiModelProperty(value = "商品信息 需求单号") + private Integer selectDemandCode; + @ApiModelProperty(value = "商品信息 提单时间") + private Integer selectMakeTime; + @ApiModelProperty(value = "商品信息 工厂货号") + private Integer selectFactoryArtNum; + @ApiModelProperty(value = "商品信息 商品货号") + private Integer selectProdArtNum; + @ApiModelProperty(value = "商品信息 颜色") + private Integer selectColorName; + @ApiModelProperty(value = "商品信息 内里材质") + private Integer selectShoeUpperLiningMaterial; + @ApiModelProperty(value = "商品信息 鞋面材质") + private Integer selectShaftMaterial; + @ApiModelProperty(value = "商品信息 生产状态 1 待生产 2 生产中 3 生产完成") + private Integer selectDemandStatus; + @ApiModelProperty(value = "商品信息 紧急程度 0正常 1紧急") + private Integer selectEmergency; + @ApiModelProperty(value = "商品信息 总需求数量") + private Integer selectQuantity; + @ApiModelProperty(value = "工艺信息 客户名称") + private Integer selectPartnerName; + @ApiModelProperty(value = "工艺信息 商标") + private Integer selectTrademark; + @ApiModelProperty(value = "工艺信息 鞋型") + private Integer selectShoeType; + @ApiModelProperty(value = "工艺信息 楦号") + private Integer selectShoeSize; + @ApiModelProperty(value = "工艺信息 主皮") + private Integer selectMainSkin; + @ApiModelProperty(value = "工艺信息 主皮用量") + private Integer selectMainSkinUsage; + @ApiModelProperty(value = "工艺信息 配皮") + private Integer selectMatchSkin; + @ApiModelProperty(value = "工艺信息 配皮用量") + private Integer selectMatchSkinUsage; + @ApiModelProperty(value = "工艺信息 领口") + private Integer selectNeckline; + @ApiModelProperty(value = "工艺信息 膛底") + private Integer selectInsole; + @ApiModelProperty(value = "工艺信息 扣件/拉头") + private Integer selectFastener; + @ApiModelProperty(value = "工艺信息 辅料") + private Integer selectShoeAccessories; + @ApiModelProperty(value = "工艺信息 包头") + private Integer selectToeCap; + @ApiModelProperty(value = "工艺信息 包边") + private Integer selectEdgeBinding; + @ApiModelProperty(value = "工艺信息 中大底") + private Integer selectMidOutsole; + @ApiModelProperty(value = "工艺信息 防水台") + private Integer selectPlatformSole; + @ApiModelProperty(value = "工艺信息 中底厂家编码") + private Integer selectMidsoleFactoryCode; + @ApiModelProperty(value = "工艺信息 外底厂家编码") + private Integer selectOutsoleFactoryCode; + @ApiModelProperty(value = "工艺信息 跟厂编码") + private Integer selectHeelFactoryCode; + @ApiModelProperty(value = "工艺信息 配料") + private Integer selectComponents; + @ApiModelProperty(value = "工艺信息 第二底料") + private Integer selectSecondSoleMaterial; + @ApiModelProperty(value = "工艺信息 第二配料") + private Integer selectSecondUpperMaterial; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductDemandTemplate/StoreDemandTemplateUpdateDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductDemandTemplate/StoreDemandTemplateUpdateDTO.java new file mode 100644 index 000000000..e02bc152d --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductDemandTemplate/StoreDemandTemplateUpdateDTO.java @@ -0,0 +1,114 @@ +package com.ruoyi.xkt.dto.storeProductDemandTemplate; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@ApiModel + +public class StoreDemandTemplateUpdateDTO { + + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "尺码30") + private Integer selectSize30; + @ApiModelProperty(value = "尺码31") + private Integer selectSize31; + @ApiModelProperty(value = "尺码32") + private Integer selectSize32; + @ApiModelProperty(value = "尺码33") + private Integer selectSize33; + @ApiModelProperty(value = "尺码34") + private Integer selectSize34; + @ApiModelProperty(value = "尺码35") + private Integer selectSize35; + @ApiModelProperty(value = "尺码36") + private Integer selectSize36; + @ApiModelProperty(value = "尺码37") + private Integer selectSize37; + @ApiModelProperty(value = "尺码38") + private Integer selectSize38; + @ApiModelProperty(value = "尺码39") + private Integer selectSize39; + @ApiModelProperty(value = "尺码40") + private Integer selectSize40; + @ApiModelProperty(value = "尺码41") + private Integer selectSize41; + @ApiModelProperty(value = "尺码42") + private Integer selectSize42; + @ApiModelProperty(value = "尺码43") + private Integer selectSize43; + @ApiModelProperty(value = "商品信息 工厂名称") + private Integer selectFacName; + @ApiModelProperty(value = "商品信息 需求单号") + private Integer selectDemandCode; + @ApiModelProperty(value = "商品信息 提单时间") + private Integer selectMakeTime; + @ApiModelProperty(value = "商品信息 工厂货号") + private Integer selectFactoryArtNum; + @ApiModelProperty(value = "商品信息 商品货号") + private Integer selectProdArtNum; + @ApiModelProperty(value = "商品信息 颜色") + private Integer selectColorName; + @ApiModelProperty(value = "商品信息 内里材质") + private Integer selectShoeUpperLiningMaterial; + @ApiModelProperty(value = "商品信息 鞋面材质") + private Integer selectShaftMaterial; + @ApiModelProperty(value = "商品信息 生产状态 1 待生产 2 生产中 3 生产完成") + private Integer selectDemandStatus; + @ApiModelProperty(value = "商品信息 紧急程度 0正常 1紧急") + private Integer selectEmergency; + @ApiModelProperty(value = "商品信息 总需求数量") + private Integer selectQuantity; + @ApiModelProperty(value = "工艺信息 客户名称") + private Integer selectPartnerName; + @ApiModelProperty(value = "工艺信息 商标") + private Integer selectTrademark; + @ApiModelProperty(value = "工艺信息 鞋型") + private Integer selectShoeType; + @ApiModelProperty(value = "工艺信息 楦号") + private Integer selectShoeSize; + @ApiModelProperty(value = "工艺信息 主皮") + private Integer selectMainSkin; + @ApiModelProperty(value = "工艺信息 主皮用量") + private Integer selectMainSkinUsage; + @ApiModelProperty(value = "工艺信息 配皮") + private Integer selectMatchSkin; + @ApiModelProperty(value = "工艺信息 配皮用量") + private Integer selectMatchSkinUsage; + @ApiModelProperty(value = "工艺信息 领口") + private Integer selectNeckline; + @ApiModelProperty(value = "工艺信息 膛底") + private Integer selectInsole; + @ApiModelProperty(value = "工艺信息 扣件/拉头") + private Integer selectFastener; + @ApiModelProperty(value = "工艺信息 辅料") + private Integer selectShoeAccessories; + @ApiModelProperty(value = "工艺信息 包头") + private Integer selectToeCap; + @ApiModelProperty(value = "工艺信息 包边") + private Integer selectEdgeBinding; + @ApiModelProperty(value = "工艺信息 中大底") + private Integer selectMidOutsole; + @ApiModelProperty(value = "工艺信息 防水台") + private Integer selectPlatformSole; + @ApiModelProperty(value = "工艺信息 中底厂家编码") + private Integer selectMidsoleFactoryCode; + @ApiModelProperty(value = "工艺信息 外底厂家编码") + private Integer selectOutsoleFactoryCode; + @ApiModelProperty(value = "工艺信息 跟厂编码") + private Integer selectHeelFactoryCode; + @ApiModelProperty(value = "工艺信息 配料") + private Integer selectComponents; + @ApiModelProperty(value = "工艺信息 第二底料") + private Integer selectSecondSoleMaterial; + @ApiModelProperty(value = "工艺信息 第二配料") + private Integer selectSecondUpperMaterial; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductDemandTemplateMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductDemandTemplateMapper.java new file mode 100644 index 000000000..db9e28e8d --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductDemandTemplateMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.xkt.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.xkt.domain.StoreProductDemandTemplate; +import org.springframework.stereotype.Repository; + +/** + * 档口生产需求下载模板 Mapper接口 + * + * @author ruoyi + * @date 2025-03-26 + */ +@Repository +public interface StoreProductDemandTemplateMapper extends BaseMapper { + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductDemandTemplateService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductDemandTemplateService.java new file mode 100644 index 000000000..7bbc31ae8 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductDemandTemplateService.java @@ -0,0 +1,38 @@ +package com.ruoyi.xkt.service; + +import com.ruoyi.xkt.dto.storeProductDemandTemplate.StoreDemandTemplateResDTO; +import com.ruoyi.xkt.dto.storeProductDemandTemplate.StoreDemandTemplateUpdateDTO; + +/** + * 档口Service接口 + * + * @author ruoyi + * @date 2025-03-26 + */ +public interface IStoreProductDemandTemplateService { + + /** + * 获取当前档口设置的模板 + * + * @param storeId 档口ID + * @return StoreDemandTemplateResDTO + */ + StoreDemandTemplateResDTO getTemplate(Long storeId); + + /** + * 初始化模板 + * + * @param storeId 档口ID + * @return 影响行数 + */ + Integer initTemplate(Long storeId); + + /** + * 更新需求下载模板 + * + * @param updateDTO 更新入参 + * @return + */ + Integer updateTemplate(StoreDemandTemplateUpdateDTO updateDTO); + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCertificateServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCertificateServiceImpl.java index f01eac354..b69d2fc85 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCertificateServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCertificateServiceImpl.java @@ -6,10 +6,11 @@ import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.core.domain.model.ESystemRole; import com.ruoyi.common.exception.ServiceException; -import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.system.service.ISysUserService; -import com.ruoyi.xkt.domain.*; +import com.ruoyi.xkt.domain.Store; +import com.ruoyi.xkt.domain.StoreCertificate; +import com.ruoyi.xkt.domain.SysFile; import com.ruoyi.xkt.dto.storeCertificate.StoreCertDTO; import com.ruoyi.xkt.dto.storeCertificate.StoreCertResDTO; import com.ruoyi.xkt.dto.storeCertificate.StoreCertStepResDTO; @@ -47,8 +48,7 @@ public class StoreCertificateServiceImpl implements IStoreCertificateService { final StoreSaleDetailMapper saleDetailMapper; final StoreProductMapper storeProdMapper; final ISysUserService userService; - final VoucherSequenceMapper vsMapper; - final StoreCustomerMapper storeCusMapper; + /** * 新增档口认证 @@ -65,24 +65,7 @@ public class StoreCertificateServiceImpl implements IStoreCertificateService { .setStoreId(store.getId()); // 新增档口认证的文件列表 storeCert = this.handleStoreCertFileList(certDTO, storeCert); - int count = this.storeCertMapper.insert(storeCert); - // 新增档口的单据编号初始化 销售出库、采购入库、需求单、订单 - List vsList = new ArrayList<>(); - // 销售出库 - vsList.add(this.initVoucherSequence(store.getId(), Constants.VOUCHER_SEQ_STORE_SALE_TYPE, Constants.VOUCHER_SEQ_STORE_SALE_PREFIX)); - // 采购入库 - vsList.add(this.initVoucherSequence(store.getId(), Constants.VOUCHER_SEQ_STORAGE_TYPE, Constants.VOUCHER_SEQ_STORAGE_PREFIX)); - // 需求单 - vsList.add(this.initVoucherSequence(store.getId(), Constants.VOUCHER_SEQ_DEMAND_TYPE, Constants.VOUCHER_SEQ_DEMAND_PREFIX)); - // 代发订单 - vsList.add(this.initVoucherSequence(store.getId(), Constants.VOUCHER_SEQ_STORE_ORDER_TYPE, Constants.VOUCHER_SEQ_STORE_ORDER_PREFIX)); - this.vsMapper.insert(vsList); - // 新增档口 “现金客户” - StoreCustomer storeCus = new StoreCustomer().setStoreId(store.getId()).setPhone(store.getContactPhone()) - // 默认创建现金客户 - .setCusName(Constants.STORE_CUS_CASH); - this.storeCusMapper.insert(storeCus); - return count; + return this.storeCertMapper.insert(storeCert); } @@ -268,18 +251,5 @@ public class StoreCertificateServiceImpl implements IStoreCertificateService { this.storeMapper.updateById(store); } - /** - * 初始化各类单据情况 - * - * @param storeId 档口ID - * @param type 类型 - * @param prefix 前缀 - * @return - */ - private VoucherSequence initVoucherSequence(Long storeId, String type, String prefix) { - return new VoucherSequence().setStoreId(storeId).setType(type).setDateFormat(DateUtils.YYYY_MM_DD) - .setPrefix(prefix).setNextSequence(1).setSequenceFormat(Constants.VOUCHER_SEQ_FORMAT); - } - } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductDemandTemplateServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductDemandTemplateServiceImpl.java new file mode 100644 index 000000000..ae259285e --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductDemandTemplateServiceImpl.java @@ -0,0 +1,97 @@ +package com.ruoyi.xkt.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.xkt.domain.StoreProductDemandTemplate; +import com.ruoyi.xkt.dto.storeProductDemandTemplate.StoreDemandTemplateResDTO; +import com.ruoyi.xkt.dto.storeProductDemandTemplate.StoreDemandTemplateUpdateDTO; +import com.ruoyi.xkt.mapper.StoreProductDemandTemplateMapper; +import com.ruoyi.xkt.service.IStoreProductDemandTemplateService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Optional; + +/** + * 档口需求下载模板Service业务层处理 + * + * @author ruoyi + * @date 2025-03-26 + */ +@Service +@RequiredArgsConstructor +public class StoreProductDemandTemplateServiceImpl implements IStoreProductDemandTemplateService { + + final StoreProductDemandTemplateMapper templateMapper; + + private static final Integer SELECTED = 1; + private static final Integer UNSELECTED = 0; + + /** + * 获取当前档口设置的模板 + * + * @param storeId 档口ID + * @return StoreDemandTemplateResDTO + */ + @Override + @Transactional(readOnly = true) + public StoreDemandTemplateResDTO getTemplate(Long storeId) { + StoreProductDemandTemplate template = this.templateMapper.selectOne(new LambdaQueryWrapper() + .eq(StoreProductDemandTemplate::getStoreId, storeId).eq(StoreProductDemandTemplate::getDelFlag, Constants.UNDELETED)); + return BeanUtil.toBean(template, StoreDemandTemplateResDTO.class); + } + + /** + * 初始化模板 + * + * @param storeId 档口ID + * @return 影响行数 + */ + @Override + @Transactional + public Integer initTemplate(Long storeId) { + StoreProductDemandTemplate template = Optional.ofNullable(this.templateMapper.selectOne(new LambdaQueryWrapper() + .eq(StoreProductDemandTemplate::getStoreId, storeId).eq(StoreProductDemandTemplate::getDelFlag, Constants.UNDELETED))) + .orElse(new StoreProductDemandTemplate()); + // 设置初始化值为未选中 + template.setSelectSize30(UNSELECTED).setSelectSize31(UNSELECTED).setSelectSize32(UNSELECTED).setSelectSize33(UNSELECTED) + .setSelectSize41(UNSELECTED).setSelectSize42(UNSELECTED).setSelectSize43(UNSELECTED) + .setSelectPartnerName(UNSELECTED).setSelectTrademark(UNSELECTED).setSelectShoeType(UNSELECTED) + .setSelectShoeSize(UNSELECTED).setSelectMainSkin(UNSELECTED).setSelectMainSkinUsage(UNSELECTED) + .setSelectMatchSkin(UNSELECTED).setSelectMatchSkinUsage(UNSELECTED).setSelectNeckline(UNSELECTED) + .setSelectInsole(UNSELECTED).setSelectFastener(UNSELECTED).setSelectShoeAccessories(UNSELECTED) + .setSelectToeCap(UNSELECTED).setSelectEdgeBinding(UNSELECTED).setSelectMidOutsole(UNSELECTED) + .setSelectPlatformSole(UNSELECTED).setSelectMidsoleFactoryCode(UNSELECTED) + .setSelectOutsoleFactoryCode(UNSELECTED).setSelectHeelFactoryCode(UNSELECTED) + .setSelectComponents(UNSELECTED).setSelectSecondSoleMaterial(UNSELECTED) + .setSelectSecondUpperMaterial(UNSELECTED); + // 设置初始化值 + template.setSelectSize34(SELECTED).setSelectSize35(SELECTED).setSelectSize36(SELECTED).setSelectSize37(SELECTED).setSelectSize38(SELECTED) + .setSelectSize39(SELECTED).setSelectSize40(SELECTED).setSelectFacName(SELECTED).setSelectDemandCode(SELECTED).setSelectMakeTime(SELECTED) + .setSelectFactoryArtNum(SELECTED).setSelectProdArtNum(SELECTED).setSelectColorName(SELECTED).setSelectShoeUpperLiningMaterial(SELECTED) + .setSelectShaftMaterial(SELECTED).setSelectDemandStatus(SELECTED).setSelectEmergency(SELECTED).setSelectQuantity(SELECTED); + this.templateMapper.insertOrUpdate(template); + return 1; + } + + /** + * 更新需求下载模板 + * + * @param updateDTO 更新入参 + * @return Integer + */ + @Override + @Transactional + public Integer updateTemplate(StoreDemandTemplateUpdateDTO updateDTO) { + StoreProductDemandTemplate template = Optional.ofNullable(this.templateMapper.selectOne(new LambdaQueryWrapper() + .eq(StoreProductDemandTemplate::getStoreId, updateDTO.getStoreId()).eq(StoreProductDemandTemplate::getDelFlag, Constants.UNDELETED))) + .orElse(new StoreProductDemandTemplate()); + BeanUtil.copyProperties(updateDTO, template); + this.templateMapper.insertOrUpdate(template); + return 1; + } + + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreServiceImpl.java index 973c188ce..7b5ef1b51 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreServiceImpl.java @@ -16,6 +16,7 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.Page; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bigDecimal.CollectorsUtil; @@ -28,10 +29,7 @@ import com.ruoyi.xkt.dto.storeCertificate.StoreCertDTO; import com.ruoyi.xkt.dto.storeCertificate.StoreCertResDTO; import com.ruoyi.xkt.enums.*; import com.ruoyi.xkt.mapper.*; -import com.ruoyi.xkt.service.IAssetService; -import com.ruoyi.xkt.service.INoticeService; -import com.ruoyi.xkt.service.IStoreCertificateService; -import com.ruoyi.xkt.service.IStoreService; +import com.ruoyi.xkt.service.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -78,6 +76,10 @@ public class StoreServiceImpl implements IStoreService { final EsClientWrapper esClientWrapper; final StoreMemberMapper storeMemberMapper; final INoticeService noticeService; + final VoucherSequenceMapper vsMapper; + final StoreCustomerMapper storeCusMapper; + final StoreFactoryMapper storeFactoryMapper; + final IStoreProductDemandTemplateService storeTemplateService; /** * 档口分页数据 @@ -141,6 +143,8 @@ public class StoreServiceImpl implements IStoreService { store.setStockSys(auditDTO.getStockSys()); // 将store存到redis中 redisCache.setCacheObject(CacheConstants.STORE_KEY + store.getId(), store); + // 初始化其它数据 + this.initOthers(store.getId(), store.getContactPhone(), store.getStoreName()); } else { store.setStoreStatus(StoreStatus.AUDIT_REJECTED.getValue()); store.setRejectReason(auditDTO.getRejectReason()); @@ -807,5 +811,38 @@ public class StoreServiceImpl implements IStoreService { return storeCert.setIdCardFaceFileId(idCardFaceFile.getId()).setIdCardEmblemFileId(idCardEmblemFile.getId()).setLicenseFileId(licenseFile.getId()); } + /** + * 初始化各类单据情况 + * + * @param storeId 档口ID + * @param type 类型 + * @param prefix 前缀 + * @return + */ + private VoucherSequence initVoucherSequence(Long storeId, String type, String prefix) { + return new VoucherSequence().setStoreId(storeId).setType(type).setDateFormat(DateUtils.YYYY_MM_DD) + .setPrefix(prefix).setNextSequence(1).setSequenceFormat(Constants.VOUCHER_SEQ_FORMAT); + } + + private void initOthers(Long storeId, String contactPhone, String storeName) { + // 新增档口的单据编号初始化 销售出库、采购入库、需求单、订单 + List vsList = new ArrayList<>(); + // 销售出库 + vsList.add(this.initVoucherSequence(storeId, Constants.VOUCHER_SEQ_STORE_SALE_TYPE, Constants.VOUCHER_SEQ_STORE_SALE_PREFIX)); + // 采购入库 + vsList.add(this.initVoucherSequence(storeId, Constants.VOUCHER_SEQ_STORAGE_TYPE, Constants.VOUCHER_SEQ_STORAGE_PREFIX)); + // 需求单 + vsList.add(this.initVoucherSequence(storeId, Constants.VOUCHER_SEQ_DEMAND_TYPE, Constants.VOUCHER_SEQ_DEMAND_PREFIX)); + // 代发订单 + vsList.add(this.initVoucherSequence(storeId, Constants.VOUCHER_SEQ_STORE_ORDER_TYPE, Constants.VOUCHER_SEQ_STORE_ORDER_PREFIX)); + this.vsMapper.insert(vsList); + // 默认创建现金客户 + this.storeCusMapper.insert(new StoreCustomer().setStoreId(storeId).setPhone(contactPhone).setCusName(Constants.STORE_CUS_CASH)); + // 创建默认的工厂 + this.storeFactoryMapper.insert(new StoreFactory().setFacName(storeName + "工厂")); + // 创建默认的需求下载模板 + this.storeTemplateService.initTemplate(storeId); + } + }