|
@@ -352,6 +352,41 @@ func (c *StockController) StockIn_List() {
|
|
|
c.ServeJSON()
|
|
|
return
|
|
|
}
|
|
|
+func (c *StockController) StockIn_List_Product() {
|
|
|
+
|
|
|
+ // 分页参数 初始化
|
|
|
+ page, _ := c.GetInt("page")
|
|
|
+ if page < 1 {
|
|
|
+ page = 1
|
|
|
+ }
|
|
|
+ page_z, _ := c.GetInt("page_z")
|
|
|
+ if page_z < 1 {
|
|
|
+ page_z = conf.Page_size
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询
|
|
|
+ T_depot_id, _ := c.GetInt("T_depot_id")
|
|
|
+ T_name := c.GetString("T_name")
|
|
|
+ T_start_date := c.GetString("T_start_date")
|
|
|
+ T_end_date := c.GetString("T_end_date")
|
|
|
+
|
|
|
+ userList, _ := NatsServer.Read_User_List_All()
|
|
|
+ Account.Read_User_All_Map(userList)
|
|
|
+ Basic.Read_Depot_All_Map()
|
|
|
+
|
|
|
+ StockInDao := Stock.NewStockIn(orm.NewOrm())
|
|
|
+ R_List, R_cnt := StockInDao.Read_StockInProduct_List(T_name, T_start_date, T_end_date, T_depot_id, page, page_z)
|
|
|
+
|
|
|
+ var r_jsons lib.R_JSONS
|
|
|
+ r_jsons.Num = R_cnt
|
|
|
+ r_jsons.Data = R_List
|
|
|
+ r_jsons.Page = page
|
|
|
+ r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
|
|
|
func (c *StockController) StockIn_Get() {
|
|
|
|
|
@@ -368,7 +403,7 @@ func (c *StockController) StockIn_Get() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- productList := StockInProductDao.Read_StockInProduct_List(stockIn.T_number)
|
|
|
+ productList := StockInProductDao.Read_StockInProduct_List_ByT_number(stockIn.T_number)
|
|
|
|
|
|
var pList []Stock.StockInProduct_R
|
|
|
for _, v := range productList {
|
|
@@ -528,6 +563,141 @@ func (c *StockController) StockIn_Add() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func (c *StockController) StockIn_Edit() {
|
|
|
+
|
|
|
+ o := orm.NewOrm()
|
|
|
+ o.Begin()
|
|
|
+ StockInDao := Stock.NewStockIn(o)
|
|
|
+
|
|
|
+ T_number := c.GetString("T_number") // 入库单号
|
|
|
+ T_depot_id, _ := c.GetInt("T_depot_id")
|
|
|
+ T_date := c.GetString("T_date")
|
|
|
+ T_product := c.GetString("T_product")
|
|
|
+ T_remark := c.GetString("T_remark")
|
|
|
+ if _, is := lib.DateStrToTime(T_date); !is {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "日期格式错误!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ NatsServer.AddUserLogs(c.User.T_uuid, "仓库管理", "入库", T_product)
|
|
|
+
|
|
|
+ var_ := Stock.StockIn{
|
|
|
+ T_number: T_number,
|
|
|
+ T_depot_id: T_depot_id,
|
|
|
+ T_date: T_date,
|
|
|
+ T_remark: T_remark,
|
|
|
+ T_submit: c.User.T_uuid,
|
|
|
+ }
|
|
|
+
|
|
|
+ StockInProductDao := Stock.NewStockInProduct(o)
|
|
|
+ StockDao := Stock.NewStock(o)
|
|
|
+ DeviceDao := Stock.NewDevice(o)
|
|
|
+ IotCardDao := Property.NewIotCard(&o)
|
|
|
+
|
|
|
+ _, err := StockInDao.Add_StockIn(var_)
|
|
|
+ if err != nil {
|
|
|
+ o.Rollback()
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 203, Msg: "入库失败"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(T_product) == 0 {
|
|
|
+ o.Rollback()
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "产品明细不能为空"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ productList := lib.SplitString(T_product, "|")
|
|
|
+ for _, v := range productList {
|
|
|
+ product_id, _ := strconv.Atoi(strings.Split(v, "-")[0])
|
|
|
+
|
|
|
+ product, _ := Basic.Read_Product_ById(product_id)
|
|
|
+
|
|
|
+ num, _ := strconv.Atoi(strings.Split(v, "-")[1])
|
|
|
+ T_relation_sn := strings.Split(v, "-")[2]
|
|
|
+ if T_relation_sn == "" && product.T_relation_sn == 1 {
|
|
|
+ o.Rollback()
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: fmt.Sprintf("%s关联SN,请先添加SN!", T_relation_sn)}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(T_relation_sn) > 0 {
|
|
|
+ snList := strings.Split(strings.Trim(T_relation_sn, ","), ",")
|
|
|
+ for _, sn := range snList {
|
|
|
+ mqtt := Stock.Read_MqttUser(sn)
|
|
|
+ // 添加设备
|
|
|
+ device := Stock.Device{
|
|
|
+ T_contract_number: "",
|
|
|
+ T_out_number: "",
|
|
|
+ T_product_id: product_id,
|
|
|
+ T_in_number: T_number,
|
|
|
+ T_sn: sn,
|
|
|
+ T_iccid: mqtt.Iccid,
|
|
|
+ T_imei: mqtt.Imei,
|
|
|
+ T_State: 2,
|
|
|
+ }
|
|
|
+ _, err = DeviceDao.AddOrUpdate_Device(device, 2)
|
|
|
+ if err != nil {
|
|
|
+ o.Rollback()
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: sn + "入库失败"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加物联网卡
|
|
|
+ iotCard := Property.IotCard{
|
|
|
+ T_iccid: mqtt.Iccid,
|
|
|
+ T_sn: sn,
|
|
|
+ T_State: 2, //1-未使用 2-已使用 3-已作废
|
|
|
+ T_type: "4G",
|
|
|
+ }
|
|
|
+ _, err = IotCardDao.AddOrUpdate_IotCard(iotCard)
|
|
|
+ if err != nil {
|
|
|
+ o.Rollback()
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "入库失败"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ stockInProduct := Stock.StockInProduct{
|
|
|
+ T_number: T_number,
|
|
|
+ T_product_id: product_id,
|
|
|
+ T_depot_id: T_depot_id,
|
|
|
+ T_num: num, // 入库数量
|
|
|
+ T_date: T_date, // 入库日期
|
|
|
+ T_relation_sn: T_relation_sn,
|
|
|
+ }
|
|
|
+ _, err = StockInProductDao.Add_StockInProduct(stockInProduct)
|
|
|
+ if err != nil {
|
|
|
+ o.Rollback()
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 203, Msg: "入库失败"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ _, err = StockDao.AddOrUpdate_Stock(T_depot_id, product.Id, product.T_class, product.T_name, product.T_model, num, 2)
|
|
|
+ if err != nil {
|
|
|
+ o.Rollback()
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 203, Msg: "入库失败"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ o.Commit()
|
|
|
+
|
|
|
+ NatsServer.AddUserLogs(c.User.T_uuid, "入库", "入库", var_)
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_number}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func (c *StockController) StockOut_List() {
|
|
|
|
|
|
// 分页参数 初始化
|
|
@@ -564,6 +734,42 @@ func (c *StockController) StockOut_List() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func (c *StockController) StockOut_List_Product() {
|
|
|
+
|
|
|
+ // 分页参数 初始化
|
|
|
+ page, _ := c.GetInt("page")
|
|
|
+ if page < 1 {
|
|
|
+ page = 1
|
|
|
+ }
|
|
|
+ page_z, _ := c.GetInt("page_z")
|
|
|
+ if page_z < 1 {
|
|
|
+ page_z = conf.Page_size
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询
|
|
|
+ T_depot_id, _ := c.GetInt("T_depot_id")
|
|
|
+ T_name := c.GetString("T_name")
|
|
|
+ T_start_date := c.GetString("T_start_date")
|
|
|
+ T_end_date := c.GetString("T_end_date")
|
|
|
+
|
|
|
+ userList, _ := NatsServer.Read_User_List_All()
|
|
|
+ Account.Read_User_All_Map(userList)
|
|
|
+ Basic.Read_Depot_All_Map()
|
|
|
+
|
|
|
+ StockOutDao := Stock.NewStockOut(orm.NewOrm())
|
|
|
+ R_List, R_cnt := StockOutDao.Read_StockOutProduct_List(T_name, T_start_date, T_end_date, T_depot_id, page, page_z)
|
|
|
+
|
|
|
+ var r_jsons lib.R_JSONS
|
|
|
+ r_jsons.Num = R_cnt
|
|
|
+ r_jsons.Data = R_List
|
|
|
+ r_jsons.Page = page
|
|
|
+ r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func (c *StockController) StockOut_Get() {
|
|
|
|
|
|
// 查询
|
|
@@ -618,6 +824,7 @@ func (c *StockController) StockOut_Add() {
|
|
|
T_receive := c.GetString("T_receive")
|
|
|
T_product := c.GetString("T_product")
|
|
|
T_remark := c.GetString("T_remark")
|
|
|
+ T_project := c.GetString("T_project")
|
|
|
|
|
|
T_delivery_type, _ := c.GetInt("T_delivery_type")
|
|
|
T_signer_unit := c.GetString("T_signer_unit")
|
|
@@ -640,6 +847,7 @@ func (c *StockController) StockOut_Add() {
|
|
|
T_date: T_date,
|
|
|
T_receive: T_receive,
|
|
|
T_remark: T_remark,
|
|
|
+ T_project: T_project,
|
|
|
T_submit: c.User.T_uuid,
|
|
|
// 销售出库
|
|
|
T_delivery_type: T_delivery_type, // 1-自送 2-自提 3-快递
|
|
@@ -707,6 +915,7 @@ func (c *StockController) StockOut_Add() {
|
|
|
T_iccid: mqtt.Iccid,
|
|
|
T_imei: mqtt.Imei,
|
|
|
T_State: 1,
|
|
|
+ T_project: T_project,
|
|
|
}
|
|
|
_, err = DeviceDao.AddOrUpdate_Device(device, 1)
|
|
|
if err != nil {
|
|
@@ -814,6 +1023,7 @@ func (c *StockController) StockOut_Edit() {
|
|
|
|
|
|
T_number := c.GetString("T_number")
|
|
|
T_remark := c.GetString("T_remark")
|
|
|
+ T_project := c.GetString("T_project")
|
|
|
T_delivery_type, _ := c.GetInt("T_delivery_type")
|
|
|
T_signer_unit := c.GetString("T_signer_unit")
|
|
|
T_signer := c.GetString("T_signer")
|
|
@@ -833,6 +1043,9 @@ func (c *StockController) StockOut_Edit() {
|
|
|
if len(T_remark) > 0 {
|
|
|
stockOut.T_remark = T_remark
|
|
|
}
|
|
|
+ if len(T_project) > 0 {
|
|
|
+ stockOut.T_project = T_project
|
|
|
+ }
|
|
|
if T_delivery_type > 0 {
|
|
|
stockOut.T_delivery_type = T_delivery_type
|
|
|
}
|
|
@@ -852,7 +1065,7 @@ func (c *StockController) StockOut_Edit() {
|
|
|
stockOut.T_courier_number = T_courier_number
|
|
|
}
|
|
|
|
|
|
- err = StockOutDao.Update_StockOut(stockOut, "T_remark", "T_delivery_type", "T_signer_unit", "T_signer", "T_signer_phone", "T_signer_date", "T_courier_number")
|
|
|
+ err = StockOutDao.Update_StockOut(stockOut, "T_remark", "T_delivery_type", "T_signer_unit", "T_signer", "T_signer_phone", "T_signer_date", "T_courier_number", "T_project")
|
|
|
if err != nil {
|
|
|
o.Rollback()
|
|
|
c.Data["json"] = lib.JSONS{Code: 203, Msg: "出库失败"}
|