huanglizhi 11 ay önce
ebeveyn
işleme
0ad637c9b1

+ 108 - 0
module-erp/src/main/java/com/hys/app/controller/erp/use/LogisticsCompanyManagerController.java

@@ -0,0 +1,108 @@
+package com.hys.app.controller.erp.use;
+
+import com.hys.app.framework.database.WebPage;
+import com.hys.app.model.system.dos.LogisticsCompanyDO;
+import com.hys.app.model.system.dto.FormItem;
+import com.hys.app.service.erp.LogisticsCompanyManager;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * 物流公司控制器
+ *
+ * @author zjp
+ * @version v7.0.0
+ * @since v7.0.0
+ * 2018-03-29 15:10:38
+ */
+@RestController
+@RequestMapping("/admin/systems/logi-companies")
+@Api(description = "物流公司相关API")
+@Validated
+public class LogisticsCompanyManagerController {
+
+    @Autowired
+    private LogisticsCompanyManager logisticsCompanyManager;
+
+    @ApiOperation(value = "查询物流公司列表", response = LogisticsCompanyDO.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "page_no", value = "页码", required = true, dataType = "int", paramType = "query"),
+            @ApiImplicitParam(name = "page_size", value = "每页显示数量", required = true, dataType = "int", paramType = "query"),
+            @ApiImplicitParam(name = "name", value = "物流公司名称", dataType = "String", paramType = "query")
+    })
+    @GetMapping
+    public WebPage list(@ApiIgnore @NotNull(message = "页码不能为空") Long pageNo, @ApiIgnore @NotNull(message = "每页数量不能为空") Long pageSize, @ApiIgnore String name) {
+
+        return this.logisticsCompanyManager.list(pageNo, pageSize, name);
+    }
+
+
+    @ApiOperation(value = "添加物流公司", response = LogisticsCompanyDO.class)
+    @PostMapping
+    public LogisticsCompanyDO add(@Valid LogisticsCompanyDO logi,@RequestBody @Valid List<FormItem> formItems) {
+
+        logi.setForm(formItems);
+        this.logisticsCompanyManager.add(logi);
+
+        return logi;
+    }
+
+    @PutMapping(value = "/{id}")
+    @ApiOperation(value = "修改物流公司", response = LogisticsCompanyDO.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "主键", required = true, dataType = "int", paramType = "path")
+    })
+    public LogisticsCompanyDO edit(@Valid LogisticsCompanyDO logi, @PathVariable("id") Long id,@RequestBody @Valid List<FormItem> formItems) {
+
+        logi.setForm(formItems);
+        this.logisticsCompanyManager.edit(logi, id);
+
+        return logi;
+    }
+
+
+    @DeleteMapping(value = "/{id}")
+    @ApiOperation(value = "删除物流公司")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "要删除的物流公司主键", required = true, dataType = "int", paramType = "path")
+    })
+    public String delete(@PathVariable("id") Long id) {
+        this.logisticsCompanyManager.delete(id);
+
+        return "";
+    }
+
+
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "查询一个物流公司")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "要查询的物流公司主键", required = true, dataType = "int", paramType = "path")
+    })
+    public LogisticsCompanyDO get(@PathVariable("id") Long id) {
+        LogisticsCompanyDO logi = this.logisticsCompanyManager.getModel(id);
+        return logi;
+    }
+
+    @PostMapping(value = "/{id}")
+    @ApiOperation(value = "开启或禁用物流公司")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "物流公司主键ID", required = true, dataType = "int", paramType = "path"),
+            @ApiImplicitParam(name = "disabled", value = "状态 OPEN:开启,CLOSE:禁用", required = true, dataType = "String", paramType = "path", allowableValues = "OPEN,CLOSE")
+    })
+    public String openClose(@PathVariable("id") Long id, @ApiIgnore String disabled) {
+        this.logisticsCompanyManager.openCloseLogi(id, disabled);
+
+        return "";
+    }
+
+}

+ 18 - 0
module-erp/src/main/java/com/hys/app/mapper/erp/LogisticsCompanyMapper.java

@@ -0,0 +1,18 @@
+package com.hys.app.mapper.erp;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hys.app.framework.cache.MybatisRedisCache;
+import com.hys.app.model.system.dos.LogisticsCompanyDO;
+import org.apache.ibatis.annotations.CacheNamespace;
+
+
+/**
+ * 物流公司的Mapper
+ * @author zhanghao
+ * @version v1.0
+ * @since v7.2.2
+ * 2020/7/21
+ */
+@CacheNamespace(implementation= MybatisRedisCache.class,eviction=MybatisRedisCache.class)
+public interface LogisticsCompanyMapper extends BaseMapper<LogisticsCompanyDO> {
+}

+ 93 - 0
module-erp/src/main/java/com/hys/app/service/erp/LogisticsCompanyManager.java

@@ -0,0 +1,93 @@
+package com.hys.app.service.erp;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.hys.app.framework.database.WebPage;
+import com.hys.app.model.system.dos.LogisticsCompanyDO;
+
+import java.util.List;
+
+/**
+ * 物流公司业务层
+ * @author zjp
+ * @version v7.0.0
+ * @since v7.0.0
+ * 2018-03-29 15:10:38
+ */
+public interface LogisticsCompanyManager extends IService<LogisticsCompanyDO> {
+
+	/**
+	 * 查询物流公司列表
+	 * @param page 页码
+	 * @param pageSize 每页数量
+	 * @param name 物流公司名称
+	 * @return WebPage
+	 */
+	WebPage list(long page, long pageSize, String name);
+	/**
+	 * 添加物流公司
+	 * @param logi 物流公司
+	 * @return Logi 物流公司
+	 */
+	LogisticsCompanyDO add(LogisticsCompanyDO logi);
+
+	/**
+	* 修改物流公司
+	* @param logi 物流公司
+	* @param id 物流公司主键
+	* @return Logi 物流公司
+	*/
+	LogisticsCompanyDO edit(LogisticsCompanyDO logi, Long id);
+
+	/**
+	 * 删除物流公司
+	 * @param id 物流公司主键
+	 */
+	void delete(Long id);
+
+	/**
+	 * 获取物流公司
+	 * @param id 物流公司主键
+	 * @return Logi  物流公司
+	 */
+	LogisticsCompanyDO getModel(Long id);
+
+	/**
+	 * 通过code获取物流公司
+	 * @param code 物流公司code
+	 * @return 物流公司
+	 */
+	LogisticsCompanyDO getLogiByCode(String code);
+	/**
+	 * 通过快递鸟物流code获取物流公司
+	 * @param kdcode 快递鸟公司code
+	 * @return 物流公司
+	 */
+	LogisticsCompanyDO getLogiBykdCode(String kdcode);
+
+	/**
+	 * 根据物流名称查询物流信息
+	 * @param name 物流名称
+	 * @return 物流公司
+	 */
+	LogisticsCompanyDO getLogiByName(String name);
+
+	/**
+	 * 查询物流公司列表(不分页)
+	 * @return WebPage
+	 */
+	List<LogisticsCompanyDO> list();
+
+	/**
+	 * 开启或禁用物流公司
+	 * @param id 物流公司主键ID
+	 * @param disabled 状态 OPEN:开启,CLOSE:禁用
+	 */
+	void openCloseLogi(Long id, String disabled);
+
+	/**
+	 * 查询平台添加的全部物流公司(正常使用未删除的)
+	 * @return
+	 */
+	List<LogisticsCompanyDO> listAllNormal();
+
+}

+ 264 - 0
module-erp/src/main/java/com/hys/app/service/erp/impl/LogisticsCompanyManagerImpl.java

@@ -0,0 +1,264 @@
+package com.hys.app.service.erp.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hys.app.framework.database.WebPage;
+import com.hys.app.framework.exception.ServiceException;
+import com.hys.app.framework.util.PageConvert;
+import com.hys.app.framework.util.StringUtil;
+import com.hys.app.mapper.erp.LogisticsCompanyMapper;
+import com.hys.app.model.errorcode.SystemErrorCode;
+import com.hys.app.model.system.dos.LogisticsCompanyDO;
+import com.hys.app.model.system.enums.DeleteStatusEnum;
+import com.hys.app.model.system.enums.LogiCompanyStatusEnum;
+import com.hys.app.service.erp.LogisticsCompanyManager;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 物流公司业务类
+ * @author zjp
+ * @version v7.0.0
+ * @since v7.0.0
+ * 2018-03-29 15:10:38
+ */
+@Service
+public class LogisticsCompanyManagerImpl extends ServiceImpl<LogisticsCompanyMapper, LogisticsCompanyDO> implements LogisticsCompanyManager {
+
+	@Autowired
+	private LogisticsCompanyMapper logisticsCompanyMapper;
+
+	/**
+	 * 查询物流公司列表
+	 * @param page 页码
+	 * @param pageSize 每页数量
+	 * @param name 物流公司名称
+	 * @return WebPage
+	 */
+	@Override
+	public WebPage list(long page, long pageSize, String name){
+
+		QueryWrapper<LogisticsCompanyDO> wrapper = new QueryWrapper<>();
+		wrapper.eq("delete_status", 0);
+		wrapper.like(StringUtil.notEmpty(name),"name",name);
+		wrapper.orderByDesc("id");
+		IPage<LogisticsCompanyDO> iPage = logisticsCompanyMapper.selectPage(new Page<>(page,pageSize), wrapper);
+		return PageConvert.convert(iPage);
+
+	}
+
+	/**
+	 * 添加物流公司
+	 * @param logi 物流公司
+	 * @return Logi 物流公司
+	 */
+	@Override
+	@Transactional(value = "systemTransactionManager",propagation = Propagation.REQUIRED,rollbackFor=Exception.class)
+	public LogisticsCompanyDO add(LogisticsCompanyDO logi)	{
+		if(this.checkRepeat(logi.getName(), null, null, null)){
+			throw new ServiceException(SystemErrorCode.E904.name(), "物流公司名称重复");
+		}
+		if(this.checkRepeat(null, logi.getCode(), null, null)){
+			throw new ServiceException(SystemErrorCode.E904.name(), "物流公司代码重复");
+		}
+		if (StringUtil.notEmpty(logi.getKdcode())) {
+			if(this.checkRepeat(null, null, logi.getKdcode(), null)){
+				throw new ServiceException(SystemErrorCode.E904.name(), "快递鸟物流代码重复");
+			}
+		}
+
+		logi.setDeleteStatus(DeleteStatusEnum.NORMAL.value());
+		logi.setDisabled(LogiCompanyStatusEnum.OPEN.value());
+
+		logisticsCompanyMapper.insert(logi);
+
+		return logi;
+	}
+
+	/**
+	 * 根据不同信息判断物流公司是否重复
+	 * @param name 物流公司名称
+	 * @param code 物流公司代码
+	 * @param kdCode 快递鸟物流代码
+	 * @param id 物流公司ID
+	 * @return
+	 */
+	private boolean checkRepeat(String name, String code, String kdCode, Long id) {
+
+		QueryWrapper<LogisticsCompanyDO> wrapper = new QueryWrapper<>();
+		wrapper.eq("delete_status", DeleteStatusEnum.NORMAL.value());
+        wrapper.eq(StringUtil.notEmpty(name),"name", name);
+		wrapper.eq(StringUtil.notEmpty(code),"code", code);
+		wrapper.eq(StringUtil.notEmpty(kdCode),"kdcode",kdCode);
+		wrapper.ne(id != null,"id", id);
+		int count = logisticsCompanyMapper.selectCount(wrapper).intValue();
+
+		return count != 0 ? true : false;
+	}
+
+	/**
+	 * 修改物流公司
+	 * @param logi 物流公司
+	 * @param id 物流公司主键
+	 * @return Logi 物流公司
+	 */
+	@Override
+	@Transactional(propagation = Propagation.REQUIRED,rollbackFor=Exception.class)
+	public LogisticsCompanyDO edit(@Valid LogisticsCompanyDO logi, Long id){
+		LogisticsCompanyDO model = this.getModel(id);
+		if(model==null) {
+			throw new ServiceException(SystemErrorCode.E904.name(), "物流公司不存在");
+		}
+		//当支持电子面单时,需要填写快递鸟物流公司code
+		if(logi.getIsWaybill() == 1 && StringUtil.isEmpty(logi.getKdcode())){
+			throw new ServiceException(SystemErrorCode.E904.name(), "快递鸟公司代码必填");
+		}
+
+		if(this.checkRepeat(logi.getName(), null, null, id)){
+			throw new ServiceException(SystemErrorCode.E904.name(), "物流公司名称重复");
+		}
+		if(this.checkRepeat(null, logi.getCode(), null, id)){
+			throw new ServiceException(SystemErrorCode.E904.name(), "物流公司代码重复");
+		}
+		if (StringUtil.notEmpty(logi.getKdcode())) {
+			if(this.checkRepeat(null, null, logi.getKdcode(), id)){
+				throw new ServiceException(SystemErrorCode.E904.name(), "快递鸟物流代码重复");
+			}
+		}
+		logi.setDisabled(model.getDisabled());
+		logisticsCompanyMapper.updateById(logi);
+		return logi;
+	}
+
+	/**
+	 * 删除物流公司
+	 * @param logiId 物流公司主键
+	 */
+	@Override
+	@Transactional(propagation = Propagation.REQUIRED,rollbackFor=Exception.class)
+	public	void delete(Long logiId)	{
+		LogisticsCompanyDO model = this.getModel(logiId);
+		if (model == null ) {
+			throw new ServiceException(SystemErrorCode.E904.name(), "物流公司不存在");
+		}
+
+//		List list = shopLogisticsCompanyClient.queryListByLogisticsId(logiId);
+//		if (StringUtil.isNotEmpty(list)) {
+//			throw new ServiceException(ShopErrorCode.E214.name(), "当前物流公司已经被商家使用,不能删除");
+//		}
+
+		logisticsCompanyMapper.deleteById(logiId);
+	}
+
+	/**
+	 * 获取物流公司
+	 * @param id 物流公司主键
+	 * @return Logi  物流公司
+	 */
+	@Override
+	public LogisticsCompanyDO getModel(Long id)	{
+		return logisticsCompanyMapper.selectById(id);
+	}
+
+	/**
+	 * 通过code获取物流公司
+	 * @param code 物流公司code
+	 * @return 物流公司
+	 */
+	@Override
+	public LogisticsCompanyDO getLogiByCode(String code) {
+
+		QueryWrapper<LogisticsCompanyDO> wrapper = new QueryWrapper<>();
+		wrapper.eq("code", code);
+		LogisticsCompanyDO logiCompany =  logisticsCompanyMapper.selectOne(wrapper);
+
+		return logiCompany;
+	}
+
+	/**
+	 * 通过快递鸟物流code获取物流公司
+	 * @param kdcode 快递鸟公司code
+	 * @return 物流公司
+	 */
+	@Override
+	public LogisticsCompanyDO getLogiBykdCode(String kdcode) {
+
+		QueryWrapper<LogisticsCompanyDO> wrapper = new QueryWrapper<>();
+		wrapper.eq("kdcode", kdcode);
+		LogisticsCompanyDO logiCompany =  logisticsCompanyMapper.selectOne(wrapper);
+
+		return logiCompany;
+	}
+
+	/**
+	 * 根据物流名称查询物流信息
+	 * @param name 物流名称
+	 * @return 物流公司
+	 */
+	@Override
+	public LogisticsCompanyDO getLogiByName(String name) {
+
+		QueryWrapper<LogisticsCompanyDO> wrapper = new QueryWrapper<>();
+		wrapper.eq("name", name);
+		LogisticsCompanyDO logiCompany =  logisticsCompanyMapper.selectOne(wrapper);
+
+		return logiCompany;
+	}
+
+	/**
+	 * 查询物流公司列表(不分页)
+	 * @return WebPage
+	 */
+	@Override
+	public List<LogisticsCompanyDO> list() {
+
+		QueryWrapper<LogisticsCompanyDO> wrapper = new QueryWrapper<>();
+		wrapper.orderByDesc("id");
+		return logisticsCompanyMapper.selectList(wrapper);
+
+	}
+
+	/**
+	 * 开启或禁用物流公司
+	 * @param id 物流公司主键ID
+	 * @param disabled 状态 OPEN:开启,CLOSE:禁用
+	 */
+	@Override
+	@Transactional(propagation = Propagation.REQUIRED,rollbackFor=Exception.class)
+	public void openCloseLogi(Long id, String disabled) {
+		if (StringUtil.isEmpty(disabled) || (!LogiCompanyStatusEnum.OPEN.name().equals(disabled) && !LogiCompanyStatusEnum.CLOSE.name().equals(disabled))) {
+			throw new ServiceException(SystemErrorCode.E904.name(), "参数传递不正确");
+		}
+
+		LogisticsCompanyDO model = this.getModel(id);
+		if (model == null ) {
+			throw new ServiceException(SystemErrorCode.E904.name(), "物流公司不存在");
+		}
+
+		UpdateWrapper wrapper = new UpdateWrapper();
+		wrapper.eq("id",id);
+		model.setDisabled(disabled);
+		logisticsCompanyMapper.updateById(model);
+	}
+
+	/**
+	 * 查询平台添加的全部物流公司(正常使用未删除的)
+	 * @return
+	 */
+	@Override
+	public List<LogisticsCompanyDO> listAllNormal() {
+
+		QueryWrapper<LogisticsCompanyDO> wrapper = new QueryWrapper<>();
+		wrapper.eq("delete_status", DeleteStatusEnum.NORMAL.value()).eq("disabled", LogiCompanyStatusEnum.OPEN.value());
+		wrapper.orderByDesc("id");
+		return logisticsCompanyMapper.selectList(wrapper);
+	}
+}

+ 1 - 1
server/src/main/resources/application-test.yml

@@ -14,7 +14,7 @@ spring:
 
   #rabbitmq
   rabbitmq:
-    host: 1.94.136.108
+    host: 127.0.0.1
     port: 5672
     username: admin
     password: 85d98a89