diff --git a/base-webapp/pom.xml b/base-webapp/pom.xml index 79bd4cf9..b93bcde0 100644 --- a/base-webapp/pom.xml +++ b/base-webapp/pom.xml @@ -71,11 +71,11 @@ - - - - - + + com.hzya.frame + fw-u9c + ${revision} + diff --git a/fw-u9c/pom.xml b/fw-u9c/pom.xml new file mode 100644 index 00000000..52a52907 --- /dev/null +++ b/fw-u9c/pom.xml @@ -0,0 +1,48 @@ + + + + kangarooDataCenterV3 + com.hzya.frame + ${revision} + + 4.0.0 + fw-u9c + jar + ${revision} + + + + com.hzya.frame + base-service + ${revision} + + + mysql + mysql-connector-java + ${mysql-connector-java} + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + none + execute + true + + + + + repackage + + + + + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/dao/IVU9cAllotOrderItemsDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/dao/IVU9cAllotOrderItemsDao.java new file mode 100644 index 00000000..d7e6bf10 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/dao/IVU9cAllotOrderItemsDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.u9c.allot.items.dao; + +import com.hzya.frame.u9c.allot.items.entity.VU9cAllotOrderItemsEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * (v_u9c_allot_order_items: table)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-02 10:52:57 + */ +public interface IVU9cAllotOrderItemsDao extends IBaseDao { + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/dao/impl/VU9cAllotOrderItemsDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/dao/impl/VU9cAllotOrderItemsDaoImpl.java new file mode 100644 index 00000000..3d3f141c --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/dao/impl/VU9cAllotOrderItemsDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.u9c.allot.items.dao.impl; + +import com.hzya.frame.u9c.allot.items.entity.VU9cAllotOrderItemsEntity; +import com.hzya.frame.u9c.allot.items.dao.IVU9cAllotOrderItemsDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * (VU9cAllotOrderItems)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-02 10:52:59 + */ +@Repository("VU9cAllotOrderItemsDaoImpl") +public class VU9cAllotOrderItemsDaoImpl extends MybatisGenericDao implements IVU9cAllotOrderItemsDao{ + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/entity/VU9cAllotOrderItemsEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/entity/VU9cAllotOrderItemsEntity.java new file mode 100644 index 00000000..c1869ca0 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/entity/VU9cAllotOrderItemsEntity.java @@ -0,0 +1,129 @@ +package com.hzya.frame.u9c.allot.items.entity; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * (VU9cAllotOrderItems)实体类 + * + * @author xiang2lin + * @since 2023-11-17 10:35:25 + */ +public class VU9cAllotOrderItemsEntity extends BaseEntity { + + private String reabamWcode;//睿本云从仓库 + private String reabamUnit;//睿本云单位 + private String unit_name;//采购单位 + private String quantity1;//实到数量1 + private String sortno; + + private String skubarcode; + + private String itemname; + + private String itemcode; + + private String quantity; + + private String saleprice; + + private String locationcode; + + private String locationname; + + + public String getSortno() { + return sortno; + } + + public void setSortno(String sortno) { + this.sortno = sortno; + } + + public String getSkubarcode() { + return skubarcode; + } + + public void setSkubarcode(String skubarcode) { + this.skubarcode = skubarcode; + } + + public String getItemname() { + return itemname; + } + + public void setItemname(String itemname) { + this.itemname = itemname; + } + + public String getItemcode() { + return itemcode; + } + + public void setItemcode(String itemcode) { + this.itemcode = itemcode; + } + + public String getQuantity() { + return quantity; + } + + public void setQuantity(String quantity) { + this.quantity = quantity; + } + + public String getSaleprice() { + return saleprice; + } + + public void setSaleprice(String saleprice) { + this.saleprice = saleprice; + } + + public String getLocationcode() { + return locationcode; + } + + public void setLocationcode(String locationcode) { + this.locationcode = locationcode; + } + + public String getLocationname() { + return locationname; + } + + public void setLocationname(String locationname) { + this.locationname = locationname; + } + + public String getReabamWcode() { + return reabamWcode; + } + + public void setReabamWcode(String reabamWcode) { + this.reabamWcode = reabamWcode; + } + + public String getUnit_name() { + return unit_name; + } + + public void setUnit_name(String unit_name) { + this.unit_name = unit_name; + } + + public String getQuantity1() { + return quantity1; + } + + public void setQuantity1(String quantity1) { + this.quantity1 = quantity1; + } + + public String getReabamUnit() { + return reabamUnit; + } + + public void setReabamUnit(String reabamUnit) { + this.reabamUnit = reabamUnit; + } +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/entity/VU9cAllotOrderItemsEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/entity/VU9cAllotOrderItemsEntity.xml new file mode 100644 index 00000000..b8a4d299 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/entity/VU9cAllotOrderItemsEntity.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + id, + sortno + ,skuBarcode + ,reabamWcode + ,itemName + ,itemCode + ,quantity + ,quantity1 + ,reabamUnit + ,unit_name + ,salePrice + ,locationCode + ,locationName + + + + + + + + + + + + + + + + + + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/service/IVU9cAllotOrderItemsService.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/service/IVU9cAllotOrderItemsService.java new file mode 100644 index 00000000..47634ea1 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/service/IVU9cAllotOrderItemsService.java @@ -0,0 +1,21 @@ +package com.hzya.frame.u9c.allot.items.service; + +import com.hzya.frame.u9c.allot.items.entity.VU9cAllotOrderItemsEntity; +import com.hzya.frame.basedao.service.IBaseService; + +import java.util.List; + +/** + * (VU9cAllotOrderItems)表服务接口 + * + * @author xiang2lin + * @since 2023-11-02 10:53:00 + */ +public interface IVU9cAllotOrderItemsService extends IBaseService{ + /** + * 查询U9C 收货单, 传递睿本云专用 + * @param entity + * @return + */ + List query2Reabam(VU9cAllotOrderItemsEntity entity); +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/service/impl/VU9cAllotOrderItemsServiceImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/service/impl/VU9cAllotOrderItemsServiceImpl.java new file mode 100644 index 00000000..a2b34174 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/items/service/impl/VU9cAllotOrderItemsServiceImpl.java @@ -0,0 +1,44 @@ +package com.hzya.frame.u9c.allot.items.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.allot.items.entity.VU9cAllotOrderItemsEntity; +import com.hzya.frame.u9c.allot.items.dao.IVU9cAllotOrderItemsDao; +import com.hzya.frame.u9c.allot.items.service.IVU9cAllotOrderItemsService; +import com.hzya.frame.u9c.constant.U9Constant; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.List; + +/** + * (VU9cAllotOrderItems)表服务实现类 + * + * @author xiang2lin + * @since 2023-11-02 10:53:01 + */ +@Service("vU9cAllotOrderItemsService") +public class VU9cAllotOrderItemsServiceImpl extends BaseService implements IVU9cAllotOrderItemsService { + + private IVU9cAllotOrderItemsDao vU9cAllotOrderItemsDao; + + @Autowired + public void setVU9cAllotOrderItemsDao(IVU9cAllotOrderItemsDao dao) { + this.vU9cAllotOrderItemsDao = dao; + this.dao = dao; + } + + /** + * 查询U9C 收货单, 传递睿本云专用 + * + * @param entity + * @return + */ + @DS(U9Constant.DATA_SOURCE_CODE) + @Override + public List query2Reabam(VU9cAllotOrderItemsEntity entity) { + List list = vU9cAllotOrderItemsDao.queryList(entity, "VU9cAllotOrderItemsEntity_list_base_reabam"); + return list; + } +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/dao/IVU9cAllotOrderDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/dao/IVU9cAllotOrderDao.java new file mode 100644 index 00000000..f1eb960c --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/dao/IVU9cAllotOrderDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.u9c.allot.order.dao; + +import com.hzya.frame.u9c.allot.order.entity.VU9cAllotOrderEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * (v_u9c_allot_order: table)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-02 10:52:19 + */ +public interface IVU9cAllotOrderDao extends IBaseDao { + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/dao/impl/VU9cAllotOrderDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/dao/impl/VU9cAllotOrderDaoImpl.java new file mode 100644 index 00000000..ac0588bc --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/dao/impl/VU9cAllotOrderDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.u9c.allot.order.dao.impl; + +import com.hzya.frame.u9c.allot.order.entity.VU9cAllotOrderEntity; +import com.hzya.frame.u9c.allot.order.dao.IVU9cAllotOrderDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * (VU9cAllotOrder)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-02 10:52:21 + */ +@Repository("VU9cAllotOrderDaoImpl") +public class VU9cAllotOrderDaoImpl extends MybatisGenericDao implements IVU9cAllotOrderDao{ + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/entity/VU9cAllotOrderEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/entity/VU9cAllotOrderEntity.java new file mode 100644 index 00000000..b75399ac --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/entity/VU9cAllotOrderEntity.java @@ -0,0 +1,101 @@ +package com.hzya.frame.u9c.allot.order.entity; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * (VU9cAllotOrder)实体类 + * + * @author xiang2lin + * @since 2023-11-17 10:23:58 + */ +public class VU9cAllotOrderEntity extends BaseEntity { + + private String doctypename;//单据类型 + private String doctypecode;//单据类型编码 + private String outorderno; + + private String reasoncode; + + + + private String docdate;//单据日期 + private String wdata;//入库日期 + + private String remark; + + private String status;// 5表示以关闭 + private String update_time; + public String getOutorderno() { + return outorderno; + } + + public void setOutorderno(String outorderno) { + this.outorderno = outorderno; + } + + public String getReasoncode() { + return reasoncode; + } + + public void setReasoncode(String reasoncode) { + this.reasoncode = reasoncode; + } + + + + public String getDocdate() { + return docdate; + } + + public void setDocdate(String docdate) { + this.docdate = docdate; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getWdata() { + return wdata; + } + + public void setWdata(String wdata) { + this.wdata = wdata; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getUpdate_time() { + return update_time; + } + + public void setUpdate_time(String update_time) { + this.update_time = update_time; + } + + public String getDoctypename() { + return doctypename; + } + + public void setDoctypename(String doctypename) { + this.doctypename = doctypename; + } + + public String getDoctypecode() { + return doctypecode; + } + + public void setDoctypecode(String doctypecode) { + this.doctypecode = doctypecode; + } +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/entity/VU9cAllotOrderEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/entity/VU9cAllotOrderEntity.xml new file mode 100644 index 00000000..04299340 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/entity/VU9cAllotOrderEntity.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + id, + outOrderNo, + doctypename, + doctypecode, + status, + update_time, + docDate + + + + + + + + + + + + + + + + + + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/service/IVU9cAllotOrderService.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/service/IVU9cAllotOrderService.java new file mode 100644 index 00000000..15dbbf9e --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/service/IVU9cAllotOrderService.java @@ -0,0 +1,22 @@ +package com.hzya.frame.u9c.allot.order.service; + +import com.hzya.frame.u9c.allot.order.entity.VU9cAllotOrderEntity; +import com.hzya.frame.basedao.service.IBaseService; + +import java.util.List; + +/** + * (VU9cAllotOrder)表服务接口 + * + * @author xiang2lin + * @since 2023-11-02 10:52:22 + */ +public interface IVU9cAllotOrderService extends IBaseService{ + + /** + * 查询收货单,推送睿本云专用 + * @param entity + * @return + */ + List query2Reabam(VU9cAllotOrderEntity entity); +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/service/impl/VU9cAllotOrderServiceImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/service/impl/VU9cAllotOrderServiceImpl.java new file mode 100644 index 00000000..0e535c1f --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/allot/order/service/impl/VU9cAllotOrderServiceImpl.java @@ -0,0 +1,43 @@ +package com.hzya.frame.u9c.allot.order.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.allot.order.entity.VU9cAllotOrderEntity; +import com.hzya.frame.u9c.allot.order.dao.IVU9cAllotOrderDao; +import com.hzya.frame.u9c.allot.order.service.IVU9cAllotOrderService; +import com.hzya.frame.u9c.constant.U9Constant; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.List; + +/** + * (VU9cAllotOrder)表服务实现类 + * + * @author xiang2lin + * @since 2023-11-02 10:52:23 + */ +@Service("vU9cAllotOrderService") +public class VU9cAllotOrderServiceImpl extends BaseService implements IVU9cAllotOrderService { + + private IVU9cAllotOrderDao vU9cAllotOrderDao; + + @Autowired + public void setVU9cAllotOrderDao(IVU9cAllotOrderDao dao) { + this.vU9cAllotOrderDao = dao; + this.dao = dao; + } + + /** + * 查询收货单,推送睿本云专用 + * @param entity + * @return + */ + @DS(U9Constant.DATA_SOURCE_CODE) + @Override + public List query2Reabam(VU9cAllotOrderEntity entity) { + List list = vU9cAllotOrderDao.queryList(entity, "VU9cAllotOrderEntity_list_base_reabam"); + return list; + } +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/dao/IVHzyaBomDetailsDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/dao/IVHzyaBomDetailsDao.java new file mode 100644 index 00000000..a50fe52d --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/dao/IVHzyaBomDetailsDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.u9c.bom.details.dao; + +import com.hzya.frame.u9c.bom.details.entity.VHzyaBomDetailsEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * (v_hzya_bom_details: table)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-01 15:24:40 + */ +public interface IVHzyaBomDetailsDao extends IBaseDao { + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/dao/impl/VHzyaBomDetailsDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/dao/impl/VHzyaBomDetailsDaoImpl.java new file mode 100644 index 00000000..1fc650dc --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/dao/impl/VHzyaBomDetailsDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.u9c.bom.details.dao.impl; + +import com.hzya.frame.u9c.bom.details.entity.VHzyaBomDetailsEntity; +import com.hzya.frame.u9c.bom.details.dao.IVHzyaBomDetailsDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * (VHzyaBomDetails)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-01 15:24:42 + */ +@Repository("VHzyaBomDetailsDaoImpl") +public class VHzyaBomDetailsDaoImpl extends MybatisGenericDao implements IVHzyaBomDetailsDao{ + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/entity/VHzyaBomDetailsEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/entity/VHzyaBomDetailsEntity.java new file mode 100644 index 00000000..9fb89da7 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/entity/VHzyaBomDetailsEntity.java @@ -0,0 +1,159 @@ +package com.hzya.frame.u9c.bom.details.entity; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * (VHzyaBomDetails)实体类 + * + * @author xiang2lin + * @since 2023-11-01 15:24:43 + */ +public class VHzyaBomDetailsEntity extends BaseEntity { + + + private String id; + + private String name; + + private String code; + + private String skuCode; + + private String parentId; + + private String replaceId; + + private String itemNumber; + + private String subitem; + + private String modifyTime; + + private String usageType; + + private String dosage; + + private String parentNumber; + + private String rounding; + + private String effectiveOrNot; + + private String effectiveDate; + + + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getSkuCode() { + return skuCode; + } + + public void setSkuCode(String skuCode) { + this.skuCode = skuCode; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getReplaceId() { + return replaceId; + } + + public void setReplaceId(String replaceId) { + this.replaceId = replaceId; + } + + public String getItemNumber() { + return itemNumber; + } + + public void setItemNumber(String itemNumber) { + this.itemNumber = itemNumber; + } + + public String getSubitem() { + return subitem; + } + + public void setSubitem(String subitem) { + this.subitem = subitem; + } + + public String getModifyTime() { + return modifyTime; + } + + public void setModifyTime(String modifyTime) { + this.modifyTime = modifyTime; + } + + public String getUsageType() { + return usageType; + } + + public void setUsageType(String usageType) { + this.usageType = usageType; + } + + public String getDosage() { + return dosage; + } + + public void setDosage(String dosage) { + this.dosage = dosage; + } + + public String getParentNumber() { + return parentNumber; + } + + public void setParentNumber(String parentNumber) { + this.parentNumber = parentNumber; + } + + public String getRounding() { + return rounding; + } + + public void setRounding(String rounding) { + this.rounding = rounding; + } + + public String getEffectiveOrNot() { + return effectiveOrNot; + } + + public void setEffectiveOrNot(String effectiveOrNot) { + this.effectiveOrNot = effectiveOrNot; + } + + public String getEffectiveDate() { + return effectiveDate; + } + + public void setEffectiveDate(String effectiveDate) { + this.effectiveDate = effectiveDate; + } + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/entity/VHzyaBomDetailsEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/entity/VHzyaBomDetailsEntity.xml new file mode 100644 index 00000000..1a7109e2 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/entity/VHzyaBomDetailsEntity.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + id + ,name + ,code + ,sku_code + ,parent_id + ,replace_id + ,item_number + ,subitem + ,modify_time + ,usage_type + ,dosage + ,parent_number + ,rounding + ,effective_or_not + ,effective_date + + + + + + + + + + + + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/service/IVHzyaBomDetailsService.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/service/IVHzyaBomDetailsService.java new file mode 100644 index 00000000..e0c60210 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/service/IVHzyaBomDetailsService.java @@ -0,0 +1,12 @@ +package com.hzya.frame.u9c.bom.details.service; + +import com.hzya.frame.u9c.bom.details.entity.VHzyaBomDetailsEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * (VHzyaBomDetails)表服务接口 + * + * @author xiang2lin + * @since 2023-11-01 15:24:44 + */ +public interface IVHzyaBomDetailsService extends IBaseService{ +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/service/impl/VHzyaBomDetailsServiceImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/service/impl/VHzyaBomDetailsServiceImpl.java new file mode 100644 index 00000000..e9542861 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/details/service/impl/VHzyaBomDetailsServiceImpl.java @@ -0,0 +1,26 @@ +package com.hzya.frame.u9c.bom.details.service.impl; + +import com.hzya.frame.u9c.bom.details.entity.VHzyaBomDetailsEntity; +import com.hzya.frame.u9c.bom.details.dao.IVHzyaBomDetailsDao; +import com.hzya.frame.u9c.bom.details.service.IVHzyaBomDetailsService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; +/** + * (VHzyaBomDetails)表服务实现类 + * + * @author xiang2lin + * @since 2023-11-01 15:24:45 + */ +@Service("vHzyaBomDetailsService") +public class VHzyaBomDetailsServiceImpl extends BaseService implements IVHzyaBomDetailsService { + + private IVHzyaBomDetailsDao vHzyaBomDetailsDao; + + @Autowired + public void setVHzyaBomDetailsDao(IVHzyaBomDetailsDao dao) { + this.vHzyaBomDetailsDao = dao; + this.dao = dao; + } +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/dao/IVHzyaBomMainDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/dao/IVHzyaBomMainDao.java new file mode 100644 index 00000000..fe3b82f2 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/dao/IVHzyaBomMainDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.u9c.bom.main.dao; + +import com.hzya.frame.u9c.bom.main.entity.VHzyaBomMainEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * (v_hzya_bom_main: table)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-01 15:23:51 + */ +public interface IVHzyaBomMainDao extends IBaseDao { + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/dao/impl/VHzyaBomMainDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/dao/impl/VHzyaBomMainDaoImpl.java new file mode 100644 index 00000000..01002bc3 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/dao/impl/VHzyaBomMainDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.u9c.bom.main.dao.impl; + +import com.hzya.frame.u9c.bom.main.entity.VHzyaBomMainEntity; +import com.hzya.frame.u9c.bom.main.dao.IVHzyaBomMainDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * (VHzyaBomMain)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-01 15:23:56 + */ +@Repository("VHzyaBomMainDaoImpl") +public class VHzyaBomMainDaoImpl extends MybatisGenericDao implements IVHzyaBomMainDao{ + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/entity/VHzyaBomMainEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/entity/VHzyaBomMainEntity.java new file mode 100644 index 00000000..71af4568 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/entity/VHzyaBomMainEntity.java @@ -0,0 +1,136 @@ +package com.hzya.frame.u9c.bom.main.entity; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * (VHzyaBomMain)实体类 + * + * @author xiang2lin + * @since 2023-11-01 15:23:58 + */ +public class VHzyaBomMainEntity extends BaseEntity { + + + private String def1;//是否推送门店, True才推送 + private String id; + + private String skuCode; + + private String name; + + private String code; + + private String versionCode; + + private String classify; + + private String productionPurpose; + + private String batch; + + private String mainBatch; + + private String effectiveDate; + + private String loseEfficacyDate; + + private String modifyTime; + + + + public String getSkuCode() { + return skuCode; + } + + public void setSkuCode(String skuCode) { + this.skuCode = skuCode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getVersionCode() { + return versionCode; + } + + public void setVersionCode(String versionCode) { + this.versionCode = versionCode; + } + + public String getClassify() { + return classify; + } + + public void setClassify(String classify) { + this.classify = classify; + } + + public String getProductionPurpose() { + return productionPurpose; + } + + public void setProductionPurpose(String productionPurpose) { + this.productionPurpose = productionPurpose; + } + + public String getBatch() { + return batch; + } + + public void setBatch(String batch) { + this.batch = batch; + } + + public String getMainBatch() { + return mainBatch; + } + + public void setMainBatch(String mainBatch) { + this.mainBatch = mainBatch; + } + + public String getEffectiveDate() { + return effectiveDate; + } + + public void setEffectiveDate(String effectiveDate) { + this.effectiveDate = effectiveDate; + } + + public String getLoseEfficacyDate() { + return loseEfficacyDate; + } + + public void setLoseEfficacyDate(String loseEfficacyDate) { + this.loseEfficacyDate = loseEfficacyDate; + } + + public String getModifyTime() { + return modifyTime; + } + + public void setModifyTime(String modifyTime) { + this.modifyTime = modifyTime; + } + + public String getDef1() { + return def1; + } + + public void setDef1(String def1) { + this.def1 = def1; + } +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/entity/VHzyaBomMainEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/entity/VHzyaBomMainEntity.xml new file mode 100644 index 00000000..e057374a --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/entity/VHzyaBomMainEntity.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + id + ,sku_code + ,def1 + ,name + ,code + ,version_code + ,classify + ,production_purpose + ,batch + ,main_batch + ,effective_date + ,lose_efficacy_date + ,modify_time + + + + + + + + + + + + + + + + + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/service/IVHzyaBomMainService.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/service/IVHzyaBomMainService.java new file mode 100644 index 00000000..3940754c --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/service/IVHzyaBomMainService.java @@ -0,0 +1,23 @@ +package com.hzya.frame.u9c.bom.main.service; + +import com.hzya.frame.u9c.bom.main.entity.VHzyaBomMainEntity; +import com.hzya.frame.basedao.service.IBaseService; + +import java.util.List; + +/** + * (VHzyaBomMain)物料清单BOM + * + * @author xiang2lin + * @since 2023-11-01 15:23:59 + */ +public interface IVHzyaBomMainService extends IBaseService{ + + /** + * 查询BOM接口,同步睿本云用 + * @param entity + * @return + * @throws Exception + */ + List query2Reabam(VHzyaBomMainEntity entity)throws Exception; +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/service/impl/VHzyaBomMainServiceImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/service/impl/VHzyaBomMainServiceImpl.java new file mode 100644 index 00000000..5143493b --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/main/service/impl/VHzyaBomMainServiceImpl.java @@ -0,0 +1,38 @@ +package com.hzya.frame.u9c.bom.main.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.bom.main.entity.VHzyaBomMainEntity; +import com.hzya.frame.u9c.bom.main.dao.IVHzyaBomMainDao; +import com.hzya.frame.u9c.bom.main.service.IVHzyaBomMainService; +import com.hzya.frame.u9c.constant.U9Constant; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.List; + +/** + * (VHzyaBomMain)表服务实现类 + * + * @author xiang2lin + * @since 2023-11-01 15:24:00 + */ +@Service("vHzyaBomMainService") +public class VHzyaBomMainServiceImpl extends BaseService implements IVHzyaBomMainService { + + private IVHzyaBomMainDao vHzyaBomMainDao; + + @Autowired + public void setVHzyaBomMainDao(IVHzyaBomMainDao dao) { + this.vHzyaBomMainDao = dao; + this.dao = dao; + } + + @DS(U9Constant.DATA_SOURCE_CODE) + @Override + public List query2Reabam(VHzyaBomMainEntity entity) throws Exception { + List list = vHzyaBomMainDao.queryList(entity,"VHzyaBomMainEntity_entity_list_base_reabam"); + return list; + } +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/dao/IVHzyaBomReplaceDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/dao/IVHzyaBomReplaceDao.java new file mode 100644 index 00000000..bce56153 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/dao/IVHzyaBomReplaceDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.u9c.bom.replace.dao; + +import com.hzya.frame.u9c.bom.replace.entity.VHzyaBomReplaceEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * (v_hzya_bom_replace: table)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-20 09:41:20 + */ +public interface IVHzyaBomReplaceDao extends IBaseDao { + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/dao/impl/VHzyaBomReplaceDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/dao/impl/VHzyaBomReplaceDaoImpl.java new file mode 100644 index 00000000..03c2a96b --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/dao/impl/VHzyaBomReplaceDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.u9c.bom.replace.dao.impl; + +import com.hzya.frame.u9c.bom.replace.entity.VHzyaBomReplaceEntity; +import com.hzya.frame.u9c.bom.replace.dao.IVHzyaBomReplaceDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * (VHzyaBomReplace)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-20 09:41:22 + */ +@Repository("VHzyaBomReplaceDaoImpl") +public class VHzyaBomReplaceDaoImpl extends MybatisGenericDao implements IVHzyaBomReplaceDao{ + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/entity/VHzyaBomReplaceEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/entity/VHzyaBomReplaceEntity.java new file mode 100644 index 00000000..7c15c9f9 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/entity/VHzyaBomReplaceEntity.java @@ -0,0 +1,65 @@ +package com.hzya.frame.u9c.bom.replace.entity; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * (VHzyaBomReplace)实体类 + * + * @author xiang2lin + * @since 2023-11-20 09:41:22 + */ +public class VHzyaBomReplaceEntity extends BaseEntity { + + + private String detailId; + + private String bomId; + + private String itemNumber; + + private String skuCode; + + private String code; + + + public String getDetailId() { + return detailId; + } + + public void setDetailId(String detailId) { + this.detailId = detailId; + } + + public String getBomId() { + return bomId; + } + + public void setBomId(String bomId) { + this.bomId = bomId; + } + + public String getItemNumber() { + return itemNumber; + } + + public void setItemNumber(String itemNumber) { + this.itemNumber = itemNumber; + } + + public String getSkuCode() { + return skuCode; + } + + public void setSkuCode(String skuCode) { + this.skuCode = skuCode; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/entity/VHzyaBomReplaceEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/entity/VHzyaBomReplaceEntity.xml new file mode 100644 index 00000000..d8792c65 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/entity/VHzyaBomReplaceEntity.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + detail_id + ,bom_id + ,item_number + ,sku_code + ,code + + + + + + + + + + + + + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/service/IVHzyaBomReplaceService.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/service/IVHzyaBomReplaceService.java new file mode 100644 index 00000000..4954882b --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/service/IVHzyaBomReplaceService.java @@ -0,0 +1,12 @@ +package com.hzya.frame.u9c.bom.replace.service; + +import com.hzya.frame.u9c.bom.replace.entity.VHzyaBomReplaceEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * (VHzyaBomReplace)表服务接口 + * + * @author xiang2lin + * @since 2023-11-20 09:41:23 + */ +public interface IVHzyaBomReplaceService extends IBaseService{ +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/service/impl/VHzyaBomReplaceServiceImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/service/impl/VHzyaBomReplaceServiceImpl.java new file mode 100644 index 00000000..5de53cfc --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/bom/replace/service/impl/VHzyaBomReplaceServiceImpl.java @@ -0,0 +1,26 @@ +package com.hzya.frame.u9c.bom.replace.service.impl; + +import com.hzya.frame.u9c.bom.replace.entity.VHzyaBomReplaceEntity; +import com.hzya.frame.u9c.bom.replace.dao.IVHzyaBomReplaceDao; +import com.hzya.frame.u9c.bom.replace.service.IVHzyaBomReplaceService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; +/** + * (VHzyaBomReplace)表服务实现类 + * + * @author xiang2lin + * @since 2023-11-20 09:41:24 + */ +@Service("vHzyaBomReplaceService") +public class VHzyaBomReplaceServiceImpl extends BaseService implements IVHzyaBomReplaceService { + + private IVHzyaBomReplaceDao vHzyaBomReplaceDao; + + @Autowired + public void setVHzyaBomReplaceDao(IVHzyaBomReplaceDao dao) { + this.vHzyaBomReplaceDao = dao; + this.dao = dao; + } +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/category/dao/IVU9cCategoryDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/category/dao/IVU9cCategoryDao.java new file mode 100644 index 00000000..a9234fca --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/category/dao/IVU9cCategoryDao.java @@ -0,0 +1,36 @@ +package com.hzya.frame.u9c.category.dao; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.category.entity.VU9cCategoryEntity; +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.u9c.itemmaster.entity.VU9cItemmasterEntity; + +import java.util.List; + +/** + * (view:v_u9c_category)表数据库访问层 + * + * @author makejava + * @since 2023-10-26 09:22:18 + */ +public interface IVU9cCategoryDao extends IBaseDao { +/*** + * @Content: + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年10月26日09:26:58 + * @Param + * @return + **/ +@DS("henghua_sqlserver_test") + List getu9cCategory(VU9cCategoryEntity category); +/*** + * @Content:更新存货分类信息 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年10月26日09:29:50 + * @Param + * @return + **/ +@DS("henghua_sqlserver_test") + int updateCategory(VU9cCategoryEntity itemmaster); +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/category/dao/impl/VU9cCategoryDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/category/dao/impl/VU9cCategoryDaoImpl.java new file mode 100644 index 00000000..49be03cc --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/category/dao/impl/VU9cCategoryDaoImpl.java @@ -0,0 +1,30 @@ +package com.hzya.frame.u9c.category.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.category.entity.VU9cCategoryEntity; +import com.hzya.frame.u9c.category.dao.IVU9cCategoryDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; + +import java.util.List; + +/** + * (VU9cCategory)表数据库访问层 + * + * @author makejava + * @since 2023-10-26 09:22:25 + */ +@Repository("VU9cCategoryDaoImpl") +public class VU9cCategoryDaoImpl extends MybatisGenericDao implements IVU9cCategoryDao{ + @DS("henghua_sqlserver_test_xel") + @Override + public List getu9cCategory(VU9cCategoryEntity category) { + return (List) super.selectList("com.hzya.frame.u9c.category.dao.impl.VU9cCategoryDaoImpl.entity_list_base_category",category); + } + @DS("henghua_sqlserver_test_xel") + @Override + public int updateCategory(VU9cCategoryEntity itemmaster) { + return super.update("com.hzya.frame.u9c.category.dao.impl.VU9cCategoryDaoImpl.entity_update_category",itemmaster); + } +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/category/entity/VU9cCategoryEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/category/entity/VU9cCategoryEntity.java new file mode 100644 index 00000000..72805f8c --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/category/entity/VU9cCategoryEntity.java @@ -0,0 +1,109 @@ +package com.hzya.frame.u9c.category.entity; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * (VU9cCategory)实体类 + * + * @author makejava + * @since 2023-10-26 09:22:27 + */ +public class VU9cCategoryEntity extends BaseEntity { + + + private String id; + + private String code; + + private String name; + private String dataId; + private String crmId; + private String operatorsId; + private String crmUpId; + private String upCode; + private String upName; + private String updateTime; + + public String getCrmId() { + return crmId; + } + + public void setCrmId(String crmId) { + this.crmId = crmId; + } + + public String getOperatorsId() { + return operatorsId; + } + + public void setOperatorsId(String operatorsId) { + this.operatorsId = operatorsId; + } + + public String getCrmUpId() { + return crmUpId; + } + + public void setCrmUpId(String crmUpId) { + this.crmUpId = crmUpId; + } + + public String getUpCode() { + return upCode; + } + + public void setUpCode(String upCode) { + this.upCode = upCode; + } + + public String getUpName() { + return upName; + } + + public void setUpName(String upName) { + this.upName = upName; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + @Override + public String getId() { + return id; + } + + @Override + public void setId(String id) { + this.id = id; + } + + public String getDataId() { + return dataId; + } + + public void setDataId(String dataId) { + this.dataId = dataId; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/category/entity/VU9cCategoryEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/category/entity/VU9cCategoryEntity.xml new file mode 100644 index 00000000..5c86561a --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/category/entity/VU9cCategoryEntity.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + id + ,code + ,name + + + + + + + update CBO_Category set + DescFlexField_PrivateDescSeg1 = #{dataId} + where id= #{id} + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/category/service/IVU9cCategoryService.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/category/service/IVU9cCategoryService.java new file mode 100644 index 00000000..cacaa412 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/category/service/IVU9cCategoryService.java @@ -0,0 +1,20 @@ +package com.hzya.frame.u9c.category.service; + +import com.hzya.frame.u9c.category.entity.VU9cCategoryEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * (VU9cCategory)表服务接口 + * + * @author makejava + * @since 2023-10-26 09:22:29 + */ +public interface IVU9cCategoryService extends IBaseService{ + /*** + * @Content:查询U9C料品分类档案 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年10月26日09:24:50 + * @Param + * @return + **/ + String sendU9cCategoryToCRM(); +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/category/service/impl/VU9cCategoryServiceImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/category/service/impl/VU9cCategoryServiceImpl.java new file mode 100644 index 00000000..8ff7450c --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/category/service/impl/VU9cCategoryServiceImpl.java @@ -0,0 +1,101 @@ +package com.hzya.frame.u9c.category.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.u9c.category.entity.VU9cCategoryEntity; +import com.hzya.frame.u9c.category.dao.IVU9cCategoryDao; +import com.hzya.frame.u9c.category.service.IVU9cCategoryService; +import com.hzya.frame.u9c.util.CrmUtil; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.List; + +/** + * (VU9cCategory)表服务实现类 + * + * @author makejava + * @since 2023-10-26 09:22:30 + */ +@Service("vU9cCategoryService") +public class VU9cCategoryServiceImpl extends BaseService implements IVU9cCategoryService { + + private IVU9cCategoryDao vU9cCategoryDao; + + @Autowired + public void setVU9cCategoryDao(IVU9cCategoryDao dao) { + this.vU9cCategoryDao = dao; + this.dao = dao; + } + //上一次同步时间 + private String LAST_SYNCHRONISED_TIME = ""; + @Override + public String sendU9cCategoryToCRM() { + JSONObject resultObj = new JSONObject(); + //获取待推送的U9c + VU9cCategoryEntity category = new VU9cCategoryEntity(); + if (StrUtil.isBlank(LAST_SYNCHRONISED_TIME)) { + LAST_SYNCHRONISED_TIME = DateUtil.now(); + } + //暂存时间 + String temp_time = LAST_SYNCHRONISED_TIME; + category.setUpdateTime(temp_time); + List VU9cCategoryEntityList = vU9cCategoryDao.getu9cCategory(category); + if(VU9cCategoryEntityList.size()>0){ + LAST_SYNCHRONISED_TIME = DateUtil.now(); + for(VU9cCategoryEntity itemmaster : VU9cCategoryEntityList){ + try { + String permanentCode = "FSUID_DB2D1775B48BCDF893538F8CAB2A0EC7"; + JSONObject tokenObj = CrmUtil.getToken(permanentCode); + //拼接传递参数 + JSONObject main = new JSONObject(); + main.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + main.put("corpId",tokenObj.getString("corpId"));//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + main.put("duplicateCheck",true); + JSONObject data = new JSONObject(); + //根据CRM主键判断是新增还是更新 + String crmId = itemmaster.getCrmId(); + if(StrUtil.isNotEmpty(crmId)){ + data.put("editFlag","2");//状态 2是更新 + data.put("id",crmId);//状态 2是更新- + }else{ + data.put("editFlag","1");//状态1 是新增 + } + + String crmUpId = itemmaster.getCrmUpId(); + if(StrUtil.isNotEmpty(crmUpId)){ + data.put("pid",itemmaster.getCrmUpId());//上级主键 + } + data.put("name",itemmaster.getName());//分类名称 + data.put("category_code",itemmaster.getCode());//分类编码 + data.put("orderField","1");//排序号 暂时默认1 + main.put("data",data); + String apiCode = "8000090002"; + resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + + String errorDescription = resultObj.getString("errorDescription"); + if("success".equals(errorDescription)){ + if(StrUtil.isEmpty(crmId)){ + String dataId = resultObj.getString("dataId"); + if(StrUtil.isNotEmpty(dataId)){ + itemmaster.setDataId(dataId); + int state = vU9cCategoryDao.updateCategory(itemmaster); + } + } + } + } catch (Exception e) { + itemmaster.setDataId("接口错误,请联系管理员"); + vU9cCategoryDao.updateCategory(itemmaster); + e.printStackTrace(); + } + + } + } + return resultObj.toString(); + } +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/constant/U9Constant.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/constant/U9Constant.java new file mode 100644 index 00000000..fbdd361b --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/constant/U9Constant.java @@ -0,0 +1,11 @@ +package com.hzya.frame.u9c.constant; + +/** + * @Description u9c常量 + * @Author xiangerlin + * @Date 2023/11/20 10:17 + **/ +public class U9Constant { + //u9c数据库编码 + public static final String DATA_SOURCE_CODE = "henghua_sqlserver_test_xel"; +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/dao/IVU9cItemmasterDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/dao/IVU9cItemmasterDao.java new file mode 100644 index 00000000..1907bf69 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/dao/IVU9cItemmasterDao.java @@ -0,0 +1,34 @@ +package com.hzya.frame.u9c.itemmaster.dao; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.itemmaster.entity.VU9cItemmasterEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +import java.util.List; + +/** + * (v_u9c_itemmaster: view)表数据库访问层 + * + * @author xiaoguo + * @since 2023-10-25 14:30:33 + */ +public interface IVU9cItemmasterDao extends IBaseDao { +/*** + * @Content:查询U9C未推送的数据 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年10月25日14:43:00 + * @Param + * @return + **/ +@DS("henghua_sqlserver_test") + List getu9cItemMaster(VU9cItemmasterEntity entity); + + /** + * 更新U9C存货状态 + * @param itemmaster + * @return + */ + @DS("henghua_sqlserver_test") + int updateItemMaster(VU9cItemmasterEntity itemmaster); +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/dao/impl/VU9cItemmasterDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/dao/impl/VU9cItemmasterDaoImpl.java new file mode 100644 index 00000000..468aed4a --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/dao/impl/VU9cItemmasterDaoImpl.java @@ -0,0 +1,31 @@ +package com.hzya.frame.u9c.itemmaster.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.itemmaster.entity.VU9cItemmasterEntity; +import com.hzya.frame.u9c.itemmaster.dao.IVU9cItemmasterDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; + +import java.util.List; + +/** + * (VU9cItemmaster)表数据库访问层 + * + * @author xiaoguo + * @since 2023-10-25 14:30:34 + */ +@Repository(value = "VU9cItemmasterDaoImpl") +public class VU9cItemmasterDaoImpl extends MybatisGenericDao implements IVU9cItemmasterDao{ + @DS("henghua_sqlserver_test_xel") + @Override + public List getu9cItemMaster(VU9cItemmasterEntity entity) { + return (List) super.selectList("com.hzya.frame.u9c.itemmaster.dao.impl.VU9cItemmasterDaoImpl.entity_list_base_item_master",entity); + } + @DS("henghua_sqlserver_test_xel") + @Override + public int updateItemMaster(VU9cItemmasterEntity itemmaster) { + + return super.update("com.hzya.frame.u9c.itemmaster.dao.impl.VU9cItemmasterDaoImpl.entity_update_item_master",itemmaster); + } +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/entity/VU9cItemmasterEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/entity/VU9cItemmasterEntity.java new file mode 100644 index 00000000..ab3b8a39 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/entity/VU9cItemmasterEntity.java @@ -0,0 +1,603 @@ +package com.hzya.frame.u9c.itemmaster.entity; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * (VU9cItemmaster)实体类 + * + * @author xiaoguo + * @since 2023-10-30 16:10:13 + */ +public class VU9cItemmasterEntity extends BaseEntity { + + private String costType;//睿本云成本评估方法 + /** 物料编码*/ + private String code; + //有效天数 + private String LotValidDate; + /** 物料名称 */ + private String name; + /** 分类ID*/ + private String categoryId; + /** 分类编码*/ + private String classificationCode; + /** 分类名称 */ + private String classificationName; + /** CRM类别ID*/ + private String crmCategoryId; + /** crmId*/ + private String crmId; + /** 操作员ID*/ + private String operatorsId; + /** 单位代码*/ + private String unitCode; + /** */ + private String dataId; + /** 单位名称*/ + private String unitName; + /** 规格*/ + private String specs; + /** suk码*/ + private String sukCode; + /** 参考号2*/ + private String referenceCode; + /** 料品形态属性*/ + private String materialForm; + /** 可库存交易*/ + private String inventoryTransactions; + /** 可采购 */ + private String procure; + /** 可销售 */ + private String sale; + /** 可生产*/ + private String produce; + /** 可MRP*/ + private String mrp; + /** 可BOM*/ + private String bom; + /** 双单位 */ + private String doubleUnit; + /** 多单位*/ + private String multiUnit; + /** 固定转换率 */ + private String conversionRate; + /** 可预留 */ + private String reserved; + /** 批号参数 */ + private String batchNumber; + /** 取价来源*/ + private String pricingSource; + /** 收货程序*/ + private String receivingProcedure; + /** 库存主单位*/ + private String inventoryMasterUnit; + private String inventoryMasterUnitCode;//库存主单位编码 + private String inventoryMasterUnitZhl;//库存主单位转换率 + /** 库存单位*/ + private String inventoryUnit; + private String inventoryUnitCode;//库存单位编码 + private String inventoryUnitZhl;//库存单位转换率 + /** 采购单位*/ + private String purchasingUnit; + private String purchasingUnitCode;//采购单位编码 +private String inventoryPurchasingUnitZhl;//采购单位转换率 + /** 销售单位*/ + private String saleUnit; + private String saleUnitCode;//销售单位编码 + private String inventorySaleUnitZhl;//销售单位转换率 + /** 生产单位*/ + private String productionUnit; + /** 领料单位*/ + private String materialRequisitionUnit; + /** 计价单位*/ + private String pricingUnit; + /** 重量单位*/ + private String weightUnit; + /** 体积单位 */ + private String volumeUnit; + /** 成本单位*/ + private String costUnit; + private String sale_price;//销售价 + private String cost_price;//成本价 + private String cost_price_spr;//销售价目表的单价,这个传到睿本云成本价 + private String has_sale_item;//是否销售物料 + private String has_weigh_item;//是否称重物料 + private String proType;//产品大类 + private String standardPrice;//标准价格 + private String orgName;//所属公司 + private String nameOrg;// + private String crmCostPrice;//crm成本价 + private String CRMSalesRate;//CRM销售换算率 + private String Effective_IsEffective;//U9料品状态 0停用 1启用 + + public String getEffective_IsEffective() { + return Effective_IsEffective; + } + + public void setEffective_IsEffective(String effective_IsEffective) { + Effective_IsEffective = effective_IsEffective; + } + + public String getCRMSalesRate() { + return CRMSalesRate; + } + + public void setCRMSalesRate(String CRMSalesRate) { + this.CRMSalesRate = CRMSalesRate; + } + + public String getCrmCostPrice() { + return crmCostPrice; + } + + public void setCrmCostPrice(String crmCostPrice) { + this.crmCostPrice = crmCostPrice; + } + + public String getNameOrg() { + return nameOrg; + } + + public void setNameOrg(String nameOrg) { + this.nameOrg = nameOrg; + } + + public String getOrgName() { + return orgName; + } + + public void setOrgName(String orgName) { + this.orgName = orgName; + } + + public String getStandardPrice() { + return standardPrice; + } + + public void setStandardPrice(String standardPrice) { + this.standardPrice = standardPrice; + } + + public String getProType() { + return proType; + } + + public void setProType(String proType) { + this.proType = proType; + } + + public String getLotValidDate() { + return LotValidDate; + } + + public void setLotValidDate(String lotValidDate) { + LotValidDate = lotValidDate; + } + + /** 修改时间*/ + private String updatetime; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCategoryId() { + return categoryId; + } + + public void setCategoryId(String categoryId) { + this.categoryId = categoryId; + } + + public String getClassificationCode() { + return classificationCode; + } + + public void setClassificationCode(String classificationCode) { + this.classificationCode = classificationCode; + } + + public String getClassificationName() { + return classificationName; + } + + public void setClassificationName(String classificationName) { + this.classificationName = classificationName; + } + + public String getCrmCategoryId() { + return crmCategoryId; + } + + public void setCrmCategoryId(String crmCategoryId) { + this.crmCategoryId = crmCategoryId; + } + + public String getCrmId() { + return crmId; + } + + public void setCrmId(String crmId) { + this.crmId = crmId; + } + + public String getOperatorsId() { + return operatorsId; + } + + public void setOperatorsId(String operatorsId) { + this.operatorsId = operatorsId; + } + + public String getUnitCode() { + return unitCode; + } + + public void setUnitCode(String unitCode) { + this.unitCode = unitCode; + } + + public String getDataId() { + return dataId; + } + + public void setDataId(String dataId) { + this.dataId = dataId; + } + + public String getUnitName() { + return unitName; + } + + public void setUnitName(String unitName) { + this.unitName = unitName; + } + + public String getSpecs() { + return specs; + } + + public void setSpecs(String specs) { + this.specs = specs; + } + + public String getSukCode() { + return sukCode; + } + + public void setSukCode(String sukCode) { + this.sukCode = sukCode; + } + + public String getReferenceCode() { + return referenceCode; + } + + public void setReferenceCode(String referenceCode) { + this.referenceCode = referenceCode; + } + + public String getMaterialForm() { + return materialForm; + } + + public void setMaterialForm(String materialForm) { + this.materialForm = materialForm; + } + + public String getInventoryTransactions() { + return inventoryTransactions; + } + + public void setInventoryTransactions(String inventoryTransactions) { + this.inventoryTransactions = inventoryTransactions; + } + + public String getProcure() { + return procure; + } + + public void setProcure(String procure) { + this.procure = procure; + } + + public String getSale() { + return sale; + } + + public void setSale(String sale) { + this.sale = sale; + } + + public String getProduce() { + return produce; + } + + public void setProduce(String produce) { + this.produce = produce; + } + + public String getMrp() { + return mrp; + } + + public void setMrp(String mrp) { + this.mrp = mrp; + } + + public String getBom() { + return bom; + } + + public void setBom(String bom) { + this.bom = bom; + } + + public String getDoubleUnit() { + return doubleUnit; + } + + public void setDoubleUnit(String doubleUnit) { + this.doubleUnit = doubleUnit; + } + + public String getMultiUnit() { + return multiUnit; + } + + public void setMultiUnit(String multiUnit) { + this.multiUnit = multiUnit; + } + + public String getConversionRate() { + return conversionRate; + } + + public void setConversionRate(String conversionRate) { + this.conversionRate = conversionRate; + } + + public String getReserved() { + return reserved; + } + + public void setReserved(String reserved) { + this.reserved = reserved; + } + + public String getBatchNumber() { + return batchNumber; + } + + public void setBatchNumber(String batchNumber) { + this.batchNumber = batchNumber; + } + + public String getPricingSource() { + return pricingSource; + } + + public void setPricingSource(String pricingSource) { + this.pricingSource = pricingSource; + } + + public String getReceivingProcedure() { + return receivingProcedure; + } + + public void setReceivingProcedure(String receivingProcedure) { + this.receivingProcedure = receivingProcedure; + } + + public String getInventoryMasterUnit() { + return inventoryMasterUnit; + } + + public void setInventoryMasterUnit(String inventoryMasterUnit) { + this.inventoryMasterUnit = inventoryMasterUnit; + } + + public String getInventoryUnit() { + return inventoryUnit; + } + + public void setInventoryUnit(String inventoryUnit) { + this.inventoryUnit = inventoryUnit; + } + + public String getPurchasingUnit() { + return purchasingUnit; + } + + public void setPurchasingUnit(String purchasingUnit) { + this.purchasingUnit = purchasingUnit; + } + + public String getSaleUnit() { + return saleUnit; + } + + public void setSaleUnit(String saleUnit) { + this.saleUnit = saleUnit; + } + + public String getProductionUnit() { + return productionUnit; + } + + public void setProductionUnit(String productionUnit) { + this.productionUnit = productionUnit; + } + + public String getMaterialRequisitionUnit() { + return materialRequisitionUnit; + } + + public void setMaterialRequisitionUnit(String materialRequisitionUnit) { + this.materialRequisitionUnit = materialRequisitionUnit; + } + + public String getPricingUnit() { + return pricingUnit; + } + + public void setPricingUnit(String pricingUnit) { + this.pricingUnit = pricingUnit; + } + + public String getWeightUnit() { + return weightUnit; + } + + public void setWeightUnit(String weightUnit) { + this.weightUnit = weightUnit; + } + + public String getVolumeUnit() { + return volumeUnit; + } + + public void setVolumeUnit(String volumeUnit) { + this.volumeUnit = volumeUnit; + } + + public String getCostUnit() { + return costUnit; + } + + public void setCostUnit(String costUnit) { + this.costUnit = costUnit; + } + + public String getUpdatetime() { + return updatetime; + } + + public void setUpdatetime(String updatetime) { + this.updatetime = updatetime; + } + + public String getInventoryMasterUnitCode() { + return inventoryMasterUnitCode; + } + + public void setInventoryMasterUnitCode(String inventoryMasterUnitCode) { + this.inventoryMasterUnitCode = inventoryMasterUnitCode; + } + + public String getInventoryMasterUnitZhl() { + return inventoryMasterUnitZhl; + } + + public void setInventoryMasterUnitZhl(String inventoryMasterUnitZhl) { + this.inventoryMasterUnitZhl = inventoryMasterUnitZhl; + } + + public String getInventoryUnitCode() { + return inventoryUnitCode; + } + + public void setInventoryUnitCode(String inventoryUnitCode) { + this.inventoryUnitCode = inventoryUnitCode; + } + + public String getInventoryUnitZhl() { + return inventoryUnitZhl; + } + + public void setInventoryUnitZhl(String inventoryUnitZhl) { + this.inventoryUnitZhl = inventoryUnitZhl; + } + + public String getSale_price() { + return sale_price; + } + + public void setSale_price(String sale_price) { + this.sale_price = sale_price; + } + + public String getCost_price() { + return cost_price; + } + + public void setCost_price(String cost_price) { + this.cost_price = cost_price; + } + + public String getHas_sale_item() { + return has_sale_item; + } + + public void setHas_sale_item(String has_sale_item) { + this.has_sale_item = has_sale_item; + } + + public String getHas_weigh_item() { + return has_weigh_item; + } + + public void setHas_weigh_item(String has_weigh_item) { + this.has_weigh_item = has_weigh_item; + } + + public String getCost_price_spr() { + return cost_price_spr; + } + + public void setCost_price_spr(String cost_price_spr) { + this.cost_price_spr = cost_price_spr; + } + + public String getCostType() { + return costType; + } + + public void setCostType(String costType) { + this.costType = costType; + } + + public String getInventoryPurchasingUnitZhl() { + return inventoryPurchasingUnitZhl; + } + + public void setInventoryPurchasingUnitZhl(String inventoryPurchasingUnitZhl) { + this.inventoryPurchasingUnitZhl = inventoryPurchasingUnitZhl; + } + + public String getInventorySaleUnitZhl() { + return inventorySaleUnitZhl; + } + + public void setInventorySaleUnitZhl(String inventorySaleUnitZhl) { + this.inventorySaleUnitZhl = inventorySaleUnitZhl; + } + + public String getPurchasingUnitCode() { + return purchasingUnitCode; + } + + public void setPurchasingUnitCode(String purchasingUnitCode) { + this.purchasingUnitCode = purchasingUnitCode; + } + + public String getSaleUnitCode() { + return saleUnitCode; + } + + public void setSaleUnitCode(String saleUnitCode) { + this.saleUnitCode = saleUnitCode; + } +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/entity/VU9cItemmasterEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/entity/VU9cItemmasterEntity.xml new file mode 100644 index 00000000..d3f31748 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/entity/VU9cItemmasterEntity.xml @@ -0,0 +1,464 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CODE + LotValidDate + ,NAME + ,category_id + ,classification_code + ,standard_price + ,classification_name + ,crmCategoryId + ,crmId + ,operatorsId + ,unitCode + ,dataId + ,unitName + ,specs + ,suk_code + ,reference_code + ,material_form + ,inventory_transactions + ,procure + ,sale + ,produce + ,mrp + ,bom + ,double_unit + ,multi_unit + ,conversion_rate + ,reserved + ,batch_number + ,pricing_source + ,receiving_procedure + ,inventory_master_unit + ,inventory_master_unit_code + ,inventory_master_unit_zhl + ,inventory_unit + ,inventory_unit_code + ,inventory_unit_zhl + ,purchasing_unit + ,sale_unit + ,production_unit + ,material_requisition_unit + ,pricing_unit + ,weight_unit + ,volume_unit + ,cost_unit + ,sale_price + ,cost_price + ,cost_price_spr + ,has_sale_item + ,has_weigh_item + ,update_time + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CODE, + LotValidDate + ,NAME + ,category_id + ,classification_code + ,classification_name + ,crmCategoryId + ,crmId + ,costType + ,operatorsId + ,unitCode + ,dataId + ,unitName + ,specs + ,suk_code + ,reference_code + ,material_form + ,inventory_transactions + ,procure + ,sale + ,produce + ,mrp + ,bom + ,double_unit + ,multi_unit + ,conversion_rate + ,reserved + ,batch_number + ,pricing_source + ,receiving_procedure + ,inventory_master_unit + ,inventory_master_unit_code + ,inventory_master_unit_zhl + ,inventory_unit + ,inventory_unit_code + ,inventory_unit_zhl + ,purchasing_unit + ,inventory_purchasing_unit_zhl + ,sale_unit + ,sale_unit_code + ,inventory_sale_unit_zhl + ,production_unit + ,purchasing_unit_code + ,material_requisition_unit + ,pricing_unit + ,weight_unit + ,volume_unit + ,cost_unit + ,sale_price + ,cost_price + ,cost_price_spr + ,has_sale_item + ,has_weigh_item + ,update_time + + + + + + + + + + + + + + + + + + + + update CBO_ItemMaster set + DescFlexField_PrivateDescSeg1 = DescFlexField_PrivateDescSeg1+#{dataId} + where id= #{id} + + + + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/service/IVU9cItemmasterService.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/service/IVU9cItemmasterService.java new file mode 100644 index 00000000..b8e84651 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/service/IVU9cItemmasterService.java @@ -0,0 +1,44 @@ +package com.hzya.frame.u9c.itemmaster.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.u9c.itemmaster.entity.VU9cItemmasterEntity; +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.web.entity.JsonResultEntity; + +import java.util.List; + +/** + * (VU9cItemmaster)表服务接口 + * + * @author xiaoguo + * @since 2023-10-25 14:30:37 + */ +public interface IVU9cItemmasterService extends IBaseService{ + /*** + * @Content:查询U9C料品档案 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年10月25日14:40:29 + * @Param + * @return + **/ + String sendU9cItemmasterToCRM(); + + + + /**** + * 查询U9C物料档案方法 + * @content: + * @author 👻👻👻👻👻👻👻👻 gjh + * @date 2023-10-25 16:05 + * @param requestObj 查询条件 + * @return com.alibaba.fastjson.JSONObject + **/ + JsonResultEntity queryU9cItemMaster(JSONObject requestObj); + + /** + * 查询U9C物料档案, 同步睿本云专用接口 + * @param entity 参数 + * @return 物料档案 + */ + List query2Reabam(VU9cItemmasterEntity entity); +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/service/impl/VU9cItemmasterServiceImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/service/impl/VU9cItemmasterServiceImpl.java new file mode 100644 index 00000000..b0312699 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/itemmaster/service/impl/VU9cItemmasterServiceImpl.java @@ -0,0 +1,343 @@ +package com.hzya.frame.u9c.itemmaster.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.constant.U9Constant; +import com.hzya.frame.u9c.itemmaster.entity.VU9cItemmasterEntity; +import com.hzya.frame.u9c.itemmaster.dao.IVU9cItemmasterDao; +import com.hzya.frame.u9c.itemmaster.service.IVU9cItemmasterService; +import com.hzya.frame.u9c.util.CrmUtil; +import com.hzya.frame.web.entity.BaseResult; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.List; + + +import java.util.ArrayList; +import java.util.List; + +/** + * (VU9cItemmaster)表服务实现类 + * + * @author xiaoguo + * @since 2023-10-25 14:30:38 + */ +@Service(value = "vU9cItemmasterService") +public class VU9cItemmasterServiceImpl extends BaseService implements IVU9cItemmasterService { + + private IVU9cItemmasterDao vU9cItemmasterDao; + + @Autowired + public void setVU9cItemmasterDao(IVU9cItemmasterDao dao) { + this.vU9cItemmasterDao = dao; + this.dao = dao; + } + + @Override + public JsonResultEntity queryU9cItemMaster(JSONObject requestObj) { + List vu9cItemmasterEntities = new ArrayList<>(); + return BaseResult.getFailureMessageEntity("获取数据成功",vu9cItemmasterEntities); + } + + /** + * 查询U9C物料档案, 同步睿本云专用接口 + * + * @param entity 参数 + * @return 物料档案 + */ + @DS(U9Constant.DATA_SOURCE_CODE) + @Override + public List query2Reabam(VU9cItemmasterEntity entity) { + List list = vU9cItemmasterDao.queryList(entity, "VU9cItemmasterEntity_entity_list_base_reabam"); + return list; + } + + //上一次同步时间 + private String LAST_SYNCHRONISED_TIME = ""; + @Override + public String sendU9cItemmasterToCRM() { + JSONObject resultObj = new JSONObject(); + //获取待推送的U9c + VU9cItemmasterEntity entity = new VU9cItemmasterEntity(); + if (StrUtil.isBlank(LAST_SYNCHRONISED_TIME)) { + LAST_SYNCHRONISED_TIME = DateUtil.now(); + } + //暂存时间 + String temp_time = LAST_SYNCHRONISED_TIME; + entity.setUpdatetime(temp_time); + List vu9cItemmasterEntityList = vU9cItemmasterDao.getu9cItemMaster(entity); + if(vu9cItemmasterEntityList.size()>0){ + LAST_SYNCHRONISED_TIME = DateUtil.now(); + int i = 0; + for(VU9cItemmasterEntity itemmaster : vu9cItemmasterEntityList) { + i++; + try { + String permanentCode = "FSUID_DB2D1775B48BCDF893538F8CAB2A0EC7"; + //获取token信息 + JSONObject tokenObj = CrmUtil.getToken(permanentCode); + //通过产品分类主键获取分类编码信息 + String categoryCode =""; + JSONObject category = new JSONObject(); + category.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + category.put("corpId",tokenObj.getString("corpId"));//公司 + category.put("currentOpenUserId",permanentCode);//操作员主键 + JSONObject categoryData = new JSONObject(); + String crmCategoryId = itemmaster.getCrmCategoryId(); + if(StrUtil.isNotEmpty(crmCategoryId)){ + categoryData.put("objectDataId",crmCategoryId); + category.put("data",categoryData); + String apiCode = "8000090005"; + resultObj = CrmUtil.sendU9cTOCrmEsb(category.toString(),apiCode); + String errorDescription = resultObj.getString("errorDescription"); + if("success".equals(errorDescription)){ + JSONObject dataObj = resultObj.getJSONObject("data"); + categoryCode = dataObj.getString("code"); + } + } + //格式化料品名称,拼接公司 + String name = itemmaster.getNameOrg(); + String orgName = itemmaster.getOrgName(); + String orgCode = ""; + itemmaster.getProType(); + switch (orgName){ + case "杭州博华食品科技有限公司": + name = name + "-博华"; + orgCode = "a2lmNhpo0"; + break; + case "浙江恒华食品科技有限公司": + name = name + "-恒华"; + orgCode = "cD2b3f"; + break; + case "杭州华耀科技食品有限责任公司": + itemmaster.setProType(""); + name = name + "-华耀"; + orgCode = "sl2qOPMpO"; + break; + case "杭州胡记食品有限公司": + itemmaster.setProType(""); + name = name + "-胡记"; + orgCode = "eq8LyNWe1"; + break; + } + itemmaster.setNameOrg(name); + String requestParm = ""; + String apiCode = ""; + //通过主键是否为空 判断新增还是更新 + String crmId = CrmUtil.getProIdByName(name,tokenObj.getString("corpAccessToken"),permanentCode,tokenObj.getString("corpId")); + //格式化单位信息 + //todo 2023年12月18日20:56:48 CRM实施提出将U9C销售计量单位传递到他们单位上 + String unitName = itemmaster.getSaleUnit(); + String unit = formatUnit(unitName,tokenObj,permanentCode); + //为了防止再次出现本应该是更新却走了新增方法 + logger.info("商品新增还是更新的参数"+JSON.toJSONString(itemmaster)); + if(StrUtil.isEmpty(crmId)){ + requestParm = bindingAdd(itemmaster,tokenObj,permanentCode,categoryCode,unit, orgCode); + apiCode = "8000090000"; + }else{ + requestParm = bindingEdit(itemmaster,tokenObj,permanentCode,categoryCode,unit,orgCode); + apiCode = "8000090006"; + } + resultObj = CrmUtil.sendU9cTOCrmEsb(requestParm,apiCode); + + String errorDescription = resultObj.getString("errorDescription"); + if("success".equals(errorDescription)){ + if(StrUtil.isNotEmpty(crmId)){ + //得到商品ID 通过商品ID查询产品信息用于修改产品档案 + String proId = CrmUtil.getProIdBySupId(crmId,tokenObj.getString("corpAccessToken"),permanentCode,tokenObj.getString("corpId")); + requestParm = bindingProEdit(itemmaster,tokenObj,permanentCode,categoryCode,unit,proId,orgCode); + apiCode = "8000090014"; + logger.info("商品修改→请求数据:{}",requestParm); + resultObj = CrmUtil.sendU9cTOCrmEsb(requestParm,apiCode); + logger.info("商品修改→返回数据:{}",resultObj.toString()); +// String dataId = resultObj.getString("dataId"); +// if(StrUtil.isNotEmpty(dataId)){ +// itemmaster.setDataId(dataId); +// int state = vU9cItemmasterDao.updateItemMaster(itemmaster); +// } + } + } +// System.out.println(resultObj); + } catch (Exception e) { +// itemmaster.setDataId("接口错误,请联系管理员"); + logger.info(e.getMessage()); +// vU9cItemmasterDao.updateItemMaster(itemmaster); + e.printStackTrace(); + } + } + } + return resultObj.toString(); + } + /** + * + * @content 组装产品信息修改产品 + * @author makejava + * @date 2023/12/17 0017 13:43 + * + */ + + private String bindingProEdit(VU9cItemmasterEntity itemmaster, JSONObject tokenObj, String permanentCode, String categoryCode, String unit,String proId,String orgCode) { + String Effective_IsEffective = itemmaster.getEffective_IsEffective(); + String state = "2"; + if(StrUtil.isNotEmpty(Effective_IsEffective)&& "1".equals(Effective_IsEffective)){ + state = "1"; + } + JSONObject main = new JSONObject(); + main.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + main.put("corpId",tokenObj.getString("corpId"));//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + JSONObject object_data = new JSONObject(); + JSONObject data = new JSONObject(); + data.put("object_data",object_data); + main.put("data",data); + object_data.put("dataObjectApiName","ProductObj"); + object_data.put("product_status",state);//上架状态 + object_data.put("name",itemmaster.getNameOrg());//产品名称 + object_data.put("product_code",itemmaster.getCode());//产品编码 + object_data.put("UDSText2__c",itemmaster.getSpecs());//规格 + object_data.put("UDSText1__c",itemmaster.getSaleUnit());//销售计量单位 + object_data.put("field_HV195__c",itemmaster.getLotValidDate());//保质期 + object_data.put("price",itemmaster.getStandardPrice());//标准价格 + object_data.put("unit",unit);//单位 + object_data.put("field_z5Z43__c",itemmaster.getProType());//产品大类 + object_data.put("field_wq5S2__c",itemmaster.getUnitName());//基本计量单位 + object_data.put("_id",proId);//基本计量单位 + object_data.put("field_s1Mw1__c",itemmaster.getCrmCostPrice());//成本价 + object_data.put("field_lmTK1__c",itemmaster.getCRMSalesRate());//销售换算率 + object_data.put("field_1J9OY__c",orgCode);//产品归属组织 + object_data.put("field_bd1Vb__c",itemmaster.getName());//产品售卖名称 + return main.toString(); + } + + /** + * 绑定新增的参数 + */ + public String bindingEdit(VU9cItemmasterEntity itemmaster,JSONObject tokenObj,String permanentCode,String categoryCode,String unit,String orgCode){ + //拼接传递参数 + JSONObject main = new JSONObject(); + main.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + main.put("corpId",tokenObj.getString("corpId"));//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + main.put("duplicateCheck",true); + JSONObject data = new JSONObject(); + JSONObject object_data = new JSONObject(); + data.put("object_data",object_data); + object_data.put("dataObjectApiName","SPUObj"); + String unitName = itemmaster.getUnitName(); + object_data.put("unit",unit);//计量单位 + JSONArray ownerArr = new JSONArray(); + ownerArr.add(permanentCode); + object_data.put("owner",ownerArr);//负责人 + object_data.put("is_spec",false);//规格属性 + object_data.put("batch_sn","1");//批次与序列号管理默认不开启 有需求再议 + object_data.put("field_LwLE9__c",itemmaster.getLotValidDate());//有效期 + object_data.put("_id",itemmaster.getCrmId());//批次与序列号管理默认不开启 有需求再议 + object_data.put("remark","");//备注 + object_data.put("product_line","0");//产品线 + object_data.put("name",itemmaster.getNameOrg());//名称 + object_data.put("category",categoryCode);//分类 + object_data.put("standard_price",itemmaster.getStandardPrice());//标准价格 + object_data.put("field_d93lT__c",orgCode);//商品归属组织 + object_data.put("field_QB22i__c",itemmaster.getName());//商品售卖名称 + object_data.put("field_kU8p1__c",itemmaster.getCrmCostPrice());//成本价格 + object_data.put("field_tb4hq__c",itemmaster.getCRMSalesRate());//销售换算率 + JSONObject details = new JSONObject(); + main.put("data",data); + object_data.put("details",details); + return main.toString(); + } + + /** + * 绑定新增的参数 + */ + public String bindingAdd(VU9cItemmasterEntity itemmaster,JSONObject tokenObj,String permanentCode,String categoryCode,String unit,String orgCode){ + //拼接传递参数 + JSONObject main = new JSONObject(); + main.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + main.put("corpId",tokenObj.getString("corpId"));//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + main.put("duplicateCheck",true); + JSONObject data = new JSONObject(); + JSONObject object_data = new JSONObject(); + data.put("object_data",object_data); + object_data.put("dataObjectApiName","SPUObj"); + String unitName = itemmaster.getUnitName(); + object_data.put("unit",unit);//计量单位 + JSONArray ownerArr = new JSONArray(); + ownerArr.add(permanentCode); + object_data.put("owner",ownerArr);//负责人 + object_data.put("is_spec",false);//规格属性 + object_data.put("remark","");//备注 + object_data.put("product_line","0");//产品线 + object_data.put("field_LwLE9__c",itemmaster.getLotValidDate());//有效期 + object_data.put("name",itemmaster.getNameOrg());//名称 + object_data.put("category",categoryCode);//分类 + object_data.put("standard_price",itemmaster.getStandardPrice());//标准价格 + object_data.put("field_d93lT__c",orgCode);//商品归属组织 + object_data.put("field_QB22i__c",itemmaster.getName());//商品售卖名称 + object_data.put("field_kU8p1__c",itemmaster.getCrmCostPrice());//成本价格 + object_data.put("field_tb4hq__c",itemmaster.getCRMSalesRate());//销售换算率 + + JSONObject sku = new JSONObject(); + JSONArray skuArr = new JSONArray(); + sku.put("object_describe_api_name","ProductObj"); + sku.put("product_status","1"); + sku.put("name",itemmaster.getNameOrg());//产品编码 + sku.put("product_code",itemmaster.getCode());//产品编码 + sku.put("UDSText2__c",itemmaster.getSpecs());//规格 + sku.put("UDSText1__c",itemmaster.getSaleUnit());//销售计量单位 + sku.put("field_HV195__c",itemmaster.getLotValidDate());//保质期 + sku.put("price",itemmaster.getStandardPrice());//标准价格 + sku.put("unit",unit);//单位 + sku.put("field_z5Z43__c",itemmaster.getProType());//产品大类 + sku.put("field_wq5S2__c",itemmaster.getUnitName());//基本计量单位 + sku.put("field_1J9OY__c",orgCode);//产品归属组织 + sku.put("field_bd1Vb__c",itemmaster.getName());//产品售卖名称 + sku.put("field_s1Mw1__c",itemmaster.getCrmCostPrice());//成本价 + sku.put("field_lmTK1__c",itemmaster.getCRMSalesRate());//销售换算率 + main.put("data",data); + skuArr.add(sku); + object_data.put("sku",skuArr); + return main.toString(); + } + /** + * 格式化计量单位为CRM单位编码 + * @param unitName + * @return + */ + public String formatUnit(String unitName,JSONObject tokenObj ,String permanentCode){ + String apiCode = "8000090013"; + //获取单位的所有信息 + JSONObject main = new JSONObject(); + main.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + main.put("corpId",tokenObj.getString("corpId"));//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + main.put("includeDetail",true); + main.put("apiName","SPUObj"); + JSONObject resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + JSONObject data = resultObj.getJSONObject("data"); + JSONObject describe = data.getJSONObject("describe"); + JSONObject fields = describe.getJSONObject("fields"); + JSONObject unitObj = fields.getJSONObject("unit"); + JSONArray optionsList = unitObj.getJSONArray("options"); + if(null != optionsList && optionsList.size()>0){ + for(Object options : optionsList){ + JSONObject unit = JSON.parseObject(options.toString()); + String crmName = unit.getString("label"); + if(crmName.equals(unitName)){ + return unit.getString("value"); + } + } + } + logger.info("未匹配到计量单位单位信息"); + return null; + } +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/dao/IVU9cSaledeliverDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/dao/IVU9cSaledeliverDao.java new file mode 100644 index 00000000..2a2e1e67 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/dao/IVU9cSaledeliverDao.java @@ -0,0 +1,66 @@ +package com.hzya.frame.u9c.saledeliver.dao; + +import com.hzya.frame.u9c.saledeliver.entity.VU9cSaledeliverEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +import java.util.List; + +/** + * (view:v_u9c_saledeliver)表数据库访问层 + * + * @author makejava + * @since 2023-10-26 11:29:31 + */ +public interface IVU9cSaledeliverDao extends IBaseDao { +/*** + * @Content:获取U9C销售发货单数据 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年10月26日13:54:39 + * @Param + * @return + **/ + List getu9cSaledeliver(VU9cSaledeliverEntity category); + /*** + * @Content:更新U9C状态 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年10月26日13:54:39 + * @Param + * @return + **/ + int updateCrmId(VU9cSaledeliverEntity itemmaster); +/** + * + * @content 查询触发器生成的中间表获取已经删除的出货单 + * @author makejava + * @date 2024/1/10 0010 10:21 + * + */ + + List getu9cSaledeliverForDelete(VU9cSaledeliverEntity category); +/** + * + * @content 作废完CRM单据之后调用接口修改删除状态 + * @author makejava + * @date 2024/1/10 0010 11:47 + * + */ + int updateDeleteState(VU9cSaledeliverEntity entity); +/** + * + * @content 获取所有发生更新的销售退货到货单 + * @author javaboy + * @date 2024/1/11 0011 9:38 + * + */ + + List getu9cSaledeliverForUpdate(VU9cSaledeliverEntity category); + /** + * + * @content 获取所有发生更新的销售退货到货单明细信息 + * @author javaboy + * @date 2024/1/11 0011 9:38 + * + */ + List getu9cSaledeliverForUpdateDetails(VU9cSaledeliverEntity category); +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/dao/IVU9cSaledeliverDetailsDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/dao/IVU9cSaledeliverDetailsDao.java new file mode 100644 index 00000000..d61f10bf --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/dao/IVU9cSaledeliverDetailsDao.java @@ -0,0 +1,24 @@ +package com.hzya.frame.u9c.saledeliver.dao; + +import com.hzya.frame.u9c.saledeliver.entity.VU9cSaledeliverDetailsEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +import java.util.List; + +/** + * (view:v_u9c_saledeliver_details)表数据库访问层 + * + * @author makejava + * @since 2023-11-07 11:12:56 + */ +public interface IVU9cSaledeliverDetailsDao extends IBaseDao { +/*** + * @Content:查询出库单明细信息 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年11月7日14:20:16 + * @Param + * @return + **/ + List getu9cSaledeliverDetails(VU9cSaledeliverDetailsEntity invDetails); +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/dao/impl/VU9cSaledeliverDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/dao/impl/VU9cSaledeliverDaoImpl.java new file mode 100644 index 00000000..3e988d89 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/dao/impl/VU9cSaledeliverDaoImpl.java @@ -0,0 +1,50 @@ +package com.hzya.frame.u9c.saledeliver.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.saledeliver.entity.VU9cSaledeliverEntity; +import com.hzya.frame.u9c.saledeliver.dao.IVU9cSaledeliverDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; + +import java.util.List; + +/** + * (VU9cSaledeliver)表数据库访问层 + * + * @author makejava + * @since 2023-10-26 11:29:50 + */ +@Repository("VU9cSaledeliverDaoImpl") +public class VU9cSaledeliverDaoImpl extends MybatisGenericDao implements IVU9cSaledeliverDao{ + @DS("henghua_sqlserver_test_xel") + @Override + public List getu9cSaledeliver(VU9cSaledeliverEntity category) { + return (List) super.selectList("com.hzya.frame.u9c.saledeliver.dao.impl.VU9cSaledeliverEntityDaoImpl.VU9cSaledeliverEntity_list_base",category); + } + @DS("henghua_sqlserver_test_xel") + @Override + public int updateCrmId(VU9cSaledeliverEntity itemmaster) { + return super.update("com.hzya.frame.u9c.saledeliver.dao.impl.VU9cSaledeliverEntityDaoImpl.entity_update",itemmaster); + } + @DS("henghua_sqlserver_test_xel") + @Override + public List getu9cSaledeliverForDelete(VU9cSaledeliverEntity category) { + return (List) super.selectList("com.hzya.frame.u9c.saledeliver.dao.impl.VU9cSaledeliverEntityDaoImpl.VU9cSaledeliverEntity_list_base_for_delete",category); + } + @DS("henghua_sqlserver_test_xel") + @Override + public int updateDeleteState(VU9cSaledeliverEntity entity) { + return super.update("com.hzya.frame.u9c.saledeliver.dao.impl.VU9cSaledeliverEntityDaoImpl.entity_update_for_delete",entity); + } + @DS("henghua_sqlserver_test_xel") + @Override + public List getu9cSaledeliverForUpdate(VU9cSaledeliverEntity category) { + return (List) super.selectList("com.hzya.frame.u9c.saledeliver.dao.impl.VU9cSaledeliverEntityDaoImpl.VU9cSaledeliverEntity_list_base_for_update",category); + } + @DS("henghua_sqlserver_test_xel") + @Override + public List getu9cSaledeliverForUpdateDetails(VU9cSaledeliverEntity category) { + return (List) super.selectList("com.hzya.frame.u9c.saledeliver.dao.impl.VU9cSaledeliverEntityDaoImpl.VU9cSaledeliverEntity_list_base_for_update_details",category); + } +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/dao/impl/VU9cSaledeliverDetailsDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/dao/impl/VU9cSaledeliverDetailsDaoImpl.java new file mode 100644 index 00000000..72efb12f --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/dao/impl/VU9cSaledeliverDetailsDaoImpl.java @@ -0,0 +1,25 @@ +package com.hzya.frame.u9c.saledeliver.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.saledeliver.entity.VU9cSaledeliverDetailsEntity; +import com.hzya.frame.u9c.saledeliver.dao.IVU9cSaledeliverDetailsDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; + +import java.util.List; + +/** + * (VU9cSaledeliverDetails)表数据库访问层 + * + * @author makejava + * @since 2023-11-07 11:12:58 + */ +@Repository("VU9cSaledeliverDetailsDaoImpl") +public class VU9cSaledeliverDetailsDaoImpl extends MybatisGenericDao implements IVU9cSaledeliverDetailsDao{ + @DS("henghua_sqlserver_test_xel") + @Override + public List getu9cSaledeliverDetails(VU9cSaledeliverDetailsEntity invDetails) { + return (List) super.selectList("com.hzya.frame.u9c.saledeliver.dao.impl.VU9cSaledeliverDetailsDaoImpl.VU9cSaledeliverDetailsEntity_list_base",invDetails); + } +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/entity/VU9cSaledeliverDetailsEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/entity/VU9cSaledeliverDetailsEntity.java new file mode 100644 index 00000000..925b4b96 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/entity/VU9cSaledeliverDetailsEntity.java @@ -0,0 +1,400 @@ +package com.hzya.frame.u9c.saledeliver.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +import java.math.BigDecimal; + +/** + * (VU9cSaledeliverDetails)实体类 + * + * @author makejava + * @since 2023-11-07 11:13:00 + */ +public class VU9cSaledeliverDetailsEntity extends BaseEntity { + + + private String rowId; + + private String mainId; + + private String invCode; + + private String invName; + + private String spec; + + private String num; + + private String unitCode; + + private String unitName; + + private String pricNum; + + private String measCode; + + private String measName; + + private String finalPrice; + + private String untaxedAmount; + + private String taxAmount; + + private String totalPrice; + + private String taxCombinationCode; + + private String taxCombinationName; + + private String storageLocationCode; + + private String storageLocationName; + + private String batch; + + private String period; + + private String expiration; + + private String updateTime; + + private String costAmount; + + private String warehouseKeeperCode; + + private String warehouseKeeperName; + + private String wmsLocationCode; + + private String wmsLocationName; + + private String deptCode; + + private String deptName; + private String salesOrderProductId; + private String crmProId; + private String ShipConfirmDate; + private String TotalNetMoneyTC; + private String TotalMoneyTC; + private BigDecimal TotalMoneyTCNEW; + private BigDecimal OrderByQtyTU; + private String id; + private String salesOrderId; + + public String getSalesOrderId() { + return salesOrderId; + } + + public void setSalesOrderId(String salesOrderId) { + this.salesOrderId = salesOrderId; + } + + public BigDecimal getOrderByQtyTU() { + return OrderByQtyTU; + } + + public void setOrderByQtyTU(BigDecimal orderByQtyTU) { + OrderByQtyTU = orderByQtyTU; + } + + @Override + public String getId() { + return id; + } + + @Override + public void setId(String id) { + this.id = id; + } + + public BigDecimal getTotalMoneyTCNEW() { + return TotalMoneyTCNEW; + } + + public void setTotalMoneyTCNEW(BigDecimal totalMoneyTCNEW) { + TotalMoneyTCNEW = totalMoneyTCNEW; + } + + public String getTotalNetMoneyTC() { + return TotalNetMoneyTC; + } + + public void setTotalNetMoneyTC(String totalNetMoneyTC) { + TotalNetMoneyTC = totalNetMoneyTC; + } + + public String getTotalMoneyTC() { + return TotalMoneyTC; + } + + public void setTotalMoneyTC(String totalMoneyTC) { + TotalMoneyTC = totalMoneyTC; + } + + public String getShipConfirmDate() { + return ShipConfirmDate; + } + + public void setShipConfirmDate(String shipConfirmDate) { + ShipConfirmDate = shipConfirmDate; + } + + public String getCrmProId() { + return crmProId; + } + + public void setCrmProId(String crmProId) { + this.crmProId = crmProId; + } + + public String getSalesOrderProductId() { + return salesOrderProductId; + } + + public void setSalesOrderProductId(String salesOrderProductId) { + this.salesOrderProductId = salesOrderProductId; + } + + public String getRowId() { + return rowId; + } + + public void setRowId(String rowId) { + this.rowId = rowId; + } + + public String getMainId() { + return mainId; + } + + public void setMainId(String mainId) { + this.mainId = mainId; + } + + public String getInvCode() { + return invCode; + } + + public void setInvCode(String invCode) { + this.invCode = invCode; + } + + public String getInvName() { + return invName; + } + + public void setInvName(String invName) { + this.invName = invName; + } + + public String getSpec() { + return spec; + } + + public void setSpec(String spec) { + this.spec = spec; + } + + public String getNum() { + return num; + } + + public void setNum(String num) { + this.num = num; + } + + public String getUnitCode() { + return unitCode; + } + + public void setUnitCode(String unitCode) { + this.unitCode = unitCode; + } + + public String getUnitName() { + return unitName; + } + + public void setUnitName(String unitName) { + this.unitName = unitName; + } + + public String getPricNum() { + return pricNum; + } + + public void setPricNum(String pricNum) { + this.pricNum = pricNum; + } + + public String getMeasCode() { + return measCode; + } + + public void setMeasCode(String measCode) { + this.measCode = measCode; + } + + public String getMeasName() { + return measName; + } + + public void setMeasName(String measName) { + this.measName = measName; + } + + public String getFinalPrice() { + return finalPrice; + } + + public void setFinalPrice(String finalPrice) { + this.finalPrice = finalPrice; + } + + public String getUntaxedAmount() { + return untaxedAmount; + } + + public void setUntaxedAmount(String untaxedAmount) { + this.untaxedAmount = untaxedAmount; + } + + public String getTaxAmount() { + return taxAmount; + } + + public void setTaxAmount(String taxAmount) { + this.taxAmount = taxAmount; + } + + public String getTotalPrice() { + return totalPrice; + } + + public void setTotalPrice(String totalPrice) { + this.totalPrice = totalPrice; + } + + public String getTaxCombinationCode() { + return taxCombinationCode; + } + + public void setTaxCombinationCode(String taxCombinationCode) { + this.taxCombinationCode = taxCombinationCode; + } + + public String getTaxCombinationName() { + return taxCombinationName; + } + + public void setTaxCombinationName(String taxCombinationName) { + this.taxCombinationName = taxCombinationName; + } + + public String getStorageLocationCode() { + return storageLocationCode; + } + + public void setStorageLocationCode(String storageLocationCode) { + this.storageLocationCode = storageLocationCode; + } + + public String getStorageLocationName() { + return storageLocationName; + } + + public void setStorageLocationName(String storageLocationName) { + this.storageLocationName = storageLocationName; + } + + public String getBatch() { + return batch; + } + + public void setBatch(String batch) { + this.batch = batch; + } + + public String getPeriod() { + return period; + } + + public void setPeriod(String period) { + this.period = period; + } + + public String getExpiration() { + return expiration; + } + + public void setExpiration(String expiration) { + this.expiration = expiration; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getCostAmount() { + return costAmount; + } + + public void setCostAmount(String costAmount) { + this.costAmount = costAmount; + } + + public String getWarehouseKeeperCode() { + return warehouseKeeperCode; + } + + public void setWarehouseKeeperCode(String warehouseKeeperCode) { + this.warehouseKeeperCode = warehouseKeeperCode; + } + + public String getWarehouseKeeperName() { + return warehouseKeeperName; + } + + public void setWarehouseKeeperName(String warehouseKeeperName) { + this.warehouseKeeperName = warehouseKeeperName; + } + + public String getWmsLocationCode() { + return wmsLocationCode; + } + + public void setWmsLocationCode(String wmsLocationCode) { + this.wmsLocationCode = wmsLocationCode; + } + + public String getWmsLocationName() { + return wmsLocationName; + } + + public void setWmsLocationName(String wmsLocationName) { + this.wmsLocationName = wmsLocationName; + } + + public String getDeptCode() { + return deptCode; + } + + public void setDeptCode(String deptCode) { + this.deptCode = deptCode; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/entity/VU9cSaledeliverDetailsEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/entity/VU9cSaledeliverDetailsEntity.xml new file mode 100644 index 00000000..6feda21c --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/entity/VU9cSaledeliverDetailsEntity.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row_id, + id, + sales_order_id, + ShipConfirmDate + ,ROUND(TotalMoneyTC, 2)as TotalMoneyTC + ,TotalMoneyTCNEW + ,OrderByQtyTU + ,main_id + ,inv_code + ,inv_name + ,spec + ,num + ,unit_code + ,unit_name + ,pric_num + ,meas_code + ,crm_pro_id + ,meas_name + ,final_price + ,untaxed_amount + ,tax_amount + ,total_price + ,tax_combination_code + ,tax_combination_name + ,storage_location_code + ,storage_location_name + ,batch + ,period + ,expiration + ,update_time + ,cost_amount + ,warehouse_keeper_code + ,warehouse_keeper_name + ,wms_location_code + ,sales_order_product_id + ,wms_location_name + ,dept_code + ,dept_name + + + + + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/entity/VU9cSaledeliverEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/entity/VU9cSaledeliverEntity.java new file mode 100644 index 00000000..3b192a02 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/entity/VU9cSaledeliverEntity.java @@ -0,0 +1,315 @@ +package com.hzya.frame.u9c.saledeliver.entity; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * (VU9cSaledeliver)实体类 + * + * @author makejava + * @since 2023-11-07 11:03:23 + */ +public class VU9cSaledeliverEntity extends BaseEntity { + + + private String billType; + + + private String operateOrgName; + + private String orgId; + + private String billCode; + + private String custName; + + private String custCode; + + private String orgCode; + + private String billDate; + + private String deptCode; + + private String deptName; + + private String salesmanCode; + + private String salesmanName; + + private String curCode; + + private String curName; + + private String shipmentTime; + + private String isTax; + + private String isDirect; + + private String updatetime; + + private String crmId; + + private String operatorsId; + private String dataId; + private String salesOrderId; + private String soOrder; + private String SrcDocTransType; + private String TotalNetMoneyTC; + private String TotalMoneyTC; + private String address; + private String phone; + private String linkman; + private String state; + private String RcvQtyTU; + + public String getRcvQtyTU() { + return RcvQtyTU; + } + + public void setRcvQtyTU(String rcvQtyTU) { + RcvQtyTU = rcvQtyTU; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getLinkman() { + return linkman; + } + + public void setLinkman(String linkman) { + this.linkman = linkman; + } + + public String getTotalNetMoneyTC() { + return TotalNetMoneyTC; + } + + public void setTotalNetMoneyTC(String totalNetMoneyTC) { + TotalNetMoneyTC = totalNetMoneyTC; + } + + public String getTotalMoneyTC() { + return TotalMoneyTC; + } + + public void setTotalMoneyTC(String totalMoneyTC) { + TotalMoneyTC = totalMoneyTC; + } + + public String getSoOrder() { + return soOrder; + } + + public void setSoOrder(String soOrder) { + this.soOrder = soOrder; + } + + public String getSrcDocTransType() { + return SrcDocTransType; + } + + public void setSrcDocTransType(String srcDocTransType) { + SrcDocTransType = srcDocTransType; + } + + public String getSalesOrderId() { + return salesOrderId; + } + + public void setSalesOrderId(String salesOrderId) { + this.salesOrderId = salesOrderId; + } + + public String getDataId() { + return dataId; + } + + public void setDataId(String dataId) { + this.dataId = dataId; + } + + public String getBillType() { + return billType; + } + + public void setBillType(String billType) { + this.billType = billType; + } + + + public String getOperateOrgName() { + return operateOrgName; + } + + public void setOperateOrgName(String operateOrgName) { + this.operateOrgName = operateOrgName; + } + + public String getOrgId() { + return orgId; + } + + public void setOrgId(String orgId) { + this.orgId = orgId; + } + + public String getBillCode() { + return billCode; + } + + public void setBillCode(String billCode) { + this.billCode = billCode; + } + + public String getCustName() { + return custName; + } + + public void setCustName(String custName) { + this.custName = custName; + } + + public String getCustCode() { + return custCode; + } + + public void setCustCode(String custCode) { + this.custCode = custCode; + } + + public String getOrgCode() { + return orgCode; + } + + public void setOrgCode(String orgCode) { + this.orgCode = orgCode; + } + + public String getBillDate() { + return billDate; + } + + public void setBillDate(String billDate) { + this.billDate = billDate; + } + + public String getDeptCode() { + return deptCode; + } + + public void setDeptCode(String deptCode) { + this.deptCode = deptCode; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getSalesmanCode() { + return salesmanCode; + } + + public void setSalesmanCode(String salesmanCode) { + this.salesmanCode = salesmanCode; + } + + public String getSalesmanName() { + return salesmanName; + } + + public void setSalesmanName(String salesmanName) { + this.salesmanName = salesmanName; + } + + public String getCurCode() { + return curCode; + } + + public void setCurCode(String curCode) { + this.curCode = curCode; + } + + public String getCurName() { + return curName; + } + + public void setCurName(String curName) { + this.curName = curName; + } + + public String getShipmentTime() { + return shipmentTime; + } + + public void setShipmentTime(String shipmentTime) { + this.shipmentTime = shipmentTime; + } + + public String getIsTax() { + return isTax; + } + + public void setIsTax(String isTax) { + this.isTax = isTax; + } + + public String getIsDirect() { + return isDirect; + } + + public void setIsDirect(String isDirect) { + this.isDirect = isDirect; + } + + public String getUpdatetime() { + return updatetime; + } + + public void setUpdatetime(String updatetime) { + this.updatetime = updatetime; + } + + public String getCrmId() { + return crmId; + } + + public void setCrmId(String crmId) { + this.crmId = crmId; + } + + public String getOperatorsId() { + return operatorsId; + } + + public void setOperatorsId(String operatorsId) { + this.operatorsId = operatorsId; + } + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/entity/VU9cSaledeliverEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/entity/VU9cSaledeliverEntity.xml new file mode 100644 index 00000000..a53f262c --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/entity/VU9cSaledeliverEntity.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bill_type + ,id + + ,TotalMoneyTC + ,linkman + ,phone + ,address + ,TotalNetMoneyTC + ,soOrder + ,operate_org_name + ,org_id + ,sales_order_id + ,bill_code + ,cust_name + ,cust_code + ,org_code + ,bill_date + ,dept_code + ,dept_name + ,salesman_code + ,salesman_name + ,cur_code + ,cur_name + ,shipment_time + ,is_tax + ,is_direct + ,updateTime + ,crm_id + ,operators_id + + + + + + update SM_Ship set + + DescFlexField_PrivateDescSeg1 = #{dataId}, + + where id = #{id} + + + + + + update SM_Ship_for_delete set state = #{state} + where id = #{id} + + + + + + + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/service/IVU9cSaledeliverDetailsService.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/service/IVU9cSaledeliverDetailsService.java new file mode 100644 index 00000000..65058701 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/service/IVU9cSaledeliverDetailsService.java @@ -0,0 +1,12 @@ +package com.hzya.frame.u9c.saledeliver.service; + +import com.hzya.frame.u9c.saledeliver.entity.VU9cSaledeliverDetailsEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * (VU9cSaledeliverDetails)表服务接口 + * + * @author makejava + * @since 2023-11-07 11:13:01 + */ +public interface IVU9cSaledeliverDetailsService extends IBaseService{ +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/service/IVU9cSaledeliverService.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/service/IVU9cSaledeliverService.java new file mode 100644 index 00000000..cf4e22bc --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/service/IVU9cSaledeliverService.java @@ -0,0 +1,37 @@ +package com.hzya.frame.u9c.saledeliver.service; + +import com.hzya.frame.u9c.saledeliver.entity.VU9cSaledeliverEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * (VU9cSaledeliver)表服务接口 + * + * @author makejava + * @since 2023-10-26 11:29:52 + */ +public interface IVU9cSaledeliverService extends IBaseService{ + /*** + * @Content:获取U9C销售发货单数据 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date + * @Param + * @return + **/ + String sendU9cSaledeliverToCRM(); +/** + * + * @content 将删除的出货单同步删除CRM + * @author makejava + * @date 2024/1/10 0010 10:18 + * + */ + + void sendU9cSaledeliverToCRMOfDetele(); +/** + * + * @content 将实际收货数量更新到CRM + * @author javaboy + * @date 2024/1/11 0011 9:34 + * + */ + void sendU9cSaledeliverToCRMOfUpdate(); +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/service/impl/VU9cSaledeliverDetailsServiceImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/service/impl/VU9cSaledeliverDetailsServiceImpl.java new file mode 100644 index 00000000..56c1b235 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/service/impl/VU9cSaledeliverDetailsServiceImpl.java @@ -0,0 +1,26 @@ +package com.hzya.frame.u9c.saledeliver.service.impl; + +import com.hzya.frame.u9c.saledeliver.entity.VU9cSaledeliverDetailsEntity; +import com.hzya.frame.u9c.saledeliver.dao.IVU9cSaledeliverDetailsDao; +import com.hzya.frame.u9c.saledeliver.service.IVU9cSaledeliverDetailsService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; +/** + * (VU9cSaledeliverDetails)表服务实现类 + * + * @author makejava + * @since 2023-11-07 11:13:02 + */ +@Service("vU9cSaledeliverDetailsService") +public class VU9cSaledeliverDetailsServiceImpl extends BaseService implements IVU9cSaledeliverDetailsService { + + private IVU9cSaledeliverDetailsDao vU9cSaledeliverDetailsDao; + + @Autowired + public void setVU9cSaledeliverDetailsDao(IVU9cSaledeliverDetailsDao dao) { + this.vU9cSaledeliverDetailsDao = dao; + this.dao = dao; + } +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/service/impl/VU9cSaledeliverServiceImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/service/impl/VU9cSaledeliverServiceImpl.java new file mode 100644 index 00000000..0fb1a57c --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/saledeliver/service/impl/VU9cSaledeliverServiceImpl.java @@ -0,0 +1,335 @@ +package com.hzya.frame.u9c.saledeliver.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.u9c.saledeliver.dao.IVU9cSaledeliverDetailsDao; +import com.hzya.frame.u9c.saledeliver.entity.VU9cSaledeliverDetailsEntity; +import com.hzya.frame.u9c.saledeliver.entity.VU9cSaledeliverEntity; +import com.hzya.frame.u9c.saledeliver.dao.IVU9cSaledeliverDao; +import com.hzya.frame.u9c.saledeliver.service.IVU9cSaledeliverService; +import com.hzya.frame.u9c.util.CrmUtil; +import com.hzya.frame.web.exception.BaseSystemException; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.Date; +import java.util.List; +import java.util.UUID; + +/** + * (VU9cSaledeliver)表服务实现类 + * + * @author makejava + * @since 2023-10-26 11:29:53 + */ +@Service("vU9cSaledeliverService") +public class VU9cSaledeliverServiceImpl extends BaseService implements IVU9cSaledeliverService { + + private IVU9cSaledeliverDao vU9cSaledeliverDao; + @Autowired + private IVU9cSaledeliverDetailsDao U9cSaledeliverDetailsDao; + + @Autowired + public void setVU9cSaledeliverDao(IVU9cSaledeliverDao dao) { + this.vU9cSaledeliverDao = dao; + this.dao = dao; + } + //上一次同步时间 + private String LAST_SYNCHRONISED_TIME = ""; + private String LAST_SYNCHRONISED_TIME_UPDATE = ""; + @Override + public String sendU9cSaledeliverToCRM() { + //获取待推送的U9c + VU9cSaledeliverEntity category = new VU9cSaledeliverEntity(); + if (StrUtil.isBlank(LAST_SYNCHRONISED_TIME)) { + LAST_SYNCHRONISED_TIME = DateUtil.now(); + } + //暂存时间 + //暂存时间 + String temp_time = LAST_SYNCHRONISED_TIME; + category.setUpdatetime(temp_time); + List VU9cSaledeliverEntityList = vU9cSaledeliverDao.getu9cSaledeliver(category); + if(VU9cSaledeliverEntityList.size()>0){ + for(VU9cSaledeliverEntity itemmaster : VU9cSaledeliverEntityList){ + try { + LAST_SYNCHRONISED_TIME = DateUtil.now(); + String crmId = itemmaster.getCrmId(); + String permanentCode = itemmaster.getOperatorsId(); +// String permanentCode = "FSUID_DB2D1775B48BCDF893538F8CAB2A0EC7"; + JSONObject tokenObj = CrmUtil.getToken(CrmUtil.MANAGERCODE); + //拼接传递参数 + JSONObject main = new JSONObject(); + main.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + main.put("corpId",tokenObj.getString("corpId"));//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键// todo 默认了操作员ID 等员工对接完成之后实际传入 + main.put("duplicateCheck",true); + JSONObject data = new JSONObject(); + JSONObject object_data = new JSONObject(); +// object_data.put("name",itemmaster.getBillCode());//发货单编号 + JSONArray ownerArr = new JSONArray(); + + ownerArr.add(permanentCode); + object_data.put("owner",ownerArr);//创建人 + object_data.put("dataObjectApiName","DeliveryNoteObj");//接口名称 +// object_data.put("sales_order_id",itemmaster.getSalesOrderId());//销售订单主键 // + object_data.put("field_W7k8T__c",itemmaster.getSrcDocTransType());// 来源单据类型 + object_data.put("field_dp6ZV__c",itemmaster.getSoOrder()); //来源单据单号 + object_data.put("field_6u2rk__c",itemmaster.getTotalMoneyTC()); //发货金额 --- 含税金额 + object_data.put("field_5gwye__c",itemmaster.getBillCode()); //U9发货单号 + object_data.put("field_J3s50__c",itemmaster.getAddress()); //收货联系地址 + object_data.put("field_44TwV__c",itemmaster.getLinkman()); //收货联系人 + object_data.put("field_s0L0r__c",itemmaster.getPhone()); //收货联系电话 + if(StrUtil.isNotEmpty(crmId)){ + object_data.put("_id",crmId); //发货单主键 + } + String orgCode = itemmaster.getOrgCode(); + String field_0alrS__c = ""; + if(StrUtil.isNotEmpty(orgCode)){ + switch (orgCode){ + case "1001"://杭州恒华科技有限公司 + field_0alrS__c = "cD2b3f"; + break; + case "1002"://杭州华耀商贸有限公司 + field_0alrS__c = "sl2qOPMpO"; + break; + case "1004"://诚艺传递华耀 + field_0alrS__c = "sl2qOPMpO"; + break; + case "1003"://杭州胡记食品有限公司 + field_0alrS__c = "eq8LyNWe1"; + break; + default: + break; + + } + } + object_data.put("field_0alrS__c",field_0alrS__c); //组织 + //通过客户名称查询客户主键 + String custName = itemmaster.getCustName(); + String accountId = CrmUtil.getCustIdByCustName(custName,tokenObj.getString("corpAccessToken"),permanentCode,tokenObj.getString("corpId")); + object_data.put("account_id",accountId);//客户 + object_data.put("field_1UjHy__c",itemmaster.getBillDate());//单据日期 + + String delivery_date = itemmaster.getShipmentTime(); + if(StrUtil.isNotEmpty(delivery_date)){ + object_data.put("delivery_date",com.hzya.frame.dateutil.DateUtil.dateStrToLong(itemmaster.getShipmentTime()));//发货日期 + } + JSONObject details = new JSONObject(); + data.put("object_data",object_data); + data.put("details",details); + //获取明细信息 + VU9cSaledeliverDetailsEntity invDetails = new VU9cSaledeliverDetailsEntity(); + invDetails.setSalesOrderId(itemmaster.getSalesOrderId()); + invDetails.setMainId(itemmaster.getId()); + List invDetailsList = U9cSaledeliverDetailsDao.getu9cSaledeliverDetails(invDetails); + JSONArray deliveryNoteProduct = new JSONArray(); + for(VU9cSaledeliverDetailsEntity d : invDetailsList){ + JSONObject deliveryNoteProductObj = new JSONObject(); + long _id = UUID.randomUUID().getMostSignificantBits(); + deliveryNoteProductObj.put("_id",String.valueOf(_id));// 明细ID 自动生成 + // deliveryNoteProductObj.put("_id",d.getId());// 明细ID 自动生成 + deliveryNoteProductObj.put("field_Rc82I__c",d.getRowId());// 来源ID + deliveryNoteProductObj.put("sales_order_id",d.getSalesOrderId());// 销售订单主键 + String supId = d.getCrmProId(); + // String proId = CrmUtil.getProIdBySupId(supId,tokenObj.getString("corpAccessToken"),permanentCode,tokenObj.getString("corpId")); + deliveryNoteProductObj.put("product_id",supId);// 产品ID + deliveryNoteProductObj.put("field_Xjo2j__c",d.getStorageLocationName());//发货仓库 + deliveryNoteProductObj.put("field_h9puj__c",d.getPeriod());//保质期 + deliveryNoteProductObj.put("field_F6iOS__c",d.getBatch());//批号 + deliveryNoteProductObj.put("sales_order_product_id",d.getSalesOrderProductId());// 订单产品主键(CRM销售订单的行ID) + deliveryNoteProductObj.put("delivery_num",d.getNum());// 发货数量 + deliveryNoteProductObj.put("order_product_amount",d.getOrderByQtyTU());// 订单产品数量 + String field_ci5By__c = d.getTotalMoneyTC(); + if(StrUtil.isEmpty(d.getTotalMoneyTC()) || "0.0000".equals(d.getTotalMoneyTC())){ + field_ci5By__c = "0"; + // field_ci5By__c = "1111.0000"; + } + deliveryNoteProductObj.put("field_ci5By__c",field_ci5By__c);// 发货金额 + // deliveryNoteProductObj.put("field_ci5By__c","1.00");// 发货金额 + String field_rz9y2__c = d.getShipConfirmDate(); + if(StrUtil.isNotEmpty(field_rz9y2__c)){ + // Date field_rz9y2__cDate = DateUtil.parse(field_rz9y2__c,"yyyy-MM-dd HH:mm:ss"); + deliveryNoteProductObj.put("field_rz9y2__c", com.hzya.frame.dateutil.DateUtil.dateStrToLong(field_rz9y2__c));// 发货日期 + } + deliveryNoteProduct.add(deliveryNoteProductObj); + } + details.put("DeliveryNoteProductObj",deliveryNoteProduct); + main.put("data",data); + String apiCode = "8000090003"; + if(StrUtil.isEmpty(crmId)){ + apiCode = "8000090003"; + }else{ + apiCode = "8000090015"; + //如果想要修改CRM数据需要先解锁数据 + String r = CrmUtil.unLockAndLock("8000090016","DeliveryNoteObj",crmId,tokenObj.getString("corpAccessToken"),CrmUtil.MANAGERCODE,tokenObj.getString("corpId")); + logger.info("发货单解锁"+r); + } + //推送数据到CRM进行新增或修改 + JSONObject resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + //todo CRM傅佳敏提出 不管任何原因修改失败都需要再次锁定 + if(StrUtil.isNotEmpty(crmId)){ + //修改完数据之后需要再次锁定 + String r = CrmUtil.unLockAndLock("8000090017","DeliveryNoteObj",crmId,tokenObj.getString("corpAccessToken"),CrmUtil.MANAGERCODE,tokenObj.getString("corpId")); + logger.info("发货单锁定"+r); + } + if(null != resultObj ){ + String dataId = resultObj.getString("dataId"); + String errorDescription = resultObj.getString("errorDescription"); + if("success".equals(errorDescription)){ + if(StrUtil.isNotEmpty(dataId)){ + itemmaster.setDataId(dataId); + vU9cSaledeliverDao.updateCrmId(itemmaster); + } + } + }else{ + LAST_SYNCHRONISED_TIME = DateUtil.now(); + if(StrUtil.isEmpty(crmId)){ + itemmaster.setDataId("系统错误,请联系管理员"); + vU9cSaledeliverDao.updateCrmId(itemmaster); + } + new BaseSystemException("系统错误,请联系管理员"); + } + logger.info("发货单返回信息:{}",resultObj); + } catch (Exception e) { + LAST_SYNCHRONISED_TIME = DateUtil.now(); + logger.info("发货单错误,错误信息为:{}",e.getMessage()); + logger.info("发货单错误,发货单信息为:{}",JSON.toJSONString(itemmaster)); + e.printStackTrace(); + } + } + } + return null; + } + /** + * + * @content 将删除的出货单同步删除CRM + * @author makejava + * @date 2024/1/10 0010 10:18 + * + */ + @Override + public void sendU9cSaledeliverToCRMOfDetele() { + VU9cSaledeliverEntity category = new VU9cSaledeliverEntity(); + List VU9cSaledeliverEntityList = vU9cSaledeliverDao.getu9cSaledeliverForDelete(category); + if(null != VU9cSaledeliverEntityList && VU9cSaledeliverEntityList.size()>0){ + for(VU9cSaledeliverEntity entity : VU9cSaledeliverEntityList){ + String state = "2"; + String permanentCode = "FSUID_DB2D1775B48BCDF893538F8CAB2A0EC7"; + JSONObject tokenObj = CrmUtil.getToken(CrmUtil.MANAGERCODE); + //拼接传递参数 + try { + JSONObject main = new JSONObject(); + main.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + main.put("corpId",tokenObj.getString("corpId"));//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键// todo 默认了操作员ID 等员工对接完成之后实际传入 + main.put("duplicateCheck",true); + String crmId = entity.getCrmId(); + if(StrUtil.isNotEmpty(crmId)){ + JSONObject data = new JSONObject(); + main.put("data",data); + data.put("object_data_id",crmId); + data.put("dataObjectApiName","DeliveryNoteObj"); + state = "1"; + String apiCode = "8000090018"; + //发货单解锁 + String r = CrmUtil.unLockAndLock("8000090016","DeliveryNoteObj",crmId,tokenObj.getString("corpAccessToken"),CrmUtil.MANAGERCODE,tokenObj.getString("corpId")); + logger.info("发货单解锁"+r); + //推送数据到CRM进行新增或修改 + JSONObject resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + if(null != resultObj ){ + String errorDescription = resultObj.getString("errorDescription"); + if(!"success".equals(errorDescription)){ + state = "2"; + } + }else{ + state = "2"; + } + } + } finally { + //修改删除状态 + entity.setState(state); + vU9cSaledeliverDao.updateDeleteState(entity); + } + } + } + } + /** + * + * @content 将实际收货数量更新到CRM + * @author javaboy + * @date 2024/1/11 0011 9:34 + * + */ + @Override + public void sendU9cSaledeliverToCRMOfUpdate() { +//获取待推送的U9c + VU9cSaledeliverEntity category = new VU9cSaledeliverEntity(); + if (StrUtil.isBlank(LAST_SYNCHRONISED_TIME_UPDATE)) { + LAST_SYNCHRONISED_TIME_UPDATE = DateUtil.now(); + } + //暂存时间 + String temp_time = LAST_SYNCHRONISED_TIME_UPDATE; + category.setUpdatetime(temp_time); + List VU9cSaledeliverEntityList = vU9cSaledeliverDao.getu9cSaledeliverForUpdate(category); + if(VU9cSaledeliverEntityList.size()>0) { + for (VU9cSaledeliverEntity itemmaster : VU9cSaledeliverEntityList) { + LAST_SYNCHRONISED_TIME_UPDATE = DateUtil.now(); + try { + String permanentCode = "FSUID_DB2D1775B48BCDF893538F8CAB2A0EC7"; + JSONObject tokenObj = CrmUtil.getToken(CrmUtil.MANAGERCODE); + //拼接传递参数 + JSONObject main = new JSONObject(); + main.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + main.put("corpId",tokenObj.getString("corpId"));//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键// todo 默认了操作员ID 等员工对接完成之后实际传入 + JSONObject data = new JSONObject(); + JSONObject object_data = new JSONObject(); + String id = itemmaster.getCrmId(); + object_data.put("_id",id); + object_data.put("dataObjectApiName","ReturnedGoodsInvoiceObj"); + //获取明细数据,并组装数据 + VU9cSaledeliverEntity deteils = new VU9cSaledeliverEntity(); + deteils.setId(id); + JSONObject detailsObj = new JSONObject(); + JSONArray ReturnedGoodsInvoiceProductObj = new JSONArray(); + List VU9cSaledeliverEntityDetailsList = vU9cSaledeliverDao.getu9cSaledeliverForUpdateDetails(deteils); + if(VU9cSaledeliverEntityDetailsList.size()>0){ + for(VU9cSaledeliverEntity VU9cSaledeliverEntityDetails : VU9cSaledeliverEntityDetailsList){ + JSONObject body = new JSONObject(); + String _id = VU9cSaledeliverEntityDetails.getCrmId(); + String RcvQtyTU = VU9cSaledeliverEntityDetails.getRcvQtyTU(); + body.put("_id",_id); + body.put("field_HE24V__c",RcvQtyTU); + ReturnedGoodsInvoiceProductObj.add(body); + } + }else{ + //如果没有明细信息跳过当前循环 + continue; + } + detailsObj.put("ReturnedGoodsInvoiceProductObj",ReturnedGoodsInvoiceProductObj); + data.put("object_data",object_data); + main.put("data",data); + data.put("details",detailsObj); + String apiCode = "8000090020"; + //退货单解锁 + String unLockAndLock = CrmUtil.unLockAndLock("8000090016","ReturnedGoodsInvoiceObj",itemmaster.getCrmId(),tokenObj.getString("corpAccessToken"),CrmUtil.MANAGERCODE,tokenObj.getString("corpId")); + logger.info("退货单解锁"+unLockAndLock); + //推送数据到CRM修改 + JSONObject resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + //退货单锁定 + String r = CrmUtil.unLockAndLock("8000090017","ReturnedGoodsInvoiceObj",itemmaster.getCrmId(),tokenObj.getString("corpAccessToken"),CrmUtil.MANAGERCODE,tokenObj.getString("corpId")); + logger.info("退货单锁定"+r); + } catch (Exception e) { + LAST_SYNCHRONISED_TIME_UPDATE = DateUtil.now(); + logger.info("退货单更新异常,错误信息为:{}",JSON.toJSONString(itemmaster)); + e.printStackTrace(); + } + } + } + } +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/dao/IVU9cSalereceiverDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/dao/IVU9cSalereceiverDao.java new file mode 100644 index 00000000..366df734 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/dao/IVU9cSalereceiverDao.java @@ -0,0 +1,50 @@ +package com.hzya.frame.u9c.salereceiver.dao; + +import com.hzya.frame.u9c.salereceiver.entity.VU9cSalereceiverEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +import java.util.List; + +/** + * (view:v_u9c_salereceiver)表数据库访问层 + * + * @author makejava + * @since 2023-10-26 11:32:02 + */ +public interface IVU9cSalereceiverDao extends IBaseDao { +/*** + * @Content:获取U9C销售收款单数据 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年10月26日13:56:28 + * @Param + * @return + **/ + List getu9cSalereceiver(VU9cSalereceiverEntity category); + /*** + * @Content:修改U9C状态 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年10月26日13:56:28 + * @Param + * @return + **/ + int updateState(VU9cSalereceiverEntity itemmaster); + /** + * + * @content 查询应收单触发器生成的临时表 + * @author makejava + * @date 2024/1/10 0010 14:41 + * + */ + + List getu9cSalereceiverForDelete(VU9cSalereceiverEntity category); + /** + * + * @content 更新触发器生成的临时表修改状态 + * @author makejava + * @date 2024/1/10 0010 14:43 + * + */ + + int updateStateForDelete(VU9cSalereceiverEntity itemmaster); +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/dao/IVU9cSalereceiverDetailsDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/dao/IVU9cSalereceiverDetailsDao.java new file mode 100644 index 00000000..ab41a490 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/dao/IVU9cSalereceiverDetailsDao.java @@ -0,0 +1,32 @@ +package com.hzya.frame.u9c.salereceiver.dao; + +import com.hzya.frame.u9c.salereceiver.entity.VU9cSalereceiverDetailsEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +import java.util.List; + +/** + * (view:v_u9c_salereceiver_details)表数据库访问层 + * + * @author makejava + * @since 2023-11-09 14:49:35 + */ +public interface IVU9cSalereceiverDetailsDao extends IBaseDao { +/*** + * @Content:通过主表ID获取当前明细信息 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年11月9日15:07:08 + * @Param + * @return + **/ + List getu9cSalereceiverDetails(VU9cSalereceiverDetailsEntity details); +/*** + * @Content:修改应收单明细信息 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年11月9日15:13:56 + * @Param + * @return + **/ + int updateState(VU9cSalereceiverDetailsEntity d); +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/dao/impl/VU9cSalereceiverDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/dao/impl/VU9cSalereceiverDaoImpl.java new file mode 100644 index 00000000..d25c3eb9 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/dao/impl/VU9cSalereceiverDaoImpl.java @@ -0,0 +1,40 @@ +package com.hzya.frame.u9c.salereceiver.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.salereceiver.entity.VU9cSalereceiverEntity; +import com.hzya.frame.u9c.salereceiver.dao.IVU9cSalereceiverDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; + +import java.util.List; + +/** + * (VU9cSalereceiver)表数据库访问层 + * + * @author makejava + * @since 2023-10-26 11:32:06 + */ +@Repository("VU9cSalereceiverDaoImpl") +public class VU9cSalereceiverDaoImpl extends MybatisGenericDao implements IVU9cSalereceiverDao{ + @DS("henghua_sqlserver_test_xel") + @Override + public List getu9cSalereceiver(VU9cSalereceiverEntity category) { + return (List) super.selectList("com.hzya.frame.u9c.salereceiver.dao.impl.VU9cSalereceiverEntityDaoImpl.VU9cSalereceiverEntity_list_base",category); + } + @DS("henghua_sqlserver_test_xel") + @Override + public int updateState(VU9cSalereceiverEntity itemmaster) { + return super.update("com.hzya.frame.u9c.salereceiver.dao.impl.VU9cSalereceiverEntityDaoImpl.VU9cSalereceiverEntity_update",itemmaster); + } + @DS("henghua_sqlserver_test_xel") + @Override + public List getu9cSalereceiverForDelete(VU9cSalereceiverEntity category) { + return (List) super.selectList("com.hzya.frame.u9c.salereceiver.dao.impl.VU9cSalereceiverEntityDaoImpl.VU9cSalereceiverEntity_list_base_for_delete",category); + } + @DS("henghua_sqlserver_test_xel") + @Override + public int updateStateForDelete(VU9cSalereceiverEntity itemmaster) { + return super.update("com.hzya.frame.u9c.salereceiver.dao.impl.VU9cSalereceiverEntityDaoImpl.VU9cSalereceiverEntity_update_for_delete",itemmaster); + } +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/dao/impl/VU9cSalereceiverDetailsDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/dao/impl/VU9cSalereceiverDetailsDaoImpl.java new file mode 100644 index 00000000..1a549059 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/dao/impl/VU9cSalereceiverDetailsDaoImpl.java @@ -0,0 +1,30 @@ +package com.hzya.frame.u9c.salereceiver.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.salereceiver.entity.VU9cSalereceiverDetailsEntity; +import com.hzya.frame.u9c.salereceiver.dao.IVU9cSalereceiverDetailsDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; + +import java.util.List; + +/** + * (VU9cSalereceiverDetails)表数据库访问层 + * + * @author makejava + * @since 2023-11-09 14:49:41 + */ +@Repository("VU9cSalereceiverDetailsDaoImpl") +public class VU9cSalereceiverDetailsDaoImpl extends MybatisGenericDao implements IVU9cSalereceiverDetailsDao{ + @DS("henghua_sqlserver_test_xel") + @Override + public List getu9cSalereceiverDetails(VU9cSalereceiverDetailsEntity details) { + return (List) super.selectList("com.hzya.frame.u9c.salereceiver.dao.impl.VU9cSalereceiverDetailsEntityDaoImpl.VU9cSalereceiverDetailsEntity_list_base",details); + } + @DS("henghua_sqlserver_test_xel") + @Override + public int updateState(VU9cSalereceiverDetailsEntity d) { + return super.update("com.hzya.frame.u9c.salereceiver.dao.impl.VU9cSalereceiverDetailsEntityDaoImpl.VU9cSalereceiverDetailsEntity_update",d); + } +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/entity/VU9cSalereceiverDetailsEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/entity/VU9cSalereceiverDetailsEntity.java new file mode 100644 index 00000000..16e0d3bd --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/entity/VU9cSalereceiverDetailsEntity.java @@ -0,0 +1,236 @@ +package com.hzya.frame.u9c.salereceiver.entity; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * (VU9cSalereceiverDetails)实体类 + * + * @author makejava + * @since 2023-11-09 14:44:58 + */ +public class VU9cSalereceiverDetailsEntity extends BaseEntity { + + + private String state; + + + + private String num; + + private String orgId; + + private String invCode; + + private String invName; + + private String mainId; + + private String money; + + private String mainOrgCode; + + private String mainOrgName; + + private String proId; + private String dataId; + private String deliverBillId; + private String TaxPrice; + private String NonTaxPrice; + private String CfmedARGoodsTax_OCMoney; + private String TaxPriceSum; + private String sRowId; + private String rmaMoney; + private String soId; + private String billType; + private String rmaLine; + private String rmaId; + private String DocLineNo; + + public String getDocLineNo() { + return DocLineNo; + } + + public void setDocLineNo(String docLineNo) { + DocLineNo = docLineNo; + } + + public String getRmaId() { + return rmaId; + } + + public void setRmaId(String rmaId) { + this.rmaId = rmaId; + } + + public String getRmaLine() { + return rmaLine; + } + + public void setRmaLine(String rmaLine) { + this.rmaLine = rmaLine; + } + + public String getRmaMoney() { + return rmaMoney; + } + + public void setRmaMoney(String rmaMoney) { + this.rmaMoney = rmaMoney; + } + + public String getSoId() { + return soId; + } + + public void setSoId(String soId) { + this.soId = soId; + } + + public String getBillType() { + return billType; + } + + public void setBillType(String billType) { + this.billType = billType; + } + + public String getsRowId() { + return sRowId; + } + + public void setsRowId(String sRowId) { + this.sRowId = sRowId; + } + + public String getTaxPrice() { + return TaxPrice; + } + + public void setTaxPrice(String taxPrice) { + TaxPrice = taxPrice; + } + + public String getNonTaxPrice() { + return NonTaxPrice; + } + + public void setNonTaxPrice(String nonTaxPrice) { + NonTaxPrice = nonTaxPrice; + } + + public String getCfmedARGoodsTax_OCMoney() { + return CfmedARGoodsTax_OCMoney; + } + + public void setCfmedARGoodsTax_OCMoney(String cfmedARGoodsTax_OCMoney) { + CfmedARGoodsTax_OCMoney = cfmedARGoodsTax_OCMoney; + } + + public String getTaxPriceSum() { + return TaxPriceSum; + } + + public void setTaxPriceSum(String taxPriceSum) { + TaxPriceSum = taxPriceSum; + } + + public String getDeliverBillId() { + return deliverBillId; + } + + public void setDeliverBillId(String deliverBillId) { + this.deliverBillId = deliverBillId; + } + + public String getDataId() { + return dataId; + } + + public void setDataId(String dataId) { + this.dataId = dataId; + } + + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + + + public String getNum() { + return num; + } + + public void setNum(String num) { + this.num = num; + } + + public String getOrgId() { + return orgId; + } + + public void setOrgId(String orgId) { + this.orgId = orgId; + } + + public String getInvCode() { + return invCode; + } + + public void setInvCode(String invCode) { + this.invCode = invCode; + } + + public String getInvName() { + return invName; + } + + public void setInvName(String invName) { + this.invName = invName; + } + + public String getMainId() { + return mainId; + } + + public void setMainId(String mainId) { + this.mainId = mainId; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getMainOrgCode() { + return mainOrgCode; + } + + public void setMainOrgCode(String mainOrgCode) { + this.mainOrgCode = mainOrgCode; + } + + public String getMainOrgName() { + return mainOrgName; + } + + public void setMainOrgName(String mainOrgName) { + this.mainOrgName = mainOrgName; + } + + public String getProId() { + return proId; + } + + public void setProId(String proId) { + this.proId = proId; + } + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/entity/VU9cSalereceiverDetailsEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/entity/VU9cSalereceiverDetailsEntity.xml new file mode 100644 index 00000000..c63f01bf --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/entity/VU9cSalereceiverDetailsEntity.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + state + ,s_row_id + ,deliverBillId + ,TaxPrice + ,CfmedARGoodsTax_OCMoney + ,TaxPriceSum + ,ID + ,num + ,org_id + ,inv_code + ,inv_name + ,main_id + ,money + ,main_org_code + ,main_org_name + ,pro_id + + + + + + + update AR_ARBillLine set + + DescFlexField_PrivateDescSeg1 = #{dataId}, + + where id = #{id} + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/entity/VU9cSalereceiverEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/entity/VU9cSalereceiverEntity.java new file mode 100644 index 00000000..f7e2cea2 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/entity/VU9cSalereceiverEntity.java @@ -0,0 +1,272 @@ +package com.hzya.frame.u9c.salereceiver.entity; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * (VU9cSalereceiver)实体类 + * + * @author makejava + * @since 2023-11-09 14:44:10 + */ +public class VU9cSalereceiverEntity extends BaseEntity { + + + private String orgId; + private String soId; + private String orgCode; + + private String billCode; + + private String custCode; + + private String custName; + + private String custAddsCode; + + private String custAddsName; + + private String accountPursuantCode; + + private String accountPursuantName; + + private String curCode; + + private String cur; + + private String accountDate; + + private String accountPeriodName; + + private String accountPeriodCode; + + private String billTypeCode; + + private String billTypeName; + + private String sourceBillCode; + + private String sourceBillType; + + private String price; + + private String state; + + private String crmId; + + private String saleId; + + private String operatorsId; + private String dataId; + private String updateTime; + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getOrgCode() { + return orgCode; + } + + public void setOrgCode(String orgCode) { + this.orgCode = orgCode; + } + + public String getSoId() { + return soId; + } + + public void setSoId(String soId) { + this.soId = soId; + } + + public String getDataId() { + return dataId; + } + + public void setDataId(String dataId) { + this.dataId = dataId; + } + + public String getOrgId() { + return orgId; + } + + public void setOrgId(String orgId) { + this.orgId = orgId; + } + + + + public String getBillCode() { + return billCode; + } + + public void setBillCode(String billCode) { + this.billCode = billCode; + } + + public String getCustCode() { + return custCode; + } + + public void setCustCode(String custCode) { + this.custCode = custCode; + } + + public String getCustName() { + return custName; + } + + public void setCustName(String custName) { + this.custName = custName; + } + + public String getCustAddsCode() { + return custAddsCode; + } + + public void setCustAddsCode(String custAddsCode) { + this.custAddsCode = custAddsCode; + } + + public String getCustAddsName() { + return custAddsName; + } + + public void setCustAddsName(String custAddsName) { + this.custAddsName = custAddsName; + } + + public String getAccountPursuantCode() { + return accountPursuantCode; + } + + public void setAccountPursuantCode(String accountPursuantCode) { + this.accountPursuantCode = accountPursuantCode; + } + + public String getAccountPursuantName() { + return accountPursuantName; + } + + public void setAccountPursuantName(String accountPursuantName) { + this.accountPursuantName = accountPursuantName; + } + + public String getCurCode() { + return curCode; + } + + public void setCurCode(String curCode) { + this.curCode = curCode; + } + + public String getCur() { + return cur; + } + + public void setCur(String cur) { + this.cur = cur; + } + + public String getAccountDate() { + return accountDate; + } + + public void setAccountDate(String accountDate) { + this.accountDate = accountDate; + } + + public String getAccountPeriodName() { + return accountPeriodName; + } + + public void setAccountPeriodName(String accountPeriodName) { + this.accountPeriodName = accountPeriodName; + } + + public String getAccountPeriodCode() { + return accountPeriodCode; + } + + public void setAccountPeriodCode(String accountPeriodCode) { + this.accountPeriodCode = accountPeriodCode; + } + + public String getBillTypeCode() { + return billTypeCode; + } + + public void setBillTypeCode(String billTypeCode) { + this.billTypeCode = billTypeCode; + } + + public String getBillTypeName() { + return billTypeName; + } + + public void setBillTypeName(String billTypeName) { + this.billTypeName = billTypeName; + } + + public String getSourceBillCode() { + return sourceBillCode; + } + + public void setSourceBillCode(String sourceBillCode) { + this.sourceBillCode = sourceBillCode; + } + + public String getSourceBillType() { + return sourceBillType; + } + + public void setSourceBillType(String sourceBillType) { + this.sourceBillType = sourceBillType; + } + + public String getPrice() { + return price; + } + + public void setPrice(String price) { + this.price = price; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getCrmId() { + return crmId; + } + + public void setCrmId(String crmId) { + this.crmId = crmId; + } + + public String getSaleId() { + return saleId; + } + + public void setSaleId(String saleId) { + this.saleId = saleId; + } + + public String getOperatorsId() { + return operatorsId; + } + + public void setOperatorsId(String operatorsId) { + this.operatorsId = operatorsId; + } + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/entity/VU9cSalereceiverEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/entity/VU9cSalereceiverEntity.xml new file mode 100644 index 00000000..9ded483b --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/entity/VU9cSalereceiverEntity.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org_id + ,ID + ,org_code + ,bill_code + ,cust_code + ,cust_name + ,cust_adds_code + ,cust_adds_name + ,account_pursuant_code + ,account_pursuant_name + ,cur_code + ,cur + ,account_date + ,account_period_name + ,account_period_code + ,bill_type_code + ,bill_type_name + ,source_bill_code + ,source_bill_type + ,price + ,state + ,crm_id + ,sale_id + ,soId + + ,operators_id + + + + + + + update AR_ARBillHead set + + DescFlexField_PrivateDescSeg1 = #{dataId}, + + where id = #{id} + + + + + + + update AR_ARBillHead_for_delete set state = #{state} + where id = #{id} + + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/service/IVU9cSalereceiverService.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/service/IVU9cSalereceiverService.java new file mode 100644 index 00000000..f1a8dd2d --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/service/IVU9cSalereceiverService.java @@ -0,0 +1,29 @@ +package com.hzya.frame.u9c.salereceiver.service; + +import com.hzya.frame.u9c.salereceiver.entity.VU9cSalereceiverEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * (VU9cSalereceiver)表服务接口 + * + * @author makejava + * @since 2023-10-26 11:32:08 + */ +public interface IVU9cSalereceiverService extends IBaseService{ + /*** + * @Content:获取U9C销售收款单数据 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年10月26日13:52:41 + * @Param + * @return + **/ + String sendU9cSalereceiverToCRM(); +/** + * + * @content 将删除的应收单同步删除CRM单据 + * @author makejava + * @date 2024/1/10 0010 14:38 + * + */ + + void sendU9cSalereceiverToCRMOfDetele(); +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/service/impl/VU9cSalereceiverServiceImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/service/impl/VU9cSalereceiverServiceImpl.java new file mode 100644 index 00000000..4eed9251 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/salereceiver/service/impl/VU9cSalereceiverServiceImpl.java @@ -0,0 +1,338 @@ +package com.hzya.frame.u9c.salereceiver.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.u9c.saledeliver.entity.VU9cSaledeliverEntity; +import com.hzya.frame.u9c.saledeliver.service.IVU9cSaledeliverService; +import com.hzya.frame.u9c.salereceiver.dao.IVU9cSalereceiverDetailsDao; +import com.hzya.frame.u9c.salereceiver.entity.VU9cSalereceiverDetailsEntity; +import com.hzya.frame.u9c.salereceiver.entity.VU9cSalereceiverEntity; +import com.hzya.frame.u9c.salereceiver.dao.IVU9cSalereceiverDao; +import com.hzya.frame.u9c.salereceiver.service.IVU9cSalereceiverService; +import com.hzya.frame.u9c.util.CrmUtil; +import com.hzya.frame.u9c.warehouse.service.IVU9cWarehouseService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.List; + +/** + * (VU9cSalereceiver)表服务实现类 + * + * @author makejava + * @since 2023-10-26 11:32:09 + */ +@Service("vU9cSalereceiverService") +public class VU9cSalereceiverServiceImpl extends BaseService implements IVU9cSalereceiverService { + + private IVU9cSalereceiverDao vU9cSalereceiverDao; + @Autowired + private IVU9cSaledeliverService v9cSaledeliverService; + + @Autowired + private IVU9cSalereceiverDetailsDao u9cSalereceiverDetailsDao; + + @Autowired + public void setVU9cSalereceiverDao(IVU9cSalereceiverDao dao) { + this.vU9cSalereceiverDao = dao; + this.dao = dao; + } + //上一次同步时间 + private String LAST_SYNCHRONISED_TIME = ""; + @Override + public String sendU9cSalereceiverToCRM() { + //获取待推送的U9c + VU9cSalereceiverEntity category = new VU9cSalereceiverEntity(); + if (StrUtil.isBlank(LAST_SYNCHRONISED_TIME)) { + LAST_SYNCHRONISED_TIME = DateUtil.now(); + } + //暂存时间 + String temp_time = LAST_SYNCHRONISED_TIME; + category.setUpdateTime(temp_time); + List VU9cSalereceiverEntityList = vU9cSalereceiverDao.getu9cSalereceiver(category); + if(VU9cSalereceiverEntityList.size()>0){ + for(VU9cSalereceiverEntity itemmaster : VU9cSalereceiverEntityList){ + LAST_SYNCHRONISED_TIME = DateUtil.now(); + //因纷享销客接口性质不同 表头表体分开传递,则机型分开推送 +// String permanentCode = "FSUID_DB2D1775B48BCDF893538F8CAB2A0EC7"; + String permanentCode =itemmaster.getOperatorsId(); + JSONObject tokenObj = CrmUtil.getToken(permanentCode); + //推送表头信息 + String dataId = sendSalereceiverMain(itemmaster, permanentCode, tokenObj); +// String id = itemmaster.getId(); +// String billCode = itemmaster.getBillCode(); + //查询明细信息并推送 +// sendSalereceiverDetails(id, permanentCode, tokenObj,billCode,dataId); + + } + } + return null; + } + /** + * + * @content 将删除的应收单同步删除CRM单据 + * @author makejava + * @date 2024/1/10 0010 14:38 + * + */ + @Override + public void sendU9cSalereceiverToCRMOfDetele() { + VU9cSalereceiverEntity category = new VU9cSalereceiverEntity(); + List VU9cSalereceiverEntityList = vU9cSalereceiverDao.getu9cSalereceiverForDelete(category); + if(null != VU9cSalereceiverEntityList && VU9cSalereceiverEntityList.size()>0){ + for(VU9cSalereceiverEntity entity : VU9cSalereceiverEntityList){ + String state = "2"; + String permanentCode = "FSUID_DB2D1775B48BCDF893538F8CAB2A0EC7"; + JSONObject tokenObj = CrmUtil.getToken(CrmUtil.MANAGERCODE); + //拼接传递参数 + try { + JSONObject main = new JSONObject(); + main.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + main.put("corpId",tokenObj.getString("corpId"));//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键// todo 默认了操作员ID 等员工对接完成之后实际传入 + main.put("duplicateCheck",true); + String crmId = entity.getCrmId(); + if(StrUtil.isNotEmpty(crmId)){ + JSONObject data = new JSONObject(); + main.put("data",data); + data.put("object_data_id",crmId); + data.put("dataObjectApiName","object_ab2ol__c"); + state = "1"; + String apiCode = "8000090019"; + //回款单解锁 + String r = CrmUtil.unLockAndLock("8000090016","object_ab2ol__c",crmId,tokenObj.getString("corpAccessToken"),CrmUtil.MANAGERCODE,tokenObj.getString("corpId")); + //推送数据到CRM进行新增或修改 + JSONObject resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + if(null != resultObj ){ + String errorDescription = resultObj.getString("errorDescription"); + if(!"success".equals(errorDescription)){ + state = "2"; + } + }else{ + state = "2"; + } + } + } finally { + //修改删除状态 + entity.setState(state); + vU9cSalereceiverDao.updateStateForDelete(entity); + } + } + } + } + + private void sendSalereceiverDetails(String mainId, String permanentCode, JSONObject tokenObj,String billCode,String dataId) { + VU9cSalereceiverDetailsEntity details = new VU9cSalereceiverDetailsEntity(); + details.setMainId(mainId); + List detailsList = u9cSalereceiverDetailsDao.getu9cSalereceiverDetails(details); + if(null != detailsList && detailsList.size()>0){ + for(VU9cSalereceiverDetailsEntity d : detailsList){ + String id = d.getId(); + //拼接传递参数 + JSONObject main = new JSONObject(); + main.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + main.put("corpId",tokenObj.getString("corpId"));//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + main.put("duplicateCheck",true); + JSONObject data = new JSONObject(); + main.put("data",data); + JSONObject object_data = new JSONObject(); + JSONArray owner = new JSONArray(); + owner.add(permanentCode); + object_data.put("dataObjectApiName","object_1n255__c"); + object_data.put("owner",owner); +// object_data.put("field_q18s0__c","6549e908e6767b0001fe6a68");//todo 等待对接发货单号主键 + object_data.put("field_q18s0__c",d.getDeliverBillId());//todo 等待对接发货单号主键 + object_data.put("field_126Mr__c",dataId);// CRM表头主键 + object_data.put("field_8v8Np__c",d.getInvName());// 产品名称 + object_data.put("field_hog9b__c",d.getNum());// 数量 + object_data.put("field_bumZ5__c",d.getTaxPrice());// 单价 + object_data.put("field_oZ129__c","");// 回款方式 + object_data.put("field_Tt1kg__c",d.getTaxPriceSum());// 金额 + object_data.put("field_e3NWX__c","");// 备注 + object_data.put("field_y67ja__c",billCode);// 回款单编号 + object_data.put("field_4gcxj__c",d.getsRowId());// 发货单明细行号 + object_data.put("field_0dmOD__c",d.getProId());// 产品ID + + object_data.put("field_0I0C5__c",d.getRmaMoney());// 本次退款金额 + object_data.put("field_Fl2r5__c",d.getRmaLine());// 退货单金额 + object_data.put("field_6gfrJ__c",d.getRmaId());// 退货单ID + object_data.put("field_j8Kdx__c",d.getSoId());// 销售订单ID + object_data.put("field_vE2T3__c",d.getDocLineNo());//发货单行号 + String billType = d.getBillType(); + String record_type = ""; + if("退回".equals(billType)){ + record_type = "record_EjW1M__c"; + } + if("出货".equals(billType)){ + record_type = "default__c"; + } + object_data.put("record_type",record_type);// 业务类型 + data.put("object_data",object_data); + String apiCode = "8000090012"; + JSONObject resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + try { + String errorDescription = resultObj.getString("errorDescription"); + if("success".equals(errorDescription)){ + String dataIdDetails = resultObj.getString("dataId"); + if(StrUtil.isNotEmpty(dataIdDetails)){ + d.setDataId(dataIdDetails); + u9cSalereceiverDetailsDao.updateState(d); + } + } + } catch (Exception e) { + d.setDataId("系统异常,请联系管理员"); + u9cSalereceiverDetailsDao.updateState(d); + e.printStackTrace(); + } + logger.info("CRM应收单明细返回信息"+resultObj); + } + } + } + + /*** + * @Content:推送表头信息 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年11月9日15:03:19 + * @Param + * @return + **/ + private String sendSalereceiverMain(VU9cSalereceiverEntity itemmaster, String permanentCode, JSONObject tokenObj) { + String id = itemmaster.getId(); + String dataId = null; + JSONObject resultObj = new JSONObject(); + try { + //拼接传递参数 + String crmId = itemmaster.getCrmId(); + JSONObject main = new JSONObject(); + main.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + main.put("corpId",tokenObj.getString("corpId"));//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + main.put("triggerWorkFlow",true);//是否触发流程,不需要 + main.put("includeDetailIds",true); + JSONObject data = new JSONObject(); + main.put("data",data); + JSONObject object_data = new JSONObject(); + JSONArray owner = new JSONArray(); + owner.add(permanentCode); + object_data.put("dataObjectApiName","object_ab2ol__c"); + object_data.put("owner",owner); + String custName = itemmaster.getCustName(); + String custId = CrmUtil.getCustIdByCustName(custName,tokenObj.getString("corpAccessToken"),permanentCode,tokenObj.getString("corpId")); + object_data.put("field_e0335__c",custId);//客户名称 +// object_data.put("field_c4r1p__c",itemmaster.getSoId());// CRM销售订单主键 + object_data.put("field_l3g1v__c",itemmaster.getBillCode());//U9C回款编号 + // object_data.put("field_l3g1v__c",itemmaster.getBillCode());//U9C回款编号 + String orgCode = itemmaster.getOrgCode(); + //如果CRMID存在,则走修改流程 + if(StrUtil.isNotEmpty(crmId)){ + object_data.put("_id",itemmaster.getCrmId());//todo 等待对接发货单号主键 + } + String field_J0EN1__c = ""; + + if(StrUtil.isNotEmpty(orgCode)){ + switch (orgCode){ + case "1001"://杭州恒华科技有限公司 + field_J0EN1__c = "cD2b3f"; + break; + case "1002"://杭州华耀商贸有限公司 + field_J0EN1__c = "sl2qOPMpO"; + break; + case "1004"://诚艺传递华耀 + field_J0EN1__c = "sl2qOPMpO"; + break; + case "1003"://杭州胡记食品有限公司 + field_J0EN1__c = "eq8LyNWe1"; + break; + default: + break; + } + } + object_data.put("field_J0EN1__c",field_J0EN1__c); //组织 + //拼接组装明细数据 + VU9cSalereceiverDetailsEntity details = new VU9cSalereceiverDetailsEntity(); + details.setMainId(itemmaster.getId()); + List detailsList = u9cSalereceiverDetailsDao.getu9cSalereceiverDetails(details); + JSONArray object_1n255__cArr = new JSONArray(); + JSONObject detailsObj = new JSONObject(); + if(null != detailsList && detailsList.size()>0){ + for(VU9cSalereceiverDetailsEntity d : detailsList){ + + + JSONObject object_1n255__c = new JSONObject(); + + object_1n255__c.put("field_q18s0__c",d.getDeliverBillId());//todo 等待对接发货单号主键 + object_1n255__c.put("field_126Mr__c",dataId);// CRM表头主键 + object_1n255__c.put("field_8v8Np__c",d.getInvName());// 产品名称 + object_1n255__c.put("field_hog9b__c",d.getNum());// 数量 + object_1n255__c.put("field_bumZ5__c",d.getTaxPrice());// 单价 + object_1n255__c.put("field_oZ129__c","");// 回款方式 + object_1n255__c.put("field_Tt1kg__c",d.getTaxPriceSum());// 金额 + object_1n255__c.put("field_e3NWX__c","");// 备注 + object_1n255__c.put("field_y67ja__c",itemmaster.getBillCode());// 回款单编号 + object_1n255__c.put("field_4gcxj__c",d.getsRowId());// 发货单明细行号 + object_1n255__c.put("field_0dmOD__c",d.getProId());// 产品ID + object_1n255__c.put("field_0I0C5__c",d.getRmaMoney());// 本次退款金额 + object_1n255__c.put("field_Fl2r5__c",d.getRmaLine());// 退货单金额 + object_1n255__c.put("field_6gfrJ__c",d.getRmaId());// 退货单ID + object_1n255__c.put("field_j8Kdx__c",d.getSoId());// 销售订单ID + object_1n255__c.put("field_vE2T3__c",d.getDocLineNo());//发货单行号 + String billType = d.getBillType(); + String record_type = ""; + if("退回".equals(billType)){ + record_type = "record_EjW1M__c"; + } + if("出货".equals(billType)){ + record_type = "default__c"; + } + object_1n255__c.put("record_type",record_type);// 业务类型 + object_1n255__cArr.add(object_1n255__c); + } + + } + detailsObj.put("object_1n255__c",object_1n255__cArr); +// object_data.put("details",detailsObj); + + //拼接结束 + + data.put("object_data",object_data); + data.put("details",detailsObj); + String apiCode = ""; + if(StrUtil.isEmpty(crmId)){ + apiCode = "8000090004"; + }else{ + apiCode = "8000090010"; + String r = CrmUtil.unLockAndLock("8000090016","object_ab2ol__c",crmId,tokenObj.getString("corpAccessToken"),CrmUtil.MANAGERCODE,tokenObj.getString("corpId")); + logger.info("回款单解锁"+r); + } + //推送数据到CRM + resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + //todo CRM傅佳敏提出 不管任何原因修改失败都需要再次锁定 + if(StrUtil.isNotEmpty(crmId)){ + //修改完数据之后需要再次锁定 + String r = CrmUtil.unLockAndLock("8000090017","object_ab2ol__c",crmId,tokenObj.getString("corpAccessToken"),CrmUtil.MANAGERCODE,tokenObj.getString("corpId")); + logger.info("回款单锁定"+r); + } + String errorDescription = resultObj.getString("errorDescription"); + + if("success".equals(errorDescription)){ + dataId = resultObj.getString("dataId"); + if(StrUtil.isNotEmpty(dataId)){ + itemmaster.setDataId(dataId); + vU9cSalereceiverDao.updateState(itemmaster); + } + } + } catch (Exception e) { + itemmaster.setDataId("系统异常,请联系管理员"); + vU9cSalereceiverDao.updateState(itemmaster); + e.printStackTrace(); + } + logger.info("CRM应收单主表返回信息"+resultObj); + return dataId; + } +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/dao/IVU9cUnitDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/dao/IVU9cUnitDao.java new file mode 100644 index 00000000..0c077d61 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/dao/IVU9cUnitDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.u9c.unit.dao; + +import com.hzya.frame.u9c.unit.entity.VU9cUnitEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * (v_u9c_unit: table)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-02 09:34:01 + */ +public interface IVU9cUnitDao extends IBaseDao { + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/dao/impl/VU9cUnitDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/dao/impl/VU9cUnitDaoImpl.java new file mode 100644 index 00000000..79a07af3 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/dao/impl/VU9cUnitDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.u9c.unit.dao.impl; + +import com.hzya.frame.u9c.unit.entity.VU9cUnitEntity; +import com.hzya.frame.u9c.unit.dao.IVU9cUnitDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * (VU9cUnit)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-02 09:34:15 + */ +@Repository("VU9cUnitDaoImpl") +public class VU9cUnitDaoImpl extends MybatisGenericDao implements IVU9cUnitDao{ + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/entity/VU9cUnitEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/entity/VU9cUnitEntity.java new file mode 100644 index 00000000..0d1e513c --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/entity/VU9cUnitEntity.java @@ -0,0 +1,85 @@ +package com.hzya.frame.u9c.unit.entity; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * (VU9cUnit)实体类 + * + * @author xiang2lin + * @since 2023-11-02 09:34:17 + */ +public class VU9cUnitEntity extends BaseEntity { + + + private String unitid; + + private String unitcode; + + private String unitname; + + private String status; + + private String unitgroupcode; + + private String unitgroupname; + + private String updateTime; + + + public String getUnitid() { + return unitid; + } + + public void setUnitid(String unitid) { + this.unitid = unitid; + } + + public String getUnitcode() { + return unitcode; + } + + public void setUnitcode(String unitcode) { + this.unitcode = unitcode; + } + + public String getUnitname() { + return unitname; + } + + public void setUnitname(String unitname) { + this.unitname = unitname; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getUnitgroupcode() { + return unitgroupcode; + } + + public void setUnitgroupcode(String unitgroupcode) { + this.unitgroupcode = unitgroupcode; + } + + public String getUnitgroupname() { + return unitgroupname; + } + + public void setUnitgroupname(String unitgroupname) { + this.unitgroupname = unitgroupname; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/entity/VU9cUnitEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/entity/VU9cUnitEntity.xml new file mode 100644 index 00000000..8cb8161b --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/entity/VU9cUnitEntity.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + unitId + ,unitCode + ,unitName + ,status + ,unitGroupCode + ,unitGroupName + ,update_time + + + + + + + + + + + + + + + + + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/service/IVU9cUnitService.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/service/IVU9cUnitService.java new file mode 100644 index 00000000..bb1f05e5 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/service/IVU9cUnitService.java @@ -0,0 +1,21 @@ +package com.hzya.frame.u9c.unit.service; + +import com.hzya.frame.u9c.unit.entity.VU9cUnitEntity; +import com.hzya.frame.basedao.service.IBaseService; + +import java.util.List; + +/** + * (VU9cUnit)表服务接口 + * + * @author xiang2lin + * @since 2023-11-02 09:34:19 + */ +public interface IVU9cUnitService extends IBaseService{ + /** + * 查询计量单位,传睿本云专用 + * @param entity + * @return + */ + public List query2Reabam(VU9cUnitEntity entity); +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/service/impl/VU9cUnitServiceImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/service/impl/VU9cUnitServiceImpl.java new file mode 100644 index 00000000..4cca6a06 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/unit/service/impl/VU9cUnitServiceImpl.java @@ -0,0 +1,44 @@ +package com.hzya.frame.u9c.unit.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.constant.U9Constant; +import com.hzya.frame.u9c.unit.entity.VU9cUnitEntity; +import com.hzya.frame.u9c.unit.dao.IVU9cUnitDao; +import com.hzya.frame.u9c.unit.service.IVU9cUnitService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.List; + +/** + * (VU9cUnit)表服务实现类 + * + * @author xiang2lin + * @since 2023-11-02 09:34:20 + */ +@Service("vU9cUnitService") +public class VU9cUnitServiceImpl extends BaseService implements IVU9cUnitService { + + private IVU9cUnitDao vU9cUnitDao; + + @Autowired + public void setVU9cUnitDao(IVU9cUnitDao dao) { + this.vU9cUnitDao = dao; + this.dao = dao; + } + + /** + * 查询计量单位,传睿本云专用 + * + * @param entity + * @return + */ + @DS(U9Constant.DATA_SOURCE_CODE) + @Override + public List query2Reabam(VU9cUnitEntity entity) { + List list = vU9cUnitDao.queryList(entity, "com.hzya.frame.u9c.unit.dao.impl.VU9cUnitDaoImpl.entity_list_base_reabam"); + return list; + } +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/dao/IVU9cUnitGroupDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/dao/IVU9cUnitGroupDao.java new file mode 100644 index 00000000..09fc5cb2 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/dao/IVU9cUnitGroupDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.u9c.unitgroup.dao; + +import com.hzya.frame.u9c.unitgroup.entity.VU9cUnitGroupEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * (v_u9c_unit_group: table)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-02 10:51:08 + */ +public interface IVU9cUnitGroupDao extends IBaseDao { + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/dao/impl/VU9cUnitGroupDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/dao/impl/VU9cUnitGroupDaoImpl.java new file mode 100644 index 00000000..803fe063 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/dao/impl/VU9cUnitGroupDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.u9c.unitgroup.dao.impl; + +import com.hzya.frame.u9c.unitgroup.entity.VU9cUnitGroupEntity; +import com.hzya.frame.u9c.unitgroup.dao.IVU9cUnitGroupDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * (VU9cUnitGroup)表数据库访问层 + * + * @author xiang2lin + * @since 2023-11-02 10:51:13 + */ +@Repository("VU9cUnitGroupDaoImpl") +public class VU9cUnitGroupDaoImpl extends MybatisGenericDao implements IVU9cUnitGroupDao{ + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/entity/VU9cUnitGroupEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/entity/VU9cUnitGroupEntity.java new file mode 100644 index 00000000..9f83a721 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/entity/VU9cUnitGroupEntity.java @@ -0,0 +1,65 @@ +package com.hzya.frame.u9c.unitgroup.entity; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * (VU9cUnitGroup)实体类 + * + * @author xiang2lin + * @since 2023-11-02 10:51:15 + */ +public class VU9cUnitGroupEntity extends BaseEntity { + + + private String unitgroupcode; + + private String unitgroupname; + + private String unitname; + + private String status; + + private String baseunit; + + + public String getUnitgroupcode() { + return unitgroupcode; + } + + public void setUnitgroupcode(String unitgroupcode) { + this.unitgroupcode = unitgroupcode; + } + + public String getUnitgroupname() { + return unitgroupname; + } + + public void setUnitgroupname(String unitgroupname) { + this.unitgroupname = unitgroupname; + } + + public String getUnitname() { + return unitname; + } + + public void setUnitname(String unitname) { + this.unitname = unitname; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getBaseunit() { + return baseunit; + } + + public void setBaseunit(String baseunit) { + this.baseunit = baseunit; + } + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/entity/VU9cUnitGroupEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/entity/VU9cUnitGroupEntity.xml new file mode 100644 index 00000000..460e7ed4 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/entity/VU9cUnitGroupEntity.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + unitGroupCode + ,unitGroupName + ,unitName + ,status + ,baseUnit + + + + + + + + + + + + + + + + insert into v_u9c_unit_group( + + unitGroupCode , + unitGroupName , + unitName , + status , + baseUnit , + sts, + + )values( + + #{unitgroupcode} , + #{unitgroupname} , + #{unitname} , + #{status} , + #{baseunit} , + 'Y', + + ) + + + + insert into v_u9c_unit_group(unitGroupCode, unitGroupName, unitName, status, baseUnit, sts) + values + + (#{entity.unitgroupcode},#{entity.unitgroupname},#{entity.unitname},#{entity.status},#{entity.baseunit}, 'Y') + + + + + insert into v_u9c_unit_group(unitGroupCode, unitGroupName, unitName, status, baseUnit) + values + + (#{entity.unitgroupcode}, #{entity.unitgroupname}, #{entity.unitname}, #{entity.status}, #{entity.baseunit}) + + on duplicate key update + unitGroupCode = values(unitGroupCode), + unitGroupName = values(unitGroupName), + unitName = values(unitName), + status = values(status), + baseUnit = values(baseUnit) + + +update v_u9c_unit_group set + + unitGroupCode = #{unitgroupcode}, + unitGroupName = #{unitgroupname}, + unitName = #{unitname}, + status = #{status}, + baseUnit = #{baseunit}, + +where id= #{id} + + + +update v_u9c_unit_group set sts= 'N' +where id= #{id} + + + +update v_u9c_unit_group set sts= 'N' + + or unitGroupCode = #{unitgroupcode} + or unitGroupName = #{unitgroupname} + or unitName = #{unitname} + or status = #{status} + or baseUnit = #{baseunit} + and sts='Y' + + + + + delete from v_u9c_unit_group where id= #{id} + + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/service/IVU9cUnitGroupService.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/service/IVU9cUnitGroupService.java new file mode 100644 index 00000000..453bb808 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/service/IVU9cUnitGroupService.java @@ -0,0 +1,12 @@ +package com.hzya.frame.u9c.unitgroup.service; + +import com.hzya.frame.u9c.unitgroup.entity.VU9cUnitGroupEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * (VU9cUnitGroup)表服务接口 + * + * @author xiang2lin + * @since 2023-11-02 10:51:16 + */ +public interface IVU9cUnitGroupService extends IBaseService{ +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/service/impl/VU9cUnitGroupServiceImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/service/impl/VU9cUnitGroupServiceImpl.java new file mode 100644 index 00000000..bd14b9be --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/unitgroup/service/impl/VU9cUnitGroupServiceImpl.java @@ -0,0 +1,26 @@ +package com.hzya.frame.u9c.unitgroup.service.impl; + +import com.hzya.frame.u9c.unitgroup.entity.VU9cUnitGroupEntity; +import com.hzya.frame.u9c.unitgroup.dao.IVU9cUnitGroupDao; +import com.hzya.frame.u9c.unitgroup.service.IVU9cUnitGroupService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; +/** + * (VU9cUnitGroup)表服务实现类 + * + * @author xiang2lin + * @since 2023-11-02 10:51:17 + */ +@Service("vU9cUnitGroupService") +public class VU9cUnitGroupServiceImpl extends BaseService implements IVU9cUnitGroupService { + + private IVU9cUnitGroupDao vU9cUnitGroupDao; + + @Autowired + public void setVU9cUnitGroupDao(IVU9cUnitGroupDao dao) { + this.vU9cUnitGroupDao = dao; + this.dao = dao; + } +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/util/CrmUtil.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/util/CrmUtil.java new file mode 100644 index 00000000..05486f45 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/util/CrmUtil.java @@ -0,0 +1,235 @@ +package com.hzya.frame.u9c.util; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.util.HttpUtil; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.ArrayList; +import java.util.List; + +/** + * com.hzya.frame.u9c.util + * + * @author yqh + * @date 2023-10 -25 15:26 + */ + +public class CrmUtil { + protected Logger logger = LogManager.getLogger(super.getClass()); + public static String MANAGERCODE = "FSUID_DB2D1775B48BCDF893538F8CAB2A0EC7"; + public static JSONObject getToken(String permanentCode){ + JSONObject main = new JSONObject(); + main.put("appId","FSAID_131ca0b"); + main.put("appSecret","fdca93109f52427791039af863304887"); + main.put("permanentCode","34EF8A65DE83249BA8FCC4E533E9978E"); + String baseUrl = "http://bohua.tpddns.cn:9081/kangarooDataCenter/entranceController/externalCallInterface"; + String result = HttpRequest.post(baseUrl) + .header("appId", "800009")//头信息,多个头信息多次调用此方法即可 + .header("apiCode", "8000090001")//头信息,多个头信息多次调用此方法即可 + .header("publicKey", "ZJYAP+Oa64gdYq1AG7vPzDGjP+AZCi3QJUBrJkO4NVwAmaFCe7eDIk+3zDUT+v578prj")//头信息,多个头信息多次调用此方法即可 + .header("secretKey", "svMDheByZfQSwmLEzJbFnvaMsgvCPf3SFNSCb9HJKIdlMDGJlKMwUmYHpZVd3SURj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//头信息,多个头信息多次调用此方法即可 + .body(JSON.toJSONString(main))//表单内容 + .timeout(20000)//超时,毫秒 + .execute().body(); + if(StrUtil.isNotEmpty(result)){ + return analytic(result); + } + return null; + } + public static JSONObject sendU9cTOCrmEsb(String parm,String apiCode){ + String baseUrl = "http://bohua.tpddns.cn:9081/kangarooDataCenter/entranceController/externalCallInterface"; +// String baseUrl = "http://192.168.2.78:9999/kangarooDataCenter/entranceController/externalCallInterface"; + System.out.println("推送参数"+parm); + String result = HttpRequest.post(baseUrl) + .header("appId", "800009")//头信息,多个头信息多次调用此方法即可 + .header("apiCode", apiCode)//头信息,多个头信息多次调用此方法即可 + .header("publicKey", "ZJYAP+Oa64gdYq1AG7vPzDGjP+AZCi3QJUBrJkO4NVwAmaFCe7eDIk+3zDUT+v578prj")//头信息,多个头信息多次调用此方法即可 + .header("secretKey", "svMDheByZfQSwmLEzJbFnvaMsgvCPf3SFNSCb9HJKIdlMDGJlKMwUmYHpZVd3SURj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//头信息,多个头信息多次调用此方法即可 + .body(parm)//表单内容 + .timeout(20000)//超时,毫秒 + .execute().body(); + System.out.println("返回参数"+result); + if(StrUtil.isNotEmpty(result)){ + return analytic(result); + } + + return null; + } + public static JSONObject analytic(String parm){ + JSONObject main = JSON.parseObject(parm); + String status = main.getString("status"); + if("200".equals(status)){ + String attribute = main.getString("attribute"); + //解析token + JSONObject attributeObj = JSON.parseObject(attribute); + String errorMessage = attributeObj.getString("errorMessage"); + if("success".equals(errorMessage) || "OK".equals(errorMessage)){ + return attributeObj; + } + } + return null; + } + + public static String getCustIdByCustName(String custName,String token,String permanentCode,String corpId) { + String apiCode = "8000090008"; + JSONObject main = new JSONObject(); + main.put("corpAccessToken",token);//token + main.put("corpId",corpId);//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + JSONObject data = new JSONObject(); + JSONObject search_query_info = new JSONObject(); + search_query_info.put("offset",0); + search_query_info.put("limit",2); + JSONArray filters = new JSONArray(); + JSONObject filtersObj = new JSONObject(); + filtersObj.put("field_name","name"); + filtersObj.put("field_values",custName); + filtersObj.put("operator","EQ"); + filters.add(filtersObj); + search_query_info.put("filters",filters); + data.put("dataObjectApiName","AccountObj"); + data.put("search_query_info",search_query_info); + main.put("data",data); + JSONObject resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + JSONObject resultData = resultObj.getJSONObject("data"); + JSONArray dataList = resultData.getJSONArray("dataList"); + if(null != dataList && dataList.size() > 0 ){ + Object obj = dataList.get(0); + JSONObject warehouse = JSON.parseObject(obj.toString()); + return warehouse.getString("_id"); + } + return ""; + } + +/** + * + * @content 解锁与锁定CRMapi队形 + * @author makejava + * @date 2023/12/21 0021 0:10 + * + */ + + public static String unLockAndLock(String apiCode,String apiName,String crmId,String token,String permanentCode,String corpId) { + JSONObject main = new JSONObject(); + main.put("corpAccessToken",token);//token + main.put("corpId",corpId);//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + JSONObject data = new JSONObject(); + data.put("dataObjectApiName",apiName); + List dataIds = new ArrayList<>(); + dataIds.add(crmId); + data.put("dataIds",dataIds); + data.put("detailObjStrategy","1"); + main.put("data",data); + JSONObject resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + return resultObj.toString(); + } + + + public static String getProIdByCode(String code,String org,String token,String permanentCode,String corpId) { + String apiCode = "8000090007"; + JSONObject main = new JSONObject(); + main.put("corpAccessToken",token);//token + main.put("corpId",corpId);//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + JSONObject data = new JSONObject(); + JSONObject search_query_info = new JSONObject(); + search_query_info.put("offset",0); + search_query_info.put("limit",2); + JSONArray filters = new JSONArray(); + JSONObject filtersObj = new JSONObject(); + filtersObj.put("field_name","product_code"); + filtersObj.put("field_values",code); + filtersObj.put("operator","EQ"); + + JSONObject filtersOrg = new JSONObject(); + filtersOrg.put("field_name","field_1J9OY__c"); + filtersOrg.put("field_values",org); + filtersOrg.put("operator","EQ"); + filters.add(filtersOrg); + filters.add(filtersObj); + search_query_info.put("filters",filters); + data.put("dataObjectApiName","ProductObj"); + data.put("search_query_info",search_query_info); + main.put("data",data); + JSONObject resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + JSONObject resultData = resultObj.getJSONObject("data"); + JSONArray dataList = resultData.getJSONArray("dataList"); + if(null != dataList && dataList.size() > 0 ){ + Object obj = dataList.get(0); + JSONObject warehouse = JSON.parseObject(obj.toString()); + return warehouse.getString("_id"); + } + return ""; + } + + public static String getProIdBySupId(String supId,String token,String permanentCode,String corpId) { + String apiCode = "8000090007"; + JSONObject main = new JSONObject(); + main.put("corpAccessToken",token);//token + main.put("corpId",corpId);//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + JSONObject data = new JSONObject(); + JSONObject search_query_info = new JSONObject(); + search_query_info.put("offset",0); + search_query_info.put("limit",2); + JSONArray filters = new JSONArray(); + JSONObject filtersObj = new JSONObject(); + filtersObj.put("field_name","spu_id"); + filtersObj.put("field_values",supId); + filtersObj.put("operator","EQ"); + filters.add(filtersObj); + search_query_info.put("filters",filters); + data.put("dataObjectApiName","ProductObj"); + data.put("search_query_info",search_query_info); + main.put("data",data); + JSONObject resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + JSONObject resultData = resultObj.getJSONObject("data"); + JSONArray dataList = resultData.getJSONArray("dataList"); + if(null != dataList && dataList.size() > 0 ){ + Object obj = dataList.get(0); + JSONObject warehouse = JSON.parseObject(obj.toString()); + return warehouse.getString("_id"); + } + return ""; + } + public static void main(String[] args) { + getToken("34EF8A65DE83249BA8FCC4E533E9978E"); + } + + public static String getProIdByName(String name, String token, String permanentCode, String corpId) { + String apiCode = "8000090007"; + JSONObject main = new JSONObject(); + main.put("corpAccessToken",token);//token + main.put("corpId",corpId);//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + JSONObject data = new JSONObject(); + JSONObject search_query_info = new JSONObject(); + search_query_info.put("offset",0); + search_query_info.put("limit",2); + JSONArray filters = new JSONArray(); + JSONObject filtersObj = new JSONObject(); + filtersObj.put("field_name","name"); + filtersObj.put("field_values",name); + filtersObj.put("operator","EQ"); + filters.add(filtersObj); + search_query_info.put("filters",filters); + data.put("dataObjectApiName","ProductObj"); + data.put("search_query_info",search_query_info); + main.put("data",data); + JSONObject resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + JSONObject resultData = resultObj.getJSONObject("data"); + JSONArray dataList = resultData.getJSONArray("dataList"); + if(null != dataList && dataList.size() > 0 ){ + Object obj = dataList.get(0); + JSONObject warehouse = JSON.parseObject(obj.toString()); + return warehouse.getString("spu_id"); + } + return ""; + } +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/dao/IVU9cWarehouseDao.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/dao/IVU9cWarehouseDao.java new file mode 100644 index 00000000..9bec462e --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/dao/IVU9cWarehouseDao.java @@ -0,0 +1,27 @@ +package com.hzya.frame.u9c.warehouse.dao; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.warehouse.entity.VU9cWarehouseEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +import java.util.List; + +/** + * (view:v_u9c_warehouse)表数据库访问层 + * + * @author makejava + * @since 2023-10-26 10:35:59 + */ +public interface IVU9cWarehouseDao extends IBaseDao { +/*** + * @Content:查询U9C库存档案 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date 2023年10月26日10:57:32 + * @Param + * @return + **/ +@DS("henghua_sqlserver_test") + List getu9cWarehouse(VU9cWarehouseEntity category); + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/dao/impl/VU9cWarehouseDaoImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/dao/impl/VU9cWarehouseDaoImpl.java new file mode 100644 index 00000000..b87112b2 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/dao/impl/VU9cWarehouseDaoImpl.java @@ -0,0 +1,27 @@ +package com.hzya.frame.u9c.warehouse.dao.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.hzya.frame.u9c.warehouse.entity.VU9cWarehouseEntity; +import com.hzya.frame.u9c.warehouse.dao.IVU9cWarehouseDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; + +import java.util.List; + +/** + * (VU9cWarehouse)表数据库访问层 + * + * @author makejava + * @since 2023-10-26 10:36:05 + */ +@Repository("VU9cWarehouseDaoImpl") +public class VU9cWarehouseDaoImpl extends MybatisGenericDao implements IVU9cWarehouseDao{ + + @Override + @DS("henghua_sqlserver_test_xel") + public List getu9cWarehouse(VU9cWarehouseEntity warehouse) { + return (List) super.selectList("com.hzya.frame.u9c.warehouse.dao.impl.VU9cWarehouseDaoImpl.entity_list_base_warehouse",warehouse); + } + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/entity/VU9cWarehouseEntity.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/entity/VU9cWarehouseEntity.java new file mode 100644 index 00000000..fd68f3ee --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/entity/VU9cWarehouseEntity.java @@ -0,0 +1,180 @@ +package com.hzya.frame.u9c.warehouse.entity; + +import com.hzya.frame.web.entity.BaseEntity; +/** + * (VU9cWarehouse)实体类 + * + * @author makejava + * @since 2023-10-26 10:36:07 + */ +public class VU9cWarehouseEntity extends BaseEntity { + + + private String id; + private String code;//编码 + private String name;//名称 + private String orgId;//组织ID + private String spec;//规格 + private String invAvailability;//库存可用量 + private String reserveQuantity;//预留数量 + private String invStock;//库存现存量 + private String batch;//批号 + private String unit;//计量单位 + private String invId;//料品主键 + private String updateTime;//更新时间 + private String operatorsId;//操作员 + private String warehouseName;//仓库 + private String allocation;//货位 + private String orgCode;//组织编码 + private String orgName;//组织名称 + private String dataId;//CRM主键 + + @Override + public String getId() { + return id; + } + + @Override + public void setId(String id) { + this.id = id; + } + + public String getOrgId() { + return orgId; + } + + public void setOrgId(String orgId) { + this.orgId = orgId; + } + + public String getSpec() { + return spec; + } + + public void setSpec(String spec) { + this.spec = spec; + } + + public String getInvAvailability() { + return invAvailability; + } + + public void setInvAvailability(String invAvailability) { + this.invAvailability = invAvailability; + } + + public String getReserveQuantity() { + return reserveQuantity; + } + + public void setReserveQuantity(String reserveQuantity) { + this.reserveQuantity = reserveQuantity; + } + + public String getInvStock() { + return invStock; + } + + public void setInvStock(String invStock) { + this.invStock = invStock; + } + + public String getBatch() { + return batch; + } + + public void setBatch(String batch) { + this.batch = batch; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getInvId() { + return invId; + } + + public void setInvId(String invId) { + this.invId = invId; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getOperatorsId() { + return operatorsId; + } + + public void setOperatorsId(String operatorsId) { + this.operatorsId = operatorsId; + } + + public String getWarehouseName() { + return warehouseName; + } + + public void setWarehouseName(String warehouseName) { + this.warehouseName = warehouseName; + } + + public String getAllocation() { + return allocation; + } + + public void setAllocation(String allocation) { + this.allocation = allocation; + } + + public String getOrgCode() { + return orgCode; + } + + public void setOrgCode(String orgCode) { + this.orgCode = orgCode; + } + + public String getOrgName() { + return orgName; + } + + public void setOrgName(String orgName) { + this.orgName = orgName; + } + + public String getDataId() { + return dataId; + } + + public void setDataId(String dataId) { + this.dataId = dataId; + } + + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/entity/VU9cWarehouseEntity.xml b/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/entity/VU9cWarehouseEntity.xml new file mode 100644 index 00000000..ce4969f4 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/entity/VU9cWarehouseEntity.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + id + ,code + ,name + + + + + + + + diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/service/IVU9cWarehouseService.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/service/IVU9cWarehouseService.java new file mode 100644 index 00000000..f6c50849 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/service/IVU9cWarehouseService.java @@ -0,0 +1,20 @@ +package com.hzya.frame.u9c.warehouse.service; + +import com.hzya.frame.u9c.warehouse.entity.VU9cWarehouseEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * (VU9cWarehouse)表服务接口 + * + * @author makejava + * @since 2023-10-26 10:36:08 + */ +public interface IVU9cWarehouseService extends IBaseService{ + /*** + * @Content:查询U9C库存档案 + * @Author 👻👻👻👻yqh👻👻👻👻 + * @Date + * @Param + * @return + **/ + String sendU9cWarehouseToCRM(); +} diff --git a/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/service/impl/VU9cWarehouseServiceImpl.java b/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/service/impl/VU9cWarehouseServiceImpl.java new file mode 100644 index 00000000..31dccf71 --- /dev/null +++ b/fw-u9c/src/main/java/com/hzya/frame/u9c/warehouse/service/impl/VU9cWarehouseServiceImpl.java @@ -0,0 +1,222 @@ +package com.hzya.frame.u9c.warehouse.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.u9c.util.CrmUtil; +import com.hzya.frame.u9c.warehouse.entity.VU9cWarehouseEntity; +import com.hzya.frame.u9c.warehouse.dao.IVU9cWarehouseDao; +import com.hzya.frame.u9c.warehouse.service.IVU9cWarehouseService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; + +import java.util.List; + +/** + * (VU9cWarehouse)表服务实现类 + * + * @author makejava + * @since 2023-10-26 10:36:09 + */ +@Service("vU9cWarehouseService") +public class VU9cWarehouseServiceImpl extends BaseService implements IVU9cWarehouseService { + + private IVU9cWarehouseDao vU9cWarehouseDao; + + @Autowired + public void setVU9cWarehouseDao(IVU9cWarehouseDao dao) { + this.vU9cWarehouseDao = dao; + this.dao = dao; + } + //上一次同步时间 + private String LAST_SYNCHRONISED_TIME = ""; + @Override + public String sendU9cWarehouseToCRM() { + JSONObject resultObj = new JSONObject(); + //获取待推送的U9c + VU9cWarehouseEntity category = new VU9cWarehouseEntity(); + if (StrUtil.isBlank(LAST_SYNCHRONISED_TIME)) { + LAST_SYNCHRONISED_TIME = DateUtil.now(); + } + //暂存时间 + String temp_time = LAST_SYNCHRONISED_TIME; + category.setUpdateTime(temp_time); + List VU9cWarehouseEntityList = vU9cWarehouseDao.getu9cWarehouse(category); + if(VU9cWarehouseEntityList.size()>0){ + for(VU9cWarehouseEntity itemmaster : VU9cWarehouseEntityList){ + LAST_SYNCHRONISED_TIME = DateUtil.now(); + try { + String permanentCode = "FSUID_DB2D1775B48BCDF893538F8CAB2A0EC7"; + JSONObject tokenObj = CrmUtil.getToken(permanentCode); + String id = itemmaster.getId(); + //杭州恒华科技有限公司 + String orgCode = itemmaster.getOrgCode(); + String field_ddl10__c = ""; + if(StrUtil.isNotEmpty(orgCode)){ + switch (orgCode){ + //todo 2023年12月18日14:03:28CRM实施与U9实施讨论决定。将博华库存推送到恒华 + //博华推博华 + case "10"://博华 + field_ddl10__c = "a2lmNhpo0"; + break; + case "1001"://恒华 + field_ddl10__c = "cD2b3f"; + break; + case "1002"://杭州华耀商贸有限公司 + field_ddl10__c = "sl2qOPMpO"; + break; + case "1004"://杭州华耀商贸有限公司 + field_ddl10__c = "sl2qOPMpO"; + break; + case "1003"://杭州胡记食品有限公司 + field_ddl10__c = "eq8LyNWe1"; + break; + default: + break; + + } + } + //通过OA主键查询CRM该库存是否存在,如果存在则更新,如果不存在则进新增 + String code = itemmaster.getCode(); + String ctmId = getCrmWarehouse(tokenObj,permanentCode,id,itemmaster,field_ddl10__c); + //拼接传递参数 + JSONObject main = new JSONObject(); + main.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + main.put("corpId",tokenObj.getString("corpId"));//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + main.put("duplicateCheck",true); + main.put("triggerWorkFlow",true); + JSONObject data = new JSONObject(); + data.put("editFlag","1");//状态 暂时默认1 + data.put("name",itemmaster.getName());//分类名称 + data.put("category_code",itemmaster.getCode());//分类编码 + data.put("orderField","1");//排序号 暂时默认1 + main.put("data",data); + JSONObject object_data = new JSONObject(); + JSONArray owner = new JSONArray(); + owner.add(permanentCode); + + object_data.put("dataObjectApiName","object_1nkMM__c"); + object_data.put("owner",owner); + object_data.put("field_ddl10__c",field_ddl10__c);//组织 + String supId = itemmaster.getInvId(); +// String proId = CrmUtil.getProIdBySupId(supId,tokenObj.getString("corpAccessToken"),permanentCode,tokenObj.getString("corpId")); + String proId = CrmUtil.getProIdByCode(itemmaster.getCode(),field_ddl10__c,tokenObj.getString("corpAccessToken"),permanentCode,tokenObj.getString("corpId")); + object_data.put("field_qAQj5__c",proId);//产品主键 +// object_data.put("field_qAQj5__c","65386572741efa00012ca6c6");//产品主键 +// object_data.put("field_K7oi6__c","");//规格 + object_data.put("field_MM6hR__c",itemmaster.getUnit());//库存计量单位 + object_data.put("field_xkvpd__c",itemmaster.getBatch());//批号 + object_data.put("field_5ugda__c",itemmaster.getInvAvailability());//可用库存 + object_data.put("field_b1j2M__c",itemmaster.getInvStock());//实际库存 + object_data.put("field_r169q__c",itemmaster.getReserveQuantity());//库存预留量 + object_data.put("field_u4s12__c",itemmaster.getWarehouseName());//仓库 + object_data.put("field_2JAJ3__c",itemmaster.getAllocation());//货位 + object_data.put("field_6x27n__c",itemmaster.getId());//U9C库存ID + object_data.put("field_QO1ic__c",itemmaster.getCode());//料品编码 + data.put("object_data",object_data); + String apiCode = ""; + if(StrUtil.isEmpty(ctmId)){ + apiCode = "8000090009"; + }else{//更新 + object_data.put("_id",ctmId); + // object_data.put("_id","654366aa6de7a000013a8245"); + apiCode = "8000090010"; + } + resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + String errorDescription = resultObj.getString("errorDescription"); + if(null != errorDescription){ + if("success".equals(errorDescription)){ + String dataId = resultObj.getString("dataId"); + if(StrUtil.isNotEmpty(dataId)){ + logger.info("更新CRM库存信息成功:"+dataId); + } + } + } + + logger.info(resultObj.toString()); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + return resultObj.toString(); + } + + public String getCrmWarehouse(JSONObject tokenObj, String permanentCode,String id,VU9cWarehouseEntity itemmaster,String org) { + JSONObject main = new JSONObject(); + main.put("corpAccessToken",tokenObj.getString("corpAccessToken"));//token + main.put("corpId",tokenObj.getString("corpId"));//公司 + main.put("currentOpenUserId",permanentCode);//操作员主键 + JSONObject data = new JSONObject(); + data.put("dataObjectApiName","object_1nkMM__c"); + JSONObject search_query_info = new JSONObject(); + search_query_info.put("offset",0); + search_query_info.put("limit",2); + JSONArray filters = new JSONArray(); + JSONObject filtersObj = new JSONObject(); + filtersObj.put("field_name","field_QO1ic__c");//编码 + filtersObj.put("field_values",itemmaster.getCode()); + filtersObj.put("operator","EQ"); + + JSONObject filtersObjOrg = new JSONObject(); + filtersObjOrg.put("field_name","field_ddl10__c");//组织 + filtersObjOrg.put("field_values",org); + filtersObjOrg.put("operator","EQ"); + + JSONObject filtersLife = new JSONObject(); + filtersLife.put("field_name","life_status");//生命状态 + filtersLife.put("field_values","normal"); + filtersLife.put("operator","EQ"); + + + if(StrUtil.isNotEmpty(itemmaster.getWarehouseName())){ + JSONObject filtersObjWare = new JSONObject(); + filtersObjWare.put("field_name","field_u4s12__c");//仓库 + filtersObjWare.put("field_values",itemmaster.getWarehouseName()); + filtersObjWare.put("operator","EQ"); + filters.add(filtersObjWare); + } + + if(StrUtil.isNotEmpty(itemmaster.getBatch())){ + JSONObject filtersObjBatch = new JSONObject(); + filtersObjBatch.put("field_name","field_xkvpd__c");//批号 + filtersObjBatch.put("field_values",itemmaster.getBatch()); + filtersObjBatch.put("operator","EQ"); + filters.add(filtersObjBatch); + } + + + if(StrUtil.isNotEmpty(itemmaster.getAllocation())){ + JSONObject filtersObjAll = new JSONObject(); + filtersObjAll.put("field_name","field_2JAJ3__c");//货位 + filtersObjAll.put("field_values",itemmaster.getAllocation()); + filtersObjAll.put("operator","EQ"); + filters.add(filtersObjAll); + } + + + + + + filters.add(filtersObj); + filters.add(filtersObjOrg); + search_query_info.put("filters",filters); + data.put("search_query_info",search_query_info); + main.put("data",data); + String apiCode = "8000090011"; + JSONObject resultObj = CrmUtil.sendU9cTOCrmEsb(main.toString(),apiCode); + JSONObject resultData = resultObj.getJSONObject("data"); + JSONArray dataList = resultData.getJSONArray("dataList"); + if(null != dataList && dataList.size() > 0 ){ + Object obj = dataList.get(0); + JSONObject warehouse = JSON.parseObject(obj.toString()); + return warehouse.getString("_id"); + } + return ""; + } +} diff --git a/fw-u9c/src/main/webapp/WEB-INF/web.xml b/fw-u9c/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000..d80081d1 --- /dev/null +++ b/fw-u9c/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index fc53bd54..9d734257 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - + fw-u9c com.hzya.frame kangarooDataCenterV3