From 6ee2bb1cdc1033b3e91855cd113be24a806d0cab Mon Sep 17 00:00:00 2001 From: wuwenxiong <646448316@qq.com> Date: Thu, 23 Dec 2021 17:25:19 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=87=8F=E9=A1=B9=E7=AE=A1?= =?UTF-8?q?=E7=90=86=202=E3=80=81=E5=A2=9E=E5=87=8F=E9=A1=B9=E5=90=84?= =?UTF-8?q?=E5=B9=B4=E4=BB=BD=E5=80=BC=E8=AE=BE=E7=BD=AE=203=E3=80=81?= =?UTF-8?q?=E5=8D=95=E4=BB=B7=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cowr/common/enums/RoleEnum.java | 2 + .../java/com/cowr/model/AddSubtractItem.java | 14 + .../com/cowr/model/AddSubtractItemRecord.java | 14 + .../com/cowr/model/ProductPriceModify.java | 14 + .../com/cowr/model/ProductPriceModifyLog.java | 14 + .../main/java/com/cowr/model/_MappingKit.java | 5 +- .../cowr/model/base/BaseAddSubtractItem.java | 134 +++++++ .../model/base/BaseAddSubtractItemRecord.java | 242 ++++++++++++ .../com/cowr/model/base/BasePresellOrder.java | 44 +-- .../model/base/BaseProductPriceModify.java | 266 ++++++++++++++ .../model/base/BaseProductPriceModifyLog.java | 178 +++++++++ .../AddSubtractItemRecordService.java | 43 +++ .../prepaycustomer/PrepayCustomerService.java | 5 + .../ProductPriceModifyPKValidator.java | 24 ++ .../ProductPriceModifyService.java | 114 ++++++ .../ProductPriceModifyValidator.java | 50 +++ .../ssjygl/stat/sale/OrderStatService.java | 29 +- .../com/cowr/local/ssjygl/main/Config.java | 2 + .../ProductPriceModifyController.java | 41 +++ .../AddSubtractItemController.java | 79 ++++ .../AddSubtractItemPKValidator.java | 24 ++ .../AddSubtractItemService.java | 148 ++++++++ .../AddSubtractItemValidator.java | 44 +++ .../AddSubtractItemRecordController.java | 138 +++++++ .../AddSubtractItemRecordPKValidator.java | 24 ++ .../AddSubtractItemRecordService.java | 343 ++++++++++++++++++ .../AddSubtractItemRecordValidator.java | 27 ++ ...CustomerSupermarketProductSyncService.java | 85 ++++- .../cowr/service/ssjygl/jobs/StatSmsJob.java | 10 + .../com/cowr/service/ssjygl/main/Config.java | 7 + .../presellorder/PresellOrderSyncService.java | 18 +- .../ProductPriceModifyController.java | 63 ++++ .../ProductPriceModifySyncService.java | 318 ++++++++++++++++ .../ProductPriceModifyVerifyValidator.java | 32 ++ .../supermarket/SupermarketSyncService.java | 104 +++--- .../system/sysuser/SysuserSyncService.java | 15 + 36 files changed, 2605 insertions(+), 109 deletions(-) create mode 100644 ssjygl-xsx-common/src/main/java/com/cowr/model/AddSubtractItem.java create mode 100644 ssjygl-xsx-common/src/main/java/com/cowr/model/AddSubtractItemRecord.java create mode 100644 ssjygl-xsx-common/src/main/java/com/cowr/model/ProductPriceModify.java create mode 100644 ssjygl-xsx-common/src/main/java/com/cowr/model/ProductPriceModifyLog.java create mode 100644 ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseAddSubtractItem.java create mode 100644 ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseAddSubtractItemRecord.java create mode 100644 ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseProductPriceModify.java create mode 100644 ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseProductPriceModifyLog.java create mode 100644 ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/addsubtractitemrecord/AddSubtractItemRecordService.java create mode 100644 ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/productpricemodify/ProductPriceModifyPKValidator.java create mode 100644 ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/productpricemodify/ProductPriceModifyService.java create mode 100644 ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/productpricemodify/ProductPriceModifyValidator.java create mode 100644 ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/productpricemodify/ProductPriceModifyController.java create mode 100644 ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemController.java create mode 100644 ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemPKValidator.java create mode 100644 ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemService.java create mode 100644 ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemValidator.java create mode 100644 ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordController.java create mode 100644 ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordPKValidator.java create mode 100644 ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordService.java create mode 100644 ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordValidator.java create mode 100644 ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/productpricemodify/ProductPriceModifyController.java create mode 100644 ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/productpricemodify/ProductPriceModifySyncService.java create mode 100644 ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/productpricemodify/ProductPriceModifyVerifyValidator.java diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/common/enums/RoleEnum.java b/ssjygl-xsx-common/src/main/java/com/cowr/common/enums/RoleEnum.java index 095a0e7..dfe5cc0 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/common/enums/RoleEnum.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/common/enums/RoleEnum.java @@ -18,6 +18,7 @@ import java.util.List; * 501 公司财务人员,权限:查看、付费、退费 * 502 公司领导,权限:查看 * 503 公司财务经理 付费审核、退费审核 + * 504 公司经理 修改单价审核审核 */ public enum RoleEnum { DEVOPS(99), @@ -34,6 +35,7 @@ public enum RoleEnum { TREASURER(501), PRESIDENTVIEW(502), FINANCEMANAGER(503), + COMPANYMANAGER(504), CHAISHA(600); diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/AddSubtractItem.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/AddSubtractItem.java new file mode 100644 index 0000000..98f434f --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/AddSubtractItem.java @@ -0,0 +1,14 @@ +package com.cowr.model; + +import com.cowr.model.base.BaseAddSubtractItem; + +/** + * Generated by COWR Tue Dec 07 16:33:48 CST 2021 + * TableName: add_subtract_item + * Remarks: + * PrimaryKey: id + */ +@SuppressWarnings("serial") +public class AddSubtractItem extends BaseAddSubtractItem { + public static final AddSubtractItem dao = new AddSubtractItem().dao(); +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/AddSubtractItemRecord.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/AddSubtractItemRecord.java new file mode 100644 index 0000000..f0cd2df --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/AddSubtractItemRecord.java @@ -0,0 +1,14 @@ +package com.cowr.model; + +import com.cowr.model.base.BaseAddSubtractItemRecord; + +/** + * Generated by COWR Tue Dec 07 16:33:48 CST 2021 + * TableName: add_subtract_item_record + * Remarks: + * PrimaryKey: id + */ +@SuppressWarnings("serial") +public class AddSubtractItemRecord extends BaseAddSubtractItemRecord { + public static final AddSubtractItemRecord dao = new AddSubtractItemRecord().dao(); +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/ProductPriceModify.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/ProductPriceModify.java new file mode 100644 index 0000000..6f455ff --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/ProductPriceModify.java @@ -0,0 +1,14 @@ +package com.cowr.model; + +import com.cowr.model.base.BaseProductPriceModify; + +/** + * Generated by COWR Tue Dec 07 16:33:48 CST 2021 + * TableName: product_price_modify + * Remarks: + * PrimaryKey: id + */ +@SuppressWarnings("serial") +public class ProductPriceModify extends BaseProductPriceModify { + public static final ProductPriceModify dao = new ProductPriceModify().dao(); +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/ProductPriceModifyLog.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/ProductPriceModifyLog.java new file mode 100644 index 0000000..d4e1ef9 --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/ProductPriceModifyLog.java @@ -0,0 +1,14 @@ +package com.cowr.model; + +import com.cowr.model.base.BaseProductPriceModifyLog; + +/** + * Generated by COWR Tue Dec 07 16:33:48 CST 2021 + * TableName: product_price_modify_log + * Remarks: + * PrimaryKey: id + */ +@SuppressWarnings("serial") +public class ProductPriceModifyLog extends BaseProductPriceModifyLog { + public static final ProductPriceModifyLog dao = new ProductPriceModifyLog().dao(); +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/_MappingKit.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/_MappingKit.java index 65c36c6..7620596 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/model/_MappingKit.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/_MappingKit.java @@ -88,7 +88,10 @@ public class _MappingKit { arp.addMapping("customer_contract_signed_log", "id", CustomerContractSignedLog.class); arp.addMapping("customer_contract_template", "id", CustomerContractTemplate.class); - + arp.addMapping("add_subtract_item", "id", AddSubtractItem.class); + arp.addMapping("add_subtract_item_record", "id", AddSubtractItemRecord.class); + arp.addMapping("product_price_modify", "id", ProductPriceModify.class); + arp.addMapping("product_price_modify_log", "id", ProductPriceModifyLog.class); arp.addMapping("presell_order", "id", PresellOrder.class); arp.addMapping("presell_pug", "id", PresellPug.class); } diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseAddSubtractItem.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseAddSubtractItem.java new file mode 100644 index 0000000..aaeed28 --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseAddSubtractItem.java @@ -0,0 +1,134 @@ +package com.cowr.model.base; + +import com.cowr.common.base.BaseModel; +import com.jfinal.plugin.activerecord.IBean; +import com.alibaba.fastjson.annotation.JSONField; + +/** + * Generated by COWR Tue Dec 07 16:33:48 CST 2021 + * TableName: add_subtract_item + * Remarks: + * PrimaryKey: id + */ +@SuppressWarnings("serial") +public abstract class BaseAddSubtractItem> extends BaseModel implements IBean { + + public static final String tablename = "add_subtract_item"; + + @JSONField(serialize=false) + public String getTablename(){ + return tablename; + } + + /** + * name: id + * type: INT UNSIGNED(10) + * isNullable: NO + * isPrimaryKey: YES + * defaultValue: + * @param id 主键 + */ + @JSONField(name="id") + public void setId(Integer id) { + set("id", id); + } + + + /** + * @return id 主键 + */ + @JSONField(name="id") + public Integer getId() { + return getInt("id"); + } + + /** + * name: item_code + * type: VARCHAR(50) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param itemCode 增减项代码 + */ + @JSONField(name="item_code") + public void setItemCode(String itemCode) { + set("item_code", itemCode); + } + + + /** + * @return item_code 增减项代码 + */ + @JSONField(name="item_code") + public String getItemCode() { + return getStr("item_code"); + } + + /** + * name: item_name + * type: VARCHAR(50) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param itemName 增减项名称 + */ + @JSONField(name="item_name") + public void setItemName(String itemName) { + set("item_name", itemName); + } + + + /** + * @return item_name 增减项名称 + */ + @JSONField(name="item_name") + public String getItemName() { + return getStr("item_name"); + } + + /** + * name: create_time + * type: DATETIME(19) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param createTime 创建时间 + */ + @JSONField(name="create_time") + public void setCreateTime(java.util.Date createTime) { + set("create_time", createTime); + } + + + /** + * @return create_time 创建时间 + */ + @JSONField(name="create_time") + public java.util.Date getCreateTime() { + return get("create_time"); + } + + /** + * name: memo + * type: VARCHAR(20) + * isNullable: YES + * isPrimaryKey: NO + * defaultValue: + * @param memo 单位 + */ + @JSONField(name="memo") + public void setMemo(String memo) { + set("memo", memo); + } + + + /** + * @return memo 备注 + */ + @JSONField(name="memo") + public String getMemo() { + return getStr("memo"); + } + + +} diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseAddSubtractItemRecord.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseAddSubtractItemRecord.java new file mode 100644 index 0000000..3970595 --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseAddSubtractItemRecord.java @@ -0,0 +1,242 @@ +package com.cowr.model.base; + +import com.cowr.common.base.BaseModel; +import com.jfinal.plugin.activerecord.IBean; +import com.alibaba.fastjson.annotation.JSONField; + +/** + * Generated by COWR Tue Dec 07 16:33:48 CST 2021 + * TableName: add_subtract_item_record + * Remarks: + * PrimaryKey: id + */ +@SuppressWarnings("serial") +public abstract class BaseAddSubtractItemRecord> extends BaseModel implements IBean { + + public static final String tablename = "add_subtract_item_record"; + + @JSONField(serialize=false) + public String getTablename(){ + return tablename; + } + + /** + * name: id + * type: INT UNSIGNED(10) + * isNullable: NO + * isPrimaryKey: YES + * defaultValue: + * @param id 主键 + */ + @JSONField(name="id") + public void setId(Integer id) { + set("id", id); + } + + + /** + * @return id 主键 + */ + @JSONField(name="id") + public Integer getId() { + return getInt("id"); + } + + /** + * name: year + * type: YEAR(4) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param year 年份 + */ + @JSONField(name="year") + public void setYear(Integer year) { + set("year", year); + } + + + /** + * @return year 年份 + */ + @JSONField(name="year") + public Integer getYear() { + return getInt("year"); + } + + /** + * name: item_code + * type: VARCHAR(50) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param itemCode 增减项代码 + */ + @JSONField(name="item_code") + public void setItemCode(String itemCode) { + set("item_code", itemCode); + } + + + /** + * @return item_code 增减项代码 + */ + @JSONField(name="item_code") + public String getItemCode() { + return getStr("item_code"); + } + + /** + * name: item_name + * type: VARCHAR(50) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param itemName 增减项名称 + */ + @JSONField(name="item_name") + public void setItemName(String itemName) { + set("item_name", itemName); + } + + + /** + * @return item_name 增减项名称 + */ + @JSONField(name="item_name") + public String getItemName() { + return getStr("item_name"); + } + + /** + * name: item_value + * type: DECIMAL UNSIGNED(12,2) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: 0.00 + * @param itemValue 增减值 + */ + @JSONField(name="item_value") + public void setItemValue(java.math.BigDecimal itemValue) { + set("item_value", itemValue); + } + + + /** + * @return item_value 增减值 + */ + @JSONField(name="item_value") + public java.math.BigDecimal getItemValue() { + return get("item_value"); + } + + /** + * name: item_type + * type: INT UNSIGNED(10) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param itemType 类型:1、增项,2、减项 + */ + @JSONField(name="item_type") + public void setItemType(Integer itemType) { + set("item_type", itemType); + } + + + /** + * @return item_type 类型:1、增项,2、减项 + */ + @JSONField(name="item_type") + public Integer getItemType() { + return getInt("item_type"); + } + + /** + * name: create_time + * type: DATETIME(19) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param createTime 创建时间 + */ + @JSONField(name="create_time") + public void setCreateTime(java.util.Date createTime) { + set("create_time", createTime); + } + + + /** + * @return create_time 创建时间 + */ + @JSONField(name="create_time") + public java.util.Date getCreateTime() { + return get("create_time"); + } + + /** + * name: update_time + * type: DATETIME(19) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param updateTime 修改时间 + */ + @JSONField(name="update_time") + public void setUpdateTime(java.util.Date updateTime) { + set("update_time", updateTime); + } + + + /** + * @return update_time 修改时间 + */ + @JSONField(name="update_time") + public java.util.Date getUpdateTime() { + return get("update_time"); + } + + /** + * name: memo + * type: VARCHAR(255) + * isNullable: YES + * isPrimaryKey: NO + * defaultValue: + * @param memo 备注 + */ + @JSONField(name="memo") + public void setMemo(String memo) { + set("memo", memo); + } + + + /** + * @return memo 备注 + */ + @JSONField(name="memo") + public String getMemo() { + return getStr("memo"); + } + + /** + * name: del + * type: INT(10) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: 0 + * @param del 逻辑删除标记位 + */ + @JSONField(name="del") + public void setDel(Integer del) { + set("del", del); + } + + + /** + * @return del 逻辑删除标记位 + */ + @JSONField(name="del") + public Integer getDel() { + return getInt("del"); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BasePresellOrder.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BasePresellOrder.java index b761e56..daecf8d 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BasePresellOrder.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BasePresellOrder.java @@ -42,28 +42,6 @@ public abstract class BasePresellOrder> extends Ba return getStr("id"); } - /** - * name: presell_sn - * type: CHAR(16) - * isNullable: NO - * isPrimaryKey: NO - * defaultValue: - * @param presellSn YYYYMMDD + 两位销售点id(避免离线生成订单号重复) + 两位订单类型 + 四位序列号 - */ - @JSONField(name="presell_sn") - public void setPresellSn(String presellSn) { - set("presell_sn", presellSn); - } - - - /** - * @return presell_sn YYYYMMDD + 两位销售点id(避免离线生成订单号重复) + 两位订单类型 + 四位序列号 - */ - @JSONField(name="presell_sn") - public String getPresellSn() { - return getStr("presell_sn"); - } - /** * name: customer_id * type: INT(11) @@ -152,6 +130,28 @@ public abstract class BasePresellOrder> extends Ba return get("presell_amount"); } + /** + * name: pug_amount + * type: DECIMAL(12,2) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: 0.00 + * @param pugAmount 已提货额 + */ + @JSONField(name="pug_amount") + public void setPugAmount(java.math.BigDecimal pugAmount) { + set("pug_amount", pugAmount); + } + + + /** + * @return pug_amount 已提货额 + */ + @JSONField(name="pug_amount") + public java.math.BigDecimal getPugAmount() { + return get("pug_amount"); + } + /** * name: invoice_number * type: VARCHAR(20) diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseProductPriceModify.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseProductPriceModify.java new file mode 100644 index 0000000..1da55af --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseProductPriceModify.java @@ -0,0 +1,266 @@ +package com.cowr.model.base; + +import com.cowr.common.base.BaseModel; +import com.jfinal.plugin.activerecord.IBean; +import com.alibaba.fastjson.annotation.JSONField; + +/** + * Generated by COWR Tue Dec 07 16:33:48 CST 2021 + * TableName: product_price_modify + * Remarks: + * PrimaryKey: id + */ +@SuppressWarnings("serial") +public abstract class BaseProductPriceModify> extends BaseModel implements IBean { + + public static final String tablename = "product_price_modify"; + + @JSONField(serialize=false) + public String getTablename(){ + return tablename; + } + + /** + * name: id + * type: CHAR(32) + * isNullable: NO + * isPrimaryKey: YES + * defaultValue: + * @param id uuid + */ + @JSONField(name="id") + public void setId(String id) { + set("id", id); + } + + + /** + * @return id uuid + */ + @JSONField(name="id") + public String getId() { + return getStr("id"); + } + + /** + * name: customer_id + * type: INT UNSIGNED(10) + * isNullable: YES + * isPrimaryKey: NO + * defaultValue: + * @param customerId 客户id + */ + @JSONField(name="customer_id") + public void setCustomerId(Integer customerId) { + set("customer_id", customerId); + } + + + /** + * @return customer_id 客户id + */ + @JSONField(name="customer_id") + public Integer getCustomerId() { + return getInt("customer_id"); + } + + /** + * name: supermarket_id + * type: INT UNSIGNED(10) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param supermarketId 超市id + */ + @JSONField(name="supermarket_id") + public void setSupermarketId(Integer supermarketId) { + set("supermarket_id", supermarketId); + } + + + /** + * @return supermarket_id 超市id + */ + @JSONField(name="supermarket_id") + public Integer getSupermarketId() { + return getInt("supermarket_id"); + } + + /** + * name: product_id + * type: INT UNSIGNED(10) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param productId 商品id + */ + @JSONField(name="product_id") + public void setProductId(Integer productId) { + set("product_id", productId); + } + + + /** + * @return product_id 商品id + */ + @JSONField(name="product_id") + public Integer getProductId() { + return getInt("product_id"); + } + + /** + * name: unit_price + * type: DECIMAL UNSIGNED(12,2) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param unitPrice 商品销售单价 + */ + @JSONField(name="unit_price") + public void setUnitPrice(java.math.BigDecimal unitPrice) { + set("unit_price", unitPrice); + } + + + /** + * @return unit_price 商品销售单价 + */ + @JSONField(name="unit_price") + public java.math.BigDecimal getUnitPrice() { + return get("unit_price"); + } + + /** + * name: type + * type: INT UNSIGNED(10) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param type 1、砂站单价,2、客户品类单价 + */ + @JSONField(name="type") + public void setType(Integer type) { + set("type", type); + } + + + /** + * @return type 1、砂站单价,2、客户品类单价 + */ + @JSONField(name="type") + public Integer getType() { + return getInt("type"); + } + + /** + * name: state + * type: INT UNSIGNED(10) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param state 审核状态:1.提交、待审核,2.审核通过,9.未通过 + */ + @JSONField(name="state") + public void setState(Integer state) { + set("state", state); + } + + + /** + * @return state 审核状态:1.提交、待审核,2.审核通过,9.未通过 + */ + @JSONField(name="state") + public Integer getState() { + return getInt("state"); + } + + /** + * name: change_time + * type: DATETIME(19) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param changeTime 最后修改时间 + */ + @JSONField(name="change_time") + public void setChangeTime(java.util.Date changeTime) { + set("change_time", changeTime); + } + + + /** + * @return change_time 最后修改时间 + */ + @JSONField(name="change_time") + public java.util.Date getChangeTime() { + return get("change_time"); + } + + /** + * name: create_time + * type: DATETIME(19) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param createTime 创建时间 + */ + @JSONField(name="create_time") + public void setCreateTime(java.util.Date createTime) { + set("create_time", createTime); + } + + + /** + * @return create_time 创建时间 + */ + @JSONField(name="create_time") + public java.util.Date getCreateTime() { + return get("create_time"); + } + + /** + * name: verify_time + * type: DATETIME(19) + * isNullable: YES + * isPrimaryKey: NO + * defaultValue: + * @param verifyTime 审核时间,不论审核是否通过都更新 + */ + @JSONField(name="verify_time") + public void setVerifyTime(java.util.Date verifyTime) { + set("verify_time", verifyTime); + } + + + /** + * @return verify_time 审核时间,不论审核是否通过都更新 + */ + @JSONField(name="verify_time") + public java.util.Date getVerifyTime() { + return get("verify_time"); + } + + /** + * name: create_user_id + * type: INT UNSIGNED(10) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param createUserId 创建人id + */ + @JSONField(name="create_user_id") + public void setCreateUserId(Integer createUserId) { + set("create_user_id", createUserId); + } + + + /** + * @return create_user_id 创建人id + */ + @JSONField(name="create_user_id") + public Integer getCreateUserId() { + return getInt("create_user_id"); + } + + +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseProductPriceModifyLog.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseProductPriceModifyLog.java new file mode 100644 index 0000000..7641152 --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseProductPriceModifyLog.java @@ -0,0 +1,178 @@ +package com.cowr.model.base; + +import com.cowr.common.base.BaseModel; +import com.jfinal.plugin.activerecord.IBean; +import com.alibaba.fastjson.annotation.JSONField; + +/** + * Generated by COWR Tue Dec 07 16:33:48 CST 2021 + * TableName: product_price_modify_log + * Remarks: + * PrimaryKey: id + */ +@SuppressWarnings("serial") +public abstract class BaseProductPriceModifyLog> extends BaseModel implements IBean { + + public static final String tablename = "product_price_modify_log"; + + @JSONField(serialize=false) + public String getTablename(){ + return tablename; + } + + /** + * name: id + * type: CHAR(32) + * isNullable: NO + * isPrimaryKey: YES + * defaultValue: + * @param id uuid + */ + @JSONField(name="id") + public void setId(String id) { + set("id", id); + } + + + /** + * @return id uuid + */ + @JSONField(name="id") + public String getId() { + return getStr("id"); + } + + /** + * name: product_price_modify_id + * type: CHAR(32) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param productPriceModifyId 单价修改id + */ + @JSONField(name="product_price_modify_id") + public void setProductPriceModifyId(String productPriceModifyId) { + set("product_price_modify_id", productPriceModifyId); + } + + + /** + * @return product_price_modify_id 单价修改id + */ + @JSONField(name="product_price_modify_id") + public String getProductPriceModifyId() { + return getStr("product_price_modify_id"); + } + + /** + * name: state + * type: INT UNSIGNED(10) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param state 审核状态:1.提交、待审核,2、审核通过,3、未通过 + */ + @JSONField(name="state") + public void setState(Integer state) { + set("state", state); + } + + + /** + * @return state 审核状态:1.提交、待审核,2、审核通过,3、未通过 + */ + @JSONField(name="state") + public Integer getState() { + return getInt("state"); + } + + /** + * name: change_time + * type: DATETIME(19) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param changeTime 状态变化时间 + */ + @JSONField(name="change_time") + public void setChangeTime(java.util.Date changeTime) { + set("change_time", changeTime); + } + + + /** + * @return change_time 状态变化时间 + */ + @JSONField(name="change_time") + public java.util.Date getChangeTime() { + return get("change_time"); + } + + /** + * name: change_user_id + * type: INT UNSIGNED(10) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param changeUserId 操作用户id + */ + @JSONField(name="change_user_id") + public void setChangeUserId(Integer changeUserId) { + set("change_user_id", changeUserId); + } + + + /** + * @return change_user_id 操作用户id + */ + @JSONField(name="change_user_id") + public Integer getChangeUserId() { + return getInt("change_user_id"); + } + + /** + * name: change_user_name + * type: VARCHAR(20) + * isNullable: NO + * isPrimaryKey: NO + * defaultValue: + * @param changeUserName 操作用户姓名 + */ + @JSONField(name="change_user_name") + public void setChangeUserName(String changeUserName) { + set("change_user_name", changeUserName); + } + + + /** + * @return change_user_name 操作用户姓名 + */ + @JSONField(name="change_user_name") + public String getChangeUserName() { + return getStr("change_user_name"); + } + + /** + * name: memo + * type: VARCHAR(255) + * isNullable: YES + * isPrimaryKey: NO + * defaultValue: + * @param memo 备注 + */ + @JSONField(name="memo") + public void setMemo(String memo) { + set("memo", memo); + } + + + /** + * @return memo 备注 + */ + @JSONField(name="memo") + public String getMemo() { + return getStr("memo"); + } + + +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/addsubtractitemrecord/AddSubtractItemRecordService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/addsubtractitemrecord/AddSubtractItemRecordService.java new file mode 100644 index 0000000..8fddaa4 --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/addsubtractitemrecord/AddSubtractItemRecordService.java @@ -0,0 +1,43 @@ +package com.cowr.ssjygl.addsubtractitemrecord; + +import com.cowr.common.base.BaseService; +import com.cowr.model.AddSubtractItemRecord; +import com.jfinal.kit.StrKit; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: add_subtract_item_record + * Remarks: + * PrimaryKey: id + */ +public class AddSubtractItemRecordService extends BaseService { + public static final AddSubtractItemRecordService me = new AddSubtractItemRecordService(); + + public BigDecimal getAddSubtractItemValueByYearAndCode(String year, String item_code) { + BigDecimal ret = new BigDecimal(0); + String sql = "select * from add_subtract_item_record t where 1=1 and del = 0"; + List paraList = new ArrayList<>(); + + if (year != null) { + sql += " and t.year = ? \n"; + paraList.add(year); + } + + if (StrKit.notBlank(item_code)) { + sql += " and t.item_code = ? \n"; + paraList.add(item_code.trim()); + } + + AddSubtractItemRecord record = AddSubtractItemRecord.dao.findFirst(sql, paraList.toArray()); + if (record != null) { + ret = record.getItemValue(); + } + + return ret; + } + +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/prepaycustomer/PrepayCustomerService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/prepaycustomer/PrepayCustomerService.java index 0b508f4..d7fd3b6 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/prepaycustomer/PrepayCustomerService.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/prepaycustomer/PrepayCustomerService.java @@ -13,6 +13,11 @@ public class PrepayCustomerService { return PrepayCustomer.dao.findFirst("select * from prepay_customer where customer_id = ? limit 1", customer_id); } + /** + * 客户余额表中的余额需要减去待审的退费金额才是真实可用的余额 + * @param customer_id + * @return + */ public PrepayCustomer getPrepayCustomerSurplus(int customer_id) { return PrepayCustomer.dao.findFirst("SELECT\n" + " a.*\n" + diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/productpricemodify/ProductPriceModifyPKValidator.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/productpricemodify/ProductPriceModifyPKValidator.java new file mode 100644 index 0000000..93817fe --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/productpricemodify/ProductPriceModifyPKValidator.java @@ -0,0 +1,24 @@ +package com.cowr.ssjygl.productpricemodify; + + +import com.cowr.common.validator.CrudParamValidator; +import com.cowr.common.view.Result; +import com.jfinal.core.Controller; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: product_price_modify + * Remarks: + * PrimaryKey: id + */ +public class ProductPriceModifyPKValidator extends CrudParamValidator { + @Override + protected void validate(Controller c) { + validateRequired("id", "id", "id 必填"); + validateString("id", 1, 32, "id", "id 长度 1~32"); + } + + protected void handleError(Controller c) { + c.renderJson(Result.failed(getErrmsg())); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/productpricemodify/ProductPriceModifyService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/productpricemodify/ProductPriceModifyService.java new file mode 100644 index 0000000..7d92b96 --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/productpricemodify/ProductPriceModifyService.java @@ -0,0 +1,114 @@ +package com.cowr.ssjygl.productpricemodify; + +import com.cowr.common.Const; +import com.cowr.common.base.BaseService; +import com.cowr.common.view.PageParam; +import com.cowr.model.ProductPriceModify; +import com.jfinal.kit.StrKit; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Page; +import com.jfinal.plugin.activerecord.Record; +import java.util.ArrayList; +import java.util.List; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: product_price_modify + * Remarks: + * PrimaryKey: id + */ +public class ProductPriceModifyService extends BaseService { + public static final ProductPriceModifyService me = new ProductPriceModifyService(); + + public Page find(PageParam pp, String name, String stm, String etm, Integer supermarket_id, Integer state) { + String selectsql = "select t.*, c.name customer_name, p.name product_name, s.name supermarket_name \n"; + String fromsql = " from product_price_modify t \n" + + " left join customer c on t.customer_id = c.id \n" + + " left join product p on t.product_id = p.id \n" + + " left join supermarket s on t.supermarket_id = s.id \n" + + " where 1 = 1 \n"; + List paraList = new ArrayList<>(); + + if (StrKit.notBlank(name)) { + fromsql += " and c.name like ? \n"; + paraList.add("%" + name.trim() + "%"); + } + + if (StrKit.notBlank(stm)) { + fromsql += " and t.create_time >= ? \n"; + paraList.add(stm); + } + + if (StrKit.notBlank(etm)) { + fromsql += " and t.create_time <= ? \n"; + paraList.add(etm); + } + + if (supermarket_id != null) { + fromsql += " and t.supermarket_id = ? \n"; + paraList.add(supermarket_id); + } + + if (state != null) { + fromsql += " and t.state = ? \n"; + paraList.add(state); + } + + String totalRowSql = "select count(*) " + fromsql; + String findSql = selectsql + fromsql; + + // 前端传了排序字段,并且排序字段存在相关表中 + if (StrKit.notBlank(pp.getSort_field()) && ProductPriceModify.dao.hasColunm(pp.getSort_field())) { + findSql += " order by t." + pp.getSort_field() + " is null, t." + pp.getSort_field(); + if (Const.ORDER_BY_ASC.equals(pp.getSort_order())) { + findSql += " " + Const.ORDER_BY_ASC; + } else { + findSql += " " + Const.ORDER_BY_DESC; + } + } else { + findSql += " order by t.create_time desc"; + } + + return Db.paginateByFullSql(pp.getPage(), pp.getSize(), totalRowSql, findSql, paraList.toArray()); + } + + public List list(String name, String stm, String etm, Integer supermarket_id, Integer state) { + String sql = "select t.*, c.name customer_name, p.name product_name, s.name supermarket_name \n" + + " from product_price_modify t \n" + + " left join customer c on t.customer_id = c.id \n" + + " left join product p on t.product_id = p.id \n" + + " left join supermarket s on t.supermarket_id = s.id \n" + + " where 1 = 1"; + List paraList = new ArrayList<>(); + + if (StrKit.notBlank(name)) { + sql += " and c.name like ? \n"; + paraList.add("%" + name.trim() + "%"); + } + + if (StrKit.notBlank(stm)) { + sql += " and t.create_time >= ? \n"; + paraList.add(stm); + } + + if (StrKit.notBlank(etm)) { + sql += " and t.create_time <= ? \n"; + paraList.add(etm); + } + + if (supermarket_id != null) { + sql += " and t.supermarket_id = ? \n"; + paraList.add(supermarket_id); + } + + if (state != null) { + sql += " and t.state = ? \n"; + paraList.add(state); + } + + sql += " order by t.create_time desc"; + + return Db.find(sql, paraList.toArray()); + } + +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/productpricemodify/ProductPriceModifyValidator.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/productpricemodify/ProductPriceModifyValidator.java new file mode 100644 index 0000000..9b29938 --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/productpricemodify/ProductPriceModifyValidator.java @@ -0,0 +1,50 @@ +package com.cowr.ssjygl.productpricemodify; + +import com.jfinal.core.Controller; +import com.jfinal.kit.StrKit; +import com.cowr.common.validator.CrudParamValidator; +import com.cowr.common.view.Result; +import com.cowr.model.ProductPriceModify; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: product_price_modify + * Remarks: + * PrimaryKey: id + */ +public class ProductPriceModifyValidator extends CrudParamValidator { + @Override + protected void validate(Controller c) { + // 默认新增时,前端不需要传主键。若需要前端传主键,需要去掉这个判断 + if (!"save".equals(getActionMethodName())) { + validateRequired("id", "id", "id 必填"); + validateString("id", 1, 32, "id", "id 长度 1~32"); + } + if (StrKit.notBlank(c.get("customer_id"))) { // 可为空字段,当传入值时,才做验证 + validateLong("customer_id", 1, 2147483647, "customer_id", "customer_id 范围 1~2147483647"); + } + + validateRequired("supermarket_id", "supermarket_id", "supermarket_id 必填"); + validateLong("supermarket_id", 1, 2147483647, "supermarket_id", "supermarket_id 范围 1~2147483647"); + + validateRequired("product_id", "product_id", "product_id 必填"); + validateLong("product_id", 1, 2147483647, "product_id", "product_id 范围 1~2147483647"); + + validateRequired("unit_price", "unit_price", "unit_price 必填"); + validateBigDecimal("unit_price", new java.math.BigDecimal(-9.9999999999E10), new java.math.BigDecimal(9.9999999999E10), "unit_price", "unit_price 范围 -9.9999999999E10~9.9999999999E10"); + + validateRequired("type", "type", "type 必填"); + validateLong("type", 1, 2, "type", "type 范围1或2"); + + // 使用 model 更新时,model 不能只有主键有值 + // 这里用 getActionMethodName 写死,判断是 update 时,才做验证 + // 如果确实是需要将主键外的字段置为 null,可以在代码生成后删掉这段 + if ("edit".equals(getActionMethodName())) { + validateUpdateModel(ProductPriceModify.class, "", true); // 忽略不在model中的字段 + } + } + + protected void handleError(Controller c) { + c.renderJson(Result.failed(getErrmsg())); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java index ef0f1d9..110463f 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java @@ -2726,26 +2726,27 @@ public class OrderStatService { " select\n" + " g.customer_id,\n" + " ifnull(sum(g.presell_amount), 0) total_presell_amount,\n" + - " 0 total_presell_pug,\n" + + " ifnull(sum(g.pug_amount), 0) total_presell_pug,\n" + " ifnull(sum(case when g.supermarket_id = 1 or g.supermarket_id = 7 then g.presell_amount end), 0) xsl_1,\n" + " ifnull(sum(case when g.supermarket_id = 2 then g.presell_amount end), 0) xsl_2,\n" + - " ifnull(sum(case when g.supermarket_id = 3 then g.presell_amount end), 0) xsl_3,\n" + - " ifnull(sum(case when g.supermarket_id = 4 then g.presell_amount end), 0) xsl_4,\n" + - " ifnull(sum(case when g.supermarket_id = 5 or g.supermarket_id = 9 then g.presell_amount end), 0) xsl_5,\n" + - " ifnull(sum(case when g.supermarket_id = 6 or g.supermarket_id = 8 or g.supermarket_id = 10 then g.presell_amount end), 0) xsl_6,\n" + - " ifnull(sum(case when g.supermarket_id = 11 then g.presell_amount end), 0) xsl_11,\n" + - " 0 xse_1,\n" + - " 0 xse_2,\n" + - " 0 xse_3,\n" + - " 0 xse_4,\n" + - " 0 xse_5,\n" + - " 0 xse_6,\n" + - " 0 xse_11\n" + + " ifnull(sum(case when g.supermarket_id = 3 then g.presell_amount end), 0) xsl_3,\n" + + " ifnull(sum(case when g.supermarket_id = 4 then g.presell_amount end), 0) xsl_4,\n" + + " ifnull(sum(case when g.supermarket_id = 5 or g.supermarket_id = 9 then g.presell_amount end), 0) xsl_5,\n" + + " ifnull(sum(case when g.supermarket_id = 6 or g.supermarket_id = 8 or g.supermarket_id = 10 then g.presell_amount end), 0) xsl_6,\n" + + " ifnull(sum(case when g.supermarket_id = 11 then g.presell_amount end), 0) xsl_11,\n" + + " ifnull(sum(case when g.supermarket_id = 1 or g.supermarket_id = 7 then g.pug_amount end), 0) xse_1,\n" + + " ifnull(sum(case when g.supermarket_id = 2 then g.pug_amount end), 0) xse_2,\n" + + " ifnull(sum(case when g.supermarket_id = 3 then g.pug_amount end), 0) xse_3,\n" + + " ifnull(sum(case when g.supermarket_id = 4 then g.pug_amount end), 0) xse_4,\n" + + " ifnull(sum(case when g.supermarket_id = 5 or g.supermarket_id = 9 then g.pug_amount end), 0) xse_5,\n" + + " ifnull(sum(case when g.supermarket_id = 6 or g.supermarket_id = 8 or g.supermarket_id = 10 then g.pug_amount end), 0) xse_6,\n" + + " ifnull(sum(case when g.supermarket_id = 11 then g.pug_amount end), 0) xse_11\n" + " from (\n" + " SELECT\n" + " p.customer_id,\n" + " p.supermarket_id,\n" + - " ifnull(sum(p.presell_amount), 0) presell_amount\n" + + " ifnull(sum(p.presell_amount), 0) presell_amount,\n" + + " ifnull(sum(p.pug_amount), 0) pug_amount\n" + " FROM\n" + " presell_order p\n" + " WHERE\n" + diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java index 51e32da..88111eb 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java @@ -42,6 +42,7 @@ import com.cowr.local.ssjygl.prepay.prepaytruck.PrepayTruckController; import com.cowr.local.ssjygl.prepay.refunddetail.RefundDetailController; import com.cowr.local.ssjygl.presellorder.PresellOrderController; import com.cowr.local.ssjygl.product.ProductController; +import com.cowr.local.ssjygl.productpricemodify.ProductPriceModifyController; import com.cowr.local.ssjygl.purchase.PurchaseController; import com.cowr.local.ssjygl.sandfarm.SandfarmController; import com.cowr.local.ssjygl.sms.log.SmsLogController; @@ -235,6 +236,7 @@ public class Config extends JFinalConfig { me.add("/orderclustertruck", OrderclusterTruckController.class); me.add("/order/invalidverify", OrderInvalidVerifyController.class); me.add("/presellorder", PresellOrderController.class); + me.add("/productPriceModify", ProductPriceModifyController.class); // -- 统计 me.add("/stat/sale", OrderStatController.class); diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/productpricemodify/ProductPriceModifyController.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/productpricemodify/ProductPriceModifyController.java new file mode 100644 index 0000000..a0496e5 --- /dev/null +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/productpricemodify/ProductPriceModifyController.java @@ -0,0 +1,41 @@ +package com.cowr.local.ssjygl.productpricemodify; + +import com.cowr.common.view.PageParam; +import com.cowr.common.view.Result; +import com.cowr.ssjygl.productpricemodify.ProductPriceModifyService; +import com.jfinal.core.Controller; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: product_price_modify + * Remarks: + * PrimaryKey: id + */ +public class ProductPriceModifyController extends Controller { + + /** + * 分页查找 product_price_modify + */ + public void find(){ + String name = get("name"); + String stm = get("stm"); + String etm = get("etm"); + Integer supermarket_id = getInt("supermarket_id"); + Integer state = getInt("state"); + PageParam pp = getBean(PageParam.class, "", true); + renderJson(Result.object(ProductPriceModifyService.me.find(pp, name, stm, etm, supermarket_id, state))); + } + + + /** + * 返回所有 product_price_modify + */ + public void list(){ + String name = get("name"); + String stm = get("stm"); + String etm = get("etm"); + Integer supermarket_id = getInt("supermarket_id"); + Integer state = getInt("state"); + renderJson(Result.object(ProductPriceModifyService.me.list(name, stm, etm, supermarket_id, state))); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemController.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemController.java new file mode 100644 index 0000000..270a9bd --- /dev/null +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemController.java @@ -0,0 +1,79 @@ +package com.cowr.service.ssjygl.addsubtractitem; + +import com.cowr.common.view.PageParam; +import com.cowr.common.view.Result; +import com.cowr.model.AddSubtractItem; +import com.cowr.model.Sysuser; +import com.cowr.service.ssjygl.system.sysuser.SysuserSyncService; +import com.jfinal.aop.Before; +import com.jfinal.core.Controller; +import com.jfinal.log.Log; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: add_subtract_item + * Remarks: + * PrimaryKey: id + */ +public class AddSubtractItemController extends Controller { + private static Log log = Log.getLog(AddSubtractItemController.class); + + /** + * 新增 add_subtract_item + */ + @Before(AddSubtractItemValidator.class) + public void save(){ + AddSubtractItem model = getModel(AddSubtractItem.class, "", true); // 忽略不在model中的字段 + renderJson(AddSubtractItemService.me.save(model)); + } + + /** + * 修改 add_subtract_item + */ + @Before(AddSubtractItemValidator.class) + public void edit(){ + AddSubtractItem model = getModel(AddSubtractItem.class, "", true); // 忽略不在model中的字段 + renderJson(AddSubtractItemService.me.update(model)); + } + + /** + * 删除 add_subtract_item + */ + @Before(AddSubtractItemPKValidator.class) + public void del(){ + try { + Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); + + if (tokenuser == null) { + renderJson(Result.noauth()); + return; + } + AddSubtractItem model = getModel(AddSubtractItem.class, "", true); // 忽略不在model中的字段 + renderJson(AddSubtractItemService.me.delete(model)); + } catch (Exception e) { + log.error(e.getMessage(), e); + renderJson(Result.failed("删除出错")); + } + } + + /** + * 分页查找 add_subtract_item + */ + public void find(){ + PageParam pp = getBean(PageParam.class, "", true); + String item_name = get("item_name"); + String stm = get("stm"); + String etm = get("etm"); + renderJson(Result.object(AddSubtractItemService.me.find(pp, item_name, stm, etm))); + } + + + /** + * 返回所有 add_subtract_item + */ + public void list(){ + renderJson(Result.object(AddSubtractItemService.me.list())); + } + + +} \ No newline at end of file diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemPKValidator.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemPKValidator.java new file mode 100644 index 0000000..0385992 --- /dev/null +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemPKValidator.java @@ -0,0 +1,24 @@ +package com.cowr.service.ssjygl.addsubtractitem; + + +import com.cowr.common.validator.CrudParamValidator; +import com.cowr.common.view.Result; +import com.jfinal.core.Controller; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: add_subtract_item + * Remarks: + * PrimaryKey: id + */ +public class AddSubtractItemPKValidator extends CrudParamValidator { + @Override + protected void validate(Controller c) { + validateRequired("id", "id", "id 必填"); + validateLong("id", 1, 2147483647, "id", "id 范围 1~2147483647"); + } + + protected void handleError(Controller c) { + c.renderJson(Result.failed(getErrmsg())); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemService.java new file mode 100644 index 0000000..674c3e2 --- /dev/null +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemService.java @@ -0,0 +1,148 @@ +package com.cowr.service.ssjygl.addsubtractitem; + +import com.cowr.common.Const; +import com.cowr.common.base.BaseService; +import com.cowr.common.view.PageParam; +import com.cowr.common.view.Result; +import com.cowr.model.AddSubtractItem; +import com.cowr.model.AddSubtractItemRecord; +import com.jfinal.kit.StrKit; +import com.jfinal.log.Log; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.IAtom; +import com.jfinal.plugin.activerecord.Page; +import com.jfinal.plugin.activerecord.Record; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: add_subtract_item + * Remarks: + * PrimaryKey: id + */ +public class AddSubtractItemService extends BaseService { + private static final Log log = Log.getLog(AddSubtractItemService.class); + public static final AddSubtractItemService me = new AddSubtractItemService(); + + public Result save(AddSubtractItem model) { + String item_code = model.getItemCode(); + AddSubtractItem item = AddSubtractItem.dao.findFirst("select * from add_subtract_item where item_code = ?", item_code); + if (item != null) { + return Result.failed("增减项编码【" + item_code + "】已存在"); + } + model.setCreateTime(new Date()); + try { + boolean ret = model.save(); + + return ret ? Result.object(model) : Result.failed(false, "新增失败"); + } catch (Exception e) { + log.error(e.getMessage(), e); + if (e.getMessage().contains("PRIMARY")) { + return Result.failed(false, "主键冲突"); + } else { + return Result.failed(false, e.getMessage()); + } + } + } + + public Result update(AddSubtractItem model) { + AddSubtractItem old = AddSubtractItem.dao.findById(model.getId()); + if (old == null) { + return Result.failed("按主键等于" + model.getId() + "未找到数据"); + } + + String item_code = model.getItemCode(); + String old_item_code = old.getItemCode(); + AddSubtractItem item = AddSubtractItem.dao.findFirst("select * from add_subtract_item where item_code = ?", item_code); + if (item != null) { + return Result.failed("增减项编码【" + item_code + "】已存在"); + } + + List list = AddSubtractItemRecord.dao.find("select * from add_subtract_item_record where item_code = ?", old_item_code); + boolean ret = Db.tx(new IAtom() { + @Override + public boolean run() { + try { + if (list.size() > 0) { + for (AddSubtractItemRecord md : list) { + md.setItemCode(item_code); + md.setUpdateTime(new Date()); + boolean ret = md.update(); + if (!ret) { + return false; + } + } + } + + return model.update(); + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + }); + + return ret ? Result.object(model) : Result.failed(false, "修改失败"); + } + + public Result delete(AddSubtractItem model) { + try { + if (!model.checkExistsByPk()) { + return Result.failed(false, "按主键未找到对应记录"); + } + List list = AddSubtractItemRecord.dao.find("select * from add_subtract_item_record where item_code = ?", model.getItemCode()); + if (list.size() > 0) { + return Result.failed(false, "要删除的项已被使用"); + } + return Result.object(model.delete()); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.failed(false, null); + } + } + + public Page find(PageParam pp, String item_name, String stm, String etm) { + String selectsql = "select * "; + String fromsql = "from add_subtract_item t where 1=1 "; + List paraList = new ArrayList<>(); + + if (StrKit.notBlank(item_name)) { + fromsql += " and t.item_name like ? \n"; + paraList.add("%" + item_name.trim() + "%"); + } + + if (StrKit.notBlank(stm)) { + fromsql += " and t.create_time >= ? \n"; + paraList.add(stm); + } + + if (StrKit.notBlank(etm)) { + fromsql += " and t.create_time <= ? \n"; + paraList.add(etm); + } + + String totalRowSql = "select count(*) " + fromsql; + String findSql = selectsql + fromsql; + + // 前端传了排序字段,并且排序字段存在相关表中 + if (StrKit.notBlank(pp.getSort_field()) && AddSubtractItem.dao.hasColunm(pp.getSort_field())) { + findSql += " order by t." + pp.getSort_field() + " is null, t." + pp.getSort_field(); + + if (Const.ORDER_BY_ASC.equals(pp.getSort_order())) { + findSql += " " + Const.ORDER_BY_ASC; + } else { + findSql += " " + Const.ORDER_BY_DESC; + } + }else { + findSql += " order by t.create_time desc "; + } + + return Db.paginateByFullSql(pp.getPage(), pp.getSize(), totalRowSql, findSql, paraList.toArray()); + } + + public List list() { + return AddSubtractItem.dao.find("select * from add_subtract_item"); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemValidator.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemValidator.java new file mode 100644 index 0000000..69c536e --- /dev/null +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitem/AddSubtractItemValidator.java @@ -0,0 +1,44 @@ +package com.cowr.service.ssjygl.addsubtractitem; + +import com.jfinal.core.Controller; +import com.cowr.common.validator.CrudParamValidator; +import com.cowr.common.view.Result; +import com.cowr.model.AddSubtractItem; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: add_subtract_item + * Remarks: + * PrimaryKey: id + */ +public class AddSubtractItemValidator extends CrudParamValidator { + @Override + protected void validate(Controller c) { + // 默认新增时,前端不需要传主键。若需要前端传主键,需要去掉这个判断 + if (!"save".equals(getActionMethodName())) { + validateRequired("id", "id", "id 必填"); + + validateLong("id", 1, 2147483647, "id", "id 范围 1~2147483647"); + } + + validateRequired("item_code", "item_code", "item_code 必填"); + validateString("item_code", 1, 50, "item_code", "item_code 长度 1~50"); + + validateRequired("item_name", "item_name", "item_name 必填"); + validateString("item_name", 1, 50, "item_name", "item_name 长度 1~50"); + + validateString("memo", 0, 255, "memo", "memo 长度 0~255"); + + + // 使用 model 更新时,model 不能只有主键有值 + // 这里用 getActionMethodName 写死,判断是 update 时,才做验证 + // 如果确实是需要将主键外的字段置为 null,可以在代码生成后删掉这段 + if ("edit".equals(getActionMethodName())) { + validateUpdateModel(AddSubtractItem.class, "", true); // 忽略不在model中的字段 + } + } + + protected void handleError(Controller c) { + c.renderJson(Result.failed(getErrmsg())); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordController.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordController.java new file mode 100644 index 0000000..65ca371 --- /dev/null +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordController.java @@ -0,0 +1,138 @@ +package com.cowr.service.ssjygl.addsubtractitemrecord; + +import com.alibaba.fastjson.JSONArray; +import com.cowr.common.Const; +import com.cowr.common.view.PageParam; +import com.cowr.common.view.Result; +import com.cowr.model.Sysuser; +import com.cowr.service.ssjygl.system.sysuser.SysuserSyncService; +import com.jfinal.aop.Before; +import com.jfinal.core.Controller; +import com.jfinal.log.Log; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: add_subtract_item_record + * Remarks: + * PrimaryKey: id + */ +public class AddSubtractItemRecordController extends Controller { + private static Log log = Log.getLog(AddSubtractItemRecordController.class); + + /** + * 新增 add_subtract_item_record + */ + @Before(AddSubtractItemRecordValidator.class) + public void save(){ + try { + Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); + + if (tokenuser == null) { + renderJson(Result.noauth()); + return; + } + Integer year = getInt("year"); + String arr = get("itemArr"); + JSONArray itemArr = JSONArray.parseArray(arr); + + renderJson(AddSubtractItemRecordService.me.save(year, itemArr)); + } catch (Exception e) { + log.error(e.getMessage(), e); + renderJson(Result.failed("保存出错")); + } + } + + /** + * 修改 add_subtract_item_record + */ + @Before(AddSubtractItemRecordValidator.class) + public void edit(){ + try { + Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); + + if (tokenuser == null) { + renderJson(Result.noauth()); + return; + } + Integer year = getInt("year"); + String arr = get("itemArr"); + JSONArray itemArr = JSONArray.parseArray(arr); + renderJson(AddSubtractItemRecordService.me.update(year, itemArr)); + }catch (Exception e){ + log.error(e.getMessage(), e); + renderJson(Result.failed("修改出错")); + } + } + + /** + * 删除 add_subtract_item_record + */ + @Before(AddSubtractItemRecordValidator.class) + public void del(){ + try { + Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); + + if (tokenuser == null) { + renderJson(Result.noauth()); + return; + } + String arr = get("itemArr"); + JSONArray itemArr = JSONArray.parseArray(arr); + renderJson(AddSubtractItemRecordService.me.delete(itemArr)); + } catch (Exception e) { + log.error(e.getMessage(), e); + renderJson(Result.failed("删除出错")); + } + } + + /** + * 恢复 add_subtract_item_record + */ + @Before(AddSubtractItemRecordValidator.class) + public void restore(){ + try { + Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); + + if (tokenuser == null) { + renderJson(Result.noauth()); + return; + } + String arr = get("itemArr"); + JSONArray itemArr = JSONArray.parseArray(arr); + renderJson(AddSubtractItemRecordService.me.restore(itemArr)); + } catch (Exception e) { + log.error(e.getMessage(), e); + renderJson(Result.failed("删除出错")); + } + } + + /** + * 分页查找 add_subtract_item_record + */ + public void find(){ + PageParam pp = getBean(PageParam.class, "", true); + Integer year = getInt("year"); + String item_name = get("item_name"); + String item_code = get("item_code"); + String stm = get("stm"); + String etm = get("etm"); + Integer del = getInt("del", Const.LOGIC_DEL_VALID); // 默认显示未删除的 + + renderJson(Result.object(AddSubtractItemRecordService.me.find(pp, year, item_name, item_code, stm, etm, del))); + } + + + /** + * add_subtract_item_record + */ + public void list(){ + Integer year = getInt("year"); + String item_name = get("item_name"); + String item_code = get("item_code"); + String stm = get("stm"); + String etm = get("etm"); + Integer del = getInt("del", Const.LOGIC_DEL_VALID); // 默认显示未删除的 + + renderJson(Result.object(AddSubtractItemRecordService.me.list(year, item_name, item_code, stm, etm, del))); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordPKValidator.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordPKValidator.java new file mode 100644 index 0000000..0f307cd --- /dev/null +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordPKValidator.java @@ -0,0 +1,24 @@ +package com.cowr.service.ssjygl.addsubtractitemrecord; + + +import com.cowr.common.validator.CrudParamValidator; +import com.cowr.common.view.Result; +import com.jfinal.core.Controller; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: add_subtract_item_record + * Remarks: + * PrimaryKey: id + */ +public class AddSubtractItemRecordPKValidator extends CrudParamValidator { + @Override + protected void validate(Controller c) { + validateRequired("id", "id", "id 必填"); + validateLong("id", 1, 2147483647, "id", "id 范围 1~2147483647"); + } + + protected void handleError(Controller c) { + c.renderJson(Result.failed(getErrmsg())); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordService.java new file mode 100644 index 0000000..bd09b58 --- /dev/null +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordService.java @@ -0,0 +1,343 @@ +package com.cowr.service.ssjygl.addsubtractitemrecord; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.cowr.common.Const; +import com.cowr.common.base.BaseService; +import com.cowr.common.view.PageParam; +import com.cowr.model.AddSubtractItemRecord; +import com.cowr.common.view.Result; +import com.jfinal.kit.StrKit; +import com.jfinal.log.Log; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.IAtom; +import com.jfinal.plugin.activerecord.Page; +import com.jfinal.plugin.activerecord.Record; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: add_subtract_item_record + * Remarks: + * PrimaryKey: id + */ +public class AddSubtractItemRecordService extends BaseService { + private static final Log log = Log.getLog(AddSubtractItemRecordService.class); + public static final AddSubtractItemRecordService me = new AddSubtractItemRecordService(); + + public Page find(PageParam pp, Integer year, String item_name, String item_code, String stm, String etm, Integer del) { + String selectsql = "select * "; + String fromsql = "from add_subtract_item_record t where 1=1 "; + List paraList = new ArrayList<>(); + + if (del != null && (del == Const.LOGIC_DEL_VALID || del == Const.LOGIC_DEL_INVALID)) { + fromsql += " and t.del = ? \n"; + paraList.add(del); + } + + if (year != null) { + fromsql += " and t.year = ? \n"; + paraList.add(year); + } + + if (StrKit.notBlank(item_name)) { + fromsql += " and t.item_name like ? \n"; + paraList.add("%" + item_name.trim() + "%"); + } + + if (StrKit.notBlank(item_code)) { + fromsql += " and t.item_code = ? \n"; + paraList.add(item_code.trim()); + } + + if (StrKit.notBlank(stm)) { + fromsql += " and t.create_time >= ? \n"; + paraList.add(stm); + } + + if (StrKit.notBlank(etm)) { + fromsql += " and t.create_time <= ? \n"; + paraList.add(etm); + } + + String totalRowSql = "select count(*) " + fromsql; + String findSql = selectsql + fromsql; + + // 前端传了排序字段,并且排序字段存在相关表中 + if (StrKit.notBlank(pp.getSort_field()) && AddSubtractItemRecord.dao.hasColunm(pp.getSort_field())) { + findSql += " order by t." + pp.getSort_field() + " is null, t." + pp.getSort_field(); + + if (Const.ORDER_BY_ASC.equals(pp.getSort_order())) { + findSql += " " + Const.ORDER_BY_ASC; + } else { + findSql += " " + Const.ORDER_BY_DESC; + } + } else { + findSql += " order by t.create_time desc "; + } + + return Db.paginateByFullSql(pp.getPage(), pp.getSize(), totalRowSql, findSql, paraList.toArray()); + } + + public List list(Integer year, String item_name, String item_code, String stm, String etm, Integer del) { + String sql = "select * from add_subtract_item_record t where 1 = 1"; + List paraList = new ArrayList<>(); + + if (del != null && (del == Const.LOGIC_DEL_VALID || del == Const.LOGIC_DEL_INVALID)) { + sql += " and t.del = ? \n"; + paraList.add(del); + } + + if (year != null) { + sql += " and t.year = ? \n"; + paraList.add(year); + } + + if (StrKit.notBlank(item_name)) { + sql += " and t.item_name like ? \n"; + paraList.add("%" + item_name.trim() + "%"); + } + + if (StrKit.notBlank(item_code)) { + sql += " and t.item_code = ? \n"; + paraList.add(item_code.trim()); + } + + if (StrKit.notBlank(stm)) { + sql += " and t.create_time >= ? \n"; + paraList.add(stm); + } + + if (StrKit.notBlank(etm)) { + sql += " and t.create_time <= ? \n"; + paraList.add(etm); + } + + return AddSubtractItemRecord.dao.find(sql, paraList.toArray()); + } + + public Result save(Integer year, JSONArray itemArr) { + List list = AddSubtractItemRecord.dao.find("select * from add_subtract_item_record where year = ? and del = 0", year); + if (list != null && list.size() > 0) { + return Result.failed(year + "年已配置"); + } + + if (itemArr == null || itemArr.isEmpty()) { + return Result.failed("新增配置项不能为空"); + } + + List newlist = new ArrayList<>(); + for (int i = 0; i < itemArr.size(); i++) { + JSONObject obj = itemArr.getJSONObject(i); + try{ + String item_code = obj.getString("item_code"); + String item_name = obj.getString("item_name"); + double item_value = obj.getDouble("item_value"); + int item_type = obj.getIntValue("item_type"); + AddSubtractItemRecord model = new AddSubtractItemRecord(); + model.setYear(year); + model.setItemCode(item_code); + model.setItemName(item_name); + model.setItemValue(new BigDecimal(item_value).setScale(2, BigDecimal.ROUND_HALF_UP)); + model.setItemType(item_type); + model.setCreateTime(new Date()); + model.setUpdateTime(new Date()); + + newlist.add(model); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.failed("数据解析错误"); + } + } + + if (newlist.isEmpty()) { + return Result.failed("无效数据"); + } + + boolean ret = Db.tx(new IAtom() { + @Override + public boolean run() { + try { + // 单个对象调用 save 可以获取返回的自增id + for (AddSubtractItemRecord model : newlist) { + boolean ret = model.save(); + + if (!ret) { + return false; + } + } + + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + }); + + return ret ? Result.object(true) : Result.failed("创建失败"); + } + + public Result update(Integer year, JSONArray itemArr) { + if (itemArr == null || itemArr.isEmpty()) { + return Result.failed("修改配置项不能为空"); + } + + List newlist = new ArrayList<>(); + for (int i = 0; i < itemArr.size(); i++) { + JSONObject obj = itemArr.getJSONObject(i); + try{ + int id = obj.getIntValue("item_id"); + String item_code = obj.getString("item_code"); + String item_name = obj.getString("item_name"); + int item_type = obj.getIntValue("item_type"); + double item_value = obj.getDouble("item_value"); + AddSubtractItemRecord model = new AddSubtractItemRecord(); + if (id > 0) { + model.setId(id); + model.setUpdateTime(new Date()); + } else if (id == 0){ + model.setCreateTime(new Date()); + model.setUpdateTime(new Date()); + } + model.setYear(year); + model.setItemCode(item_code); + model.setItemName(item_name); + model.setItemType(item_type); + model.setItemValue(new BigDecimal(item_value).setScale(2, BigDecimal.ROUND_HALF_UP)); + newlist.add(model); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.failed("数据解析错误"); + } + } + + if (newlist.isEmpty()) { + return Result.failed("无效数据"); + } + + boolean ret = Db.tx(new IAtom() { + @Override + public boolean run() { + try { + for (AddSubtractItemRecord model : newlist) { + boolean ret = model.getId() != null ? model.update() : model.save(); + + if (!ret) { + return false; + } + } + + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + }); + + return ret ? Result.object(true) : Result.failed("修改失败"); + } + + public Result delete(JSONArray itemArr) { + if (itemArr == null || itemArr.isEmpty()) { + return Result.failed("删除配置项不能为空"); + } + + List newlist = new ArrayList<>(); + for (int i = 0; i < itemArr.size(); i++) { + JSONObject obj = itemArr.getJSONObject(i); + try{ + int id = obj.getIntValue("item_id"); + AddSubtractItemRecord model = AddSubtractItemRecord.dao.findById(id); + if (model == null) { + return Result.failed("按id等于" + id + "未找到记录"); + } + model.setDel(1); + model.setUpdateTime(new Date()); + newlist.add(model); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.failed("数据解析错误"); + } + } + + if (newlist.isEmpty()) { + return Result.failed("无效数据"); + } + + boolean ret = Db.tx(new IAtom() { + @Override + public boolean run() { + try { + // 单个对象调用 save 可以获取返回的自增id + for (AddSubtractItemRecord model : newlist) { + boolean ret = model.update(); + if (!ret) { + return false; + } + } + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + }); + + return ret ? Result.object(true) : Result.failed("删除失败"); + } + + public Result restore(JSONArray itemArr) { + if (itemArr == null || itemArr.isEmpty()) { + return Result.failed("删除配置项不能为空"); + } + + List newlist = new ArrayList<>(); + for (int i = 0; i < itemArr.size(); i++) { + JSONObject obj = itemArr.getJSONObject(i); + try{ + int id = obj.getIntValue("item_id"); + AddSubtractItemRecord model = AddSubtractItemRecord.dao.findById(id); + if (model == null) { + return Result.failed("按id等于" + id + "未找到记录"); + } + model.setDel(0); + model.setUpdateTime(new Date()); + newlist.add(model); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.failed("数据解析错误"); + } + } + + if (newlist.isEmpty()) { + return Result.failed("无效数据"); + } + + boolean ret = Db.tx(new IAtom() { + @Override + public boolean run() { + try { + // 单个对象调用 save 可以获取返回的自增id + for (AddSubtractItemRecord model : newlist) { + boolean ret = model.update(); + if (!ret) { + return false; + } + } + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + }); + + return ret ? Result.object(true) : Result.failed("恢复失败"); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordValidator.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordValidator.java new file mode 100644 index 0000000..257b491 --- /dev/null +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/addsubtractitemrecord/AddSubtractItemRecordValidator.java @@ -0,0 +1,27 @@ +package com.cowr.service.ssjygl.addsubtractitemrecord; + +import com.jfinal.core.Controller; +import com.cowr.common.validator.CrudParamValidator; +import com.cowr.common.view.Result; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: add_subtract_item_record + * Remarks: + * PrimaryKey: id + */ +public class AddSubtractItemRecordValidator extends CrudParamValidator { + @Override + protected void validate(Controller c) { + if ("save".equals(getActionMethodName()) || "edit".equals(getActionMethodName())) { + validateRequired("year", "year", "year必填"); + validateString("year", 1, 4, "year", "year 长度 1~4"); + } + + validateRequiredString("itemArr", "itemArr", "itemArr必填"); + } + + protected void handleError(Controller c) { + c.renderJson(Result.failed(getErrmsg())); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/customer/supermarketproduct/CustomerSupermarketProductSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/customer/supermarketproduct/CustomerSupermarketProductSyncService.java index 71561b6..a3e1254 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/customer/supermarketproduct/CustomerSupermarketProductSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/customer/supermarketproduct/CustomerSupermarketProductSyncService.java @@ -1,45 +1,114 @@ package com.cowr.service.ssjygl.customer.supermarketproduct; +import com.cowr.common.enums.Enums; import com.cowr.common.view.Result; import com.cowr.model.*; import com.cowr.service.ssjygl.base.BaseSyncService; import com.cowr.service.ssjygl.main.SvrCacheData; +import com.cowr.service.ssjygl.synctask.SyncTaskService; +import com.cowr.ssjygl.modifylog.ModifyLogService; +import com.jfinal.kit.StrKit; import com.jfinal.log.Log; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.IAtom; + +import java.math.BigDecimal; +import java.util.Date; public class CustomerSupermarketProductSyncService extends BaseSyncService { private static Log log = Log.getLog(CustomerSupermarketProductSyncService.class); public static CustomerSupermarketProductSyncService me = new CustomerSupermarketProductSyncService(); - public Result saveOrUpdate(CustomerSupermarketProduct model, Sysuser sysuser) { - Customer customer = Customer.dao.findById(model.getCustomerId()); + public Result saveOrUpdate(CustomerSupermarketProduct model, Sysuser user) { + + Integer customer_id = model.getCustomerId(); + Integer supermarket_id = model.getSupermarketId(); + Integer product_id = model.getProductId(); + BigDecimal unit_price = model.getUnitPrice(); + + Customer customer = Customer.dao.findById(customer_id); if (customer == null) { return Result.failed("没有找到对应客户信息"); } - Supermarket supermarket = SvrCacheData.SUP_CACHE.get(model.getSupermarketId()); + Supermarket supermarket = SvrCacheData.SUP_CACHE.get(supermarket_id); if (supermarket == null) { return Result.failed("没找到砂站信息"); } - Product product = Product.dao.findById(model.getProductId()); + Product product = Product.dao.findById(product_id); if (product == null) { return Result.failed("没有找到品类信息"); } - CustomerSupermarketProduct old = CustomerSupermarketProduct.dao.findByIds(model.getCustomerId(), model.getSupermarketId(), model.getProductId()); + CustomerSupermarketProduct old = CustomerSupermarketProduct.dao.findByIds(customer_id, supermarket_id, product_id); - SupermarketProduct sp = SupermarketProduct.dao.findByIds(model.getSupermarketId(), model.getProductId()); + SupermarketProduct sp = SupermarketProduct.dao.findByIds(supermarket_id, product_id); if (sp == null) { return Result.failed("砂站没有该品类"); } if (old == null) { - return super.save(model, sysuser); + return super.save(model, user); } else { - return super.update(model, sysuser); + // 提交单价修改申请 + ProductPriceModify ppm = new ProductPriceModify(); + ppm.setId(StrKit.getRandomUUID()); + ppm.setCustomerId(customer_id); + ppm.setSupermarketId(supermarket_id); + ppm.setProductId(product_id); + ppm.setUnitPrice(unit_price); + ppm.setType(2); + ppm.setState(1); + ppm.setCreateTime(new Date()); + ppm.setChangeTime(new Date()); + ppm.setCreateUserId(user.getId()); + + SyncTask synctask = new SyncTask(); + boolean ret = Db.tx(new IAtom() { + @Override + public boolean run() { + try { + boolean ret = ppm.save(); + + if (!ret) { + return false; + } + + ProductPriceModifyLog his = new ProductPriceModifyLog(); + his.setId(StrKit.getRandomUUID()); + his.setProductPriceModifyId(ppm.getId()); + his.setChangeUserId(user.getId()); + his.setChangeUserName(user.getName()); + his.setState(ppm.getState()); + his.setChangeTime(new Date()); + + ret = his.save(); + + if (!ret) { + return false; + } + + synctask.addSaveData(ppm); + synctask.addSaveData(his); + + return SyncTaskService.me.save(synctask, supermarket_id) + && ModifyLogService.me.save(ppm, null, Enums.DataOpType.SAVE.getId(), user); + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + }); + + if (ret) { + SyncTaskService.me.send(synctask); + } + + return ret ? Result.object(ppm) : Result.failed(false, "修改失败"); } } } diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/jobs/StatSmsJob.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/jobs/StatSmsJob.java index ecdc2dd..b9d04c9 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/jobs/StatSmsJob.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/jobs/StatSmsJob.java @@ -7,6 +7,7 @@ import com.cowr.model.PrepayCustomer; import com.cowr.service.ssjygl.main.Config; import com.cowr.service.ssjygl.main.SvrCacheData; import com.cowr.service.ssjygl.sms.log.SmsService; +import com.cowr.ssjygl.addsubtractitemrecord.AddSubtractItemRecordService; import com.jfinal.kit.StrKit; import com.jfinal.log.Log; import com.jfinal.plugin.activerecord.Db; @@ -279,6 +280,12 @@ public class StatSmsJob implements Job { return; } + // 其他需扣除预付费充值金额对应的供砂量,需从本年度总销售量扣除 + BigDecimal otherPrepaidAmount = AddSubtractItemRecordService.me.getAddSubtractItemValueByYearAndCode(year, "otherPrepaidAmount"); + + // 其他需扣除预付费充值金额,需从本年度总销售额中扣除 + BigDecimal otherPrepaidMoney = AddSubtractItemRecordService.me.getAddSubtractItemValueByYearAndCode(year, "otherPrepaidMoney"); + BigDecimal aggr_weight = orderobj.getBigDecimal("aggr_weight") .subtract(subtractobj.getBigDecimal("weight")); BigDecimal aggr_price = orderobj.getBigDecimal("aggr_price") @@ -295,6 +302,9 @@ public class StatSmsJob implements Job { .subtract(new BigDecimal("410322.58")) // 石畈处置砂,要扣除 .subtract(new BigDecimal("69156.42")) // 石畈处置砂,要扣除 ; + } else if (Integer.parseInt(year) > 2021) { + aggr_weight = aggr_weight.subtract(otherPrepaidAmount); + aggr_price = aggr_price.subtract(otherPrepaidMoney); } obj.put("aggr_cnt", orderobj.get("aggr_cnt")); diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/main/Config.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/main/Config.java index f45be03..a8b1a90 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/main/Config.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/main/Config.java @@ -9,7 +9,10 @@ import com.cowr.common.handler.GlobalHandler; import com.cowr.common.oss.OSSKit; import com.cowr.common.plugin.QuartzPlugin; import com.cowr.common.view.JsonRenderFactory; +import com.cowr.model.ProductPriceModify; import com.cowr.model._MappingKit; +import com.cowr.service.ssjygl.addsubtractitem.AddSubtractItemController; +import com.cowr.service.ssjygl.addsubtractitemrecord.AddSubtractItemRecordController; import com.cowr.service.ssjygl.blacklist.BlacklistController; import com.cowr.service.ssjygl.cache.CacheController; import com.cowr.service.ssjygl.customer.CustomerController; @@ -40,6 +43,7 @@ import com.cowr.service.ssjygl.prepay.prepaytruck.PrepayTruckController; import com.cowr.service.ssjygl.prepay.refunddetail.RefundDetailController; import com.cowr.service.ssjygl.presellorder.PresellOrderController; import com.cowr.service.ssjygl.product.ProductController; +import com.cowr.service.ssjygl.productpricemodify.ProductPriceModifyController; import com.cowr.service.ssjygl.purchase.PurchaseController; import com.cowr.service.ssjygl.sandfarm.SandfarmController; import com.cowr.service.ssjygl.sms.log.SmsLogController; @@ -172,6 +176,8 @@ public class Config extends JFinalConfig { me.add("/purchase", PurchaseController.class); me.add("/product", ProductController.class); me.add("/stock", StockController.class); + me.add("/addsubtractitem", AddSubtractItemController.class); + me.add("/addsubtractitemrecord", AddSubtractItemRecordController.class); me.add("/noticecontact", SmsNoticeContactController.class); @@ -212,6 +218,7 @@ public class Config extends JFinalConfig { me.add("/orderclustertruck", OrderclusterTruckController.class); me.add("/order/invalidverify", OrderInvalidVerifyController.class); me.add("/presellorder", PresellOrderController.class); + me.add("/productpricemodify", ProductPriceModifyController.class); // -- 统计 me.add("/stat/sale", OrderStatController.class); diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/presellorder/PresellOrderSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/presellorder/PresellOrderSyncService.java index 923ca7a..22e4cd3 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/presellorder/PresellOrderSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/presellorder/PresellOrderSyncService.java @@ -3,7 +3,6 @@ package com.cowr.service.ssjygl.presellorder; import com.alibaba.fastjson.JSONObject; import com.cowr.common.Const; import com.cowr.common.enums.Enums; -import com.cowr.common.utils.StrUtil; import com.cowr.common.view.Result; import com.cowr.model.*; import com.cowr.service.ssjygl.base.BaseSyncService; @@ -38,7 +37,7 @@ public class PresellOrderSyncService extends BaseSyncService { Customer customer = Customer.dao.findById(customer_id); if (customer == null) { - return Result.failed(false,"按客户 id 未找到对应客户信息"); + return Result.failed(false,"按客户id未找到对应客户信息"); } Integer type = customer.getType(); if (type == null || type != 1) { @@ -60,8 +59,6 @@ public class PresellOrderSyncService extends BaseSyncService { } model.setId(StrKit.getRandomUUID()); - String presell_order = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + StrUtil.getRandom(2); - model.setPresellSn(presell_order); model.setCreateTime(new Date()); model.setCreateUserId(tokenuser.getId()); model.setCreateUserName(tokenuser.getName()); @@ -134,11 +131,10 @@ public class PresellOrderSyncService extends BaseSyncService { } PresellOrder saveold = oldobj.clone(); - // 将修改后的对象返回 - String[] keys = model._getAttrNames(); - for (String key : keys) { - oldobj.set(key, model.get(key)); - } + oldobj.setPresellDate(model.getPresellDate()); + oldobj.setInvoiceCode(model.getInvoiceCode()); + oldobj.setInvoiceNumber(model.getInvoiceNumber()); + oldobj.setMemo(model.getMemo()); SyncTask synctask = new SyncTask(); boolean ret = Db.tx(new IAtom() { @@ -191,6 +187,10 @@ public class PresellOrderSyncService extends BaseSyncService { } PresellOrder oldobj = model.findByPk(); // 找到旧记录进行更新 + if (oldobj == null) { + return Result.failed(false, "按主键未找到对应记录"); + } + if (!oldobj.hasDelKey()) { return Result.failed(false, "不存在逻辑删除字段"); } diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/productpricemodify/ProductPriceModifyController.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/productpricemodify/ProductPriceModifyController.java new file mode 100644 index 0000000..3d64f95 --- /dev/null +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/productpricemodify/ProductPriceModifyController.java @@ -0,0 +1,63 @@ +package com.cowr.service.ssjygl.productpricemodify; + +import com.cowr.common.validator.StartAndEndTimeValidator; +import com.cowr.common.view.PageParam; +import com.cowr.common.view.Result; +import com.cowr.model.Sysuser; +import com.cowr.service.ssjygl.system.sysuser.SysuserSyncService; +import com.cowr.ssjygl.productpricemodify.ProductPriceModifyService; +import com.jfinal.aop.Before; +import com.jfinal.core.Controller; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: product_price_modify + * Remarks: + * PrimaryKey: id + */ +public class ProductPriceModifyController extends Controller { + + /** + * 分页查找 product_price_modify + */ + public void find(){ + String name = get("name"); + String stm = get("stm"); + String etm = get("etm"); + Integer supermarket_id = getInt("supermarket_id"); + Integer state = getInt("state"); + PageParam pp = getBean(PageParam.class, "", true); + renderJson(Result.object(ProductPriceModifyService.me.find(pp, name, stm, etm, supermarket_id, state))); + } + + /** + * 返回所有 product_price_modify + */ + @Before({StartAndEndTimeValidator.class}) + public void list(){ + String name = get("name"); + String stm = get("stm"); + String etm = get("etm"); + Integer supermarket_id = getInt("supermarket_id"); + Integer state = getInt("state"); + renderJson(Result.object(ProductPriceModifyService.me.list(name, stm, etm, supermarket_id, state))); + } + + + @Before(ProductPriceModifyVerifyValidator.class) + public void verify() { + Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); + + if (tokenuser == null) { + renderJson(Result.noauth()); + return; + } + + String id = get("id"); + Integer state = getInt("state", 0); + Integer type = getInt("type", 1); + String memo = get("memo"); + + renderJson(ProductPriceModifySyncService.me.verify(id, state, type, memo, tokenuser)); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/productpricemodify/ProductPriceModifySyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/productpricemodify/ProductPriceModifySyncService.java new file mode 100644 index 0000000..228c362 --- /dev/null +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/productpricemodify/ProductPriceModifySyncService.java @@ -0,0 +1,318 @@ +package com.cowr.service.ssjygl.productpricemodify; + +import com.cowr.common.enums.Enums; +import com.cowr.common.view.Result; +import com.cowr.model.*; +import com.cowr.service.ssjygl.base.BaseSyncService; +import com.cowr.service.ssjygl.synctask.SyncTaskService; +import com.cowr.service.ssjygl.system.sysuser.SysuserSyncService; +import com.cowr.ssjygl.modifylog.ModifyLogService; +import com.jfinal.kit.StrKit; +import com.jfinal.log.Log; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.IAtom; + +import java.math.BigDecimal; +import java.sql.SQLException; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Generated by COWR Tue Dec 07 16:33:49 CST 2021 + * TableName: product_price_modify + * Remarks: + * PrimaryKey: id + */ +public class ProductPriceModifySyncService extends BaseSyncService { + private static final Log log = Log.getLog(ProductPriceModifySyncService.class); + public static final ProductPriceModifySyncService me = new ProductPriceModifySyncService(); + + + public Result verify(String id, Integer state, Integer type, String memo, Sysuser user) { + if (!SysuserSyncService.me.isCompanyManager(user.getRole())) { + return Result.permissionDenied(); + } + + if (state != 2 && state != 9) { + return Result.failed("state 值错误"); + } + + if (type != 1 && type != 2) { + return Result.failed("type 值错误"); + } + + ProductPriceModify model = ProductPriceModify.dao.findById(id); + + if (model == null) { + return Result.failed("没有找到价格变更申请记录"); + } + + if (model.getState() == state) { + return Result.failed("价格变更申请状态未变化"); + } + + if (type == 1) { + return verifyProductUnitPrice(model, state, memo, user); + } + + return verifyCustomerUnitPrice(model, state, memo, user); + } + + /** + * 商品单价修改审核 + * @param model + * @param state + * @param memo + * @param user + * @return + */ + public Result verifyProductUnitPrice(ProductPriceModify model, Integer state, String memo, Sysuser user) { + + Integer supermarket_id = model.getSupermarketId(); + Integer product_id = model.getProductId(); + BigDecimal unit_price = model.getUnitPrice(); + + SupermarketProduct supermarketProduct = SupermarketProduct.dao.findByIds(supermarket_id, product_id); + if (supermarketProduct == null) { + return Result.failed("未找到商品单价信息"); + } + + String sql = "select t.* from ordercluster t \n" + + " where t.state < 5 \n" + + " and t.supermarket_id = ?\n" + + " and t.product_id = ?\n" + + " and t.customer_id not in (\n" + + " select a.customer_id from customer_supermarket_product a\n" + + " where a.customer_id = t.customer_id \n" + + " and a.supermarket_id = t.supermarket_id \n" + + " and a.product_id = t.product_id\n" + + " )"; + + List orderclusterList = Ordercluster.dao.find(sql, supermarket_id, product_id); + Map map = new HashMap<>(); + if (orderclusterList != null && !orderclusterList.isEmpty()) { + for (Ordercluster ordercluster : orderclusterList) { + ordercluster.setUnitPrice(unit_price); + if (!map.containsKey(ordercluster.getId())) { + map.put(ordercluster.getSupermarketId(), new SyncTask()); + } + map.get(ordercluster.getSupermarketId()).addUpdateData(ordercluster); + } + } + + try { + SyncTask synctask = new SyncTask(); + ProductPriceModify oldmodel = model.clone(); + boolean ret = Db.tx(new IAtom() { + @Override + public boolean run() throws SQLException { + Date now = new Date(); + + model.setState(state); + model.setVerifyTime(now); + + boolean ret = model.update(); + + if (!ret) { + return false; + } + + synctask.addUpdateData(model); + + SupermarketProduct oldPriceModal = null; + SupermarketProduct priceModal = null; + + if (state == 2) { // 审核通过 + + Stock stock = Stock.dao.findByIds(supermarket_id, product_id); + + if (stock != null) { + stock.setStockWeight(new BigDecimal(0)); + synctask.addUpdateData(stock); + + ret = stock.update(); + } + + if (!ret) { + return false; + } + + if (orderclusterList != null && !orderclusterList.isEmpty()) { + int[] editret = Db.batchUpdate(orderclusterList, orderclusterList.size()); + for (int i : editret) { + // 必须是每条 sql 修改一条记录 + if (i != 1) { + return false; + } + } + // 将单价同步到不同的砂站 + for (Map.Entry entry : map.entrySet()) { + if (!SyncTaskService.me.save(entry.getValue(), entry.getKey())) { + return false; + } + } + } + + SupermarketProduct supermarketProduct = SupermarketProduct.dao.findByIds(supermarket_id, product_id); + + oldPriceModal = supermarketProduct.clone(); + + supermarketProduct.setUnitPrice(unit_price); + + ret = supermarketProduct.update(); + + synctask.addUpdateData(supermarketProduct); + + priceModal = supermarketProduct.clone(); + + if (!ret) { + return false; + } + } + + ProductPriceModifyLog his = new ProductPriceModifyLog(); + his.setId(StrKit.getRandomUUID()); + his.setProductPriceModifyId(model.getId()); + his.setChangeUserId(user.getId()); + his.setChangeUserName(user.getName()); + his.setState(model.getState()); + his.setChangeTime(now); + his.setMemo(memo); + + ret = his.save(); + + if (!ret) { + return false; + } + + synctask.addSaveData(his); + + if (state == 2) { + return SyncTaskService.me.save(synctask, supermarket_id) + && ModifyLogService.me.save(model, oldmodel, Enums.DataOpType.UPDATE.getId(), user) + && ModifyLogService.me.save(priceModal, oldPriceModal, Enums.DataOpType.UPDATE.getId(), user); + } + + return SyncTaskService.me.save(synctask, supermarket_id) + && ModifyLogService.me.save(model, oldmodel, Enums.DataOpType.UPDATE.getId(), user); + } + }); + + if (ret) { + SyncTaskService.me.send(synctask); + } + + return ret ? Result.success(true) : Result.failed(false, "审核失败"); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.failed(false, e.getMessage()); + } + } + + /** + * 客户单价审核 + * @param model + * @param state + * @param memo + * @param user + * @return + */ + public Result verifyCustomerUnitPrice(ProductPriceModify model, Integer state, String memo, Sysuser user) { + + Integer customer_id = model.getCustomerId(); + Integer supermarket_id = model.getSupermarketId(); + Integer product_id = model.getProductId(); + BigDecimal unit_price = model.getUnitPrice(); + + Customer customer = Customer.dao.findById(customer_id); + if (customer == null) { + return Result.failed("未找到有效的客户信息"); + } + + CustomerSupermarketProduct customerSupermarketProduct = CustomerSupermarketProduct.dao.findByIds(customer_id, supermarket_id, product_id); + if (customerSupermarketProduct == null) { + return Result.failed("未找到客户自定义单价信息"); + } + + try { + SyncTask synctask = new SyncTask(); + ProductPriceModify oldmodel = model.clone(); + boolean ret = Db.tx(new IAtom() { + @Override + public boolean run() throws SQLException { + Date now = new Date(); + + model.setState(state); + model.setVerifyTime(now); + + boolean ret = model.update(); + + if (!ret) { + return false; + } + + synctask.addUpdateData(model); + + CustomerSupermarketProduct oldPriceModal = null; + CustomerSupermarketProduct priceModal = null; + if (state == 2) { // 审核通过 + + CustomerSupermarketProduct customerSupermarketProduct = CustomerSupermarketProduct.dao.findByIds(customer_id, supermarket_id, product_id); + + oldPriceModal = customerSupermarketProduct.clone(); + + customerSupermarketProduct.setUnitPrice(unit_price); + + ret = customerSupermarketProduct.update(); + + synctask.addUpdateData(customerSupermarketProduct); + + priceModal = customerSupermarketProduct.clone(); + + if (!ret) { + return false; + } + } + + ProductPriceModifyLog his = new ProductPriceModifyLog(); + his.setId(StrKit.getRandomUUID()); + his.setProductPriceModifyId(model.getId()); + his.setChangeUserId(user.getId()); + his.setChangeUserName(user.getName()); + his.setState(model.getState()); + his.setChangeTime(now); + his.setMemo(memo); + + ret = his.save(); + + if (!ret) { + return false; + } + + synctask.addSaveData(his); + + if (state == 2) { + return SyncTaskService.me.save(synctask, supermarket_id) + && ModifyLogService.me.save(model, oldmodel, Enums.DataOpType.UPDATE.getId(), user) + && ModifyLogService.me.save(priceModal, oldPriceModal, Enums.DataOpType.UPDATE.getId(), user); + } + + return SyncTaskService.me.save(synctask, supermarket_id) + && ModifyLogService.me.save(model, oldmodel, Enums.DataOpType.UPDATE.getId(), user); + } + }); + + if (ret) { + SyncTaskService.me.send(synctask); + } + + return ret ? Result.success(true) : Result.failed(false, "审核失败"); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.failed(false, e.getMessage()); + } + } + +} \ No newline at end of file diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/productpricemodify/ProductPriceModifyVerifyValidator.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/productpricemodify/ProductPriceModifyVerifyValidator.java new file mode 100644 index 0000000..3a442c2 --- /dev/null +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/productpricemodify/ProductPriceModifyVerifyValidator.java @@ -0,0 +1,32 @@ +package com.cowr.service.ssjygl.productpricemodify; + + +import com.cowr.common.validator.CrudParamValidator; +import com.cowr.common.view.Result; +import com.jfinal.core.Controller; + +import java.util.ArrayList; +import java.util.List; + +/** + * Generated by COWR Mon Feb 10 12:11:03 CST 2020 + * TableName: prepay_detail + * PrimaryKey: id + */ +public class ProductPriceModifyVerifyValidator extends CrudParamValidator { + private static List chkstate = new ArrayList() {{ + add(2); + add(9); + }}; + + @Override + protected void validate(Controller c) { + validateString("id", 32, 32, "id", "id 长度 32,必填"); + validateInIntegerArray("state", chkstate, "state", "state 可选值 2、9"); + validateString("memo", 0, 255, "memo", "memo 长度 0~255"); + } + + protected void handleError(Controller c) { + c.renderJson(Result.failed(getErrmsg())); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/supermarket/SupermarketSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/supermarket/SupermarketSyncService.java index 7b09aa4..813fc1f 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/supermarket/SupermarketSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/supermarket/SupermarketSyncService.java @@ -7,14 +7,15 @@ import com.cowr.service.ssjygl.base.BaseSyncService; import com.cowr.service.ssjygl.main.SvrCacheData; import com.cowr.service.ssjygl.synctask.SyncTaskService; import com.cowr.ssjygl.modifylog.ModifyLogService; +import com.jfinal.kit.StrKit; import com.jfinal.log.Log; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.IAtom; import java.math.BigDecimal; +import java.util.Date; import java.util.HashMap; import java.util.List; -import java.util.Map; public class SupermarketSyncService extends BaseSyncService { private static Log log = Log.getLog(SupermarketSyncService.class); @@ -152,8 +153,15 @@ public class SupermarketSyncService extends BaseSyncService { return Result.object(ret); } - - public Result editUnitPrice(int supermarket_id, int product_id, Double unit_price, Sysuser sysuser) { + /** + * 修改商品单价 + * @param supermarket_id + * @param product_id + * @param unit_price + * @param user + * @return + */ + public Result editUnitPrice(int supermarket_id, int product_id, Double unit_price, Sysuser user) { if (unit_price == null || unit_price <= 0) { return Result.failed("商品单价不能小于0"); } @@ -163,66 +171,48 @@ public class SupermarketSyncService extends BaseSyncService { return Result.failed("商品配置信息不存在"); } - SupermarketProduct saveold = sp.clone(); + ProductPriceModify ppm = new ProductPriceModify(); + ppm.setId(StrKit.getRandomUUID()); + ppm.setSupermarketId(supermarket_id); + ppm.setProductId(product_id); + ppm.setUnitPrice(BigDecimal.valueOf(unit_price)); + ppm.setType(1); + ppm.setState(1); + ppm.setCreateTime(new Date()); + ppm.setChangeTime(new Date()); + ppm.setCreateUserId(user.getId()); - sp.setUnitPrice(BigDecimal.valueOf(unit_price)); - - String sql = "select t.* from ordercluster t \n" + - " where t.state < 5 \n" + - " and t.supermarket_id = ?\n" + - " and t.product_id = ?\n" + - " and t.customer_id not in (\n" + - " select a.customer_id from customer_supermarket_product a\n" + - " where a.customer_id = t.customer_id \n" + - " and a.supermarket_id = t.supermarket_id \n" + - " and a.product_id = t.product_id\n" + - " )"; - List orderclusterList = Ordercluster.dao.find(sql, supermarket_id, product_id); - Map map = new HashMap<>(); - if (orderclusterList != null && !orderclusterList.isEmpty()) { - for (Ordercluster ordercluster : orderclusterList) { - ordercluster.setUnitPrice(BigDecimal.valueOf(unit_price)); - if (!map.containsKey(ordercluster.getId())) { - map.put(ordercluster.getSupermarketId(), new SyncTask()); - } - map.get(ordercluster.getSupermarketId()).addUpdateData(ordercluster); - } - } + SyncTask synctask = new SyncTask(); boolean ret = Db.tx(new IAtom() { @Override public boolean run() { try { - boolean ret = true; - SyncTask synctask = new SyncTask(); - synctask.addUpdateData(sp); + boolean ret = ppm.save(); - Stock stock = Stock.dao.findByIds(supermarket_id, product_id); - - if (stock != null) { - stock.setStockWeight(new BigDecimal(0)); - synctask.addUpdateData(stock); - - ret = stock.update(); + if (!ret) { + return false; } - if (orderclusterList != null && !orderclusterList.isEmpty()) { - int[] editret = Db.batchUpdate(orderclusterList, orderclusterList.size()); - for (int i : editret) { - // 必须是每条 sql 修改一条记录 - if (i != 1) { - return false; - } - } - // 将单价同步到不同的砂站 - for (Map.Entry entry : map.entrySet()) { - if (!SyncTaskService.me.save(entry.getValue(), entry.getKey())) { - return false; - } - } + ProductPriceModifyLog his = new ProductPriceModifyLog(); + his.setId(StrKit.getRandomUUID()); + his.setProductPriceModifyId(ppm.getId()); + his.setChangeUserId(user.getId()); + his.setChangeUserName(user.getName()); + his.setState(ppm.getState()); + his.setChangeTime(new Date()); + + ret = his.save(); + + if (!ret) { + return false; } - return ret && sp.update() - && SyncTaskService.me.save(synctask) - && ModifyLogService.me.save(sp, saveold, Enums.DataOpType.UPDATE.getId(), sysuser); + + synctask.addSaveData(ppm); + synctask.addSaveData(his); + + return SyncTaskService.me.save(synctask, supermarket_id) + && ModifyLogService.me.save(ppm, null, Enums.DataOpType.SAVE.getId(), user); + } catch (Exception e) { log.error(e.getMessage(), e); return false; @@ -230,6 +220,10 @@ public class SupermarketSyncService extends BaseSyncService { } }); - return Result.object(ret); + if (ret) { + SyncTaskService.me.send(synctask); + } + + return ret ? Result.object(ppm) : Result.failed(false, "修改失败"); } } diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/system/sysuser/SysuserSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/system/sysuser/SysuserSyncService.java index 0dcc5ef..6bbedce 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/system/sysuser/SysuserSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/system/sysuser/SysuserSyncService.java @@ -148,6 +148,19 @@ public class SysuserSyncService extends BaseSyncService { return roleid.equals(RoleEnum.FINANCEMANAGER.getRoleid()); } + /** + * 是否经理 + * 改单价审批 + * @param roleid + * @return + */ + public boolean isCompanyManager(Integer roleid) { + if (roleid == null) return false; + return roleid.equals(RoleEnum.COMPANYMANAGER.getRoleid()); + } + + /** + /** * 是否是司机 * @@ -250,6 +263,7 @@ public class SysuserSyncService extends BaseSyncService { && !isChaisha(model.getRole()) && !isPresidentView(model.getRole()) && !isFinanceManager(model.getRole()) + && !isCompanyManager(model.getRole()) ) { // 不是财务、经理、采砂局的时候,按照原来的规则检查 if (checkEntityId(model) == null) { @@ -780,6 +794,7 @@ public class SysuserSyncService extends BaseSyncService { && !isCustomer(sysuser.getRole()) && !isChaisha(sysuser.getRole()) && !isFinanceManager(sysuser.getRole()) + && !isCompanyManager(sysuser.getRole()) ) { return Result.permissionDenied(); }